SOEN 6011 Software Engineering Processes

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

By Philippe Kruchten Rational Software
4+1 View Model of Software Architecture “Software architecture” course Presented By: Mazeiar Salehie October 2004.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Unified Modeling (Part I) Overview of UML & Modeling
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Siemens’ 4 View Model (props to My-An Nguyen for giving me her 344 notes on which this lecture is based)
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
An Introduction to Rational Rose Real-Time
What is Software Architecture?
Principles of Object Technology Module 1: Principles of Modeling.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
RUP Design RUP Artifacts and Deliverables
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architecting Web Services Unit – II – PART - III.
Unified Modeling Language, Version 2.0
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Introduction To System Analysis and Design
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
TAL7011 – Lecture 4 UML for Architecture Modeling.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
DESIGN OF SOFTWARE ARCHITECTURE
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
UML (Unified Modeling Language)
Basic Concepts and Definitions
4+1 View Model of Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Basic Characteristics of Object-Oriented Systems
Software Design and Architecture
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Software Architecture
Architecting Web Services
Software Architecture
Architecting Web Services
OO Methodology OO Architecture.
4+1 View Model of Software Architecture
Analysis models and design models
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Software Architecture
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Software Architecture
Presentation transcript:

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 … 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). Definitions from Clements et. al. “… or structures of the system, …” Documentation includes rational.

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 … Architectural design activity: Architecture / Architecture documentation

Conceptual Integrity … … is central to achieving product quality. Also called Architectural Integrity. Coherent conceptual (design) model makes 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? … Central argument: Conceptual integrity (unity) of the product is paramount. [… or developing a test suite offering optimal / appropriate coverage.]

System Architect Custodian of product ensures Design coherence. Also, to some extent, Interface coherence (esp. UI). Architect: However a straightforward approach to conceptual integrity is often impractical for industry. E.g. Market pressures Complexity of the product.

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. Architect: However a straightforward approach to conceptual integrity is often impractical for industry. E.g. Market pressures Complexity of the product.

Components S/W entities … Physical 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: Dynamic: 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.

“4+1” VM (Alternate names) Excerpt from Kruchten95. Shows alternate names for the two right views. Kruchten’s suggested main stakeholders for each view.

“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. Class diagrams: which can show more than just classes, of course. Rational Rose like structure diagrams.

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 & … 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 Class diagrams: which can show more than just classes, of course. Rational Rose like structure diagrams.

Logical View, Example You have seen many examples of class and package diagrams. UML 2 component diagrams you have seen as well …

Logical View (e.g. Kruchten)

Process View Components: processes, tasks, … Interrelationships: 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

Process View – e.g. (Kruchten)

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.

Implementation View – illustration

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. What are the components and their interrel.?

Deployment View - illustration

Deployment View - illustration

Siemens Four View Model Reference: Applied Software Architecture by C. Hofmeister, R. Nord and D. Soni.

Siemens Four View Model: Overview S/W Architecture Here are the four views and their interrelationships. Arrows indicate how one view influences or contributes input to another view. Bold arrow heads are direction of main dependency. Other notes: H/W arch and Source Code are separate from the S/W arch.

Comparing the View Models 4+1 Logical Implementation (Development) Process Deployment (Physical) (Use Case) S4VM Conceptual Module Execution Code There is no one-to-one mapping.

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.

Overview

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.

Issue: Skill Deficiencies Influencing factors: O2: Staff skills O2.3 (Experience with multithreading): only one developer has multithreading experience. O2.4 (Experience with multiprocessor systems): only two developers …

3. Develop Strategies What is a strategy?

What is a Strategy? A means by which one or more issues are to be resolved, partially or totally.

3. Develop Strategies For each issue: Develop strategies to address issue. Identify related strategies.

Ex. Issue: Changes in Hardware Changes in both general-purpose and domain-specific hardware are anticipated on a regular basis. The challenge is to reduce the effort and time involved in adapting the product to the new hardware. Influencing factors: T1 (General-purpose H/W), T2 (Domain-specific H/W). Solutions: … ?

Ex. Strategies Encapsulate hardware

S4VM: Conceptual View

Conceptual View – Documentation Structure Configurations of: components, connectors, ports, roles, protocols. Behavior State diagrams. Sequence diagrams. Natural language.

Conceptual View – Activities Global analysis. Central design tasks. Final design task.

Conceptual V.: Central Design Tasks Create conceptual Components, Connectors (and ports, roles, protocols) Configuration. Global evaluation

Conceptual V.: Final Design Tasks Resource budgeting Resources used by the software, but Resources themselves can be H/W or S/W. Examples of resources include: Memory, CPU time, Bandwidth, … .

Global Evaluation Evaluate design decisions Continually, relative to results of global analysis. Periodically, w.r.t. interactions among themselves. During central design tasks.

Module View – Activities What is the top level grouping of activities?

Module View – Activities Global analysis. Central design tasks. Final design task.

Module View, Central Design Tasks Definition of Subsystems. Layers Modules Allocation of conceptual elements to the above. Global evaluation.

Module View, Final Design Tasks Design of (key) module interfaces Operations: name, signature (return type, parameter type). Behavior (via specification).

What is a “Module”? You can think of this as a UML package. Does not imply that code will be non OO. In execution view, will eventually “hold” either OO (classes,…) or non OO code.