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
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Programming Logic and Design Fourth Edition, Introductory
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L3-5c-S1 Object Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
L16-S1 Object Diagrams 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L5-S1 Software StabilitySJSU – CmpE © M.E. Fayad Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
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.
L21-S1 Model-Based Arch SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Lecture 23: Software Architectures
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.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
L6-1-S1Design Heuristics - 1 © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
MIS 710 Module 0 Database fundamentals Arijit Sengupta.
Introduction To System Analysis and design
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
CLEANROOM SOFTWARE ENGINEERING.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Object Oriented Analysis and Design Introduction.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
L2-S1Modeling 2003 SJSU -- CMPE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
Requirements Engineering Requirements Elicitation Process Lecture-8.
L1-S1Introduction 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Introduction To System Analysis and Design
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CSE 219 Computer Science III Program Design Principles.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
The Systems Development Life Cycle
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Software Engineering, Lecture 4 Mohamed Elshaikh.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
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.
Operating Systems: Wrap-Up Questions answered in this lecture: What is an Operating System? Why are operating systems so interesting? What techniques can.
1/3/2016  1998-Present Fayad KSU – SWE Process and Modeling Software Process and Modeling Dr. M.E. Fayad, Professor Software Engineering Department, Room.
Fall 2002 SJSU -- CMPE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
L3-S1Analysis Heuristics 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
Chapter ? Quality Assessment
Model-Driven Analysis Frameworks for Embedded Systems
Software System Engineering
Algorithms and Problem Solving
Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Component Based & Software Reuse
Top-Down Design & JSP Skill Area Part D
Software Systems Engineering
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

L3-S2Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 2 Lesson 3: Analysis Heuristics

L3-S3Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Lesson Objectives 3 Overview of previous lectures. Understand the analysis heuristics –Go Beyond the Problem Domain –Speculate About Likely Changes –Separate General Functionality from Specific Policy –Object should have Cohesive Interfaces –Objects Should Be Intelligent Agents –Objects Should Export Services –Avoid “Object Machismo”

L3-S4Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad RA Design Code Test Deploy 4 Overview: Life Cycle What How Build Test Use What is the customer really wants? How – the best solution How do we construct (implement) the system Test - Are customer requirements testable? - Does the how logically follow from what? - Does the built system do what it is suppose to do? How do we enhance &/or repair the built system?

L3-S5Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad AnalysisDesign What is the problem?How to solve the problem? Problem SpaceSolution Space Mostly “one” ProblemMany Solutions 5 Overview: Analysis vs. Design

L3-S6Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Practical Concrete Action Can be measured Repeatable Tailorable Must be documented Hierarchical Specify who, what, when, how and ignore the why? 6 Overview: Process Properties

L3-S7Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Simple Complete (most likely to be correct) Stable to technological changes Testable Easy to understand Visual or graphical 7 Overview: Model Properties

L3-S8Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad A system structure is based on the “Real World”, “locks in” today’s problem domain relationships. This makes it difficult to adapt the system to future requirements. Look for relationships and generalizations that transcend the current problem domain –Ask “What is it?” 8 Heuristic #1: Go Beyond the Problem Domain

L3-S9Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Build these into the analysis model Developing an adaptable architecture does not happen just because you are using OOD and/or C++ (any more than extensibility or reuse occur automatically) 9 Heuristic #1: Go Beyond the Problem Domain Generalize Early & Generalize Vigorously

L3-S10Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad The “Real World” is the best model of today but it only hints at what tomorrow will bring Basic for speculation –Changing user requirements –Changing customer base –Competitive products –changing technology 10 Heuristic #2: Speculate About Likely Changes

L3-S11Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Build the analysis model so it can adapt to these likely changes You do not have to be 100% correct. Developing an adaptable architecture does not happen just because you are using OOD and/or C++ (any more than extensibility or reuse occur automatically) – Exs: Hooks, HotSpots, Design Patterns 11 Heuristic #2: Speculate About Likely Changes

L3-S12Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Place general functionality in entity objects (class) –Entity object (class) will now be more reusable. Place specific policy in control objects (active class) –Policy is localized so that it is easier to introduce changes to this policy 12 Heuristic #3: Separate General Functionality from Specific Policy

