Software Engineering Modern Approaches

Slides:



Advertisements
Similar presentations
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Advertisements

18 October Team Meetings  All team meetings for this week are cancelled (If you WANT to meet, I will)  Beginning next week, demo required at EVERY.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Application architectures
Patterns Design 13 February.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
5. DESIGN I: SOFTWARE ARCHITECTURE. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering.
Application architectures
Categorization of Software Architectures
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Lecture 9 Architectures and Frameworks
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
Persistence Store Project Proposal.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
System Models, Patterns and Software Architectures 14 February.
Building Applications with the KNS. The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the.
©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 Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Categorization of Software Architectures A Dataflow architectures  Pipes and Filters  Batch sequential B Independent components  Client-server systems.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
CS223: Software Engineering
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
5. DESIGN I: SOFTWARE ARCHITECTURE. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
CIS 375 Bruce R. Maxim UM-Dearborn
Introduction to Oracle Forms Developer and Oracle Forms Services
Databases and DBMSs Todd S. Bacastow January 2005.
CSC 480 Software Engineering
Professorial kvetches
Software architecture
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Introduction to Computers, the Internet and the World Wide Web
Chapter 2 Database System Concepts and Architecture
Introduction to Oracle Forms Developer and Oracle Forms Services
Chapter 1: Introduction
Object-Oriented Static Modeling of the Banking System - I
Introduction to Oracle Forms Developer and Oracle Forms Services
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
COMP2110 Software Design in 2004 lecture 09 High level design
Abstract descriptions of systems whose requirements are being analysed
Introduction to J2EE Architecture
Database System Concepts and Architecture
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
Data, Databases, and DBMSs
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to Databases Transparencies
Lecture 1: Multi-tier Architecture Overview
Software Architecture
Database Environment Transparencies
4 REQUIREMENTS ANALYSIS CASE STUDY
Requirements Document
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 6: Architectural Design
ONAP Architecture Principle Review
Presentation transcript:

Software Engineering Modern Approaches Eric Braude and Michael Bernstein

Chapter 18: Software Architecture

Learning Goals of This Chapter How do you classify “software architectures?” What are data flow architectures? What are three-tier architectures and their generalizations? What makes database-centric systems a separate type of architecture? What are service-oriented architectures? What are the IEEE standards for expressing designs? What do real-world architectures look like? Planning Maintenance Testing The Software Development Lifecycle Requirements analysis Implementation Design Phase most relevant to this chapter is shown in bold © 2010 John Wiley & Sons Ltd.

Categorization of Software Architectures (Shaw & Garlan) Dataflow architectures Pipes and Filters Batch sequential Independent components Client-server systems Parallel communicating processes Event systems Service-oriented (added) Virtual machines Interpreters Rule-based systems Repository architectures Databases Hypertext systems Blackboards Layered architectures © 2010 John Wiley & Sons Ltd.

Partial Data Flow Diagram for ATM Application member banks Get deposit Get inquiry User bank name error account # error account # & deposit account display Validate deposit Validate inquiry Display account Make inquiry account # account # & deposit Printer account data balance query Do deposit transaction Create account summary deposit transaction account data account database © 2010 John Wiley & Sons Ltd.

Platforms in Data Flow Architectures: An Example ATM Get deposit Get inquiry Display account Consortium server Bank server Make inquiry Do deposit transaction Create account summary Validate deposit Validate inquiry © 2010 John Wiley & Sons Ltd.

Pipe and Filter Architectures stream > filter pipe filter filter filter filter pipe filter < stream © 2010 John Wiley & Sons Ltd.

Example of Pipe & Filter Data Flow Architecture Requirement: Maintain wired financial transactions. account data deposit account data transaction result account data deposit data Bank data transaction Log analyze record transaction Comm withdrawal transaction result bank address withdraw account data © 2010 John Wiley & Sons Ltd.

Example of Batch Sequential Data Flow Architecture Requirement: Manage bank funds available for mortgages & unsecured lending. Architecture: Collect mortgage funds Mortgage pool Account balances Collect unsecured funds Unsecured pool © 2010 John Wiley & Sons Ltd.

