CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:

Slides:



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

Chapter 13 Review Questions
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
MVC Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
Introduction To System Analysis and 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.
Object-Oriented Enterprise Application Development J2EE Blueprints.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Logical Architecture and UML Package Diagrams
Course Instructor: Aisha Azeem
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UNIT-V The MVC architecture and Struts Framework.
USE Case Model.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Introduction To System Analysis and Design
CHAPTER TEN AUTHORING.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Facade Introduction. Intent Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 CMPT 275 High Level Design Phase Modularization.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Systems Development Lifecycle
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
GRASP – Designing Objects with Responsibilities
Software Design Refinement Using Design Patterns
Algorithms and Problem Solving
OO Methodology OO Architecture.
Design and Maintenance of Web Applications in J2EE
Model-View-Controller Patterns and Frameworks
Starting Design: Logical Architecture and UML Package Diagrams
An Introduction to Software Architecture
The Islamia University Bahawalpur
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 22 Object-Oriented Systems Analysis and Design and UML
UML Design for an Automated Registration System
Logical Architecture & UML Package Diagrams
Presentation transcript:

CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise: Modeling Views

2Objectives n To date we have been focused on the modeling of business aspects of a software application. A focus on domain objects and classes A focus on gaining core design skills n A typical system many have several more components User Interface Database access Common services –Authentication, security, input/output, communications etc. n These components together what is called the logical architecture

