May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Use Case Model. C-S 5462 Use case model describes what the user expects the system to do –functional requirements may describe only the functionalities.
CS3773 Software Engineering Lecture 03 UML Use Cases.
Securing the Broker Pattern Patrick Morrison 12/08/2005.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Fall 2002 SJSU -- CmpE Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Stéphane Ducasse«ChapterNr».1 Arthur Riel Design Heuristics from Object-Oriented Design Heuristics by Arthur Riel Read the Heuristics… –Find reasons why.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
The Architecture Design Process
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
Copyright © Active Frameworks, Inc.. - All Rights Reserved - V2.0 Introduction - Page L1-1 PS95&96-MEF-L1-1 Dr. M.E. Fayad Creationa l Paradigm.
Object Oriented Analysis Process
Unified Modeling (Part I) Overview of UML & Modeling
The Relationships Between Classes & Objects Presented by Tim Sweeney.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
 2008 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
L8-S1 CRC Cards 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
 2008 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L6-1-S1Design Heuristics - 1 © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
Computer Systems & Architecture Lesson Software Product Lines.
Object-Oriented Analysis and Design
The chapter will address the following questions:
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented Design.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
111 Subsystems CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 7)
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
S.Ducasse Stéphane Ducasse 1 Design Heuristics.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
Object-Oriented Design Simple Program Design Third Edition A Step-by-Step Approach 11.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Copyright © Active Frameworks Inc. - All Rights Reserved - V2.0Design Pattern Catalog - Page L3-1 PS95&96-MEF-L10-1 Dr. M.E. Fayad Creationa.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Classes and Objects: The Building Blocks of the Object-Oriented Paradigm Presented by Tara Struble.
1/3/2016  1998-Present Fayad KSU – SWE Process and Modeling Software Process and Modeling Dr. M.E. Fayad, Professor Software Engineering Department, Room.
111 Subsystems CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 7)
Fall 2002 SJSU -- CMPE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
UML (Unified Modeling Language)
OBJECT-ORIENTED PATTERNS By: Peter Coad Presented by Peixin Chen.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
L3-S1Analysis Heuristics 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
CSCE 240 – Intro to Software Engineering Lecture 3.
Advanced Object-Oriented Analysis & Design
Software Connectors.
Distribution and components
OO Domain Modeling With UML Class Diagrams and CRC Cards
Software Patterns Dr. M.E. Fayad, Professor
Presentation transcript:

May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department of Computer Science & Engineering University of Nebraska, Lincoln Ferguson Hall, P.O. Box Lincoln, NE

L6-S2Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 2 Lesson 6: Object-Oriented Design Heuristics

L6-S3Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Lesson Objectives 3 Overview of Previous Lecture Understand what do we mean by heuristics Understand what is an object-oriented design heuristic? Discuss the following: – Macho Class Problem – Interesting Design Problems – Topology Which Needs Accessor Methods – The Common Traps of Controller Classes

L6-S4Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 4 CRC Cards General –Each class is described on a separate 3X5 or 4X6 card The cards are known as CRC card. They have 3 sections: –Class –Responsibilities –Collaborations ATM (role) Responsibility Collaboration Clients Server Access & modify account balance Account (role) Balance Inquiry Deposit Transaction Funds Transfer Withdrawal Transaction

L6-S5Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Class Name (role) - X Responsibility Collaboration Clients Server 1.Unique 2.One Responsibility 3.Within Context 4.Indicate the role of the class The clients of the named class (X) 4-5 interfaces Services provided by the named class (X) (1) (2) (3) (4) 5 Other Names: Interfaces Commands Requests Functions Methods Procedures Processes What are the good, bad, and ugly of the CRC cards?

L6-S6Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Pre- & Post-conditions Statements that guide you to do something. It is not a process. It is not a standards. It is not a methodology It is not a heuristic. Direction or information about something. 6 Guidelines

L6-S7Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad An OO design heuristic is a “rule-of-thumb”, not a rule. An OO design heuristic is something which makes a design “feel right” to its designer. An OO design heuristic is used to guide a designer in selecting the appropriate design choice from many possibilities. An OO design heuristic warns the designer of some impending doom when it is violated. 7 Object-Oriented Design Heuristics

