MELJUN CORTES,MBA,MPA,BSCS,ACS  Architectural Design           Establishing the overall structure of a           software ...
What is Architecture?   A high-level model of a thing    •    Describes critical aspects of the thing    •    Understandab...
What is Software Architecture?     A software system’s blueprint      • Its components      • Their interactions      • Th...
From Requirements toArchitecture     From problem definition to requirements specification      • Determine exactly what t...
Focus of Software Architectures  Two primary foci                              A framework for      • System Structure    ...
Why Software Architecture?     A key to reducing development costs      • Component-based development philosophy      • Ex...
theStorag e                                                                              What is the Problem?             ...
The Usual Tool: Design Abstraction                                                                                        ...
Architectural Abstraction                                             Cl ock :                                            ...
Definitions of Software Architecture      Perry and Wolf       •      Software Architecture = { Elements, Form, Rationale ...
Architectural design process              System structuring                •       The system is decomposed into several ...
Key Architectural Concepts              Three canonical building blocks                •       components                •...
Components      A component is a unit of computation or a data store      Components are loci of computation and state    ...
Connectors        A connector is an architectural element that models         •      interactions among components        ...
Configurations/Topologies  An architectural configuration or topology is a connected  graph of components and connectors t...
Scope of Software Architectures     Every system has an architecture.     Details of the architecture are a reflection of ...
Example Architecture – Compiler     Sequential                                                 Parallel         Lexer     ...
CASE toolset architecture                        Design                           Code                        editor      ...
Version management system                         Version management                         Object management            ...
Packing robot control system                Vision                system               Object                       A rm  ...
Film and picture library      Cet1       l n       i                Cet2                         l n                      ...
Analogies to Software Architecture              Hardware architecture                •       small number of design elemen...
Architectural models              Different architectural models may be produced              during the design process   ...
System structuring              Concerned with decomposing the system into              interacting sub-systems           ...
Key points              The software architect is responsible for deriving              a structural system model, a contr...
Upcoming SlideShare
Loading in …5
×

MELJUN CORTES Architectural design software_eng_2nd_handouts

281 views

Published on

MELJUN CORTES Architectural design software_eng_2nd_handouts

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
281
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MELJUN CORTES Architectural design software_eng_2nd_handouts

  1. 1. MELJUN CORTES,MBA,MPA,BSCS,ACS Architectural Design Establishing the overall structure of a software system Objectives • To introduce architectural design and to discuss its importance • To explain why multiple models are required to document a software architecture • To describe types of architectural model that may be used ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 1
  2. 2. What is Architecture? A high-level model of a thing • Describes critical aspects of the thing • Understandable to many stakeholders • Allows evaluation of the thing’s properties before it is built • Provides well understood tools and techniques for constructing the thing from its blueprint Which aspects of a software system are architecturally relevant? How should they be represented most effectively to enable stakeholders to understand, reason, and communicate about a system before it is built? What tools and techniques are useful for implementing an architecture in a manner that preserves its properties?©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 2
  3. 3. What is Software Architecture? A software system’s blueprint • Its components • Their interactions • Their interconnections Informal descriptions • Boxes and lines • Informal prose A shared, semantically rich vocabulary • Remote procedure calls (RPCs) • Client-Server • Pipe and Filer • Layered • Distributed • Object-Oriented©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 3
  4. 4. From Requirements toArchitecture From problem definition to requirements specification • Determine exactly what the customer and user want • Specifies what the software product is to do From requirements specification to architecture • Decompose software into modules with interfaces • Specify high-level behavior, interactions, and non-functional properties • Consider key tradeoffs » Schedule vs. Budget » Cost vs. Robustness » Fault Tolerance vs. Size » Security vs. Speed • Maintain a record of design decisions and traceability • Specifies how the software product is to do its tasks©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 4
  5. 5. Focus of Software Architectures Two primary foci A framework for • System Structure understanding system- • Correspondence between level concerns requirements and • Global rates of flow implementation • Communication patterns • Execution Control Structure • Scalability • Paths of System Evolution • Capacity • Throughput • Consistency • Component Compatibility©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 5
  6. 6. Why Software Architecture? A key to reducing development costs • Component-based development philosophy • Explicit system structure A natural evolution of design abstractions • Structure and interaction details overshadow the choice of algorithms and data structures in large/complex systems Benefits of explicit architectures • A framework for satisfying requirements • Technical basis for design • Managerial basis for cost estimation & process management • Effective basis for reuse • Basis for consistency, dependency, and tradeoff analysis • Avoidance of architectural erosion©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 6
  7. 7. theStorag e What is the Problem? aWarehouse This is a simple UM L-A Generated Association Class:aNavPoint Association (1.0) (0.5) software system! aRouteUM L-A Generated Dependency Class:aRouteCollection Association (0.5) UML -A Genera ted De pend ency C lass :aRouteCol lectio n Ass ociation (0. 25) theVehicleCollection UML-A Generated Association Class:aW arehouse Association (1.0) aVehicle UM L-A Generated Dependency Class:theRouter Dependency (1.0) UML-A Generated Dependency Class:theRouter Dependency (0.5) UM L-A Generated Dependency Class:theRouter L-A Generated Association Class:aNavPoint Association Associationency Class :aRouteCollectio (0.25)oc UM Association (0.25) L-A GeneratedClass:aNavPointGenerated Depends:theW arehouseCollec tion Depen den UML-A Generated Association Associationrated Association Clas Association (1.0) UML-A Generated Association L-A Generated Association Class:theRouter Association n Ass UM UM L-A Generated Class:aNavPoint (1.0) (1.0) (1.0) (1.0) UML-A Gene Class:aNavPoint Association UM Association Class:aNavPoint UML-A Association UML-A Generated Dependency Class:theRouter Dependency (1.0) UML-A Generated Association Class:theVehicleCollection GeneratedCl Generalization (1.0) Class:theRouter Dependency (0.5) UML-A Generated erate UMUML-A Generated Dependency UML-A Genera ted UM L-A Generated Class:theVehicleCollection ass:th eVehi cleCo llectio n Ge(1.0) zation (1.0 ) (1.0) (1.0) (1.0) UM L-A Generated Association A GenhicleC ollecL-A Generated Class:theVehicleCollection Generalization UML-A GeneratedC lass: AssociationdClass:theVehicleCollection 0) Class:theVehicleCollection Generalization As socia tion Association Class:theVehicleCollection Generalization (1.0) nerali (1.0) UML- theVe Association Class:theVehicleCollection Generalization UM L-A Generated Association(1.0) (1. Generalization UML-A Generalization Association Ass ociati on Association Class:theVehicleCollection Generalization tion Genera lization aTruck aShip aAirplane theW areho useCo llecti on UML- A Ge nerate d Gen eraliz ation Class :av ableVehicle Colle ction Depe ndenc y (1.0 ) ail UML-A Generated Association Class:theVehicleCollection Dependency (0.5) UML-A Generated Association Class:availableVehicleCollection Dependency (0.5) UML-A Generated Dependency Class:theRouter Association (0.5) UML-A Generated Dependency Class:theRouter Association (0.25) UML-A Generated Dependency Class:theRouter Dependency (1.0) UML-A Generated Dependency Class:theRouter Dependency (1.0) UML-A Generated Association Class:aDifficiency Association (1.0) (1.0) UM L-A Generated Association Class:aDifficiency Association t heRou ter UML-A Generated ML-A ML-A Association Generated Cla ss:aD ncyClass:aDiff UML-A Generated GenUML-A Asso ciationAssociation Class:aDifficiency UML-A AssociationGen UM L-AAssociatioss:aD ifficie ifficie ncy Clas U Generated Class:aDifficiency Association (1.0) ssoci atio U AssociationGenerated Cla n Association A (1.0) sso erated Class:aDifficiency Association erated UML-A Generated Association A (1. Class:aDifficiency Association UM L-A Genera ted Associ ation C las UML-A Generated Association Class:aSu UM L-A Generated Association Class:aNavPoint Association (0.25) UM L-A Generated Association Class:aNavPoint Association (0.25) UM L-A GeneratedGenerated Association arehouse Association (0.5) UML-A Association Class:aW Class:aW arehouse Association (1.0) UM L-A Generated Association Class:aNavPoint Association (0.25) UML-A Generated Association Class:aNavPoint Association (0.25) UML-A Generated Dependency Class:theWarehouseCollection Dependency (1.0) availableVehicleCollection aRouteCollection UML-A Generated Dependency Class:theRouter Association (1.0) UML-A Generated Dependency Class:theRouter Association (0.5) UML-A Generated Association Class:theW arehouseCollection Dependency (0.5) UML-A Generated DependencyDependency Class:theRouter Association (1.0) UM L-A Generated Class:theRouter Association (1.0) theCargoRouter UML -A Generated As socia tion C lass: theWa rehou seCo llectio n De pende ncy ( 0.25) UM L-A Generated Association Class:aRoute Association (0.5) theAWT aLocation UM L-A Generated Association Class:theRouter Association (0.25) UM L-A Generated Association Class:aNavPoint Association Association (0.25) UML-A Generated Association Class:aRoute (0.5) UML-A Generated Association Class:aRoute Association (0.25) UM L-A Generated Association Class:aNavPoint Association (0.5) (0.25) UML-A Generated Association Class:aRoute Association UML-A Generated Association Class:aRoute Association (0.25) aVehiceDialog aWarehouseDialog aPortDialog aRouterDialog aNavPoint UML-A GeneratedUML-A Generated AssociationAssociation (0.5) Association (0.5) Association Class:aNavPoint Class:aW arehouse UM L-A Generated Association Class:aW arehouse Association (0.5) availableGoods aPortC ollec tion theTimeNeeded UML-A Generated Association Class:aW arehousearehouse Association (0.5) UM L-A Generated Association Class:aW Association (0.5) UM L-A Generated Association Class:aW arehouse Association (0.5) aPort aSurp lus aDifficiency UML-A Generated Association Class:aW arehouse Association (0.5) UML-A Generated Association Class:availableGoods Association (0.5) UML-A Generated Association Class:aW arehouse Association (0.5) ©Ian Sommerville 2000 theGoods Software Engineering, 6th edition. Chapter 10 Slide 7
  8. 8. The Usual Tool: Design Abstraction aTruck aAirplane aShip aLocation aVehicle aNavPoint aRoute theVehicleCollection theRouter RegularStorage aRouteCollection theStorage availableVehicleCollection aWarehouse theWarehous eCollection RefrigeratedStorage aSurplus aDeficiency theCargoRouter theGoods theTimeNeeded aRouterDialog aPort theAWT availableGoods aPortDialog aVehiceDialog aWarehouseDialog aPortCollection We have to do better!©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 8
  9. 9. Architectural Abstraction Cl ock : Cl ock 8: request Cl ockConn 9: notification 10: noti fication Warehouse Del iveryPort Vehicle 7: request 1: request 4: request 3: request RouterConn 2: notification CargoRouter 5: request Graphi csConn 6: notification GraphicsBinding : GraphicsBinding©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 9
  10. 10. Definitions of Software Architecture Perry and Wolf • Software Architecture = { Elements, Form, Rationale } what how why Shaw and Garlan • Software architecture [is a level of design that] involves » the description of elements from which systems are built, » interactions among those elements, » patterns that guide their composition, and » constraints on these patterns. Kruchten • Software architecture deals with the design and implementation of the high- level structure of software. • Architecture deals with abstraction, decomposition, composition, style, and aesthetics.©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 10
  11. 11. Architectural design process System structuring • The system is decomposed into several principal sub-systems • Communications between these sub-systems are identified Control modelling • A model of the control relationships between the different parts of the system is established Modular decomposition • The identified sub-systems are decomposed into modules©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 11
  12. 12. Key Architectural Concepts Three canonical building blocks • components • connectors • configurations A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems A module is a system component that provides services to other components but would not normally be considered as a separate system©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 12
  13. 13. Components A component is a unit of computation or a data store Components are loci of computation and state • clients • servers • databases • filters • layers • ADTs A component may be simple or composite • composite components describe a (sub)system • an architecture consisting of composite components describes a system of systems©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 13
  14. 14. Connectors A connector is an architectural element that models • interactions among components • rules that govern those interactions Simple interactions • procedure calls • shared variable access Complex and semantically rich interactions • client-server protocols • database access protocols • asynchronous event multicast • piped data streams©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 14
  15. 15. Configurations/Topologies An architectural configuration or topology is a connected graph of components and connectors that describes architectural structure • proper connectivity • concurrent and distributed properties • adherence to design heuristics and style rules Composite components are configurations A C1 C2 B C C3 C4 C5 D C6 C7©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 15
  16. 16. Scope of Software Architectures Every system has an architecture. Details of the architecture are a reflection of system requirements and trade-offs made to satisfy them Possible decision factors • Performance • Compatibility with legacy software • Planning for reuse • Distribution profile » Current and Future • Safety, Security, Fault tolerance requirements • Evolvability Needs » Changes to processing algorithms » Changes to data representation » Modifications to the structure/functionality©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 16
  17. 17. Example Architecture – Compiler Sequential Parallel Lexer Lexer Parser Semantor Parser Internal Representation Semantor Optimizer Code Optimizer Generator Code Generator©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 17
  18. 18. CASE toolset architecture Design Code editor generator Design Project Program translator repository editor Design Report analyser generator©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 18
  19. 19. Version management system Version management Object management Database system Operating system©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 19
  20. 20. Packing robot control system Vision system Object A rm Gripper identification controller controller system Packaging selection system Packing Conveyor system controller©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 20
  21. 21. Film and picture library Cet1 l n i Cet2 l n i Cet3 l n i Cet4 l n i Webnw t nt ok i - a d i h ewr d d Ct l ge aa u o Ve i o d Pcue itr Hpre t yet x sr e evr sr e e r v sr e e r v sr e e r v Ct l ge aa u o Fl ci imlp D ii e i tz d g Hpre t yet x fl s ie poo rp s ht ga h w eb©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 21
  22. 22. Analogies to Software Architecture Hardware architecture • small number of design elements • scale by replication of (canonical) design elements Network architecture • focus on topology • only a few topologies considered » e.g., star, ring, grid Building architecture • multiple views • styles©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 22
  23. 23. Architectural models Different architectural models may be produced during the design process Each model presents different perspectives on the architecture • Static structural model that shows the major system components • Dynamic process model that shows the process structure of the system • Interface model that defines sub-system interfaces • Deployment model shows the relationship between system elements and hosts©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 23
  24. 24. System structuring Concerned with decomposing the system into interacting sub-systems The architectural design is normally expressed as a block diagram presenting an overview of the system structure More specific models showing how sub-systems share data, are distributed, and interface with each other may also be developed©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 24
  25. 25. Key points The software architect is responsible for deriving a structural system model, a control model and a sub-system decomposition model Large systems rarely conform to a single architectural model Key architectural concepts are components, connectors, and configurations©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 25

×