4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections 7.1-7.3 to start.

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

By Philippe Kruchten Rational Software
8.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Lecture 23: Software Architectures
SWE Introduction to Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
The Architecture of Transaction Processing Systems
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.,
Chapter 9: Moving to Design
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Overview of Database Languages and Architectures.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
Chapter 2 Database System Concepts and Architecture
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
What is Software Architecture?
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Lecture On Introduction (DBMS) By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Systems Analysis and Design in a Changing World, 3rd Edition
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
1 © 2007 T. Horton CS 441, Summer 2007 Principles of SW Design Design Patterns in Context – Doing design: can we say more about how to go about it? Readings:
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
1 CMPT 275 High Level Design Phase Modularization.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
CS 1704 Introduction to Data Structures and Software Engineering.
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 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
Lecture VIII: Software Architecture
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CS223: Software Engineering Lecture 14: Architectural Patterns.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Lecture On Introduction (DBMS) By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
SOFTWARE DESIGN AND ARCHITECTURE
OO Methodology OO Architecture.
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
CS 425/625 Software Engineering Architectural Design
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 6: Architectural Design
Presentation transcript:

4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start -- some of this is on detailed design.)

4/2/03I-2 What is Design? Specification Is about What, and Design is the start of the How Inputs to the design process –Specification document, including models etc. Outputs of the design process –A design document that describes how the code will be written. Includes design models! What subsystems, modules or components are used How these integrate (i.e. work together) –Information allowing testing of the system

4/2/03I-3 Design Goals Qualities Of A Good Design: –Correct, Complete, Changeable, Efficient, Simple Correctness: –It Should Lead To A Correct Implementation Completeness: –It Should Do Everything. Everything? It should follow the specifications. Changeable: –It Should Facilitate Change—Change Is Inevitable

4/2/03I-4 Design Goals (cont’d) Efficiency –It Should Not Waste Resources. But: –Better A Working Slow Design Than A Fast Design That Does Not Work Simplicity –It Should Be As Understandable As Possible Important: A design should fully describe how coders will implement the system in the next phase –Designs are blue-prints for code construction

4/2/03I-5 Levels of Design Three possible levels: System Design, if appropriate –Part of Systems Engineering (see below) High-level Software Design –Architecture, architectural design Low-level Software Design –Detailed Design, Module Design Systems Engineering: Large combinations of hardware and software. –Decompose system into subsystems –Determine which subsystems are HW, which are SW –Software Engineering activities thus become a part of a larger activity.

4/2/03I-6 High-level Design Goal: create a software system architecture, defining a system in terms of: –components ; –interactions. Examples of components: –modules, classes –clients, servers –files, databases –layers

4/2/03I-7 High-level Design (cont’d) Interactions: –Structural, behavioral Examples of interactions: –procedure calls –composition of objects –sharing variable access –More complex: communication protocols, broadcasting events, piped streams, etc.

4/2/03I-8 Describing System Architecture Model components and how they interact Emphasis on component purpose and interaction –Not on internals of how components work (e.g. a black box approach) Modern techniques/ideas about architecture –Styles of architectures E.g. book by Shaw and Garlan Examples: pipe and filter; layers; repository- oriented; etc. –Frameworks A partially completed design to which you add new components Inversion of control

4/2/03I-9 A View of Netscape’s Architecture Courtesy of Cigital, Inc. Copyright. Do not distribute or reproduce. A copyrighted diagram of Netscape’s architecture would appear here. I’m not allowed to put this on the Web. I’ve passed out copies in class. If you missed getting it in class, please contact me.

4/2/03I-10 Comments on Netscape Arch. Model What do we see in this picture? –System boundary –Internal components –Relations: group together, linked What don’t we see? What’s missing? –Nature of relations: control? pass/share data? –Details of responsibilities of each component –Dynamic behavior (states, interactions and their order, events, etc.) –Threads –Where implemented (DLL,.EXE,…)

4/2/03I-11 Architecture Views More than one aspect of software must be modeled and designed Many now use “Kructen’s 4+1” model of these views –Logical view –Process view –Deployment view –Implementation view The “plus one” is: use-case view –Use cases show how the end-user interacts with the system. –So they affect and influence all other views

4/2/03I-12 What Do Architecture Views Capture? Logical view (AKA design view) –Architecturally significant parts, such as layers, subsystems, components, etc. Process view –Processes or threads that make up the system –Are there parts of the system that run concurrently? Are locks or synchronization needed? Deployment view –Do parts of the system on separate hardware components? Implementation view –Source files, binaries, DLLs, SW components, etc.

4/2/03I-13 Logical Architectural View We need a high-level logical view of system architecture and its components –Many think nothing in UML is particularly good for this. This is at a higher-level of abstraction than the level of classes. –Arch. Design Languages (ADLs) are an active research area –Often we draw a simple “box and line” diagram and explain it. As noted earlier, architectural styles may be useful. Examples: –pipe and filter; layered; client-server; black-board

4/2/03I-14 Example: Layered Architectures A layer is one logical tier or stratum of the system –Each layer focuses on one functional subproblem –A layer uses the layer below it, and provides services to the layer above it. Three-tiered Architecture: A very common system organization

4/2/03I-15 Three-Tiered Architecture Presentation Layer –User interface(s) –Classes from Java or MFC that provide views of data objects etc. Application Layer –Classes and objects derived from the domain (or business). Also controller classes (for business logic, etc.) –PARTS example: projects, problem reports, etc. Persistence Layer –How objects from the Application Layer are stored

4/2/03I-16 PARTS Architectural Overview

4/2/03I-17 PARTS and the Four Architectural Views Logical View: Client/Server –We must define protocol between clients and servers –Timeouts, state or state-less, etc?? Process View –Is the server multi-threaded? –How are simultaneous updates handled? What are the rules? Can the DBMS enforce them all? Implementation View –Are parts of the executables stored in DLLs or JavaBeans?

4/2/03I-18 PARTS and the Three-Tiered Model Lots of issues to be included! Presentation Layer –Screens, Windows, Style of Interactions Persistence Layer –Database used –Locking, backup, roll-back, security