(from Diane Pozefsky). Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture.

Slides:



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

Ch 3 System Development Environment
Chapter 7 – Object-Oriented Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design
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.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Object Oriented System Development with VB .NET
Design Patterns CS is not simply about programming
Patterns Design 13 February.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
18 September Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to.
The chapter will address the following questions:
What is Software Architecture?
Chapter 10 Architectural Design
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
26 February Humpty Dumpty Presentations Software Architecture (cont)
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
System Models, Patterns and Software Architectures 14 February.
Diane Pozefsky. Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to do it:
Systems Analysis and Design in a Changing World, 3rd Edition
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
GRASP: Designing Objects with Responsibilities
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 CMPT 275 High Level Design Phase Modularization.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
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
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Basic Characteristics of Object-Oriented Systems
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Use Cases UML. Use Cases What are Use Cases?  A statement of the functionality users expect and need, organized by functional units  Different from.
Professorial kvetches
Design Patterns: MORE Examples
Software Design Refinement Using Design Patterns
The Movement To Objects
OO Methodology OO Architecture.
Chapter 20 Object-Oriented Analysis and Design
DESIGNING YOUR SYSTEM.
Software Design Lecture : 15.
An Introduction to Software Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
From Use Cases to Implementation
Presentation transcript:

(from Diane Pozefsky)

Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to do it: borrow or invent? 4. Design the components for the architecture 5. Build them

Modeling  Based on abstraction Looking only at relevant information Hiding details  Create multiple views As orthogonal as possible ○ Each view has information that is unique ○ Each view has information that appears in other views ○ Common information is consistent How many views?

Why Modeling?  Simplify in order to understand  Consider building a house How do we model?  What are the equivalent pieces for software?

Example of a System Model  Three views Functional: what is done Data: entity relationships Dynamic: state transitions  Why these three? Duplicative? Missing?

Software Models

Modeling Languages and Processes  Language: syntax, usually graphical, used to express design  Process: steps to take to create a design  Many processes, not a lot of agreement  General consensus has built around UML as a language We’ll look at UML later  Rational Unified Process built around UML

Krutchen, 1995

4+1 View Model  Logical view: functionality to the end user UML diagrams: class, communication, sequence UML diagrams  Development view: programmer perspective, software management UML component, package diagrams  Process view: dynamic aspects and runtime behavior of a system UML activity, timing, state diagrams  Physical view: topology of components on hardware layer, devices UML: deployment diagrams  Scenarios: the starting point UML: use case diagrams

Helping to Build Models

What is a Pattern?  A solution to a problem in a context  A structured way of representing design information in prose and diagrams  A way of communicating design information from an expert to a novice  Requirement: shows when and how to apply

Origin of Patterns  Came from the field of (building) architecture Christopher Alexander, late 70s The Timeless Way of Building (1979)  Describes Common architectural motifs How they come together to form a cohesive, livable environment Patterns from town planning to decorative detail

Architectural Example: Door Placement If room has two doors and people move through it, keep both doors at one end of the room

A Favorite Quote Current architectural methods result in products that fail to meet the real demands and requirements of its users, society and its individuals, and are unsuccessful in fulfilling the quintessential purpose of all design and engineering endeavors: to improve the human condition. – Christopher Alexander

Alexander’s Patterns Five parts: Name: short familiar, descriptive name or phrase usually indicative of the solution Example: illustrate prototypical application pictures, diagrams, and/or descriptions Context: situations in which the pattern applies Problem: relevant forces, constraints, interactions Solution: relationships and rules to construct artifacts often listing several variants What do you need to change for software?

Properties of Patterns Encapsulation: independent, specific, precise applicability Generativity: describes how to build Equilibrium: solution minimizes constraint conflicts Abstraction: of empirical experience and everyday knowledge Openness: can be extended up or down Composability: hierarchically related What do you need to change for software?

Design Patterns  All the same benefits are true in software All the same benefits are true in software Cunningham and Beck recognized in late 80s Community formed in early 90s  The Book: Gamma, Helm, Johnson and Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software (1995) Define 23 patterns Three categories: ○ Structural – ways to represent ensembles of information ○ Creational – creating complex objects ○ Behavioral – capturing the behavior of object

Pattern Definition (Gabriel)  Each pattern is a 3-part rule,  which expresses a relation among a certain context, a certain system of forces which occurs repeatedly in that context, and a certain software configuration (design) which allows these forces to resolve themselves. Forces?Forces? What is “design” anyway? Brooks house

Patterns Exist at All Levels  Machine code  Assemblers  High Level Languages  Abstract Data Types (queues, stacks)  Objects  Patterns  Software Architectures table

How do patterns help design?  Program to an interface, not to an implementation  Favor object composition over object inheritance  Eliminate replicated decision making code (DRY… don’t repeat yourself)  s13/patterns/issues.html s13/patterns/issues.html

Software Architecture  What is an architecture?  External view  What does that mean for software?  Two definitions User interface (product architecture) Highest level design (software architecture)

Software Architecture Goals  Extensibility: adding new features Tradeoff of generality and time How might it be extended?  Changeability: requirements changes  Simplicity: ease of understanding and implementing  Efficiency: speed and size

Key Characteristics  Cohesion degree to which communication takes place within the module  Coupling degree to which communication takes place between modules  Min-max problem: minimize coupling; maximize cohesion

Categorizing Software Architectures Categorizing Software Architectures (Shaw and Garlan)  Model-View-Controller  Data flows Viewed as data flowing among processes  Independent components Components operating in parallel and communicating occasionally  Virtual machines Treats an application as a program written in a special-purpose language  Layered architectures Packages of function with a strong hierarchical uses relationship  Repository Application built around data

Why Categorize?  Recognize patterns  Reuse designs  Learn from other similar applications  Reuse classes  Simplify communication

Examples of Use (real quotes)  … is based on the client-server model and uses remote procedure calls...  Abstraction layering and system decomposition provide the appearance of system uniformity to clients …  The architecture encourages a client server model …  We have chosen a distributed, object-oriented approach  The easiest way … is to pipeline the execution …

Model-View Controller Data flows Independent components Virtual machines Layered architectures Repository

Model-View-Controller  Originally designed for SmallTalk Early OO language (1970’s)  Steve Burbeck, 1987  First paper First paper

 Data flowing among processes  Two categories: Pipes and filters ○ Filters: processes ○ Pipes: input streams Batch sequential ○ Pipe and filter where input streams are batches of data Data Flow Design filter Collect mortgage funds Account balances Mortgage pool Unsecured pool Collect unsecured funds pipe

Independent Components  Components operating in parallel communicating occasionally  Different types Client-server Parallel communicating processes Event systems Service Oriented Architecture

Client-Server and Facade «not exposed» P «not exposed» Façade «exposed» Client 1 2 «not exposed» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. Key concept: limit exposed interface Browser-web server most familiar example: Separate systems with narrow interface

Parallel Communicating Processes Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. Customer: customer n withdraw Customer: customer n+1 Session: session k Session: session m deposit create Account: customer n+1 saving Account: customer n checking create retrieve 3 types of processes, 2 instances of each Duration of process processes actions sequence diagram

Observer Design Pattern Gamma et al Source notify() Observer update() ConcreteSubject state ConcreteObserver observerState update() Client of this system n Request others be notified Notify all observers Determines if change needed Single source of data with a number of clients that need to be updated

Event Systems and State Transition Diagrams Set of components waiting for input

Services Oriented Architecture  Collection of services Direct communication Coordinating service  Different technologies Early ones: DCOM CORBA (brokers) Web Services ○ Lots of different models and tools: REST (REpresentational State Transfer using HTTP just one)

Virtual machines  Treats an application as a program written in a special language  Payoff is that the interpreter code is the basis for multiple applications  Two types Interpreters (JVM) Rule-based systems (AI)

Layered Architecture: Network OSITCP/IP

Repository  A system built around data  Two types Databases Hypertext systems

A Typical Repository System Database DBMS GUI Analysis process 1 Analysis process n …... Control Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Hypertext: Basis of the Web  Motivated by Vannevar Bush in 1945Vannevar Bush “As We May Think” (Atlantic Monthly)As We May Think Theoretical machine, "memex," to enhance human memory by allowing the user to store and retrieve documents linked by associations  Invented by Ted Nelson in the 1960sTed Nelson  Popularized with HTML (Tim Berners-Lee)Tim Berners-Lee

Ted Nelson  "If computers are the wave of the future, displays are the surfboards."  Xanadu: 1974 "give you a screen in your home from which you can see into the world's hypertext libraries... offer high-performance computer graphics and text services at a price anyone can afford... allow you to send and receive written messages... [and] make you a part of a new electronic literature and art, where you can get all your questions answered...“  Computer Lib/Dream Machines Computer Lib/Dream Machines For more details, see pdfpdf

Summary Model-View-ControllerWeb application Data flow systemsPipes and filters Batch sequential Independent componentsClient-server Parallel communicating processes Event systems Service Oriented Architecture Virtual machinesInterpreters Rule-based systems Layered architectures RepositoriesDatabases Hypertext systems Summary

bin/getdoc.cgi?coll=linux&db=bks&fname=/SGI_EndUser/SYNAPTIQ_AG/ch01.html a&hs=ycW&tbo=u&rls=org.mozilla:en- US:official&tbm=isch&source=univ&sa=X&ei=0CkbUfrzGIKS9QTcg4DoDQ&ved=0CEE QsAQ&biw=1280&bih=703#imgrc=_