Date post: | 19-Jun-2015 |
Category: |
Education |
Upload: | henry-muccini |
View: | 350 times |
Download: | 3 times |
1
Advanced Software EngineeringURL: http://lore.com/Advanced-Software-Engineering-Univaq/
DISIMDep.nt of Information Engineering, Computer Science and MathematicsUniversity of L’Aquila, Italy
The Architecting Process (and the link with Agibility)
Henry Muccini [email protected]
SEA Group
Copyright Notice
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.
Henry Muccini
SEA Group
Non Functional S.E.Performance modelingPerformance analysis
UML UML ProfilingLab
Intro to SASA Case study SA styleADLs Design Decisions Views/Viewpoints
Software Architecture
UML Extra Functional
Lectures
SEA Group
Fire Fighter case study… at work…
SEA Group
SA General workflow
Architectural constraints and requirements
Ideas
Constraints
Req1:..Req2:..Req3:..………
Architectural requirements
C2
C3C1
C4
Software Architecture
Software Architecture
synthesis
Evaluation and Decisions making
SEA Group
A multi-facet process
SEA Group
Process: step
Let us identify the system requirements
Let us identify the ARCHITECTURALLY RELEVANT
requirements
SEA Group
Process: step - subsystems
Let us identify subsystems
SEA Group
Process: step – C&C
Let us identify the main components and connectors
SEA Group
Process: step - Informal modeling
SA box&line informal Modeling
Incremental design
AND/OR SA Formal Modeling
SEA Group
Process step: verification and validation
SA-based functional and non functional
analysisSA-conformance to
requirements
Predictive analysis
Code-to-SA conformance analysis
SEA Group
Process step: verification and validation
SA-based functional and non functional
analysisSA-conformance to
requirements
Predictive analysis
Code-to-SA conformance analysis
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 InverardiModel-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)
inputs
SEA Group
Process: step – Incremental Implementation
Coding based on the defined SA
Systematic skeleton «code generation»
SA as a reference artifact for coding
inputs
C2SADL, ArchJava, JavaA
SEA Group
The Overall Process
SADesign
Decisions
Components and Connectors
SA Modeling
Subsystems
AS Requirements with Quality attributes
SA Verification and Validation
SA-based coding
SEA Group
BookDecomposition
Designing to Architecturally Significant RequirementsWhat happens to the other requirements? Do I design for one ASR at a time or all at once?
Generate and TestHypothesis
Existing systemsFrameworksPatterns and tactics Domain decomposition Design checklists
SEA Group
The Attribute-Driven Design method by keywords
Iterative method
«workable» architecture early and quickly
boundaries
Inputs:correct set of ASRsExternal systems, devices, users
Output:Sketches of Architectural viewsAgile
Step1:Decomposition treeyou want or won’t pick «whole» system as the starting pointbreadth depth firstStep3:
Generate and testPatterns, tactics, checklists
SEA Group
Agile and Software Architecture Process
http://agilemanifesto.org/
SEA Group
Agile and Software Architecture Process
While it may not work for complex systems: The principles reflect a process employed for small-to
medium-sized project Co-location or high level of communication Little attention to cross-cutting concernsagi
lity
code-firs
tarchitecting
Up-fron
t design
SEA Group
How much architecting?
Adding time for up-front work reduces later rework
But, how much?
Sweet spots:
.10ksloc -> no up-front
. …
.1000ksloc -> ~40%
Risk reduction
SEA Group
YAGNI Principle
“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.”
“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.”
[SAinPractice]
YAGNI = You ain’t gonna need it
SEA Group
WebArrow Case Study
Web-based Video Conferencing
Process: Initial software and system architecture
Incremental implementation Starting with critical functionalities
Architecture refactoring based on new requirements Continuous experimentation, empirical evaluation,
architectural analysis