Class Model for Batch Sequential Data Flow Accounts package Bank package Bank getMtgPool() getUnsecurePool() Customer Account © 2010 John Wiley & Sons Ltd.

Platforms for Communicating Processors comunication execution © 2010 John Wiley & Sons Ltd.

Example of Parallel Communicating Processes Architecture Requirement: Manage ATM traffic. Architecture beginning with first session: Customer_n :Customer: session_m :Session customer_n_ checking :Account ‡ 1 2 3 create retrieve* 4 5 deposit deposit* (more work) (thread detail omitted)* © 2010 John Wiley & Sons Ltd.

Example of Parallel Communicating Processes Architecture Requirement: Manage ATM traffic. customer_ s_saving : Account Architecture: 1 Customer_n :Customer: session_m :Session session_k :Session customer_n_ checking :Account 2 3 customer s :Customer create retrieve* create retrieve* 4 5 deposit deposit* withdraw withdraw* (thread detail omitted)*

Class Model For Parallel Example Customers Sessions * Account deposit() withdraw() retrieve() Session * Customer © 2010 John Wiley & Sons Ltd.

State Design Pattern Applied to Encounter RolePlayingGame RPGame handleEvent() state GameState handleEvent() { state.handleEvent(); } EncounterGame © 2010 John Wiley & Sons Ltd.

Virtual Machine Architectures: Leveraging Interpreter to Facilitate Creation of Appliations Application 1 Interpreter Program 1 written in language understood by interpreter Application 2 Interpreter Program 2 written in language understood by interpreter © 2010 John Wiley & Sons Ltd.

A Typical Repository Architecture GUI Analysis process 1 Analysis process n Control …... …... DBMS Database Key: Control flow: Data flow: © 2010 John Wiley & Sons Ltd.

Layered Architecture 3D engine layer Role-playing game layer «uses» Characters RolePlayingGame Layout «uses» Application layer Encounter Characters Encounter Environment Encounter Game © 2010 John Wiley & Sons Ltd.

Application Framework Library Framework Layer Application Layer Framework Layer StarOffice API Application Framework Library SVX Library Infrastructure Layer From http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#3 © 2010 John Wiley & Sons Ltd.

Layered Architecture Example Using Aggregation “uses” Ajax bank printing Layer Accounts Layer Ajax bank common library Layer Vendor-supplied Layer Class model: (relationships within packages not shown) Ajax bank printing Printer Formatter Page Accounts Vendor-supplied layer not shown Account Customer Ajax bank common library AjaxLogo AjaxDisclaimer Regulations © 2010 John Wiley & Sons Ltd.

Service-Oriented Architectures Based on components that provide functionality according to an interface spec. Principally via Web services In the spirit of façade objects Not necessarily OO Example: An application concerning orders. Wouldn’t assume an Order class known to all Instead: Define an order schema; reference when Web services involve orders

Service-Oriented Architectures 2 of 2 “Fire and forget” Stateless as much as possible Extensible Additional functionality easily added Discoverable Account for Quality of Service E.g., security Many of these points are from Service-Oriented Architecture by T. Erl

Service-Oriented Architectures 3 of 3 “Fire and forget” Stateless as much as possible Extensible Additional functionality easily added Discoverable Account for Quality of Service E.g., security Many of these points are from Service-Oriented Architecture by T. Erl

Layering for Service-Oriented Architectures Appplication A (.NET) Application B (JEE) Appplication C (Legacy) «uses» Service Interface Layer «uses» Business Process Layer Adapted from Erl: “Service-Oriented Architectures” © 2010 John Wiley & Sons Ltd.

3-Tier Architecture Aternative VSGUIs VSOperations VSData Presentation tier Middle tier Data tier © 2010 John Wiley & Sons Ltd.

Alternative Architecture for a Video Store Application DVDs DVRentals VSCustomers © 2010 John Wiley & Sons Ltd.

