Advanced Software Engineering Course, University of L'Aquila
This lecture explains a generic Architecting process to be followed when designing a software system. It also links the architecting process with agibility.
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
L06 The Architecting Process
1. The Architecting Process (and the link with Agibility)
Henry Muccini
henry.muccini@univaq.it
DISIM
Dep.nt of Information Engineering, Computer Science and Mathematics
University of L’Aquila, Italy
2. The material in these slides may be freely reproduced
and distributed, partially or totally, as far as an explicit
reference or acknowledge to the material author is
preserved.
SEA Group
Henry Muccini
3. Intro to SA
SA Case study
SA style
ADLs
Design Decisions
Views/Viewpoints
SEA Group
Non Functional S.E.
Performance modeling
Performance analysis
UML
UML Profiling
Lab
9. SEA Group
Let us identify the main
components and connectors
10. SEA Group
SA box&line informal
Modeling
AND/OR SA Formal Modeling
Incremental design
11. SEA Group
SA-based functional and
non functional analysis
SA-conformance to
requirements
Predictive analysis
Code-to-SA conformance
analysis
12. Patrizio Pelliccione, Paola Inverardi, Henry Muccini: CHARMY: A Framework for
Designing and Verifying Architectural Specifications. IEEE Trans. Software Eng.
35(3): 325-346 (2009)
Vittorio Cortellessa, Antinisca Di Marco, Paola Inverardi
Model-Based Software Performance Analysis.
First Edition, Springer, 2011.
Henry Muccini, Antonia Bertolino, Paola Inverardi: Using Software Architecture for
Code Testing. IEEE Trans. Software Eng. 30(3): 160-171 (2004)
SEA Group
SA-based functional and
non functional analysis
SA-conformance to
requirements
Predictive analysis
Code-to-SA conformance
analysis
inputs
13. SEA Group
Coding based on the
defined SA
Systematic skeleton «code
generation»
SA as a reference artifact for
coding
inputs
C2SADL,
ArchJava, JavaA
14. SA
Design
Decisions
SEA Group
AS Requirements with Quality
attributes
Subsystems
Components and Connectors
SA Modeling
SA Verification and Validation
SA-based coding
15. Decomposition
Designing to Architecturally Significant Requirements
SEA Group
What happens to the other requirements?
Do I design for one ASR at a time or all at once?
Generate and Test
Hypothesis
Existing systems
Frameworks
Patterns and tactics
Domain decomposition
Design checklists
16. SEA Group
Attribute-Driven Design
Iterative method
«workable»
architecture
early and quickly
boundaries
Inputs:
correct set of ASRs
External systems, devices, users
Output:
Sketches of Architectural views
Agile
Step1:
Decomposition tree
you want or won’t pick «whole»
system as the starting point
breadth depth first
Step3:
Generate and test
Patterns, tactics, checklists
18. While it may not work for complex systems:
SEA Group
The principles reflect a process employed for small-to
medium-sized project
Co-location or high level of communication
Little attention to cross-cutting concerns
agility code-first
architecting
Up-front
design
19. Adding time for up-front
work reduces later rework
SEA Group
But, how much?
Sweet spots:
.10ksloc -> no up-front
. …
.1000ksloc -> ~40%
Risk reduction
20. “If information isn’t needed, don’t spend the resources
to document it. All documentation should have an
intended use and audience in mind, and be produced in
a way that serves both.”
YAGNI = You ain’t gonna need it
“We document the portions of the architecture that we
need to teach to newcomers, that embody significant
potential risks if not properly managed, and that we
need to change frequently. We document what we
need to convey to readers so they can do their job.”
SEA Group
[SAinPractice]
21. Web-based Video Conferencing
Process:
SEA Group
Initial software and system architecture
Incremental implementation
Starting with critical functionalities
Architecture refactoring based on new requirements
Continuous experimentation, empirical evaluation,
architectural analysis