690 likes | 922 Views
SOEN 6011 Software Engineering Processes. Section SS Fall 2007 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen6011-f2007.html. Week 11. Software Architecture 4+1 Views Siemen’s Approach. Software Architecture: Definitions.
E N D
SOEN 6011Software Engineering Processes Section SS Fall 2007 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen6011-f2007.html
Week 11 • Software Architecture • 4+1 Views • Siemen’s Approach
Software Architecture: Definitions • … for a system is the structure … which consist of elements, their externally visible properties, and the relationships among them. • The fundamental organization of a system [as] embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. (IEEE 1471-2000).
Architecture: Benefits? • Contributes to elicitation of requirements. • First design: can already assess / determine • satisfaction of requirements. • Work allocation / distribution (schedule). • Instructional: useful to learn about system. • Initial development & maintenance. • Reuse of the architectural style / framework. • Also …
Conceptual Integrity … • … is central to achieving product quality. • Also called Architectural Integrity. • Coherent conceptual (design) modelmakes product easier to understand, hence easier to … • Develop (e.g. Design, test), • Learn to use: customer, I&C, sales & marketing • Maintain. • How to achieve conceptual integrity? …
System Architect • Custodian of product ensures • Design coherence. • Also, to some extent, Interface coherence (esp. UI).
System Architect • Full-time job! • Separation of architecture from implementation. • Project size hierarchy of architects. • “Single mind” • Having a system architect is an effective means of achieving conceptual integrity.
Components • S/W entities … • Systems (e.g. COTS), subsystems, frameworks, packages, layers, libraries, modules, classes, objects, executables, DLLs, plug-ins, … • Processes, tasks. • Physical • Network elements. • Processing elements. • Databases.
Interrelationships • Static: • Interface dependencies: e.g. uses/import. • Containment, inheritance, subtype, … • Data dependencies (database applications). • … • Dynamic: • Thread of control. • Dataflow. • …
Documentation: Putting it all together • How best to capture all of these different kinds of components and their interrelationships? • Consider …
View Based Documentation of Architectures • Architecture Document = View A + View B + View C + … View X + “Beyond Views”
“4+1” View Model of Architecture • By Philippe Kruchten [Kruchten95](URL to paper given on web site.) • Rational Unified Process.
“4+1” View Model Implementation/ Deployment/
References • Kruchten95, becoming a bit dated. • RUP documentation • Available in lab. • Also includes samples. • To access RUP from lab machines • Launch the Rational Unified Process. • From the Overview page … • Select Analysis and Design • At the top of this page select “Artifacts” • Select “Software Architecture Documents” • You will see links to the examples … . Note that I do not consider the examples complete.
“5+1” View Model • = 4 + 1 + data view. • Other combinations of views are possible.
“4+1”: Let us look at each view Implementation/ Deployment/
Use Case View • Main goal: present architecturally significant use cases either: • Duplicated from req. doc. • Named and reference given to req. doc. • These use cases are to help highlight main • Architectural decisions / choices
Logical View: Main Goals • Convey … • Overall structure and • Interfaces to the environment, in a manner that is • conceptually as simple as possible • Challenge: find right level of detail.
Logical View & Requirements • Main focus: functional. • It should be possible to assess (up to a certain level of detail) whether requirements will be satisfied by the proposed architectural design.
Logical View: Components & … • Components: • active classes, classes, • modules, • packages, • subsystems, … • Connectors (interrelationships): • Usage. • Containment, aggregation. • Inheritance, instantiation.
Logical View: How Presented? • Mainly UML “class” diagrams, including • Package diagrams. • Component structure (UML2) • Explanatory text, including design rational
Logical View, Example • You have seen many examples of class and package diagrams. • UML 2 component diagrams you have seen as well …
Process View • Components: processes, tasks, … • group of tasks : single exec. unit. • Control: start, shutdown, recover, restore • Primary / secondary (redundancy) • Interrelationships: • Communication • Allocation of • Logical view components to processes/tasks. • Synchronization mechanisms
Logical View Components Process View – ex.
Implementation (Development)View • Actual S/W organization. • Components: • Libraries, subsystems, exec., object files, … • Most common top-level arch. style: layers • Connectors: containment, dependencies, … • Allocate logical components to impl. comp. • Reuse: • Off-the-shelf. • “To-the-shelf”: sharing with other projects.
Deployment (Physical) View • Components: processors, processing nodes, … • Network topology. • Usually several topo’s are supported. • S/W should be relatively independent of topo. • Allocation of process view elements to H/W (processing nodes). • Examples: • Network elt: Process mapping into application cards. • Network Mgmt: one or more NOCs.
Siemens Four View Model • Reference: Applied Software Architecture by C. Hofmeister, R. Nord and D. Soni.
Siemens Four View Model: Overview S/W Architecture
4+1 Logical Implementation (Development) Process Deployment (Physical) (Use Case) S4VM Conceptual Module Execution Code Comparing the View Models
S4VM: in more detail. Notice activity groups in each view are the same … S4VM Overview
S4VM Activities Groups in each view • For each view perform • Global analysis (Mostly the same for each view.) • Central design tasks. (Specific to each view.) • Final design tasks. (Specific to each view.)
Global Analysis: Purpose • To identify issues (early) so that strategies can be proposed to resolve them. • (Architectural) Factors can be seen merely as a means of organizing (group) issues.
Global Analysis Activities: • Analyze Factors. • Identify Issues. • Develop Strategies.
1. Analyze Factors - purpose • Identify and describe factors that can influence the system architecture. • Document the factors.
1. Analyze Factors • Use given factor categorization / list to kickoff. • For each factor consider: • How it relates to the project. • Flexibility and changeability. • Impact.
Factor Categorization (e.g. SFVM) • Organizational • Technological • Product
Organizational Factors Top-level grouping of factors: • O1: Management • O2: Staff skills, interests, strengths, weaknesses. • O3: Process and development environment. • O4: Development schedule. • O5: Development budget.
O1: Management, further refined … • Build vs. buy. • Schedule vs. functionality. • Environment. • Business goals.
Ex. Project Factor Analysis Output O1: Management • O1.1: Build vs. buy There is a mild preference to build. • Flexibility & changeability: organization will consider buy if justified. • Impact: moderate impact on meeting schedule. • O1.2: Schedule vs. functionality Preference for meeting schedule over some features… • Flex.&chng: negotiable for some features … • …
Technological Factors • T1: General-purpose hardware • E.g. processors, memory, network, disk, … • T2: Domain-specific hardware • T3: Software technology • E.g. OS, UI, prog. lang., design patterns, … • T4: Architecture technology • E.g. arch. Styles, patterns, frameworks. • T5: Standards
Product Factors • P1: Functional features • P2: User interface • P3: Performance • P4: Dependability • P5: Failure detection, reporting, recover • P6: Service • P7: Product Cost
What is an Issue? • A (potential) problem.
2. Identify Issues • Key issues influencing architectural design which are to be resolved. • Consider influencing factors.