December 9, 2001Architectural Design, ECEN 50331 Architecture – Layers, in particular ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of.

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Design Concepts and Principles
ECEN 5053, Paradigms & Patterns, Wk 81 Paradigms & Patterns - 3 ECEN 5053 SW Eng of Distributed Systems University of Colorado, Boulder.
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
SS ZG653Second Semester Topic Architectural Patterns – Review of Patterns.
October 20, 2005Architectural Design, ECEN Architectural Design More on layers Architecture Reviews Architecture Business Cycle ECEN 5543 / CSCI.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
October 26, 2006Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
NJIT More GRASP Patterns Chapter 22 Applying UML and Patterns Craig Larman Prepared By: Krishnendu Banerjee.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
October 20, 2005Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.
Lecture Nine Database Planning, Design, and Administration
Chapter 10: Architectural Design
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
Architectural Design.
Design Patterns Trends and Case Study John Hurst June 2005.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Object-Oriented Design Layers. 2 Layering Mechanisms Introduction to layering design principles Introduction to layering design principles Determining.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Requirements for Multi-Program Systems
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
10 Software Architecture CSCU 411 Software Engineering.
December 9, 2001Architectural Design, ECEN Architectural Design Principles & Techniques A Long Road of History.
Systems analysis and design, 6th edition Dennis, wixom, and roth
Design Concepts and Principles Instructor: Dr. Jerry Gao.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Design Concepts By Deepika Chaudhary.
© Siemens AG, CT SE, Prashant Jain, October 15, 2001 C O R P O R A T E T E C H N O L O G Y OOPSLA 2001 Workshop Software & Engineering Architecture 1 A.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
 Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Computer Science 340 Software Design & Testing Software Architecture.
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.
11 Software Design CSCU 411 Software Engineering.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Layers Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
 System Requirement Specification and System Planning.
Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Design Concepts ch-8
Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 8, Design Patterns Introduction
Presentation transcript:

December 9, 2001Architectural Design, ECEN Architecture – Layers, in particular ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of Colorado, Boulder

December 9, 2001Architectural Design, ECEN Design Pattern Roots Text describes various arch. patterns as codified learning Older techniques include –Levels of Abstraction –Integrated Top-Down –Information Hiding Overall principles of –abstraction –structure –verification –modularity –business influence and impact -- extensibility

December 9, 2001Architectural Design, ECEN POSA 1 & POSA 2 Patterns-Oriented Software Architecture, Volume 1: A System of Patterns; Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad; John Wiley & Sons; 1996; ISBN: (On Amazon, 4.5 stars out of 5) (Volume 2 subtitle: Concurrent and Networked Objects, Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, 2000) “Patterns help you build on the collective experience of skilled software engineers. “ (1 st sentence)

December 9, 2001Architectural Design, ECEN Patterns put you on the shoulders of Giants Isaac Newton famously remarked in a letter to Robert Hooke, dated 5 February 1676: "If I have seen a little further it is by standing on the shoulders of Giants.” (Earliest use of the metaphor is John Salisbury, 1159) When Hamming received the Turing award in he contrasted software developers to Newton saying something like “While Newton may have stood on the shoulders of Giants, in software development, we stand on each other’s feet.”

December 9, 2001Architectural Design, ECEN What is the Layers Pattern? Architectural pattern that helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction. What is high? What is low? Flow –requests from higher layer to lower layer –answers from lower layer to higher layer –incoming data or event notification from low to high

December 9, 2001Architectural Design, ECEN Layers Arch.

December 9, 2001Architectural Design, ECEN Balance the Forces Late source code changes should not ripple Interfaces should be stable Interfaces may be prescribed by a standards body Parts of the system should be exchangeable –Design for change! May be necessary to build other systems at a later date with same low-level issues Similar responsibilities should be grouped to help understandability and maintainability No standard component granularity Complex components may need further decomposition

December 9, 2001Architectural Design, ECEN More forces Crossing component boundaries may impede performance –substantial amount of data transferred over several boundaries The system will be built by actual human beings –Work must be subdivided along clear boundaries –Architecture influences team structure and vice versa

December 9, 2001Architectural Design, ECEN Solution Structure the system into an appropriate number of layers Think of lowest level as Layer 1; highest Layer N This gives a conceptual view – not marching orders regarding sequence of further design Within a layer, all subcomponents work at the same level of abstraction Most of what Layer J provides is composed of services provided by Layer J-1, combined in a meaningful way for the application.

December 9, 2001Architectural Design, ECEN Scenario I

December 9, 2001Architectural Design, ECEN Scenario II

December 9, 2001Architectural Design, ECEN Scenario III

December 9, 2001Architectural Design, ECEN Scenario IV

December 9, 2001Architectural Design, ECEN Scenario V

December 9, 2001Architectural Design, ECEN Implementation Steps 1.Define which of the abstraction criteria you will use 2.Determine the number of abstraction levels according to your criterion 3.Name the layers and assign tasks to each of them 4.Specify the services 5.Refine the layering 1.repeat steps 1-4 until natural, stable layering evolves 2.Finding layers is not orderly – yo-yo development 6.Specify an interface for each layer

December 9, 2001Architectural Design, ECEN Implementation Steps -- continued 7.Structure individual layers 8.Specify communication between adjacent layers 1.push/pull 9.Decouple adjacent layers 1.top-down: J+1 knows about J; J can ignore J+1 2.bottom-up: 1.can use callbacks 2.can decouple the upper from the lower somewhat 10.Design an error-handling strategy

December 9, 2001Architectural Design, ECEN Known Uses Virtual Machines APIs Information systems – lower layer is database –Presentation –Application logic –Domain layer –Database Some operating systems – Windows NT

December 9, 2001Architectural Design, ECEN Benefits

December 9, 2001Architectural Design, ECEN Liabilities

December 9, 2001Architectural Design, ECEN Bibliography (cont.) Pattern-Oriented Software Architecture, A System of Patterns, Volume 1, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Wiley & Sons, 1996, ISBN – often referred to as the POSA book or “POSA 1” because there are now 2 volumes. Go to Amazon.com and read the reviews to get a feel for how well respected this book is.