3 Software Architecture n An architecture is a set of significant decisions about the organization of a software system: The selection of the structural elements and their interfaces by which the system is composed, together with their behaviour as specified in the collaborations among those elements, The composition of these structural and behavioural elements into progressively larger subsystems and the architectural style that guides this organization (these elements, their interfaces, their collaboration and their composition

4 Performing architecture n Architectural investigation Involves identifying those functional and (especially) non-functional requirements that have a significant impact on system design, such as market trends, performance, cost, maintenance, and points of evolution n Architectural design Is the resolution of architectural investigation forces into the design of the software, hardware and networking operations and policies

5 Logical Architecture n The best known practices around architecture are to organize the structure of a system into discrete layers of distinct related responsibilities A desire to have a clean cohesive separation of concerns such that the lower layers of the architecture are low level and general and the higher layers more application specific n A layered architecture defines a n-tiered model. It avoids the problems of Source code changes rippling through the system Application logic intertwined with user interface General services intertwined with application specific logic Difficulty in evolving functionality, scaling up the solution or update with new technologies due to high coupling

6 Common Layers in a Logical Architecture Presentation Layer Application Layer Domain Layer Business Infrastructure Layer Technical Services Layer Technical Foundation Layer Dependencies Application specific Class focus so far

7 UML - Package Diagram A package diagram shows the packages comprising the logical architecture and the dependencies between them note that the dependencies are all pointing to a package in the same or lower layer

8Packages n Packages or layers are not just conceptual groups of things but true subsystems with behaviours and interfaces: Two things to decide at an architectural level are –What are the true subsystems –How are they connected We can use Design Patterns such as Façade, Mediator and Observer to design connections between layers and packages –We have looked at Observer already

9 Façade Pattern n Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. Clients communicate with the subsystem by sending requests to Facade, which forwards them to the appropriate subsystem(s) objects. Although the subsystem objects perform actual work, the facade may have to do work of its own to translate its interface to subsystem interfaces. Clients that use the facade don't have to access its subsystem objects directly.

10 Mediator Pattern n Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.

11 Model, View, Controller n We can combine the Façade pattern and the Mediator pattern to form an architectural pattern called Model, View, Controller (MVC) Model is our model as we have designed over the past several weeks, the application layer View is the presentation layer for our model (think of the façade pattern) Controller is the communication between the two layers (think of the mediator pattern

12 MVC Pattern n The MVC pattern provides a host of architectural design benefits. MVC separates design concerns (data persistence and behavior, presentation, and control), decreasing code duplication, centralizing control, and making the application more easily modifiable. MVC also helps developers with different skill sets to focus on their core skills and collaborate through clearly defined interfaces.

13 MVC Controller n At the highest level, the controller does four basic things in a specific order: interprets client requests, dispatches those requests to business logic, selects the next view for display, and generates and delivers the next view.

14 MVC Controller n A controller must be maintainable and extensible. Its tasks include mapping requests to application model operations, selecting and assembling views, and managing screen flow. Views do not refer to each other directly The controller controls screen flow by selecting the next view a user sees. Application model operations have no knowledge of presentation Good structure can minimize code complexity.

15 MVC Controller in Action n The controller in the application uses two components to select and generate views: a (screen) flow manager, which selects the next view to display; and a templating service, which actually generates the view content. The controller uses the flow manager to select a view, and forwards the request to the templating service, which assembles and delivers a view to the client. Both the screen flow manager and the templating service are generic components that are usable in any application. The component-based design reduces component coupling, promoting code reuse and simplifying the controller design.

16 Multiple Client Types n Applications with a single client type can implement a single controller. n Additional controllers can support new client types

17 Templating Service n One typical application requirement is that application views have a common layout. A template is a presentation component that composes separate subviews into a page with a specific layout. Each subview is a separate component. Views that share a template have the same layout, because the template controls the layout. n The example shows the layout of a single page created by a template. Across the top of the page is a banner, on the left is a navigation menu, a footer appears at the bottom, and the body content occupies the remaining space.

18 Separating Business Logic from Presentation n Placing business logic and presentation code in separate software layers is good design practice. n The business layer provides only application functionality, with no reference to presentation. n The presentation layer presents the data and input prompts to the user (or to another system), delegating application functionality to the business layer.

19 Business Benefits n Separating business logic from presentation has several important benefits: Provides client independence and code reuse –Intermingling data presentation and business logic ties the business logic to a particular type of client. Business logic that is available referentially as simple method calls on business objects can be used by multiple client types. Separates developer roles –Code that deals with data presentation, request processing, and business rules all at once is difficult to read, especially for a developer who may specialize in only one of these areas. Separating business logic and presentation allows developers to concentrate on their area of expertise.

20 Business Benefits n Separating business logic from presentation has several important benefits : Minimizes impact of change –Business rules can be changed in their own layer, with little or no modification to the presentation layer. Application presentation or workflow can change without affecting code in the business layer. Increases maintainability –Most business logic occurs in more than one use case of a particular application. Business logic copied and pasted between components expresses the same business rule in two places in the application. Future changes to the rule require two edits instead of one. Business logic expressed in a separate component and accessed referentially can be modified in one place in the source code, producing behavior changes everywhere the component is used.

21 View Modeling n Once objects have been identified, the next step is to determine what views are necessary for each object. n A view can be considered a representation of an object in the user interface. n In order for the user to employ an object in a use case they must be able to see it in one or more views. n So, once an initial set of objects has been extracted from the use cases the attention switches to the views of those objects.

22 View Modeling n Starting with the most frequent task, a view is created for each object used in that task. n Each view is represented as an object on the object diagram. The view object is connected to the associations between the viewed object and other objects.

23 Modeling Views n Views can be modeled as objects themselves. This allows the same systematic object definition, using the same techniques and notation. n Modeling views as objects also matches the object- oriented programming implementation. By modeling views through class relationship and state diagrams, this part of the design methodology may be, for the time being, isolated from any specific visual or graphic design concerns. This helps ensure the accuracy and completeness of the view definition, and also helps clarify the requirements for visual design.

24 Modeling Views n Use Case – View Courses

25 Modeling Views Use Case – View Courses

26CourseCalendarView The view object is connected to the associations between the viewed object and other objects.

27 Use Case – Register for Class n Register for Class n Description: This Use Case allows a student to register for a class n Actor: Student n Pre-Condition: Student is known n Post-Condition: Student is registered for selected Class n Main Scenario 1. Student searches for a course scheduled in upcoming semester 2. System displays the course with a list of scheduled classes meeting search criteria 3. Student selects a class that they wish to register for 4. System checks student eligibility to register for the selected class (meets pre-requisites and co-requisites) 5. System checks that selected class has availability (the class is not full) for student to register in 6. System registers student in the class 7. System displays confirmation of registration

28 Class Exercise n Take the use case and update the class diagram with views