Software Development Metodology

TeSP - Web e Dispositivos Móveis, Publication in the Diário da República - Aviso n.º 12718/2016 - 19/10/2016

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. The Java language is used where necessary. XP e SCRUM methodologies overview.

1. Software Development Methodologies Categories
1.1. Software Development Methodologies categories and characteristics
1.2. Popular software development methodologies overview: Waterfall, SCRUM, Extreme Programming, Unified Process

2. A UML - Unified Modelling Language
2.1. Modelling principles
2.2. How to use the UML
2.3. A conceptual model of the UML
2.3.1. Building Blocks Things: Structural; Behavioural; Grouping; Annotational Relationships: Dependency; Association; Generalization; Realization Diagrams
2.3.2. Rules
2.3.3. Common Mechanisms Specifications Adornments Common divisions Extensibility mechanisms

3. Object Oriented Analysis and Design
3.1. System Architecture
3.2. Object Oriented Architecture perspectives and characteristics
3.3. What is Analysis and Design
3.4. Object Oriented Analysis and Design

4. Iterative, Evolutionary and Agile Processes
4.1. Iterative and Evolutionary development advantages
4.2. Change in iterative processes
4.3. Timeboxing
4.4. The Unified Process (UP)
4.4.1. Phases, Iterations and Milestones
4.4.2. Disciplines

5. Inception Phase
5.1. Characteristics
5.2. Duration
5.3. Artifacts

6. Evolutionary Requirements
6.1. Definition of Requirements
6.2. Requirements categories
6.3. Evolutionary Requirements vs Waterfall like requirements
6.4. How to find requirements

7. Use Cases (UCs)
7.1. Actors, Scenarios and Use Cases
7.2. The three use case formats (Resumed, Casual, Detailed)
7.3. How use cases evolve along iterations

8. Elaboration phase
8.1. Iterations of the elaboration phase
8.2. Use cases along elaboration iterations
8.3. Starting artifacts in elaboration phase

9. Domain Models
9.1. What are Domain Models
9.2. Conceptual classes
9.3. How to find conceptual classes
9.4. Attributes
9.5. Attributes vs Classes
9.6. Model with 'Description' classes
9.7. Associations
9.8. How to find associations in the Domain Model

10. System Sequence Diagrams (SSDs)
10.1. What are SSDs and what they are used for
10.2. Relations between DSSs and Use Cases
10.3. System Events and Operations naming
10.4. Operation Contracts and their characteristics
10.5. How to create and write operation contracts
10.6. Operation contracts in the UP context

11. Requirements to Design
11.1. Motivation to evolve to Design tasks

12. Interaction Diagrams
12.1. Sequence and Communication diagrams notation
12.2. Interaction diagrams notation

13. Class diagrams (CD)
13.1. What are class diagrams and what they are used for?
13.2. Class diagrams’ notation
13.3. Design Classes’ diagram
13.4. Classifiers
13.5. How represent attributes in CDs
13.6. Annotations
13.7. Operations and Methods
13.8. Stereotypes, profiles and Tags
13.9. Properties
13.10. Generalizations, abstract classes and abstract operations
13.11. Dependency
13.12. Interfaces
13.13. Composition and Aggregation
13.14. Constraints
13.15. Qualified association
13.16. Association class
13.17. Singleton class
13.18. User-defined compartments
13.19. Relationship between interaction diagrams and class diagrams

Evaluation Methodology
Semester Term:
- Written Test (30%)
- Practical Project (70%).

Exam Norml Term:
- Test grade from Semester Term or Written Exam grade (30%)
- Practical Project (70%).

Recourse Term:
- Written Test (30%)
- Practical Project (70%).

Observation 1: Tests and Written exams minimum grade: 7 out of 20; Practical Project minimum grade: 10 out of 20
Observation 2: Students can be called to defend the Practical Work, if demanded by the lecturer. Missing the defense will result in zero (0) points out of 20 in this evaluation component and therefore failing the assessment period in question.

- 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