Objectivos de Aprendizagem |
Esta disciplina visa abordar os principais vectores de que depende o projecto fiável de aplicações à escala industrial.
Após a conclusão desta UC, o aluno deverá ser capaz de: - Estudar os diferentes aspectos de fiabilidade - escolher a tecnologia, o formalismo e as ferramentas adequada a cada projecto de software fiável - modelar, implementar sistemas fiáveis - certificar, ou seja demonstrar com a ajuda do computador resultados de fiabilidade.
|
Conteúdos programáticos |
Na sua componente teórica, a visão é a de abordar problemas de software segundo uma autêntica perspectiva de engenharia, criando modelos matemáticos sobre os quais é possível raciocinar e calcular. Na sua componente prática, a disciplina ensina a conceber e animar modelos de problemas, testando-os atempada e exaustivamente antes de se proceder à fase de cálculo e implementação, por forma a evitar erros de perspectiva ou imprecisões de concepção. Em suma: ensina-se a saber modelar, calcular, demonstrar, verificar, testar e avaliar.
|
Bibliografia principal |
José Carlos Bacelar Almeida, Maria João Frade, Jorge Sousa Pinto, Simão Melo de Sousa. Rigorous Software Development, An Introduction to Program Verification. Series: Undergraduate Topics in Computer Science, Springer. 1st Edition., 2011, XIII, 307 p. 52 illus. ISBN: 978-0-85729-017-5.
Development An Introduction to Program Verification. Springer Verlag, 2010. Yves Bertot and Pierre Casteran. Interactive Theorem Proving and Program Development. Springer Verlag, 2004.
J.-R. Abrial. The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.
Béatrice Bérard, Michel Bidoit, Alain Finkel, François Laroussinie, Antoine Petit, Laure Petrucci, and Philippe Schnoebelen. Systems and Software Verification. Model-Checking Techniques and Tools. Springer, 2001.
J-F. Monin. Understanding Formal Methods. Springer Verlag, 2002. Translation editor M. Hinchey. H. R. Nielson, F. Nielson, and C. L. Hankin. Principles of Program Analysis. Springer-Verlag, 1999.
|