Metodologia de Desenvolvimento de Software

TeSP - Web e Dispositivos Móveis
5 ECTS; 2º Ano, 1º Semestre, 45,0 PL + 15,0 TP

- Fernando Sérgio Hortas Rodrigues

Good knowledge of an object oriented language.

This module aims to provide the study of Object-Oriented Analysis and Design, through the study of iterative and evolutionary methodologies, mainly the Unified Process along with UML. Design Patterns are also covered. The Java language is used where necessary. XP e SCRUM methodologies overview.

1 - Software Development Methodologies Categories
- Software Development Methodologies categories and characteristics
- Popular software development methedologies overview: Waterfall, SCRUM, Extrem Programming, Unified Process

– Desenho e Análise orientados por objetos (OO)
- O que é a Análise e o Desenho
- Análise e Desenho orientados por objetos
- A Modelação visual - UML

3 – A UML - Unified Modeling Language
- Modeling principles
- Architecture
- An Overview of the UML
- A conceptual model of the UML
- Classes, Relations and Common Mechanisms
- UML diagrams

4 – Iterative, Evolutionary e Agile Processes
- Iterative and Evolutionary development advantages and characteristicso
- The Unified Process (UP)
- Phases, Iterations e Milestones
- The disciplines

5 – Inception Phase
- Characteristics
- Duration
- Artifacts

6 – Evolutionary Requirements
- Defenition: Requirments
- Requirements categories
- Evolutionary Requirements vs Waterfall like requirements
- How to find requirements

7 – Use Cases (UCs)
- Actores, Scenarios and Use Cases
- Why Use Cases
- The three use case formats (Resumed, Casual, Detailed)
- How use cases evolve along iterations

8 – Elaboration phase
- Iterations of the elaboration phase
- Use cases along elaboration iterations
- Artifacts started in elaboration phase

9 – Domain Models
- What are Domain Models
- Conceptual classes
- How to find conceptual classes
- Attributes
- Attributes vs Classes
- Model with 'Description' classes
- Associations
- How to find associations in the Domain Model

10 – System Sequence Diagrams (SSDs)
- What are SSDs and what they are used for
- Relations between DSSs and Use Cases
- System Events and Operations naming
- Operation Contracts and their characteristicas
- How to create and write operation contracts
- Operation contracts in the UP context

11 – Requirements to Design
- Motivation to evolve to Design tasks

12 – Iteraction Diagrams
- Sequence and Communication diagrams notation
- Interaction diagrams notation

13 – Class diagrams
- What are CDs and what they are used for
- Class diagrams notation
- Design Classes diagram
- Classifiers
- How represent attributes in CDs
- Anotations
- Operations and Methods
- Setereotypes, profiles and Tags
- Properties,
- Generalizatios, abstract classes and abstract operations
- Dependency
- Interfaces
- Composition and Agregation
- Constraints
- Qualified association
- Classe de associação
- Singleton class
- User-defined compartments
- Relationship between interaction diagrams and class diagrams

14 – GRASP – General Responsibility Assignment Software Patterns
- Design objects with responsabilities
- UML vs Design principles
- Object Design: Inputs, Activities and Outputs
- Responsabilities and Responsability-driven Design
- GRASP: A methodical approach to basic OO Design
- Relation between GRASP, Responsabilities and UML
- Patterns
- What are Patterns and what they are used for
- Applying GRASP to Object Design
- Creator
- Information Expert (or Expert)
- Low Coupling
- Controller
- High Cohesion

Evaluation Methodology
Practical assignment (100%)
Project discussion is compulsory

- Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development . -: Prentice Hall
- Booch, G. e Rumbaugh, J. e Jacobson, I. (2005). The Unified Modeling Language User Guide. -: Addison Wesley
- Nunes, M. e O'Neill, H. e Ramos, P. (2010). Exercícios de UML. Lisboa: Lidel

Method of interaction
Lectures and tutorials.

Software used in class
Visual Pardigm (Community Edition)