LEARNING OUTCOMES
The objectives aim at providing an integrated vision of the software development process seen as an engineering activity. Sensitize students towards the problems in software development. Study the principles and requirements that the process of software development must respect so as to enable the definition, assessment and improvement of a process with which aims at improving productivity, product quality and subsequent customer satisfaction. Provide students with the ability to model the various aspects of a software project using UML.
The competences to acquire are those of knowing how to:
1 - Analyse and design information systems.
2 - Model an information system in an object oriented perspective.
3 - Use UML as main modelling language.
4 - Design easily reusable software.
5 - Elaborate technical documentation to develop in a team.
6 - Work in small and more extended groups.
7 - Use CASE tools.
STUDY PROGRAMME
1 - Introduction to Software Engineering.
1. The Life Cycle of the Software Development Process.
2. Methods of Development.
3. The Development team.
2 - UML as a Modelling Language.
a. Characteristics of Object Oriented Systems.
b. The UML (v 2.0).
c. Minimal Object Oriented Methodology
3 - Object Oriented Analysis a. Definition of requisites.
b. Functional Modelling. c. Structural Modelling.
d. Behavioural Modelling
4 - Object Oriented Design
a. Evolution of Design for Analysis.
b. Method and class specification.
c. Data Modelling.
d. Architecture Modelling.
5 - Implementation
a. Programming Management.
b. Test Specification.
6 - Software reuse
a. Reuse levels.
b. Reuse and Object Orientation.
c. Frequent problems.
7 - UML Advanced Topics and Databases
BIBLIOGRAPHY
System Analysis and Design with UML Version 2.0, Alan Dennis et al., 2ª Edição, Wiley, 2004
UML Metodologias e Ferramentas CASE, Alberto Silva et al., 2ª Edição, Centro Atlântico, 2005