Ivan Marsic Rutgers University LECTURE 4: Software Architecture.

Slides:



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

Design Phase What’s design?
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Establishing the overall structure of a software system
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
Software Architecture
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
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.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
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.
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
Lecture VIII: Software Architecture
CS223: Software Engineering
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Lecture 6 – Architectural Design
CompSci 280 S Introduction to Software Development
IS301 – Software Engineering Dept of Computer Information Systems
Lecture 9- Design Concepts and Principles
OO Methodology OO Architecture.
Software Design and Architecture
Part 3 Design What does design mean in different fields?
LECTURE 4: Software Architecture
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Architectural Design.
Chapter 6 – Architectural Design
Lecture 9- Design Concepts and Principles
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 5 Architectural Design.
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Chapter 6 – Architectural Design
Presentation transcript:

Ivan Marsic Rutgers University LECTURE 4: Software Architecture

2 Topics Software Architecture Definition Architectural Decisions & Key Concerns Problem Decomposition & Problem Architecture Architectural Styles Documenting Architecture: Views

3 Hierarchical Organization of Software System or product Subsystems/Modules Packages Classes/Objects Methods highest abstraction level lowest level Product line (or product family) Source code We know there are different views of abstraction in software …

4 Software Architecture Definition Software Architecture = a set of high-level decisions that determine the key elements of the system-to-be and their relationships –Principal decisions made throughout the development and evolution of a software system –made early and affect large parts of the system (“design philosophy”) — such decisions are hard to modify later Software Architecture is not a phase of development –Does not refer to a specific product of a particular phase of the development process (labeled “high-level design” or “product design”)

5 Example Architectural Decisions Subsystem for device control Subsystem for administration Subsystem for remote data access On embedded computer On office desktop On tenant’s smartphone Safe Home Access System Decision on software-to- hardware mapping Decision on system decomposition Such decisions are made early on, perhaps while discussing the requirements with the customer to decide which hardware devices will be used for user interaction and device control

6 Architectural Decisions —A matter of scope Product/system A scope Product B scope Product line scope Subsystem scope product or system architecture decisions product line architecture decisions Given the current level of system scope, a decision is “architectural” if it can be made only by considering the present scope –I.e. could not be made from a more narrowly-scoped, local perspective –Architectural decisions should focus on high impact, high priority areas that are in strong alignment with the business strategy systemic impact local impact Class scope

7 Software Architecture Key Concerns System decomposition –how do we break the system up into pieces? –do we have all the necessary pieces? –do the pieces fit together? Cross-cutting concerns –broad-scoped qualities or properties of the system –tradeoffs among the qualities Conceptual integrity (Principal decisions to be made)

8 System Decomposition But, why do we want to decompose systems? The hierarchy shows a taxonomy of the system parts, but not the procedure for decomposing the system into parts — how do we do it? System or product Subsystems/Modules Packages Classes/Objects Methods Product line (or product family)

9 Why We Want To Decompose Systems Tackle complexity by “divide and conquer” See if some parts already exist & can be reused Focus on creative parts and avoid reinventing the wheel Support flexibility and future evolution by decoupling unrelated parts, so each can evolve separately (“separation of concerns”) Create sustainable strategic advantage

10 Architecture versus Design Architecture focuses on non-functional requirements (“cross-cutting concerns”) and decomposition of functional requirements Design focuses on implementing the functional requirements –Note: The borders are not always sharp!

11 Architectural Decisions Often Involve Compromise The “best” design for a component considered in isolation may not be chosen when components considered together or within a broader context Plus, business priorities, available resources, core competences, target customers, competitors’ moves, technology trends, existing investments, backward compatibility, …

12 Decomposition: Projection vs. Partitioning (a)(b)

13 Problem Decomposition Subsystems derived from the requirements

