1 Designing the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Week 3, Day 1, Monday, September 19, 2011.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 3
Advertisements

Prescriptive Process models
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Process Models
1 What is Software Architecture? CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Tuesday, September 6, 2011 Right – In building trades.
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
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/25/11 Week 8, Day 2 Right – Desktop computer usability metaphor, from
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 CSSE 477 – Intro to Modifiability Steve Chenoweth Friday, 9/23/2011 Week 3, Day 4 Right - A modified VW beetle, from
Software Engineering.
CS 501: Software Engineering
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
Software Architecture Alan Kelon Oliveira de Moraes Feb 12, 2006 – Recife.
Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapters 07 Eduardo Santana de Almeida.
Software Architecture in Practice
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Course Instructor: Aisha Azeem
Designing the Architecture
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
1 Documenting the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, September 26, 2011 Left – architecture of.
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
UML - Development Process 1 Software Development Process Using UML (2)
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
1 Portfolio Management – Agile How to plan like a VP Highsmith, Ch 12 CSSE579 Session 6 Part 2 One company’s software product portfolio.
Chapter 2 The process Process, Methods, and Tools
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Prescriptive Process Models
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Design Process for Architecture. Architectural Lifecycle Not all lifecycle plans support Architecture! It is hard to achieve architecture based design.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
Agenda – week 4 6:00 – 6:05Questions, announcements, intro 6:05 – 6:35Case study – air traffic control 6:35 – 7:20Lecture: architecture in the development.
An Introduction to Software Engineering
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
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.
Unit 6 Application Design KLB Assignment.
Lecture 9z Case Study ADD: Garage Door
Lecture 3 Prescriptive Process Models
V-Shaped SDLC Model Lecture-6.
Software Process Models
Chapter 7: Designing the Architecture
Design Process for Architecture
What is an Architecture?
Lecture 03: Software Lifecycle Models
Software Process Models
Design Process for Architecture
Agenda – week 4 6:00 – 6:05 Questions, announcements, intro
What is an Architecture?
Design Process for Architecture
Presentation transcript:

1 Designing the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Week 3, Day 1, Monday, September 19, 2011

2 Today What’s a viola, anyway? Project 2 – progress report from each team:  Describe any issues with the changes you have tried to make to your system, at the coding and/or design level, to implement the “availability improvement plan.” Bass Ch 7, on Designing the Arch – this  Tomorrow – Second case study (Ch 8) Thursday – Check out this special lecture 

3 That’s this Thursday!

4 Outline Architecture in Lifecycle –  A quick review Attribute-Driven Design Process  And a chance to try it

5 First Cartoon of the Day

6 Review of Incremental Lifecycle Models and impact on architecture… Spiral Evolutionary Prototyping Staged Delivery Design-to-Schedule Evolutionary Delivery

7 Spiral Model If growth of the arch is planned to be early, and to grow along with feature growth, this could work well. Similar to Larman’s iterative model (from 374). (Deliver)

8 Evolutionary Prototyping Initial Concept Create Prototype Refine Prototype Release The “bad” version of the spiral, for arch: Good chance to test arch in the prototype, but -- Team tends to focus on feature prototyping That test, or exposure to the customer, may of course cause arch changes! In particular, arch shortcuts will require a redo… (Deliver)

9 Staged Delivery Initial Concept RequirementsArchitectural Design Stage 1: Detailed design, implement, test, deliverStage 2: Detailed design, implement, test, deliverStage n: Detailed design, implement, test, deliver Note that this is a bigger picture – showing multiple “releases” or “deliveries.” Within any one, could be spiral model, say. These early stages could be like Larman’s (from 374), with prototyping, etc. as requirements are gathered.

10 Design-to-Schedule Initial Concept RequirementsArchitectural Design High Priority: Detailed design, implement, testMedium Priority: Detailed design, implement, testLow Priority: Detailed design, implement, testMedium Priority: Detailed design, implement, test Release Ran out of time or money “Get done what we can by September” version… Probably the most common model used (in practice).

11 Evolutionary Delivery Initial Concept RequirementsArchitectural Design Develop VersionDeliver VersionElicit FeedbackDeliver Final Version Bass’s recommendation. Looks a lot like “staged delivery.” Incorporate Feedback

12 Second Cartoon of the Day

13 Attribute-Driven Design Recursive decomposition Start with:  Functional requirements (use cases)  Constraints  Quality attributes (scenarios like Bass’s) We’re trying to discover, top-down, the pieces for the Reference Model (from Ch 2), and then pick an Architectural Pattern to suit…

14 Attribute-Driven Design Process 1. Choose module to decompose 2. Refine module: a) Choose architectural drivers (from features, and from quality attribute scenarios, in supplemental spec. See next slide  ) b) Choose architectural pattern (based on tactics in Bass Ch 5) c) Instantiate modules, allocate functionality, and represent using multiple views d) Define interfaces e) Refine use cases and quality scenarios -- make them constraints for sub-modules 3. Repeat until done Reference Model Architectural Pattern Reference Architecture Software Architecture

15 2.a) Choose Architectural Drivers Drivers are combination of functional requirements and quality attributes Prioritize requirements and select those that will "shape" the architecture May need some investigation to determine drivers

16 2.b) Choose Architectural Pattern Use tactics to achieve quality attributes Patterns package tactics Document your choice of tactics in your Design Notebook! Much of this work tends to be “how it works at runtime” – The key view looks like component and connector diagrams 

Pattern for Garage Door Opener This design allowed for: Semantic coherence and information hiding Increased computational efficiency Scheduling wisely 17

18 2.c) Instantiate Modules Refine (or interpret) the pattern for your particular problem Result is a decomposition into sub-modules

19 First-Level Decomposition

20 2.c) Allocate Functionality Use the use cases to identify flow of information  Try to “walk through” use cases in your component & connector view Assign responsibilities to sub-modules Pattern may help this process  Is there an architectural style that applies?  Can we apply a standard design pattern (e.g., proxy, façade)?  Is there a known algorithm for this kind of problem?

21 2.c) Represent Using Multiple Views Pick one view from each major category:  Module Decomposition, Uses, Class  Component and Connector Client-server, Concurrency, Process, etc.  Allocation Work assignment, Deployment, Implementation

22 2.d) Define Interfaces Child views need to show how they connect to other views: Each view provides information about interfaces Need to identify services provided and used

23 2.e) Refine Use Cases and Quality Scenarios Associate use cases and quality attributes to sub-modules  may need to break up use cases Quality scenarios:  may be satisfied by decomposition  may impose constraints on sub-modules  may be neutral with respect to decomposition  may not be satisfiable with decomposition

24 Let’s try it Your quiz refers to the Music4Sale system, which you and a partner will design. See the other quiz page for the requirements. See the next slides for some “competition.”

25

26

27

28

29

30 The original Napster architecture, from Napster: This one’s an example of a peer-to-peer system. Once the central index server provided the information to make a connection, all the file activity was between peers on the network.