Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
Advertisements

GRASP Patterns M Taimoor Khan
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…
NJIT 1 On to Object Design Chapter 14 Applying UML and Patterns.
Logical Architecture and UML Package Diagrams
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
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 徐迎晓 复旦大学软件学院.
MVC and MVP. References enter.html enter.html
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
1 On to Object Design Chapter 14 Applying UML and Patterns.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Group 2 work What is sequence diagram ? What is sequence diagram ? Why do we use it ? Why do we use it ? What is basic notation of SD? What is basic notation.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
What to remember from Chap 13 (Logical architecture)
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Drawing System Sequence Diagrams
1 On To Object Design Chapter 14 Applying UML and Patterns -Craig Larman.
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.
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
TK2023 Object-Oriented Software Engineering CHAPTER 9 INTRODUCTION TO OBJECT DESIGN.
Summary from previous lectures
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
Deployment Diagram.
Elaboration popo.
Fundamentals of Object Oriented Modeling
Introduction to UML.
Systems Analysis and Design in a Changing World, Fourth Edition
Appendix 3 Object-Oriented Analysis and Design
Deployment Diagram.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
OO Methodology OO Architecture.
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
UML dynamic Modeling (Behavior Diagram)
The Object Oriented Approach to Design
Chapter 13 Logical Architecture.
Object-Oriented Design
Figure 30.2 Layers in NextGen
Sequence Diagrams Lecture 6.
Unified Modeling Language
Lecture 1: Multi-tier Architecture Overview
Object oriented analysis and design
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Analysis models and design models
An Introduction to Software Architecture
CS 8532: Advanced Software Engineering
Software Analysis.
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Software Development Process Using UML Recap
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
On to Object Design c. 14.
Presentation transcript:

Logical Architecture and UML Package Diagrams

The logical architecture is the large-scale organization of the software classes into packages, subsystems, and layers. It will not represents how the elements are deployed across different operating system processes or across physical computers in a network.

Logical Architecture and UML Package Diagrams Layer A layer is a method of grouping of classes, packages, or subsystems of the system. Layers in an OO system which include: 1) User Interface. 2) Application Logic and Domain Objects – software objects representing domain concepts that fulfill application requirements, such as calculating a sale total 3) Technical Services – General purpose objects and subsystems that provide supporting technical services, such as interfacing with a database or error logging.

UML Package Diagrams UML package diagrams are used to illustrate the logical architecture of a system. A layer can be modeled using UML package; for example, the UI layer modeled as a package named UI. A UML package diagram provides a way to group elements. A UML package can group anything: classes, other packages, use cases, and so on.

UML Package Diagrams The package name may be placed on the tab The package shows inner members, Dependency line communicate coupling between packages or types in packages. The UML dependency line is used for this, A dashed arrowed line with the arrow pointing towards the depended-on package. The UML provides alternate notations to illustrate outer and inner nested packages

UML Package Diagrams Another common use of a package diagram is to hide the specific types, and focus on illustrating the package-package coupling, as in the partial diagram

UML Package Diagrams

Package diagrams show only static information. To understand the dynamics of how objects across the layers connect and communicate, an interaction diagram is used. Interaction diagram collaborations cross layer and package boundaries. For example, illustrates part of a Process Sale scenario that represents the connection points across the layers and packages.

UML Package Diagrams

Problems of Layering Systems Source code changes are reflect throughout the system. Many parts of the systems are highly coupled. Application logic is interconnected with the user interface, so it cannot be reused with a different interface. General technical services or business logic is interconnected with more application-specific logic, so it cannot be reused, distributed to another node, or easily replaced with a different implementation. There is high coupling across different areas. It is thus difficult to divide the work along clear boundaries for different developers.

Domain Layer vs. Application Logic Layer in Domain Object A typical software system has UI logic and application logic, such as GUI and tax calculations. Now, here's a key question: How do to design the application logic with objects? We could create one class called XYZ and put all the methods, for all the required logic, in that one class. It could technically work but it is not the recommended approach in the of OO thinking. So, what is the recommended approach?

Domain Layer vs. Application Logic Layer in Domain Object Answer: To create software objects with names and information similar to the real-world domain, and assign application logic responsibilities to them. For example, in the real world of POS, there are sales and payments. So, in software, we create a Sale and Payment class, and give them application logic responsibilities. This kind of software object is called a domain object. It represents a thing in the problem domain space, and has related application or business logic, for example, a Sale object being able to calculate its total.

Domain Layer vs. Application Logic Layer in Domain Object Designing objects this way leads to the application logic layer being more accurately called the domain layer of the architecture, the layer that contains domain objects to handle application logic work

Definition: Tiers, Layers, and Partitions The original notion of a tier in architecture was a logical layer, not a physical node, But it is widely used to mean a physical processing node, such as the "client tier" (the client computer). The layers of an architecture are said to represent the vertical slices. partitions represent a horizontal division of parallel subsystems of a layer.

Connection between SSDs, System Operations, and Layers During analysis work, some SSDs are created. To Identify input events from external actors into the system, calling upon system operations such as makeNewSale and enterItem. The SSDs illustrate these system operations, but hide the specific UI objects. Normally it will be objects in the UI layer of the system that capture these system operation requests, usually with a client GUI or Web page. UI layer objects will forward the request from the UI layer to the domain layer for handling.

Object Design Three ways to develop object design Code. Design-while-coding. From mental model to code Draw, then code. Drawing some UML on a whiteboard or UML CASE tool, then switching to a text-strong IDE (e.g., Eclipse or Visual Studio). Only draw. Somehow, the tool generates everything from diagrams.

Object Design There are two kinds of object models: Dynamic and Static. Dynamic models, such as UML interaction diagrams help design the logic, the behavior of the code or the method bodies. Static models, such as UML class diagrams, help design the definition of packages, class names, attributes, and method signatures (but not method bodies).