Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
GRASP Patterns M Taimoor Khan
© Lethbridge/Laganière 2001 Chapter 9: Architecting and designing software1 Layers Data from IBM-Rational and Craig Larman…
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
CSCI 639 Topics in Software Engineering Assignment #3 Fall 2008.
The Architecture Design Process
System Architecture: Desing alternatives and methodologies.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
1 A pattern language for security models Eduardo B. Fernandez and Rouyi Pan Presented by Liping Cai 03/15/2006.
RUP Design RUP Artifacts and Deliverables
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Chapter 9 Moving to Design
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Chapter 7 Applying UML and Patterns Craig Larman
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Software Architecture. What is a SW architecture? A SW architecture consists of a set of layers Each layer is related to a central area of functionality.
GRASP: Designing Objects with Responsibilities
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
What to remember from Chap 13 (Logical architecture)
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Project Deliverables CIS 4328 – Senior Project 2 And CEN Engineering of Software 2.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
CSC480 Software Engineering Lecture 8-9 September 20, 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.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Copyright © Craig Larman All Rights Reserved Large-Scale System Partitioning.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
J2EE Platform Overview (Application Architecture)
GRASP – Designing Objects with Responsibilities
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Architecture Concept Documents
Conception OBJET GRASP Patterns
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
OO Methodology OO Architecture.
Introduction to J2EE Architecture
The Object Oriented Approach to Design
Design and Maintenance of Web Applications in J2EE
Enterprise Data Model Enterprise Architecture approach Insights on application for through-life collaboration 2018 – E. Jesson.
Chapter 13 Logical Architecture.
Figure 30.2 Layers in NextGen
Introduction to Design Patterns Part 1
Starting Design: Logical Architecture and UML Package Diagrams
Design and Implementation
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
The Islamia University Bahawalpur
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Design Yaodong Bi.
Use-Case Design in Context
Use Case Analysis – continued
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified for pedagogical reasons. (02/06; 01/08) 1 © Lethbridge/Laganière 2001

Objectives of Architectural Design In Architectural Design, we define the pieces/parts (generalizing: “components”) of the system and their relationships. Relationships implies dependencies, services needed, and more. in our case, these pieces will be organized into well- defined layers Layers will provide services, and exhibit explicit dependencies Subscribe to accepted principles of ‘layering.’ 2 © Lethbridge/Laganière 2001

Objectives of Architectural Design Architectural Design - starting point for design. Remember, design bridges a major gap: Problem Space (requirements, use cases, prototype… to the Solution Space. Equivalently, we are mapping ‘what’ to ‘how.’ We will talk in terms of design (solution) elements 3 © Lethbridge/Laganière 2001

Architectural Design in Context – ‘about choices!’ Analysis Architectural Describe Review the Describe Architecture Architecture Architect Design Concurrency Distribution Reviewer Subsystem Design Use-Case Analysis Use-Case Designer Design Review the Design Design Reviewer Class Design Detailed Unified Process workflow – a tailored version of the Analysis and Design core workflow of the RUP. In Use Case Analysis: looked at requirements; allocated responsibilities to analysis classes. Now undertake Architectural Design. (note roles: See where it fits.) 4 © Lethbridge/Laganière 2001

More… We have defined and decided upon a a layered architecture, and we should recorded decisions as to the contents of each layer. In continuing our Architectural Design we will refine our analysis classes (boundary, control, entity) into design elements (design classes, subsystems, components) Architectural layers constitute the implementation environment. We will allocate these design elements to layers; within layers, to packages and subsystems in the architecture. 5 © Lethbridge/Laganière 2001

1. Typical Layering Approach Specific functionality General functionality This is a very broad generalization. in practice, things will be considerably different and application dependent in many cases. Note: this is also a very general view; may/may not include a GUI layer. 6 © Lethbridge/Laganière 2001

LAYERS – in general, there are several scenarios… Certain packages in a layer may/may not use services of layers directly beneath them. Layers don’t necessarily shield one layer from other. a package in application layer may need some domain services – in a domain layer beneath them. Thus, for those packages, there is a domain services layer beneath them. A package in the same upper layer may need technical services. For these packages, dependencies are on layers beneath them but skipping an intervening layer and go directly to middleware component. Application layer has components unique to the application. Business specific (domain layer) may have reusable subsystems Middleware layer may likely have the DB Controller, transaction dispatcher, Broker (pattern), persistency mechanisms, security mechanisms and other classes and associated relationships. 7 © Lethbridge/Laganière 2001

2. Multi-Tier Layered Architecture - Example Separate presentation and application logic, and other areas of concern. Consider: Different names (in some cases). Can see the main idea! UI Layer (or Presentation Layer) (Interface may/may not be graphical…) “Domain” or “Application Logic” Layer (May/may not need both…) Services Layer Persistence Subsystem Logging Subsystem Security Subsystem 8 © Lethbridge/Laganière 2001

In more detail: A Simple Logical Architecture Using UML, logical partitioning is illustrated with package /subsystem diagrams. The layers ‘might’ look like these….a design choice! Here, the User Interface is first. Some authors call this a Presentation Layer (makes sense if UI is graphical…) These might be the only layers needed. 9 © Lethbridge/Laganière 2001

Adding An Application Coordination Layer – another twist? Consider an “application coordination layer” whose objects represent use cases. They may also hold session state. This is often (not always) a better design. Added this layer! (look like control class names…)  10 © Lethbridge/Laganière 2001

Continuing: Showing Package Dependencies (good slide w/dependencies) It is useful to show the coupling with UML dependency lines. Further, it is helpful to cite the purpose of each subsystem / package to show how these design elements cohere. Document these. Discuss the dependencies!! 11 © Lethbridge/Laganière 2001

Ordering Work What do we now start? What do/can we now do in parallel? How? Discuss! 12 © Lethbridge/Laganière 2001

A Little Variation with this Thinking Next slide is VERY good! This architectural approach adds layers but ratchets down a bit. Note the cohesion in each layer (what it does; area of concern) Note also the dependencies. 13 © Lethbridge/Laganière 2001

3. Here is still another view of layers: Note the suggested layer contents GUI windows Reports Presentation Speech interface (AKA Interface, UI, View) HTML, XML, XSLT, JSP, Javascript, ... more application specific Handles presentation layer requests Workflow Application Session state (AKA Workflow, Process, Window/page transitions Mediation, App Controller) Consolidation/transformation of disparate data for presentation dependency Handles application layer requests Domain(s) Implementation of domain rules (AKA Business, Domain services ( POS , Inventory ) Business Services, Model) - Services may be used by just one application, but there is also the possibility of multi-application services Very general low-level business services Business Infrastructure Used in many business domains CurrencyConverter (AKA Low-level Business Services) (Relatively) high-level technical services Technical Services and frameworks (AKA Technical Infrastructure, Persistence , Security High-level Technical Services) Foundation Low-level technical services, utilities, (AKA Core Services, Base Services, and frameworks Data structures, threads, math, width implies range of applicability file, DB, and network I/O Low-level Technical Services/Infrastructure) 14 © Lethbridge/Laganière 2001