Software Architecture

Slides:



Advertisements
Similar presentations
Architecture. Outline Example Decomposition Style Activity 1.
Advertisements

IMPORTANT READ CAREFULLY BEFORE USING THIS PRODUCT LICENSE AGREEMENT AND LIMITED WARRANTY BY INSTALLING OR USING THE SOFTWARE, FILES OR OTHER ELECTRONIC.
Diagram Notations
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Jul The New Geant4 License J. Perl The New Geant4 License Makes clear the user’s wide- ranging freedom to use, extend or redistribute Geant4, even.
SE-565 Software System Requirements More UML Diagrams.
System Design & Software Architecture
STATUS UPDATE EM SUBCOMMITTEE Friedrich Roth, EM subcommittee chairman SEG 2012, Las Vegas Technical Standards Committee meeting.
Permission to reprint or distribute any content from this presentation requires the prior written approval of Standard & Poor’s. Copyright © 2010 Standard.
X3D Graphics for Web Authors X3D-Edit Update SIGGRAPH 2008 Don Brutzman Naval Postgraduate School Monterey California USA.
17-1 JXTA Developer and Business Resources Module Objectives ● Understand JXTA's Open Source Model ● Learn how to get involved at jxta.org ● Learn.
Blue Diamond Scott Auge Amduus Information Works, Inc.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Software Architecture
Andrew McNab - License issues - 10 Apr 2002 License issues for EU DataGrid (on behalf of Anders Wannanen) Andrew McNab, University of Manchester
Permission to reprint or distribute any content from this presentation requires the prior written approval of Standard & Poor’s. Copyright © 2014 by Standard.
International Telecommunication Union New Delhi, India, December 2011 ITU Workshop on Standards and Intellectual Property Rights (IPR) Issues Philip.
Software Architecture
1 CMPT 275 High Level Design Phase Modularization.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Life in Other Countries. Activity 2: Life in Other Countries LIMITED LICENSE TO MODIFY. These PowerPoint® slides may be modified only by teachers currently.
National Alliance for Medical Image Computing Licensing in NAMIC 3 requirements from NCBC RFA (paraphrased)
Oracle Fusion Applications 11gR1 ( ) Functional Overview (L2) Manage Inbound Logistics (L3) Manage Receipts.
Systems Analysis and Design in a Changing World, Fourth Edition
Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements.
Oracle Fusion Applications 11gR1 ( ) Functional Overview (L2) Manage Inbound Logistics (L3) Manage Supplier Returns.
What Is a Cell?. Activity 3: What Is a Cell? LIMITED LICENSE TO MODIFY. These PowerPoint® slides may be modified only by teachers currently teaching the.
Software Architecture
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
Permission to reprint or distribute any content from this presentation requires the prior written approval of Standard & Poor’s. Copyright © 2011 Standard.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Oracle Proprietary and Confidential. 1.
Understanding How Networks Communicate
Schedule & effort
Systems Analysis and Design in a Changing World, Fourth Edition
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Systems Analysis and Design with UML Version 2.0, Second Edition
Lec-5 : Use Case Diagrams
Evaluating Requirements
IS301 – Software Engineering Dept of Computer Information Systems
Chapter 11 Object-Oriented Design
Continuous improvement
Evaluating Architectures
Part 3 Design What does design mean in different fields?
OO Domain Modeling With UML Class Diagrams and CRC Cards
Agile
Comparative Law of Licenses and Contracts in the US, UK and EU
Automation in an XML Authoring Environment
Chapter 6 – System Design II: Behavioral Models
Self-Registration walk-through
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 10 Requirements Modeling: Class-Based Methods
The Photosynthesis and Cellular Respiration Shuffle
Software Architecture
Software Design CMSC 345, Version 1/11.
Use Case Model Use case diagram – Part 2.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Diagram Notations
Paper Prototyping
Design Patterns
Individuals and interactions
Customer collaboration
Requirements
Aramco e-Marketplace Supplier Quick Reference Guide
BEMS user Manual Fundación cartif.
Software Development Process Using UML Recap
2019 MEDICARE AGE-IN STUDY SENIOR MARKET INSIGHTS SERVICE Part IV
Presentation transcript:

Software Architecture http://www.flickr.com/photos/brunkfordbraun/270401961/

Architecture Architecture = shows pieces of a system & their relationships Component = self-contained piece of a system, with clearly-defined interfaces Connector = a linkage between components via an interface

Drawing architectures All the usual diagramming notations apply Dataflow diagrams UML class & entity-relationship diagrams Sequence & state diagrams … but with strong emphasis on the internals of the system, rather than relationship to users

Architectural Design Process Top level First level of decomposition Second level of decomposition

Example: A real system used by millions of customers every month NJ Transit has 940,877 riders on an average weekday!!! This is what the site looks like now. I will be describing how it was designed back in the day.

UC#1: Sign-up Actor: user on internet Preconditions: user has credit card and browser Postconditions: login & purchase info stored Flow of events: User visits web site User fills out login info User fills out purchase info Site stores to db & mainframe

Sequence diagram: showing flow of control…. UC#1 User Servlet Edit Login Info JSP Edit Purchase Info JSP User DB Mainframe Visit site [username and password are valid] Login info (starts empty) Username & password [purchase information is valid] Purchase info (starts empty) Purchase info Login info Purchase info

UC#2: Edit purchase Actor: user on internet Preconditions: user has existing account Postconditions: updated purchase info stored Flow of events: User logs into web site User updates purchase info Website stores to mainframe

High-level data flow diagram Login Info Purchase Info User Website Mainframe Purchase Info Now, we drill down! Login Info User DB Notice that the “function” ovals are usually omitted in data flow diagrams for architectures. Note: all of the diagrams for this system represent a simplified version of the architecture.

Decomposition: providing a detailed view of a component Decomposition of the “website” component Typical J2EE system: Servlet passes data to JSP, which displays it; browser posts back to servlet Login JSP Login Info Java Servlet Login Info Purchase Info Edit Purchase Info JSP Edit Login Info JSP

Approaches for decomposing an architecture Functional decomposition Data-oriented decomposition Object-oriented decomposition Process-oriented decomposition Feature-oriented decomposition Event-oriented decomposition

Functional decomposition Break each requirement into functions, then break functions recursively into sub-functions One component per function or sub-function Each function computationally combines the output of sub-functions E.g.: ticket_price = fee(station1) + fee(station2) + distance_fee(station1 , station2) + fuel_surcharge(station1 , station2)

Functional decomposition Requirement Requirement Requirement Function 1 Function 2 Sub-function A Sub-function B Sub-function C Sub-function x Sub-function y Sub-function z System Boundary

Data-oriented decomposition Identify data structures in requirements, break data structures down recursively One component per data structure Each data structure contains part of the data E.g.: Purchase info = Ticket info and billing info; ticket info = two stations and a ticket type; billing info = contact info and credit card info; contact info = name, address, phone, …; credit card info = type, number, expiration date

Data-oriented decomposition Requirement Requirement Requirement Data Struct A Data Struct B Data Struct C Data Struct D Data Struct E Data Struct F Data Struct G Data Struct H System Boundary

Object-oriented decomposition Identify data structures aligned with functions in requirements, break down recursively One class component per data+function package Each component contains part of the data+fns OO decomposition essentially is the same as functional decomposition aligned with data decomposition

Object-oriented decomposition Requirement Requirement Requirement Class A Class B Class C Class D Class E Class F Class G Class H System Boundary

Process-oriented decomposition Break requirements into steps, break steps into sub-steps recursively One component per sub-step Each sub-step completes one part of a task E.g.: one component to authenticate the user, another to display purchase info for editing, another to store the results away

Process-oriented decomposition Requirement Process step A1 Process step A2 Process step A3 Requirement Process step B1 Process step B2 Process step B3 Requirement Process step X4 Process step C1 Process step C2 Process step C3 System Boundary

