IPT Logotipo do IPT

Ano Letivo: 2020/21

Informática e Tecnologias Multimédia

Software Developing Methodologies

<< back to Curriculum Plan

Publication in the Diário da República: Despacho n.º 9184/2020 - 25/09/2020

6 ECTS; 3º Ano, 1º Semestre, 42,0 PL + 28,0 TP + 5,0 OT , Cód. 814332.

Lecturer
- Fernando Sérgio Hortas Rodrigues (1)(2)

(1) Docente Responsável
(2) Docente que lecciona

Prerequisites
Good knowledge of an object oriented language.

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

Program
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
2.3.1.1. Things: Structural; Behavioural; Grouping; Annotational
2.3.1.2. Relationships: Dependency; Association; Generalization; Realization
2.3.1.3. Diagrams
2.3.2. Rules
2.3.3. Common Mechanisms
2.3.3.1. Specifications
2.3.3.2. Adornments
2.3.3.3. Common divisions
2.3.3.4. 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

14. General Responsibility Assignment Software Patterns (GRASP)
14.1. Objects design with responsabilities
14.2. UML vs Design principles
14.3. Object Design: Inputs, Activities and Outputs
14.4. Responsabilities and Responsability-driven Design
14.5. GRASP: A methodical approach to basic OO Design
14.6. Relation between GRASP, Responsabilities and UML
14.7. Patterns
14.7.1. What are Patterns and what they are used for
14.7.2. Applying GRASP to Object Design
14.7.3. Creator
14.7.4. Information Expert (or Expert)
14.7.5. Low Coupling
14.7.6. Controller
14.7.7. High Cohesion

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.

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

Teaching Method
Lectures and tutorials.

Software used in class
Visual Pardigm

 

 

 


<< back to Curriculum Plan
NP4552
Financiamento
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado