About this module. Object-oriented analysis and design. About this module. Analysis

Size: px
Start display at page:

Download "About this module. Object-oriented analysis and design. About this module. Analysis"

Transcription

1 About this module McGill ECE 321 Intro to Software Engineering Radu Negulescu Fall 2001 Object-oriented analysis and design The modules of an object-oriented program preserve state between calls. This is different from procedural programs, where the local variables of a procedure are lost when the procedure terminates. Analysis: transform a linear list of requirements into a structured model of the application. A.k.a. understanding Design: make implementation decisions to meet targets and optimize goals. Changeability, maintainability are elusive goals, but usually of highest importance. Design patterns: good opportunity to learn by example. Required reading: B&D 5.2, 5.3.1, , 5.5.5, ; 6.5.1; 7.5.1; Appendix A. OOAD Slide 2 About this module What is the point of the cover picture of [B&D]? Analysis Transform a list of requirements into a highly structured model of the application. A.k.a. understanding Analysis has a dual purpose: Understanding the problem at hand by building a compact, structured model. A side effect is cross-checking of elicited requirements: structuring is likely to detect inconsistencies and omissions/ambiguities. Communicating requirements to developers, without any unnecessary restrictions. This is a model of the problem, not just one solution. => Allow all reasonable solutions. => Typically, but not always, this means giving a black-box view over the system. => Include as many features as possible without introducing implementation bias. Make things as simple as possible, but no simpler. OOAD Slide 3 OOAD Slide 4

2 Object identification Half the battle in writing an object-oriented program is to identify a good set of classes, along with their responsibilities and collaborations. This is a highly iterative process: Draft, review, repeat. Many objects in an OO program tend to correspond to entities from the real world. Call them entity objects. E.g. time, location, map. In addition, other objects serve to define the boundary of the system. Call them boundary objects. E.g. menu, button, shopping cart, sensor status. Yet another common class of objects serve to control the interactions with the actors, usually by tracking the progress of a use case or a part of a use case. Call them control objects. E.g. user registration, phone connection. Natural language analysis Abbott s natural language analysis: often, objectoriented program elements can be identified by a grammatical analysis on text in a natural language. Proper noun: entity object, actor instance Common noun: class, actor, attribute Doing verb: operation, method Being verb: generalization Having verb: aggregation Modal verb: constraint Adjective: attribute Although Abbott s rules work in a large number of cases, they do suffer from limitations inherent to natural languages: Imprecision, dependency on style of writing. E.g. compare: the TV set shall allow a selection of channels the TV set shall allow selection of channels the TV set shall allow users to select channels. There are more nouns than relevant classes. E.g. minutes is as a noun, but it should be an attribute of a Time class. Sort out attributes, synonyms. OOAD Slide 5 OOAD Slide 6 Identifying entity objects Textual clues: a noun in the textual specification of a program can be an object (O), class (C), actor (A), attribute (F), synonym of another noun (S), or of no concern to the system (N). Example: A certain city hall (N) commissions your company (N) to develop RoadRunner (O), a web-based system (S RoadRunner) to allow the citizens (A) to report the presence (N) of potholes (C) in the public roads (C). A report (C) must contain the following information (N) for each reported pothole: size (N) of the pothole (width (F), depth (F) ), location (N) (street address (F) ), and, optionally, a textual comment (F). RoadRunner also displays the status (F) of the repair work (C) for each pothole, as determined by the dispatchers (A) from the city hall: under assessment (N), assigned, work in progress (N), finished. The repair status of each pothole is updated simultaneously in all reports containing that pothole, and can be viewed by the public (S citizen). Heuristics for identifying entity objects [B&D, p. 141]: almost the same as the initial analysis objects. Recurring nouns. Terms that need clarification. Real-world entities and processes tracked. Data sources or sinks. Avoid interface artifacts (boundary objects). Identifying boundary objects Track an actor and translate its interactions in an interface-neutral form. Initially, specify only a general level of user interface: Examples of objects specified at the analysis stage: form, screen, page, button. Examples of objects specified at the detailed design stage: drawing ruler, load command, etc. Example: the 321 course web page. To be specified at the analysis stage: page, hyperlink, frame. To be specified at the detailed design stage: welcome page, menu frame, content frame, lecture notes, image file. Other techniques are better suited for detailed design of the UI through trial and error (storyboards, mock up prototypes). Heuristics [B&D, p. 143]: System inputs: forms, windows. System outputs: notices, messages. Avoid visual aspects: maximize the freedom of the artistic designer. OOAD Slide 7 OOAD Slide 8

