OO Methodology OO Architecture.

Slides:



Advertisements
Similar presentations
By Philippe Kruchten Rational Software
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
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.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Unified Modeling (Part I) Overview of UML & Modeling
© Copyright Eliyahu Brutman Programming Techniques Course.
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
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
What is Software Architecture?
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.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
An Introduction to Software Architecture
Architecting Web Services Unit – II – PART - III.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Modelling Class T16: Conceptual Modelling – Architecture Image from
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
ניתוח מערכות מידע 1 Unified Modeling Language (UML) § § The Unified Modeling Language (UML) is the industry-standard language for: Specifying, Visualizing,
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Implementation Diagrams
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
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.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
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.
4+1 View Model of Software Architecture
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Architecting Web Services
Architecting Web Services
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
4+1 View Model of Software Architecture
Recall The Team Skills Analyzing the Problem (with 5 steps)
What is an Architecture?
Figure 30.2 Layers in NextGen
Introduction to Design Patterns Part 1
Software Architecture
CIS 375 Bruce R. Maxim UM-Dearborn
Starting Design: Logical Architecture and UML Package Diagrams
Design and Implementation
IMPORTANT NOTICE TO STUDENTS:
Design Tips.
Analysis models and design models
An Introduction to Software Architecture
The Islamia University Bahawalpur
4+1 View Model of Software Architecture
What is an Architecture?
4+1 View Model of Software Architecture
Design Yaodong Bi.
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

OO Methodology OO Architecture

Table of Contents Definition of Software Architecture Architecture Dimensions and Views Architectural Patterns Architectural Pattern: Layers Partial Logical View of NextGen POS Inter-Layer and Inter-Package Dependency Inter-Layer and Inter-Package Interaction Packages vs Subsystems Session Facades and Application Layer Logical vs Process and Deployment Views Implementation View Deployment View

Definition of Software Architecture RUP definition of architecture is The organization of a software system The selection of structural elements and their interfaces by which the system is composes, together with their behavior as specified in the collaboration among those elements The composition of these elements into progressively larger subsystems The architectural style that guides this organization, these elements and their interfaces, their collaboration, and their composition Buschmann et al. A software architecture is a description of the subsystems and components of a software system and the relationships between them. Subsystems and components are typically specified in different views to show the relevant functional and nonfunctional properties of a software system. The software architecture is the result of the software design activity

Architecture Dimensions and Views The 4+1 View Model of Architecture (P. Kruchten95) The Logical View addresses the functional requirements of the system an abstraction of design model UML package, class and interaction diagrams The Implementation View describes the organization of static software modules(source code, data files, components, executables etc.) UML package and component diagrams The Process View addresses the concurrent aspects of the system at runtime, task, threads or processes as well as their interactions. allocation of logical elements to them UML class and interaction diagrams Logical View Implementation Process Deployment Use-Case

Architecture Dimensions and Views Deployment View addresses physical deployment of processes and components to processing nodes and the network configuration between nodes UML deployment diagrams Use Case View describes the most architecturally significant use cases and their non-functional requirements. UML use case diagrams Models and Views A model is a complete representation of the system (at least in one aspect) Architectural views focuses only on what is architecturally significant. “not all design is architecture” Architectural views are like slices cut through the various models, illuminating only the important, significant elements of the models. Architecturally significant elements has a wide impact on the structure of the system and on its performance, robustness, and scalability etc. major use cases major classes architectural mechanisms patterns and frameworks major processes or threads etc.

Architectural Patterns Three types of Patterns [Buschmann et.al. 1996] Architectural styles Design Patterns Idioms Architectural Styles related to the large-scale and coarse-grained design typically applied when the major structures and connections are established expresses a fundamental structural organization schema for software system Example: Layers Pipes and Filters Blackboard Broker MVC related to the small and medium-scale design of objects and frameworks Example: Singleton, Proxy, Command, Adapter, Facade, Strategy etc. language or implementation-oriented low-level design solutions Example: Canonical forms, Java maxim

Architectural Pattern: Layers Layer pattern organize the large-scale logical structure of a system into discrete layers of distinct, related responsibilities with a clean, cohesive separation of concerns

Partial Logical View of NextGen POS

Inter-Layer and Inter-Package Dependency

Inter-Layer and Inter-Package Dependency

Inter-Layer and Inter-Package Interaction To understand the dynamics of how objects across the layers connect and communicate Illustrate architecturally significant scenarios Emphasizes cross-boundary connections

Packages vs Subsystems is a coherent piece of a system that can be treated as an abstract single unit can be modeled both as a package and as a class has a behavior and a set of interfaces Facade a subsystem provides a public facade object outside the subsystem a facade object for a entire system system-wide facade vs session facade

Session Facades and Application Layer application layer contains objects responsible for knowing the session state of clients, mediating between the presentation and domain layers When multiple user interfaces will be used When in a distributed system, domain layer is on a different node than presentation layer and shared by multiple clients When there is a defined workflow in terms of the controlled order of windows or web pages that must be presented

Upward Collaboration with Observer Observer pattern is used for domain objects to communicate upward with the presentation layer, where as Facade pattern is used for downward collaboration

Logical vs Process and Deployment Views The architectural layers are a logical view of the architecture, not a deployment view of elements to processes and processing nodes There are many ways to slice and dice these logical layers for deployment depending on the platform

<<database>> Physical Views Physical views include Implementation view Deployment view Implementation View models the components in a system, that is, software units from which the application is constructed, as well as their dependencies models the assignment of classes and other model elements to components displayed on component diagrams <<database>> TicketDB CreditCardCharges status charge purchase groupSales TicketSeller ManageInterface indivisualSales subscriptionSales KioskInterface ClerkInterface

<<database>> Physical Views Deployment View depicts the run-time architecture of processors, devices and the software components that execute in this architecture physical description of the system topology, describing the structure of the hardware units and the software that execute on each unit represents the arrangement of run-time component instances and/or objects on node instances 1 CreditCardCharges ManageInterface TicketSeller <<database>> TicketDB TicketServer 1 1 * * KioskInterface ClerkInterface Kiosk SalesTerminal