Object-Oriented Design

Similar documents
Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Patterns in Software Engineering

Chapter 8: Class and Method Design

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Object-Oriented Design

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Object Orientated Analysis and Design. Benjamin Kenwright

UNIT V *********************************************************************************************

Chapter 5 Object-Oriented Programming

Introduction to Unified Modelling Language (UML)

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

INTERNAL ASSESSMENT TEST III Answer Schema

Software Development Methodologies

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Object-Oriented Systems Analysis and Design Using UML

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

University of Calgary Department of Electrical and Computer Engineering. SENG : Object Oriented Analysis and Design Behrouz Homayoun Far

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

Software Development. Modular Design and Algorithm Analysis

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

CHAPTER 9 DESIGN ENGINEERING. Overview

Software Design And Modeling BE 2015 (w. e. f Academic Year )

What about Object-Oriented Languages?

Engineering Design w/embedded Systems

Patterns and Testing

Basic Structural Modeling. Copyright Joey Paquet,

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

SEEM4570 System Design and Implementation. Lecture 11 From Design to Implementation

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

Lecture 13 Introduction to Software Architecture

Patterns in Software Engineering

18-Design. Analysis and Design Workflow. Worker Responsibilities. So what do we do next? CMPSCI520/620 Design. Rick Adrion 2003 (except where noted) 1

SE 1: Software Requirements Specification and Analysis

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Topic : Object Oriented Design Principles

A UML 2 Profile for Variability Models and their Dependency to Business Processes

CHAPTER 5 GENERAL OOP CONCEPTS

What are the characteristics of Object Oriented programming language?

Enterprise Architect. User Guide Series. UML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Object Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

06. Analysis Modeling

Chapter 1: Principles of Programming and Software Engineering

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL

Computer Programming II Python

Software Service Engineering

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)

Model Driven Development Unified Modeling Language (UML)

Object-Oriented Design

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

Inheritance and Polymorphism

CSE 401/M501 Compilers

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

Experiment no 4 Study of Class Diagram in Rational Rose

Software Design Heuristics

Object-Oriented Design and Modeling Using the UML

Introduction to UML. Danang Wahyu utomo

OMG Modeling Glossary B

Darshan Institute of Engineering & Technology for Diploma Studies

JOURNAL OF OBJECT TECHNOLOGY

Chapter 1: Programming Principles

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

UML Profiles Radovan Cervenka

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

Unified Modeling Language (UML)

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

21) Functional and Modular Design

Enterprise Architect Training Courses

Goals of the Lecture OO Programming Principles

Architecture and the UML

21) Functional and Modular Design

Inheritance Metrics: What do they Measure?

Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

More On inheritance. What you can do in subclass regarding methods:

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

From Analysis to Design. LTOOD/OOAD Verified Software Systems

Lecture 16 Common Information Model

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

Computer Programming II C++ (830)

Enterprise Architect. User Guide Series. SysML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Conceptual Data Modeling by David Haertzen

3. UML Class Diagrams Page 1 of 15

Unified Modeling Language (UML) Class Diagram

Index. : (colon), 80 <<>> (guillemets), 34, 56

Activity Diagram Written Date : September 02, 2016

StarUML Documentation

OBJECT ORIENTED MODELLING & DESIGN 1

MCQS for Midterm cs504 Combined by Anees Ahmad

Transcription:

Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1

Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use case Analyze a class Analyze a package 2

Packages The package is the UML mechanism for grouping things. Packages serve many purposes: they group semantically related elements; they provide units of configuration management and parallel work; they provide an encapsulated namespace in which all names must be unique - to access an element within the namespace you must specify both the element name and the namespace name. Every model element is owned by one package: the packages form a hierarchy; the root package may be stereotyped «toplevel»; by default, model elements are placed in the «toplevel» package. 3

Package Visibility and Stereotypes Package elements may have visibility: visibility is used to control the coupling between packages; there are two levels of visibility: public (+) - elements are visible to other packages; private (-) - elements are completely hidden. Package stereotypes: «Framework»- a package that contains model elements that specify a reusable architecture; «modellibrary»- a package that contains elements that are intended to be reused by other packages. A package defines an encapsulated namespace: use qualified names to refer to elements in other packages, for example: Library::Users::Librarian 4

Packages: Example 5

Nested Packages The inner package can see all of the public members of its outer packages; The outer package can't see any of the members of its inner packages unless it has an explicit dependency on them (usually «access» or «import») this allows you to hide implementation details in nested packages. Library::Users::Librarian 6

Package Dependencies A dependency relationship between packages indicates that the client package depends in some way on the supplier package. «use» (default) - an element in the client package uses a public element in the supplier package. «import» - public elements of the supplier namespace are added as public elements to the client namespace. Elements in the client can access all public elements in the supplier by using unqualified names. «access» - public elements of the supplier namespace are added as private elements to the client namespace. Elements in the client can access all public elements in the supplier by using unqualified names. «trace» - the client is a historical development of the supplier. This usually applies to models rather than elements. «merge» - public elements of the supplier package are merged with elements of the client package. Only used in metamodeling. 7

Package Dependencies 8

Relationship Transitivity Transitivity: If A has a relationship to B and B has a relationship to C, then A has a relationship to C. «import» is transitive. «access» is not transitive. 9

Package Generalization Very similar to class generalization; The child packages: inherit elements from their parent package; can add new elements; can override parent elements. 10

Architectural Analysis and Package Analysis identify subsystem architecture; partition cohesive sets of analysis classes into analysis packages; layer analysis packages according to their semantics; attempt to minimize coupling by: minimizing package dependencies; minimizing the number of public elements in all packages; maximizing the number of private elements in all packages. 11

Finding Analysis Packages Examine subsystems. Examine analysis classes - look for: cohesive clusters of closely related classes; inheritance hierarchies; classes are most closely related by (in order) inheritance, composition, aggregation, dependency. Examine use cases: clusters of use cases that support a particular business process or actor may have analysis classes that should be packaged together; related use cases may have analysis classes that should be packaged together; be careful - analysis packages often cut across use cases! Refine the package model to maximize cohesion within packages and minimize dependencies between packages by: moving classes between packages; adding packages; removing packages; remove cyclic dependencies by merging packages or by splitting them. 12

Finding Analysis Packages 13

Eliminating Cyclic Package Dependencies 14

Reference Arlow, J., Neustadt, I., UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2 nd Ed. Addison-Wesley, 2005. 15