3 Identifying control objects Collect info from the boundary and dispatch it to the entity objects. Track status of interaction. Usually not mentioned in the problem description. Examples: Sequencing of forms, screens presented to user. Undo and history queues. Event listener objects. Dispatching info in a distributed system. Heuristics [B&D, p. 145]: Status of a use case. Status of an actor in a use case. User sessions. If unclear, revise the use case models. Identifying associations Possible starting point: sequence diagrams. One scenario for each use case, plus some secondary (exceptional) flows. Heuristics for identifying associations Natural language cues: Manages, reports to, is triggered by, talks to Aggregation: has, is part of, is contained in, includes Name associations and roles precisely. For each class, examine the sequence of associations that need to be traversed to reach an instance of that class. Eliminate redundant associations E.g. from [B&D] author document * writes 1 FieldOfficer EmergencyReport 1 reports 1 Incident 1 1 triggers Determine multiplicities only after the associations are stable. OOAD Slide 9 OOAD Slide 10 Identifying attributes Attributes are properties of individual objects. Only properties relevant to the system should be considered. Attributes represent the least stable part of the model, discovered or added late. Do not spend a lot of effort on them until validation of the analysis model. Pay more attention to entity attributes than control or boundary attributes. Heuristics: Examine possessive phrases. Think of stored state. Attributes are highly volatile, low risk. How should we organize development? CRC cards Object-oriented design is a highly iterative process. Several round-trips to optimize modularity and other design objectives. A good strategy is to stabilize a rough first-cut before the low-level details. First-cut of the object model: class names, responsibilities, and associations. CRC cards: class responsibility collaboration. 6x4 inch cards. Sizes, numbers of lines are deliberate. E.g. [Beck, Cunningham] OOAD Slide 11 OOAD Slide 12

4 Example: ATM software [Beck, Cunningham] Example: MVC [Beck, Cunningham] CRCs: OOAD Slide 13 OOAD Slide 14 Reviewing the analysis model Analysis is done incrementally and iteratively. Per use case / segment of functionality. Several review-and-revise cycles. The review needs focus on some key points. Here is a short list: Consistency between analysis model and use cases. For each use case, walk the model to ensure that all scenarios are represented. Does each object have the necessary associations to access related objects? For each object, attribute, association: which use cases access it? create it? set it? traverse it? Auxiliary flows: maintenance, error, start-up/shutdown, application-specific, work-specific, Description and naming of analysis model elements. Meaningful, understandable by users. Conformant to Abbott s rules. Uniform level of detail in the descriptions. Realism (feasibility): demonstrate by prototypes or feasibility studies. Novel features (not present in previous systems). Non-functional requirements. Design activities Design vs. analysis Analysis focuses on understanding the problem. Design focuses on finding a good solution. There is no general recipe for going from a problem statement to the design. However, we can apply: Heuristics, e.g. object identification. Pre-determined architectures. Components and libraries. Design patterns. OOAD Slide 15 OOAD Slide 16

