Software Engineering @ DTM | EIT Digital - a.y. 2023-2024
v.0.9.1-20240401
Stages
- SpecificAnalysis - Understanding the Problem - (Initial) Knowledge Crunching
- From Analysis to Design - Building the Domain Model
- Refining the Analysis and Design - Subdomains and Bounded Contexts
- Design - Software Architecture
- Prototype implementation
Analysis - Understanding the Problem - (Initial) Knowledge Crunching and Requirements Definition
- Writing down some user stories
- Doing event storming
- Formulating a first version of Ubiquitous language (UL)
- Defining use cases
- using StarUML
- using Visual Paradigm
DELIVERABLES
From Analysis to Design
- Building a first domain model, including an implementation
- Representing the domain model in UML (Class Diagrams)
- using StarUML
- Representing the domain model in UML (Class Diagrams)
- Defining the UI and UX (not discussed in this course)
DELIVERABLES
- A description of the domain model
- An implementation of the domain model in any Object-Oriented language (e.g. Javascript, Python)
- UI mocks
Refining the Analysis and Design: Subdomains and Bounded Contexts
- Refining the Analysis: Decompose the domain in subdomains
- Refining the Design: Identify Bounded Contexts and the Context Map
DELIVERABLES
- Bounded Contexts description
- Context Map
Design - Software Architecture
- Defining the Software Architecture of the system
- Focusing on layered architectures and microservices
- Using UML to represent the structure and behaviour of the system
- Components and Connectors structure -- UML component diagram
- Module structure -- UML Class diagram
- Allocation structures -- UML Deployment diagram
DELIVERABLES
Prototype implementation and deployment
- Selecting a core subset of the architecture and implement a prototype, capturing key aspects and functionalities
DELIVERABLES