L3-S13Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Conservation of Policy –There is no way to eliminate or ignore all policy –The policy will be in the delivered system –All we can do is structure the policy so that it is easy to adapt and change it. 13 Heuristic #3: Separate General Functionality from Specific Policy Mechanism Rich & Policy Free

L3-S14Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 14 Heuristic #3: Illustrated Example – The Problem Forms State Tax Federal Tax File System Calculator

L3-S15Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 15 Heuristic #3: Illustrated Example – The Solution Forms State Tax Federal Tax File System Calculator MRPF MRP+ MRPR

L3-S16Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad In the “Real World”, a remote Controller for home electronics may have 50 buttons for controlling your TV, VCR, Stereo, and others. Modeling this controller as a single, real-life object will not be adaptable to future changes. 16 Heuristic #4: Objects Should Have Cohesive Interfaces

L3-S17Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad It may be better to: –First model each different set of operations as a separate object with a strongly cohesive interface. –Model the combined functionality as a separate object that uses other objects. Result is more adaptable and reusable 17 Heuristic #4: Objects Should Have Cohesive Interfaces Do One Thing

L3-S18Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Intelligent (Responsible) Objects Incorporate important knowledge Incorporate knowledge that is difficult to produce, find, or replicate Know how to synthesize knowledge 18 Heuristic #5: Objects Should Intelligent Agents

L3-S19Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Agents are capable of (limited) autonomous behavior Know that they are supposed to do, and they do. Work best with limited supervision. Adapt to their environment Know how to delegate work to other objects 19 Heuristic #5: Objects Should Intelligent Agents

L3-S20Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Agents are capable of (limited) autonomous behavior Know how to find objects to which they can delegate work Have the information they need or know where to get the information or know where to get information on getting information or can interpret information given to them. Are highly adaptable, extensible, and reusable Are expensive to design and build 20 Heuristic #5: Objects Should Intelligent Agents

L3-S21Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Objects that only export attributes or data must be manipulated by clients. (aka. “dead data”) Objects that only export basic operations require clients to direct and supervise all activity (aka. “stupid objects”) Objects that export services make life easier for their clients: –Server selects the best way to perform the service –Server finds and manages the resources 21 Heuristic #6: Objects Should Export Services

L3-S22Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Services should define “What” not “How” –Can “Drive to Work” be replaced by “Get to Work” –Enhances extensibility –Enhances reusability –Distributes intelligence 22 Heuristic #6: Objects Should Export Services Move Complexity From the Clients to the Servers

L3-S23Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad 23 Heuristic #6: Stack Example Type Stack push ( ) pop ( ) length ( ) empty ( ) full ( ) Stack Implementations Stack Interfaces

L3-S24Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Object machismo –Equating the value of an object with how big and/or complex it is (e.g., Lines of Code, # of methods, or complexity of algorithms it uses). –Macho objects tend to be central controllers that are difficult to design, difficult to understand, have to much policy, are hard to extend, and low reuse potential. 24 Heuristic #7: Avoid “Object Machismo”

L3-S25Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad The value of an object is based on many factors Does it do something useful Does it have a simple and clean interface Does it have well-specific behavior Does it model an essential quality of the system Can it be composed with other objects to perform more complex tasks. 25 Heuristic #7: Avoid “Object Machismo”

L3-S26Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad The value of an object is also based on other objects: –An object perfectly suited for one model may be totally wrong in another model –The object must be placed in context to see whether or not it is a good and valuable object. 26 Heuristic #7: Avoid “Object Machismo” A Valuable Object Works and Plays Well with Others.

L3-S27Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Explain the following statements: 1. Objects should be intelligent agents 2. Mechanism rich and policy free 3. A valuable object works and plays well with others 4. Analysis model should not be too elaborate or too formal Explain how to build an analysis model Explain how do you make the analysis model more adaptable 27 Discussion Questions

L3-S28Analysis Heuristics May-June 2001 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad Define: –Guidelines –Heuristics What do you think of these heuristics –A designer should distribute system intelligence uniformly among the top level classes in the system. –A designer should have 4.6 top level classes per 1,000 lines of code. –Eliminate classes that are outside the system 28 Questions for the Next Lecture