14 Typical Software Eng. Problems 1. User works with computer system (environment irrelevant/ignored) 2. Computer system controls the environment (user not involved) 3. Computer system intermediates between the user and the environment UserSystem Environment UserSystemEnvironment User System Repository UserSystemEnvironment UserSystem Environment SystemIN docOUT doc 1.a) System transforms input document to output document 1.b) User edits information stored in a repository 3.a) System observes the environment and displays information 3.b) System controls the environment as commanded by the user

15 Controlling subsystem Controlled subsystem 3.b) Commanded behavior: Operator Monitoring subsystem Monitored subsystem 3.a) Information display: Display Problem Architecture 2. Required behavior: Controlling subsystem Controlled subsystem Feeding subsystem Transformation subsystem Receiving subsystem 1.a) Transformation: Data editor Data repository 1.b) Simple workpieces: User

16 Architectural Styles World Wide Web architectural style: REST (Representational State Transfer) UNIX shell script architectural style: Pipe-and-Filter Client/Server Central Repository (database) Layered (or Multi-Tiered) Peer-to-Peer Model-View-Controller

17 Architectural Styles – Constituent Parts 1.Components –Processing elements that “do the work” 2.Connectors –Enable communication among components Broadcast Bus, Middleware-enabled, implicit (events), explicit (procedure calls, ORBs, explicit communications bus) … 3.Interfaces –Connection points on components and connectors define where data may flow in and out of the components/connectors 4.Configurations –Arrangements of components and connectors that form an architecture

18 Architectural Style: Pipe-and-Filter Components: Filters transform input into output Connectors: Pipe data streams Example: UNIX shell commands filter pipe % ls folder-name | grep –v match-string | more

19 Architectural Style: Layered User Interface Layer User InteractionUser Authentication Control of Sensors and Devices Archiving Communicating alerts about intrusion Domain Logic Layer (Business Rules) Technical Services Layer a.k.a. Tiered Software Architecture

20 Architectural Style: Model-View-Controller  Model: holds all the data, state and application logic. Oblivious to the View and Controller. Provides API to retrieve state and send notifications of state changes to “observer”  View: gives you a presentation of the Model. Gets data directly from the Model  Controller: Takes user input and figures out what it means to the Model user input device display View Controller Model 5. I need your state (to display) 1. The user did something 2. Change your state 3. Change your display 4. I have changed

21 Model-View-Controller Controller View Input device events Event Interpreter Event Interpreter Domain model action Domain Model Domain Model Visualizer Model Visualizer Notification about the effects of the action Visual feedback of the altered model User User Interface Model versus Different Views for the same Model: Model: array of numbers [ 14, 26, 31 ]

22 Subsystem for device control Subsystem for administration Subsystem for remote data access Application server Web browser Web server - Valid keys - Access history - Tenant profiles - … Central Repository Real System is a Combination of Styles

23 Fitting the Parts Together Interface Specification Semantics –To serve as a contract between component providers and clients, interfaces must be –fully documented –semantics, not just syntax –understandable, unambiguous, precise Adding semantics –informal description –design models (e.g., UML interaction diagrams) –pre/post conditions

24 Documenting Software Architecture: Architecture Views Views are different kinds of “blueprints” created for the system-to-be E.g., blueprints for buildings: construction, plumbing, electric wiring, heating, air conditioning, … (Different stakeholders have different information needs) 1.Module/Subsystem Views 2.Component and Connector Views 3.Allocation Views

25 Module/Subsystem Views Decomposition View –Top-down refinement (e.g., simple “block diagram”) Dependency View –How parts relate to one another Layered View –Special case of dependency view Class View –“domain model” in OOA and “class diagram” in OOD

26 Component and Connector Views Process View –Defined sequence of activities? System represented as a series of communicating processes Concurrency View Shared Data View –… Client/Server View –E.g., in Web browsing

27 Allocation Views Deployment View –Software-to-hardware assignment Implementation View –File/folder structure – “package diagram” Work Assignment View –Work distribution within the development team