1 What is Software Architecture? CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Tuesday, September 6, 2011 Right – In building trades.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
By Philippe Kruchten Rational Software
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Outline About author. The problem that discussed in the article.
1 CSSE 477: Swre Arch – This year’s course… Steve Chenoweth Tuesday, 11/8/11 Week 10, Day 2 Right – Sunset at the Louvre, in Paris From
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
1 Steve Chenoweth Tuesday, 10/18/11 Week 7, Day 2 Right – One view of the layers of ingredients to an enterprise security program. From
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Unified Modeling (Part I) Overview of UML & Modeling
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Software Architecture in Practice
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
A Survey of Software Architecture Viewpoint Models Nicholas May
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
1 Documenting the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, September 26, 2011 Left – architecture of.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
An Introduction to Software Architecture
Architecture Business Cycle
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
1 Designing the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Week 3, Day 1, Monday, September 19, 2011.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
Architectural Blueprints The “4+1” View Model of Software Architecture
Slide 1 Introduction to Software Architecture TV Prabhakar.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
An Introduction to Software Architecture Software Engineering Lab.
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Slide 1 Software Architecture SSE. Slide 2 Typical description of software architectures l Descriptions of software systems often include a section on.
The Vision Document & Product Management CSSE 371, Software Requirements and Specification Steve Chenoweth, Rose-Hulman Institute September 27, 2004 In.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
1 Here are some quotations to get an overview of the kinds of issues of interest.
4+1 View Model of Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
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.
Part 3 Design What does design mean in different fields?
SOFTWARE ARCHITECTURE AND DESIGN
Software Engineering D7032E
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Database Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
From Use Cases to Implementation
Presentation transcript:

1 What is Software Architecture? CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Tuesday, September 6, 2011 Right – In building trades architecture they have one of the same problems we do in software architecture – getting everyone to visualize what it will be like before it exists. This example from

2 Today Nature of architecture – this Ch 2 in Bass, et al. Project 1 – Status report. Time to work on Project 1 in class.

3 Acknowledgements Some of the material in these slides, as usual, will be taken from Software Architecture in Practice, 2nd edition by Bass, Clements and Kazman. Built on 6 years of arch classes – Steve, Steve, Mark Ardis, Lisa Kaczmarczyk, Steve, Shawn & Curt, and now Steve. Mark (left, in chair), and Lisa.- also practicing architects.

4 Outline Definitions Reference Models and Architectures Consequences of Architectural Choice Promoting Reuse Architectural Structures

5 Definitions of Software Architecture (1/3) Many different definitions of software architecture See the SEI website “Community definitions” at: tions.html for over 100 (at least one provided by my old groups!) tions.html

6 Definitions of Software Architecture (2/3) From Bass et al.: "The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships between them."

7 Definitions of Software Architecture (3/3) So Bass’s definition of architecture means the design, as described and in action: As seen on paper or in models The reality, used by the architect & others, the code that does what the design says What the design “looks like” as a result How it works to achieve that result

8 Bass’s Definition of Software Architecture vs Arch Bus Model Not the same! To achieve the “architecture,” the architect has to do a lot of other activities, like: Interact with lots of people to figure out the problem and get solution ideas Interact with lots of people to sell the solution (especially to the other developers who’ll implement it)

9 Worth comparing vs an older field of architecture… From CMU School of Architecture’s home page, :

10 Which brings out a strategic issue about the software business: In other fields like building architecture and civil engineering, the architect also is responsible for project success. The contractors, who do the work, work for them. In most software projects, the top people are mostly business majors. So, maybe we’re still a young profession… Jack Blake of Atlanta- based TVS & Associates architect of the RSA tower, stands by the tower construction site. From 05/architect_rsa_tower_a_ spectacu.html. 05/architect_rsa_tower_a_ spectacu.html

11 Some Related Terms (Bass’s) (Mostly about Functionality) (Mostly about Quality Attributes)

12 Reference Model (1/5) Division of Functionality with data flow between pieces, based on the problem you need to solve Example: Compiler reference model includes a description of parts and data flow between them Not the same as the “pattern,” which is a way to enable that particular flow.

Reference Model (2/5) 13 Object Models in UML, for example: Example from

14 Reference Model (3/5) Another example: Capgemini’s “CDAF architectural reference model” for information systems they sell. Note the architectural style ID’ing of essential business components. From msdn2.microsoft.com/en-us/library/bb aspx.msdn2.microsoft.com/en-us/library/bb aspx

15 Reference Model (4/5) Another example: The DoD net-centric reference model. Note the functionalities & flows shown. This one’s a ref model of ref models! From

16 Reference Model (5/5) Where do reference models come from? For your project in this class – documents that were created by your clients! – The use cases show interactions with users (and perhaps other systems) The supplementary spec shows other functional and quality attribute interactions. In your arch doc, the reference model – Is seen as a short version of the req with interactions and connections highlighted. Matches the granularity of the prob stmt Can be the high-level OO model of the system (like example 2/5)!

17 Architectural Pattern Focused on achieving Quality Attributes These we’ll see (article by Garlan & Shaw) Also known as "architectural style" Description of element and relation types with a set of constraints on how they may be used Examples: Pipe and Filter Client-Server

18 A caveat… Getting the Architectural Pattern right depends on how much you and your client know about the quality attributes. Clients often don’t even want to talk realistically about QA’s. The “requirements churn problem” is a killer for architecture -- adding global, architectural properties is hard!

19 The Real Problem Space Chosen Solution Space Security Reliability OA&M 1 Performance 1 OA&M = Operations, Administration and Maintenance. = “Features” = Overall, Including “Non-Functional” Requirements, etc. A caveat (cntd)… What the Client Asked For What gets built =

20 A caveat (cntd)… Here’s how it can turn out: Escher's "Belvedere" in LEGO®. From

21 Reference Architecture (1/2) Combine the first two! Reference model mapped onto software elements and data flows between them Like. “Plug the names from the reference model into the boxes on the pattern” (as a start) E.g., mapping “compiler” ref model onto “pipe and filter” Still not a software architecture -- too generic… but it’s a start

22 Reference Architecture (2/2) So, in your project, as architects, you: Abstract a “main flow” of action from the req you get, as the “reference model” Pick an arch pattern to map that onto See how the interactions of the ref model look as your new ref arch! In your projects, this will be interesting to try, after the fact…

23 Putting Them All Together What would you do next? At this point, you would start to loop back on the sources of all this, like the requirements, your client, other designers, and the people who will have to build it. (Notice the social ingredients!)

24 Consequences of Architectural Choice Defines constraints on implementation Dictates organizational structure Inhibits or enables system's quality attributes System qualities may be predicted Easier to manage change Helps in evolutionary prototyping Enables cost and schedule estimates

25 Architecture Promotes Reuse Product lines share a common architecture Externally-developed elements may be included Restrictions encourage reuse of design patterns Architecture can be basis for training

26 Application Environment Product Line Engineering Model Domain Engineering Application Engineering Applications Feedback

27 Architectural Structures We’ll be using all of these in your arch document!

28 Module Structures Decomposition - contains Uses - calls Layered - controlled access Class - inheritance

29 Component- and-Connector Structures Client-Server Concurrency - parallel execution Process - synchronization Repository

30 Allocation Structures Work assignment - who does what Deployment - allocation to hardware (this is one the customer usually looks at a lot – why?) Implementation - mapping to files