SENG2021 Detailed Design Concepts
Fethi Rabhi
Design in SE cycle
Requirements analysis
Design
Implementation
Testing
Maintenance
Software architecture
Detailed design
Previous lecture: architecture
Architecture’s purpose
Connection between business and technical view
Gives an overview of what system does
Naming your software components is important
According to business functions
Will be mapped to a specific technology/language
Prerequisites before detailed design
Software architecture / software components has been defined
Implementation stack has been selected
Architecture satisfies functional and quality requirements
Extensibility (ability to add new features)
Adaptability (accommodating changing reqs.)
Simplicity (ease of understanding/implementing)
Efficiency (time/space)
Example
Detailed Design
Goes deeper than architectural design
Not one but many!
Design coverage
Detailed Design
Detailed design is usually closely associated with the implementation languages used
Object Oriented Modelling
Data Modelling
UML Notations
Focus of this workshop
Given
Use cases / user stories
Architecture
Detailed design involves defining
Data model
User Interface model
Dynamic behaviour model
Data Modelling
Identify domain objects, their attributes and associations between objects
Normally, combination ER-diagram/sequence diagrams
Relational models
(for SQL databases)
Formal methods: more powerful and unambiguous
User Interface and visualisation design
Helping users to interact with systems
Visualisation
Behavioural modelling
Architecture does not give sufficient information on how components interact with each other
Different notations for expressing behaviour
Sequence diagram Example
More information in The sequence diagram – IBM Developer
More on sequence diagrams
Suggested detailed design process in SENG
Iterate
Iterate between these activities
For each user story
1) Develop its sequence diagram 2) Design its user interface
Data
Define ER diagram (can result in 1 or multiple databases)
Boundaries
Define architecture and draw diagram showing components and external entities
Focus
Keep number of user stories small
Example
Question: How is the architecture supporting the creation of invoices ? (use case / user story)
Example of a design process
17
Create Invoice
DETAILED SEQUENCE DIAGRAM
INITIAL SEQUENCE DIAGRAM
Create invoice (parameters)
Invoice
Deliveries Manager
Price Manager
i:Invoice
Invoice Manager
createInvoice (DA,PriceList)
Return(i)
User story
Create Invoice
Architectural component
Create Invoice
Invoice:createInvoice(despAdv,PriceList)
Invoice
produces
DeliveryAdv
uses
PriceList
uses
Data model
Class
Design process characteristics
More important aspect is consistency between different design models (especially naming)
Invoice Manager
GUI
Price Manager
Deliveries Manager
Examples of sequence diagrams from previous workshops
Example 1
Example 2
Example 3
Good software design practices
23
Things to do
Things to avoid
Design tools
24
Why use a tool
Tools
Web resources