About this module. Object-oriented analysis and design. About this module. Analysis
|
|
- Hugo Lambert
- 5 years ago
- Views:
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 CS 4354 Fall 2012 Jill Seaman So far we have learned about the tools used in object-oriented design and implementation
More informationIntroduction 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 informationOutline 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 informationProgress 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 informationSoftware 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 informationDesign 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 informationObject-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 informationObject 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 informationModellistica 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 informationSoftware 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 informationKeywords: 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 informationUnit 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 informationIn 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 information1 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 informationUnit 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 informationThe 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 informationDesign 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 informationApplication 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 informationIdioms 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 informationDesign 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 information17. 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 informationCredit 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 informationThe 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 informationCAS 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 informationAppendix 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 information6.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 informationTrusted 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 informationOral 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 informationObject-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 informationSDC 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 informationLecture 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 informationSOFTWARE 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 informationRequirements 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 informationA 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 informationObject 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 informationDesign 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 informationEPL 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 informationWork 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 informationSoftware 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 informationDesign 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 informationSocket 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 informationSoftware 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 informationChapter 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 informationSoftware 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 informationChapter 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 informationObject-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 informationINSTITUTE 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 informationObject-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 informationRequirements 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 informationChapter 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 informationDesign 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 informationDesign 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 informationFinal 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 informationSystem 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 informationPresenter: 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 * **********************************
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 informationIntroduction 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 informationLesson 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 informationObject-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 informationCS342: 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 informationChapter 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 informationDesign 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 informationSE 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 informationThink 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 informationComponent 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 informationDesign 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 informationChapter 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 informationPrinciples 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 informationOBJECT-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 informationCSE 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 informationThe 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 informationAn 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 informationOBJECT 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 informationCHAPTER 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 informationCSCD01 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 informationDesign 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 informationCOMP 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 informationChapter 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 informationPatterns 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 informationLectures 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 informationUNIT 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 informationObject-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 informationDesign 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 informationIntroduction 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 informationCAS 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 informationDesign 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 informationComposite 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 informationUNIT 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 informationArchitecture 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 informationVEL 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 informationDesign 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 informationTopics 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 information2.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 informationDESIGN 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 informationSoftware 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 informationSoftware 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 information06. 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 informationLecture 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 informationCSCU9T4: 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 informationGoal: 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