Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
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.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
October 23, 2001 Software Design-Layering and Packaging1 Architecture: Layers and Packages.
GRASP Patterns M Taimoor Khan
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
© Lethbridge/Laganière 2001 Chapter 9: Architecting and designing software1 Layers Data from IBM-Rational and Craig Larman…
Layered Architectures The objectives of this chapter are: To understand the principles and importance of Layered Architectures To explain the structure.
Software Architecture Design Instructor: Dr. Jerry Gao.
CS 432 Object-Oriented Analysis and Design
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Logical Architecture and UML Package Diagrams
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Chapter 26 Applying Gang of Four Design Patterns 1CS6359 Fall 2012 John Cole.
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Object-Oriented Analysis and Design Feb 9, 2009.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Systems Analysis and Design in a Changing World, Fifth Edition
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Systems Analysis and Design in a Changing World, Fifth Edition
An Introduction to Software Architecture
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.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Systems Analysis and Design in a Changing World, 3rd Edition
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
What to remember from Chap 13 (Logical architecture)
UML-1 4. Architecture. UML-2 Artifact: Analysis Class Abstraction of one or several classes or subsystems –Focuses on handling functional requirements.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Lecture 18: Object-Oriented Design
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Computer Science 340 Software Design & Testing Software Architecture.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Chapter 36 Package Design “’Commandments’ sounds a little harsh. Why can’t we call them the Ten Guidelines?” -- Moses CS6359 Fall 2012 John Cole1.
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.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Deployment Diagram.
Deployment Diagram.
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.
OO Methodology OO Architecture.
BTS530: Major Project Planning and Design
Chapter 13 Logical Architecture.
Figure 30.2 Layers in NextGen
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.
Starting Design: Logical Architecture and UML Package Diagrams
Design and Implementation
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
The Islamia University Bahawalpur
Design Yaodong Bi.
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole

Software Architecture Decisions about the organization of a software system Selection of structural elements and their interfaces, along with their behavior. Organization of elements into progressively larger systems CS6359 Fall 2012 John Cole2

Finally… Software Design The logical architecture is the large-scale organization of the classes into packages (namespaces), subsystems, and layers. No decision about how they’re deployed CS6359 Fall 2012 John Cole3

Package Diagrams We’ve seen these. Grouping of UML elements so they can be referred to without having them all in the diagram CS6359 Fall 2012 John Cole4

Reverse-Engineering You can get a class diagram from the code in C# Visual Studio 2010 CS6359 Fall 2012 John Cole5

Layers A layer is a large grouping of classes, packages, or subsystems that has cohesive responsibility for a major part of the system. Higher layers call services in lower layers but not the other way around. CS6359 Fall 2012 John Cole6

Typical Layers User interface Application logic and domain objects Technical services – subsystems that support low-level functions, such as interfacing with a database, external hardware, or error logging. In strict layering, a layer only calls upon services in the layer directly below it. CS6359 Fall 2012 John Cole7

Design with Layers Organize the logical structure into distinct layers with related responsibilities, clean separation from lower layers. Higher layers are more application-specific CS6359 Fall 2012 John Cole8

Layers… Address several problems: – Source code changes ripple through the entire system – Application logic can’t be reused because it is intertwined with the UI – General business logic is intertwined with application-specific logic – High coupling across different areas CS6359 Fall 2012 John Cole9

Another view of Layers GUI Application: handles presentation layer requests, workflow, session state, window/page transitions Domain: app layer requests, domain rules, domain services Business infrastructure Tech services Foundation: threads, math, network I/O CS6359 Fall 2012 John Cole10

Mapping Code to Layers Com.mycompany.nextgen.ui.swing Com.mycompany.nextgen.ui.web Com.mycompany.nextgen.domain.sales Com.mycompany.nextgen.domain.payments Com.mycompany.service.persistence Org.apache.log4j Com.mycompany.util CS6359 Fall 2012 John Cole11

Domain Vs. Application Logic Layer How do we design the application logic with objects? Create software objects with names and information similar to the real-world domain. E. g. sales, payments, claims, etc. These are domain objects CS6359 Fall 2012 John Cole12

Guideline Don’t show external resources as the bottom layer. CS6359 Fall 2012 John Cole13

Tiers, Layers, Partitions Tiers were originally logical layers, but now the term has come to mean physical nodes. Service Oriented Architecture Layers are vertical slices, while partitions are horizontal divisions of subsystems within a layer. E. g. tech services may contain Security and Reporting CS6359 Fall 2012 John Cole14

Model-View Separation What kind of visibility should packages have to the UI layer? How should non-window classes communicate with windows? CS6359 Fall 2012 John Cole15

Model-View Don’t connect non-UI objects directly to UI objects. Don’t let a Sale object reference directly a Jframe Don’t put application logic, such as tax calculation, in a UI object’s methods. UI objects should only initialize the elements, receive UI events, and delegate requests for application logic to non-UI objects CS6359 Fall 2012 John Cole16

Observer Pattern Domain objects send messages to UI objects viewed only in terms of an interface such as PropertyListener. Domain classes encapsulate the information and behavior related to the application logic. Windows classes are thin. CS6359 Fall 2012 John Cole17

Why Model-View Separation? Focus on domain processes rather than the UI Allow separate development of UI and the model Minimize impact of requirements changes in the UI on the domain layer Allow views to be connected to existing domain layer Multiple views of same domain object Allow porting of UI to another framework Allow execution of model independently of UI CS6359 Fall 2012 John Cole18

Connections SSDs illustrate system operations but hide the UI layer. Yet the UI capture the operation requests The UI layer delegates the requests to the domain layer Thus messages from the UI to the domain are the messages in the SSDs, such as enterItem. CS6359 Fall 2012 John Cole19

CS6359 Fall 2012 John Cole20