Comparing Architectures Three-tier Alternative Understand-able? Yes Flexible? Yes: GUI easy to change Yes: Basic building blocks easy to identify. Reusable? Not very: Each layer is special to Video Store rentals. Yes: Easy to generalize to generic rentals Easy to construct? Perhaps Yes: Clear potential to use Façade. © 2010 John Wiley & Sons Ltd.

IEEE 1016-1998 SDD Example Table of Contents 1. Introduction 1.1. Purpose 1.2. Scope 1.3. Definitions, acronyms & abbreviations 2. References 3. Decomposition description 3.1. Module decomposition 3.1.1 Module 1 description 3.1.1 Module 2 description 3.2 Concurrent process decomposition 3.2.1 Process 1 description 3.2.2 Process 2 description 3.3 Data decomposition 3.3.1 Data entry 1 description 3.3.2 Data entry 2 description 4. Dependency description 4.1 Inter-module dependencies 4.2 Inter-process dependencies 4.3 Data dependencies 5. Interface description 5.1 Module interface 5.1.1 Module 1 description 5.1.2 Module 2 description 5.2 Process interface 5.2.1 Process 1 description 5.2.2 Process 2 description 6. Detailed design 6.1 Module detailed design 6.1.1 Module 1 detail 6.2.2 Module 2 detail 6.2 Data detailed design 6.2.1 Data entity 1 detail 6.2.2 Data entity 2 detail Architecture © 2010 John Wiley & Sons Ltd.

Schedule Following Architecture Selection Month 1 Month 2 Month 3 Month 4 Month 5 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Freeze requirements Milestones Complete testing Release to production Characters I Integration & Test I Encounter Characters I Characters II RolePlaying Game I Iteration 1 Encounter Characters II Encounter Game I RolePlaying Game I Integration & Test II Layout I Encounter Game II Encounter Layout I Iteration 2 Layout I Encounter Layout II © 2010 John Wiley & Sons Ltd.

RPG Framework for Role-Playing Video Games RolePlayingGame Characters state RPGame handleEvent() GameCharacter 0..n { state.handleEvent(); } GameState handleEvent() RPGEvent GameEnvironment GameLayout 2 GameArea Artifacts For future releases GameAreaConnection © 2010 John Wiley & Sons Ltd.

Architecture / Modularization of Encounter EncounterGame EncounterGame EncounterCharacters EncounterCast EncounterEnvironment EncounterEnvironment © 2010 John Wiley & Sons Ltd.

RPG Framework for Role-Playing Video Games RolePlayingGame Characters state RPGame handleEvent() GameCharacter 0..n { state.handleEvent(); } GameState handleEvent() RPGEvent GameEnvironment GameLayout 2 GameArea Artifacts For future releases GameAreaConnection © 2010 John Wiley & Sons Ltd.

FrameWork / Application Dependency Characters GameEnvironment RolePlayingGame Role-playing game layer (framework) «uses» Encounter video game layer EncounterGame «uses»* «uses» EncounterCast EncounterGame EncounterCharacters EncounterEnvironment * by member classes implemen- ting framework interfaces EncounterEnvironment © 2010 John Wiley & Sons Ltd.

Architecture of Eclipse 1: Overall Plug-In Development Environment  depends on Java Development Tools  Adapted from “Contributing to Eclipse” p5 Platform © 2010 John Wiley & Sons Ltd.

Architecture of Eclipse UI Workbench JFace Java Development Tools SWT Java Core Core: Workspace Core: Runtime [“Contributing to Eclipse p282] © 2010 John Wiley & Sons Ltd.

Architecture of Eclipse 2: The Platform UI Workbench JFace Plug-In Development Environment Standard Widget Toolset Java Development Tools Platform  depends on Core Workspace Runtime A Key: A depends on B. [Adapted from “Contributing to Eclipse” p283] B © 2010 John Wiley & Sons Ltd.

OpenOffice Architecture Application StarOffice API Dependent  Framework Layers Infrastructure System Abstraction VCL Operation System / GUI Edited, from http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#3 © 2010 John Wiley & Sons Ltd.

OpenOffice Architecture © 2010 John Wiley & Sons Ltd. From http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#3