l06 the architecting process

21
1 Advanced Software Engineering URL: http://lore.com/Advanced-Software- Engineering-Univaq/ DISIM Dep.nt of Information Engineering, Computer Science and Mathe University of L’Aquila, Italy The Architecting Process (and the link with Agibility) Henry Muccini [email protected]

Upload: henry-muccini

Post on 19-Jun-2015

354 views

Category:

Education


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: L06 The Architecting Process

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]

Page 2: L06 The Architecting Process

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

Page 3: L06 The Architecting Process

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

Page 4: L06 The Architecting Process

SEA Group

Fire Fighter case study… at work…

Page 5: L06 The Architecting Process

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

Page 6: L06 The Architecting Process

SEA Group

A multi-facet process

Page 7: L06 The Architecting Process

SEA Group

Process: step

Let us identify the system requirements

Let us identify the ARCHITECTURALLY RELEVANT

requirements

Page 8: L06 The Architecting Process

SEA Group

Process: step - subsystems

Let us identify subsystems

Page 9: L06 The Architecting Process

SEA Group

Process: step – C&C

Let us identify the main components and connectors

Page 10: L06 The Architecting Process

SEA Group

Process: step - Informal modeling

SA box&line informal Modeling

Incremental design

AND/OR SA Formal Modeling

Page 11: L06 The Architecting Process

SEA Group

Process step: verification and validation

SA-based functional and non functional

analysisSA-conformance to

requirements

Predictive analysis

Code-to-SA conformance analysis

Page 12: L06 The Architecting Process

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

Page 13: L06 The Architecting Process

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

Page 14: L06 The Architecting Process

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

Page 15: L06 The Architecting Process

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

Page 16: L06 The Architecting Process

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

Page 17: L06 The Architecting Process

SEA Group

Agile and Software Architecture Process

http://agilemanifesto.org/

Page 18: L06 The Architecting Process

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

Page 19: L06 The Architecting Process

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

Page 20: L06 The Architecting Process

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

Page 21: L06 The Architecting Process

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