L6-S8Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad While some design heuristic certainly imply a sense of priority, there cannot be a prioritized ordering of the entire list (in general). It is not possible to follow all heuristics in a design. They frequently have colliding interests such as extensibility versus complexity. A design heuristic will tell users of design patterns when a particular pattern needs to be applied. 8 Object-Oriented Design Heuristics

L6-S9Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad [Webster] A pattern is a fully realized form, original, or model accepted, or proposed for imitation. [Webster] A pattern is something regarded as normative example to be copied; archetype ; exemplar. [Alexander 79] A pattern is a solution to a problem in a context. [Alexander 79] A pattern has three parts: –Problem(s) –Context –Solution A pattern offers a workable solutions. Patterns are rules of thumbs that can be used again and again -- useful, practical “how-to” guideline. 9 Design Patterns: Properties & Definitions

L6-S10Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad [Gamma 95.] Design patterns identify, name, and describe common and recurring designs appearing frequently in object-oriented systems. [Gamma 95] You can think of a design pattern as a micro architecture that contributes to overall system architecture. Each design pattern tends to be relatively small in size and scope. [Coplien 92] Patterns are a way of describing, documenting, and creating system architectures for software. Patterns tend not to be domain specific. Patterns are one of the primary mechanisms that people use for passing on expertise to others. 10 Design Patterns: More Properties & Definitions

L6-S11Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Heuristic Properties: –A heuristic is a “rule-of-thumb but not a rule. –Heuristics attempt to capture the unknown “feels right” feature of good analysis, good design, good documentation, etc. –Heuristics are strongly related to patterns in that they provide the rational for improving a design from a worse pattern to a better one. –All of the interesting heuristics are qualitative in nature. –There are no useful quantitative heuristics 11 Object-Oriented Design Heuristics

L6-S12Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad The absence of quantitative heuristics leads us to conclude that OO design is not precise. Some amount of fuzziness is required and only qualitative heuristics can accommodate this constraints. For an example of this fuzziness consider the following two important design heuristics that play off each other in an attempt to model the top level view of a system –A designer should distribute system intelligence uniformly among the top level classes in the system –A designer should minimize the number of collaborations on the top level of the system. 12 Object-Oriented Design Heuristics

L6-S13Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad It is typical for designers to want the seemingly more useful quantitative metrics such as –A designer should have 4.6 top level classes per 1,000 lines of code. –A designer should have 35 to 45 percent of the relationships in a design be uses relationships. These heuristic are not useful and very misleading. 13 Object-Oriented Design Heuristics

L6-S14Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad What is an Object? An object will always have four facets: 1. Identity (this might be only its address in memory. 2. Attributes of its class (usually static) & values of those attributes (usually dynamic). 3. Behavior of its class (the implementor’s view) 4. Public interface of its class (user’s view) 14

L6-S15Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Classes & Objects: The Building Blocks of OO Paradigm Heuristic 2.1: All data should be hidden within its class. Heuristic 2.2: Users of a class must be dependent on its public interface, but a class should not be dependent on its users. Heuristic 2.3: Minimize the number of messages in the protocol of a class Heuristic 2.4: Implement a minimal public interface. Heuristic 2.5: Don’t put implementation details such as common-code private functions into the public interface of a class. 15

L6-S16Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Classes & Objects: The Building Blocks of OO Paradigm Heuristic 2.6: Don’t clutter the public interface of a class with items that users of that class are not able to use or are not interested in using. Heuristic 2.7: Classes should only exhibit nil or export coupling with other classes, that is, a class should only use operations in the public interface of another class or have nothing to do with that class. Heuristic 2.8: A class should capture one and only one key abstraction. 16

L6-S17Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Classes & Objects: The Building Blocks of OO Paradigm Heuristic 2.9: Keep related data and behavior in one place “localization” Heuristic 2.10: Spin off non-related information into another class (i.e., non-communicating behavior) Heuristic 2.11: Be sure the abstractions that you model are classes and not simply the roles objects play. 17

L6-S18Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad T/F statements 1. Objects should be intelligent agents 2. Type names an interface. 3. A valuable object works and plays well with others 4. Design patterns identify, name, and describe common and recurring designs appearing frequently in object-oriented systems. 5. Design patterns are domainless. Define: legacy systems, method, message, interface 18 Discussion Questions

L6-S19Design Heuristics - 1 May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Define: –Macho classes –Accessor Methods –Controller Classes –Classes & objects in UML 19 Questions for the Next Lecture