Feature-oriented decomposition Break each requirement into services, then break services into features One component per service or feature Each feature makes the service “a little better” E.g.: service does basic authentication, but one feature gives it a user interface, another feature gives it an OpenID programmatic interface, another feature gives it input validation, and another feature does logging

Feature-oriented decomposition Requirement Requirement Requirement Service 1 Service 2 Feature 1a Feature 2a Feature 1b Feature 2b Feature 2c Feature 1c Feature 2d System Boundary

Event-oriented decomposition Break requirements into systems of events, recursively break events into sub-events and state changes Each component receives and sends certain events, and manages certain state changes Each component is like a stateful agent E.g.: in the larger ticketing system, the mainframe signals the ticket printing system and the credit card company; the ticket printer notifies mainframe when it mails ticket to user

Event-oriented decomposition Requirement Requirement Component B Component A Component C Component D Component F Component E System Boundary

Architectural style = a common kind of architecture Certain kinds of decomposition often occur Certain kinds of components & connectors Certain typical arrangements Example: which web app is shown below? User Website DB 1 DB 2 Could be just about any web app… they all look pretty similar at this level of abstraction.

Pipe and filter Generally a kind of process-oriented design Filter = component that transforms data Pipe = connector that passes data between filters http://www.flickr.com/photos/edkohler/1187471998/

Client-server Generally a kind of feature- or object-oriented design Server = component that provides services Client = component that interacts with user and calls server http://www.flickr.com/photos/60572130@N00/324440918/

Peer-to-peer Generally a kind of feature- or event-oriented design Peer = component that provides services and may signal other peers http://www.flickr.com/photos/nstw/580552/

Publish-subscribe Generally a kind of event-oriented design Publish = when a component advertises that it can send certain events Subscribe = when a component registers to receive certain events http://www.flickr.com/photos/scriptingnews/2158743575/

Repositories Classic repository is just a client-server design providing services for storing/accessing data Blackboard repository is a publish-subscribe design: components wait for data to arrive on repository, then they compute and store more data http://www.flickr.com/photos/wocrig/2634599860/

Layering Generally a kind of feature-oriented design Layer = component that provides services to the next layer http://www.flickr.com/photos/benoitdarcy/161980766/

Mixing and matching is sometimes necessary Simple client-server architecture Server 1 Client Server 2

Mixing and matching is sometimes necessary Decomposing one server may reveal a process-oriented design. Server 1 Client Service 2 Service 2’ Service 2’’

Mixing and matching is sometimes necessary Decomposing the servers further may reveal a feature-oriented design. Service 1 Client Feature 1a Feature 1b Feature 1c Service 2 Service 2’ Service 2’’ Feature 2a Feature 2a’ Feature 2a’’ Feature 2b Feature 2b’ Feature 2b’’

Mixing and matching is sometimes necessary Decomposing the client might reveal an object-oriented design. Class A Service 1 Feature 1a Class B Feature 1b Class C Class D Feature 1c Class E Class F Service 2 Service 2’ Service 2’’ Feature 2a Feature 2a’ Feature 2a’’ Feature 2b Feature 2b’ Feature 2b’’

Mixing and matching is sometimes necessary Class A Service 1 Feature 1a Class B Feature 1b Class C Class D Feature 1c Class E Class F Service 2 Service 2’ Service 2’’ Feature 2a Feature 2a’ Feature 2a’’ Feature 2b Feature 2b’ Feature 2b’’

A few final words Architectural design is largely an art Little prescriptive guidance No one way to do it Architects rely heavily on experience Knowing a domain Knowing reference models, patterns, and styles Knowing some lower level/implementation details When is enough refinement enough? When further refinement results in pieces with no interface? (That’s what the book says.)

What’s next for you HW4: Design two candidate architectures And evaluate them (covered next lecture)

Copyright (c) Christopher Scaffidi 2009 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Oregon State University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Modified by Scott D. Fleming <Scott.Fleming@memphis.edu> 2011.