5 System design Using the analysis model as a starting point, developers take implementation decisions to optimize design goals. System design comprises the following activities: Identifying design goals and constraints. Defining the architecture. Decomposing the system into subsystems. Selecting system-wide conventions and policies: Persistency Security Global control flow Start-up, shut-down, error handling Selecting reusable components, libraries, etc. Mapping to hardware. (Will discuss in the Architecture module.) Object design Object design closes the gap between the application model and the deployment platform. The following activities are typically performed at this level: Service specification: precisely describe interfaces (see Correctness, Design modules). Component selection: find pre-made parts that are suitable for the functionality of the system. Object model restructuring: optimize maintainability. Reduce multiplicity. Implement binary associations as references. Merge similar classes. Collapse trivial classes into attributes. Split complex classes. Object model optimization: maximize performance. Use different algorithms / data structures. Add or remove redundant associations. Add derived attributes. Open up the architecture. Difficulty: many factors conspire to introduce inconsistencies in a software system. Notice a trade-off between performance and maintainability. OOAD Slide 17 OOAD Slide 18 Realizing associations Several options to implement associations Offer a tradeoff of maintainability/changeability vs. asymptotic performance. Unidirectional: Use references Collapse the target class into an attribute of the source class. Bi-directional: References both ways, plus set methods that access the partner class s attribute. Or, collapse one class into an attribute of the other. One-to-one, many-to-one, one-to-many, many-tomany. The to-one sides are easy to implement. The to-many sides can be implemented as a collection of references Array or Vector for ordered associations Hashtable for qualified associations Complex associations may justify implementations as separate objects. Realizing associations Bi-directional associations present maintainability challenges. Example [B&D, fig. 7.22]: =RRP,Q$FWLRQ WDUJHW0DS0DS$UHD ГJHW7DUJHW0DS ГVHW7DUJHW0DSPDS 0DS$UHD ]RRP,Q=RRP,Q$FWLRQ ГJHW=RRP,Q$FWLRQ ГVHW=RRP,Q$FWLRQDFWLRQ FODVVÛ0DS$UHD H[WHQGVÛ-3DQHO ^ SULYDWHÛ=RRP,Q$FWLRQÛ]RRP,Q Û2WKHUÛPHWKRGVÛRPLWWHGÛ YRLGÛVHW=RRP,Q$FWLRQ DFWLRQ=RRP,Q$FWLRQÛ^ LIÛ]RRP,Q Ü ÛDFWLRQÛ^ ]RRP,Q ÛDFWLRQ ]RRP,QVHW7DUJHW0DSWKLV FODVVÛ=RRP,Q$FWLRQ H[WHQGVÛ$EVWUDFW$FWLRQ ^ SULYDWHÛ0DS$UHDÛWDUJHW0DS Û2WKHUÛPHWKRGVÛRPLWWHGÛ YRLGÛVHW7DUJHW0DSPDS0DS$UHDÛ^ LIÛWDUJHW0DS Ü ÛPDSÛ^ WDUJHW0DS ÛPDS WDUJHW0DSVHW=RRP,Q$FWLRQWKLV OOAD Slide 19 OOAD Slide 20

6 Realizing associations Realizing associations Reducing multiplicity by qualifiers Associations as separate objects E.g. [B&D]: &DU SDUWV 3DUW Object design model before transformation date author CPUtime getoutline() SimulationRun class Car { Vector parts; EmissionSource * 1 SimulationResult } Object design model after transformation &DU 3DUW1DPH 3DUW SDUWV SimulationRun date author CPUtime getoutline() 1 1 class Car { EmissionSource * 1 SimulationResult Hashtable parts; } OOAD Slide 21 OOAD Slide 22 Object behavior State charts can help define the behavior of single objects, interactions with the actors, etc. Building a state chart for every object is overkill. However, building state charts is justified for certain intricate objects, classes, or interfaces. E.g. Applet life cycle: init destroy Inactive start stop Active Design patterns Pattern, in the context of software engineering: partial solution to a common software development problem. Excellent examples of design for change Distilled experience of software designers In object-oriented design: a pattern is an abstraction of a collaboration. Problem: conditions to be met where it makes sense to apply the pattern; constraints, optimization goals ( forces ) Solution: small collection of classes and their relationships. Not all details are represented. Consequences: results and tradeoffs. Beyond object-oriented design: Testing patterns Process modeling patterns CM patterns OOAD Slide 23 OOAD Slide 24

7 Composite pattern Leaf Component Composite Organizing recursive data structures. Examples: Recursive pictures. File and directory hierarchy. * Entry File * Directory 0..1 Example: recursive pictures The following example illustrates how to combine inheritance and encapsulation for modular design. Pictures in a document editor can be image files, text boxes, or contain other pictures recursively. Several possible structures are shown. Can you comment on their modularity properties (cohesion, decoupling)? 3LFWXUH 7H[W,PDJH 3LFWXUH 3LFWXUH 7H[W,PDJH &RQWDLQHU Notice: Multiplicity of the aggregation. Some things are left unspecified Patterns are rarely encountered in pure form Recursive implementation of each service. E.g. move image. De-coupling of traversal and storage mechanisms. 7H[W%R[ 7H[W%R[,PDJH,PDJH 3LFWXUH &RQWDLQHU OOAD Slide 25 OOAD Slide 26 Observer pattern Proxy pattern 6XEMHFW DWWDFKÛ2EVHUYHU GHWDFKÛ2EVHUYHU QRWLI\Û IRUÛDOOÛVÛLQÛVXEVFULEHUÛOLVWÛ ^ VXSGDWHÛ VXEVFULEHU 2EVHUYHU XSGDWHÛ &OLHQW 6HUYHU RSHUDWLRQ &RQFUHWH6XEMHFW VXEMHFW6WDWH VHW6WDWH JHW6WDWH SXEOLVKHU &RQFUHWH2EVHUYHU REVHUYHU6WDWH XSGDWHÛ 3UR[\6HUYHU RSHUDWLRQ 5HDO6HUYHU RSHUDWLRQ REVHUYHU6WDWH ÛSXEOLVKHUJHW6WDWH Decoupling model from views: Observer pattern. Examples: Listeners in Java (not pure observer pattern). Discussion: Decouple model from views, as in the MVC architecture. However, does NOT decouple views from model. A.k.a. Publisher-Subscriber. Examples: Web pages cache stored at the browser s site. Firewall proxy. Discussion: Save expensive operations Protection OOAD Slide 27 OOAD Slide 28

8 Abstract factory pattern MotifFactory createwindow()... AbstractFactory createwindow()... MacFactory createwindow()... MotifWindow AbstractWindow MacWindow Using graphical widgets regardless of the operating system. Example: Encapsulating windowing styles. Discussion Shield an application from platform-specific classes. Each platform is represented by a specific factory class inheriting from the abstract factory class, that returns specific widgets inheriting from the abstract widgets classes. Other patterns Creational: abstract the instantiation process. Abstract factory: encapsulating platforms Structural: describe ways to compose objects. Adapter: wrapping around legacy code Composite: representing recursive hierarchies Bridge: separating an interface from alternate implementations Proxy: encapsulating expensive objects Façade: encapsulating subsystems Behavioral: abstract behavior (algorithms, communication, etc.) Observer: decoupling entities from views Strategy: encapsulating algorithms Command: encapsulating control More: [Gamma et. al. Design patterns: elements of reusable object-oriented software. Addison- Wesley, 1994] OOAD Slide 29 OOAD Slide 30 Textual clues for finding patterns Design patterns are another great source of object identification. Use objects that appear in design patterns. The natural language statement of the problem can indicate a design pattern. An X may contain several sub-x ; Shall implement a hierarchy of X -> composite pattern. Separate data from its views -> observer pattern. Separate policy from its implementation -> strategy pattern. Work with many databases from different vendors -> bridge pattern. Cache data items -> proxy pattern. OOAD Slide 31

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation Progress Report Object-Oriented Software Development: Requirements elicitation and analysis CS 4354 Fall 2012 Jill Seaman So far we have learned about the tools used in object-oriented design and implementation

More information

Introduction to Software Engineering: Analysis

Introduction to Software Engineering: Analysis Introduction to Software Engineering: Analysis John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from of Bruegge & DuToit 3e, Ch 5 and UML Distilled by Martin

More information

Outline of Lecture 3. Identifying Objects. Requirements Analysis Overview. Actors, Objects and Classes

Outline of Lecture 3. Identifying Objects. Requirements Analysis Overview. Actors, Objects and Classes Identifying Objects Software Requirements and Design CITS 4401 Lecture 3 Outline of Lecture 3 What is an object? Identifying Grammatical Analysis CRC method B&D heuristics for object identification Requirements

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development Progress Report Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) CS 4354 Summer II 2014 Jill Seaman So far we have learned about the tools used in object-oriented

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/29/2015 http://cs.gsu.edu/~ncasturi1 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation)

More information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Object Design II: Design Patterns

Object Design II: Design Patterns Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game

More information

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

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Unit Wise Questions. Unit-1 Concepts

Unit Wise Questions. Unit-1 Concepts Unit Wise Questions Unit-1 Concepts Q1. What is UML? Ans. Unified Modelling Language. It is a Industry standard graphical language for modelling and hence visualizing a blue print of all the aspects of

More information

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

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Design patterns are partial solutions to common

Design patterns are partial solutions to common Design Patterns Page 497 Thursday, October 14, 1999 2:35 PM A P P E N D I X A Design Patterns Design patterns are partial solutions to common problems, such as separating an interface from a number of

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Design Patterns. Gunnar Gotshalks A4-1

Design Patterns. Gunnar Gotshalks A4-1 Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem

More information

17. GRASP: Designing Objects with Responsibilities

17. GRASP: Designing Objects with Responsibilities 17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding

More information

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Credit where Credit is Due. Goals for this Lecture. Introduction to Design Credit where Credit is Due Lecture 17: Intro. to Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material presented in this lecture is taken

More information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The Strategy Pattern Design Principle: Design Principle: Design Principle: Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

6.3 Patterns. Definition: Design Patterns

6.3 Patterns. Definition: Design Patterns Subject/Topic/Focus: Analysis and Design Patterns Summary: What is a pattern? Why patterns? 6.3 Patterns Creational, structural and behavioral patterns Examples: Abstract Factory, Composite, Chain of Responsibility

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns

More information

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer Unit-1 Concepts Oral Question/Assignment/Gate Question with Answer The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering Object Management Group (OMG)

More information

Object-Oriented Analysis and Design Using UML (OO-226)

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

SDC Design patterns GoF

SDC Design patterns GoF SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating

More information

Lecture 20: Design Patterns II

Lecture 20: Design Patterns II Lecture 20: Design Patterns II Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.

More information

SOFTWARE PATTERNS. Joseph Bonello

SOFTWARE PATTERNS. Joseph Bonello SOFTWARE PATTERNS Joseph Bonello MOTIVATION Building software using new frameworks is more complex And expensive There are many methodologies and frameworks to help developers build enterprise application

More information

Requirements Analysis. SE 555 Software Requirements & Specification

Requirements Analysis. SE 555 Software Requirements & Specification Requirements Analysis Goals of Requirements Analysis Create requirements containing sufficient detail and of high enough quality to allow realistic project planning as well as successful design and implementation.

More information

A Rapid Overview of UML

A Rapid Overview of UML A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system

More information

Object Relationships

Object Relationships Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of

More information

Design Patterns. CSE870: Advanced Software Engineering (Design Patterns): Cheng

Design Patterns. CSE870: Advanced Software Engineering (Design Patterns): Cheng Design Patterns Acknowledgements Materials based on a number of sources D. Levine and D. Schmidt. Helm Gamma et al S. Konrad Motivation Developing software is hard Designing reusable software is more challenging

More information

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational

More information

Work groups meeting 3

Work groups meeting 3 Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 7 Integrated Object-Oriented Methodologies: OPEN and FOOM 1 Object-oriented Process, Environment and Notation (OPEN) First introduced in

More information

Design Patterns! Acknowledgements!

Design Patterns! Acknowledgements! Design Patterns! Acknowledgements! Materials based on a number of sources! D. Levine and D. Schmidt!. Helm! Gamma et al! S. Konrad! (Cheng) 1 Motivation! Developing software is hard! Designing reusable

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Some Terms: Architecture the manner in which the components of a computer

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Chapter 5, Analysis: Object Modeling

Chapter 5, Analysis: Object Modeling Chapter 5, Analysis: Object Modeling Résumé Maintenant: Modélisation des objets du domaine La partie statique (diagramme de classe) Les activités durant la modélisation des objets L identification des

More information

Object-Oriented Design

Object-Oriented Design 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

More information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 0 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name : DESIGN PATTERNS Course Code : A7050 Class : IV B. Tech

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

Requirements and Design Overview

Requirements and Design Overview Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions

More information

Chapter 5, Object Modeling

Chapter 5, Object Modeling Chapter 5, Object Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Where we are, where we are going problem statement Requirements elicitation Requirements Specification nonfunctional

More information

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.

More information

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Design Engineering. Dr. Marouane Kessentini Department of Computer Science Design Engineering Dr. Marouane Kessentini Department of Computer Science 1 Design Starts mostly from/with requirements (evolving mostly from functionalities and other non functional characteristics) How

More information

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your

More information

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) System Design Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) C 870: Advanced Software Engineering (System Design): Cheng Design: HOW to implement a system Goals: Satisfy the

More information

Presenter: Dong hyun Park

Presenter: Dong hyun Park Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches Introduction to Software Engineering ECSE-321 Unit 9 Architectural Design Approaches Requirement Elicitation Analysis (Software Product Design) Architectural Design Detailed Design Architectural Design

More information

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science Lesson 11 INTRODUCING UML W.C.Udwela Department of Mathematics & Computer Science Why we model? Central part of all the activities We build model to Communicate Visualize and control Better understand

More information

Object-Oriented Oriented Programming

Object-Oriented Oriented Programming Object-Oriented Oriented Programming Composite Pattern CSIE Department, NTUT Woei-Kae Chen Catalog of Design patterns Creational patterns Abstract Factory, Builder, Factory Method, Prototype, Singleton

More information

CS342: Software Design. November 21, 2017

CS342: Software Design. November 21, 2017 CS342: Software Design November 21, 2017 Runnable interface: create threading object Thread is a flow of control within a program Thread vs. process All execution in Java is associated with a Thread object.

More information

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

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced

More information

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

Think of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern

Think of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern Think of drawing/diagramming editors ECE450 Software Engineering II Drawing/diagramming editors let users build complex diagrams out of simple components The user can group components to form larger components......which

More information

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

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification

More information

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000 Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design

More information

Chapter 5: Structural Modeling

Chapter 5: Structural Modeling Chapter 5: Structural Modeling Objectives Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. Understand the processes used to create CRC cards, class

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency A formal design process Josh Bloch Charlie Garrod Darya Melicher 1 Administrivia Homework 2 feedback in your GitHub repository Homework

More information

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT) OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE () Ahmed Hayajneh, May 2003 1 1 Introduction One of the most popular object-oriented development techniques today is the Object Modeling

More information

CSE 403 Lecture 8. UML Class Diagrams. Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403

CSE 403 Lecture 8. UML Class Diagrams. Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403 CSE 403 Lecture 8 UML Class Diagrams Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403 http://www.cs.washington.edu/403/ See also: Object-Oriented Design Heuristics by Arthur

More information

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed The Software Design Process CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed Outline Challenges in Design Design Concepts Heuristics Practices Challenges in Design A problem that can only be defined

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the

More information

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS CS6502 - OBJECT ORIENTED ANALYSIS AND DESIGN L T P C 3 0 0 3 UNIT I- UML DIAGRAMS Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

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

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp6471-fall2011.html Week 7 Outline Software Architecture Layered Architecture Model-View-Control

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

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

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1 Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 6, System Design Lecture 1 Design There are two ways of constructing a software design: One way is to make it so simple

More information

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester Design Patterns Comp2110 Software Design Department of Computer Science Australian National University Second Semester 2005 1 Design Pattern Space Creational patterns Deal with initializing and configuring

More information

Introduction to Software Engineering: Object Design I Reuse & Patterns

Introduction to Software Engineering: Object Design I Reuse & Patterns Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of

More information

Design Patterns. An introduction

Design Patterns. An introduction Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at

More information

Composite Pattern. IV.4 Structural Pattern

Composite Pattern. IV.4 Structural Pattern IV.4 Structural Pattern Motivation: Compose objects to realize new functionality Flexible structures that can be changed at run-time Problems: Fixed class for every composition is required at compile-time

More information

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

UNIT V ********************************************************************************************* Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common

More information

Architecture and Design Evolution

Architecture and Design Evolution Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS UNIT 1 UML DIAGRAMS Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams Interaction Diagrams State Diagrams Activity Diagrams Package, component and Deployment Diagrams. INTRODUCTION

More information

Design patterns. OOD Lecture 6

Design patterns. OOD Lecture 6 Design patterns OOD Lecture 6 Next lecture Monday, Oct 1, at 1:15 pm, in 1311 Remember that the poster sessions are in two days Thursday, Sep 27 1:15 or 3:15 pm (check which with your TA) Room 2244 + 2245

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

2.1 Design Patterns and Architecture (continued)

2.1 Design Patterns and Architecture (continued) MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Timed Automata

More information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN PATTERN - INTERVIEW QUESTIONS DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

Lecture 17: Patterns Potpourri. Copyright W. Howden 1

Lecture 17: Patterns Potpourri. Copyright W. Howden 1 Lecture 17: Patterns Potpourri Copyright W. Howden 1 GOF Patterns GOF: Gamma, Helm, Johnson, Vlissides Design Patterns, Addison Wesley, 1995 Patterns we have seen so far Creational Patterns e.g. Factory,

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer

More information