Bem vindo a MFES

Bem vindo à página da edição de 2012/13 da UCE de Métodos Formais em Engenharia de Software. O meu nome é José Nuno Oliveira e sou o responsável por esta unidade curricular, que conta com uma equipa de docentes altamente qualificados na investigação e ensino de métodos formais aplicados ao desenvolvimento de software. TFM09.jpg Todos fazemos parte do Laboratório HASLab (Formal Methods for High-Assurance Software), em que se vem consolidando know-how em métodos formais desde há mais de 25 anos.

Nas suas (cerca de) 300 horas anuais de ensino em métodos científicos de programação, incluindo (cerca de) 75 horas de acompanhamento de projectos propostos por parceiros industriais nacionais e estrangeiros, esta UCE é porventura uma das mais expressivas unidades curriculares na sua área.

Os módulos que compoem MFES corporizam os principais vectores de que depende o projecto de aplicações fiáveis, à escala industrial. Na sua componente teórica, a visão é a de abordar problemas de software segundo uma autêntica perspectiva de engenharia, que permite - através da modelos matemáticos sobre os quais é possível raciocinar e calcular - prever o comportamento dos programas antes de serem escritos.

Na sua componente prática, a UCE 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 infantilidades de concepção. Em suma: ensina-se a saber modelar e calcular, sim, mas também a saber analisar, testar e avaliar, sem descurar métricas para a qualidade do software.

No seu conjunto, os conteúdos desta UCE pretendem realizar o desígnio de que é possível afixar o carimbo

nos artefactos de software desenvolvidos segundo os seus princípios metodológicos.


Parcerias


Classificação ACM

Número de ECTS por área de conhecimento, segundo as IEEE/ACM Curriculum Guidelines for Software Engineering:

  • Software/SOFTWARE ENGINEERING/Metrics --- 2
  • Software/SOFTWARE ENGINEERING/Requirements/Specifications --- 6
  • Software/SOFTWARE ENGINEERING/Software Architectures --- 6
  • Software/SOFTWARE ENGINEERING/Software/Program Verification --- 6
  • Software/SOFTWARE ENGINEERING/Testing and Debugging --- 4
  • Theory of Computation/LOGICS AND MEANINGS OF PROGRAMS/Specifying and Verifying and Reasoning about Programs --- 6


Citações

There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
Tony Hoare

It is easier to write an incorrect program than understand a correct one.
Alan Perlis

Program testing can be used to show the presence of bugs, but never to show their absence!
Edsger Dijkstra

Simplicity does not precede complexity, but follows it.
Alan Perlis


Humor

(Source: Software Development: A Rigorous Approach by C.B. Jones)