Telecommunications and Informatics Engineering
SOFTWARE ENGINEERING
Description
Theory
1
Laboratory
2
Instructors
Alexandre Gouveia
Contents
P1. SDP (10%)
- Disciplines and types of processes (e.g. cascade, I&I, agile)
- Development of a system adopting an I&I process
P2. Requirements Engineering (15%)
- Elicitation, identification, analysis, specification, and validation of requirements
- Functional and non-functional requirements
- Visual modeling using UML: Use Case diagram (UCD) and System Sequence Diagram (SSD)
P3. OO Analysis (15%)
- Identification of domain concepts and their relations
- Domain model
- Visual modeling using UML
P4. OO Design (30%)
- RDD, GRASP and SOLID principles
- Definition of responsibilities and behavior
- Architectural design
- Patterns for data persistence
- Patterns related to client-server architecture
- Visual modeling using UML: Class Diagram (CD) and Sequence Diagram (SD)
P5. Tests (15%)
- Test-driven development (TDD)
- Unitary vs. Integration vs. System vs. Acceptance
- Functional vs. Acceptance vs. Regression
- Mocks
P6. OO Coding (15%)
- Implementation in accordance with the Design
Learning Outcomes
At the end of the course unit, the student must be able to:
CO1. Apply the SDP, particularly the I&I process, in a deterministic way;
CO2. Apply requirements engineering and analysis methods that enhance the understanding and specification of the application domain;
CO3. Apply and justify the adoption of software design methods, principles, patterns and architectures;
CO4. Apply a test-driven development (TDD) approach for system construction;
CO5. Build the system in accordance with the design, using C++;
CO6. Apply appropriate artifacts and notations for describing the problem, the analysis, the design and the solution.