UTECA 3/26/99 CSE.RU-1.1 Object-Oriented Design Methodology to Facilitate Reuse Prof. Steven A. Demurjian and Dr. Margaretha W. Price† Computer Science.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Achieve Benefit from IT Projects. Aim This presentation is prepared to support and give a general overview of the ‘How to Achieve Benefits from IT Projects’
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,
Ch4: Software Architecture and Design. 1 Object-oriented paradigm  Object-oriented decomposition:  Agents comprised of two parts:  Hidden implementation:
REUSE--1 A Framework, Methodology and Tool for Reusable Software Components Prof. Steven A. Demurjian Computer Science & Engineering Department The University.
Object-Oriented Software Development CS 3331 Fall 2009.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Systems Engineering in a System of Systems Context
Introduction To System Analysis and Design
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
REUSE--1 A Framework, Methodology and Tool for Reusable Software Components* † Special Thanks to Jeff Ellis, Rodrigo Caballero, Margie Price, Donald Needham.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
REUSE--1 A Framework, Methodology and Tool for Reusable Software Components* Prof. Steven A. Demurjian, Sr., Jeffrey R. Ellis, Rodrigo Caballero, Felix.
REUSE--1 A Framework, Methodology and Tool for Reusable Software Components* Prof. Steven A. Demurjian, Sr., Jeffrey R. Ellis, Rodrigo Caballero, Felix.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
Ch4: Software Architecture and Design. 1 The role of analysis and design  Software construction may be partitioned into the following phases:  Req.
Ch4: Software Architecture and Design. 1 How to choose objects and classes  The first and most often raised concern for newcomers to OO concepts  Typical.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Introduction to Systems Analysis and Design
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
The chapter will address the following questions:
Chapter 7: The Object-Oriented Approach to Requirements
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Introduction To System Analysis and design
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Chapter 2 The process Process, Methods, and Tools
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
Introduction To System Analysis and Design
IT Requirements Management Balancing Needs and Expectations.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
The Systems Development Life Cycle
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved COS240 O-O Languages AUBG,
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Software Prototyping Rapid software development to validate requirements.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Lecture 21: Component-Based Software Engineering
Ch4: Software Architecture and Design. 1 Categories of classes Data Managers: class Item { private: // Private Data int UPC; char* Name; int InStock,
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Chapter 1 Assuming the Role of the Systems Analyst.
Advanced Software Engineering Dr. Cheng
Appendix 2 Automated Tools for Systems Development
CSE300-2 Distributed Object Computing
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Reference: COS240 Syllabus
Business System Development
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
CSE4939W/4940 CS & E Design Lab I/II
Presentation transcript:

UTECA 3/26/99 CSE.RU-1.1 Object-Oriented Design Methodology to Facilitate Reuse Prof. Steven A. Demurjian and Dr. Margaretha W. Price† Computer Science & Engineering Department The University of Connecticut 191 Auditorium Road, Box U-155 Storrs, CT (860) † M. Price is a Senior Engineer at Raytheon Electronic Systems in RI.

UTECA 3/26/99 CSE.RU-1.2Motivation  Reuse Afterthought in OO Design/Development  Majority of Reuse Focuses on “Small” Components  String Functions, Utility Routines, GUI, etc.  Easy to Understand - Easy to Reuse  Minimal Savings  Three Classes of Software  Domain-Independent (20%): Libraries, Utilities, etc. Most Likely to Be Reused  Domain-Specific (65%): Dedicated Software Reused in Other Programs of Same Domain  Application-Specific (15%): Uniqueness Unlikely to Be Reused

UTECA 3/26/99 CSE.RU-1.3Motivation  Popular OO Design Methodologies Omit and Ignore Reuse Guidelines  OMT and UML  Design Patterns  Current Research Concentrates on Consumer (Reuser) and Not Producer (Creator)  Measure Savings from Reuse  Calculate Return on Investment  Two-Fold Goal  Elevate Reuse to Equal Partner Starting with Design  Focus on Domain-and-Organization Specific Reuse

UTECA 3/26/99 CSE.RU-1.4Objectives  Reuse as Equal Partner Starting with Design  Iterative Reusability Evaluations at Early and All Stages of Design and Development  Production of Large Reusable Components  Capabilities of Evaluation Techniques  Identify the Reusable Portions of Design  Estimate/Measure Reusability Automatically  Provide Guidelines on Improving Reusability  Usable for  Newly Created Designs  Evaluation of Legacy Code for Reuse Potential  Integrated in a Design/Development Environment

UTECA 3/26/99 CSE.RU-1.5 Objectives Design and Implementation Process 1. Define Components, Their Interactions, and Analyze Their Reusability 2. Store an Iteration of Design 3. Implement an Iteration 4. Store and Document Iteration of Implemen. 5. Reevaluate an Existing Design for  Correcting Errors  New Reuse Potential 6. Reuse Existing Design with a New Implementation Store & Document Designs Reusability Evaluation Implement the System Re(Design) a System Store & Document Implemens

UTECA 3/26/99 CSE.RU-1.6 Overview of Presentation  Cultural and Social Reuse Issues  Subjective Identification of Components  General vs. Specific Classes  Related Hierarchies to Quantify Components  Financial Frame and HTSS Applications  Objective Measure of Dependencies  Classifying Dependencies  Measuring Reuse Potential  Reuse Guidelines  Methodological Basis for Increasing Reuse  Iterative Improvement in Reusability  Evaluation and Analysis: DRE Tool/Examples  Conclusions and Future Research

UTECA 3/26/99 CSE.RU-1.7 Cultural and Social Reuse Issues Management Support  Motorola Study: A New Reuse Program Must have Strong/Unequivocal Management Support  Raytheon Report: Support from Upper Management Most Important for Successful Reuse  Why? Increased...  Cost Associated with Constructing Reusable Components  Communication and Coordination  Education and Training  Motorola and Raytheon Facilitate by Incentives  Both Producer and Consumer Benefits  Awards Provided for Demonstrated Efforts

UTECA 3/26/99 CSE.RU-1.8 Cultural and Social Reuse Issues High Initial Cost  Reports have Indicated  High Start Up Costs  Slow Return on Investment (> 3 years)  Best Success in  Starting with Small Projects  Distributing Components for Reuse  Opportunistic Reuse  Reuse Must be Supported by  Libraries to Collect, Classify, and Disseminate Components  Ease of Use for Producer and Consumer

UTECA 3/26/99 CSE.RU-1.9 General/Specific Class Characterization  Subjective Characterization by Software Designer  Best Estimate on Potential Utility of Class  General Class (G)  Those Application Classes that Facilitate Domain-and-Organization Specific Reuse  Specific Class (S)  Those Application Classes that are Limited to use in a Single Application  Purposes  Determine Classes with Highest Reuse Potential for Organization’s Future Systems  Dependencies from General to Specific are both Non-Reusable and Hinder Reuse

UTECA 3/26/99 CSE.RU-1.10 General/Specific Class Characterization  General Class (G)  Expected to be Reused in Future Applications  Abstract Classes/Root Classes/Non-Leaf Classes in Inheritance Hierarchies  Domain Independent/Domain Specific  What are Some Examples?  Specific Class (S)  Only Applicable in Current Applications  Unlikely to be Reused in Future Applications  Classes that Retrieve from Company Database  Application Specific  What are Some Examples?

UTECA 3/26/99 CSE.RU-1.11 High-Tech Supermarket System (HTSS)  Automate the Functions and Actions  Cashiers and Inventory Updates  User Friendly Grocery Item Locator  Fast-Track Deli Orderer  Inventory Control  User System Interfaces  Cash Register/UPC Scanner  GUI for Inventory Control  Shopper Interfaces Locator and Orderer  Deli Interface for Deli Workers   We’ll Introduce and Utilize Throughout Lecture

UTECA 3/26/99 CSE.RU-1.12 The HTSS Software Architecture IC IC CR CR CR CR IL IL IL SDO SDOEDO EDO Order Payment Item ItemDBLocalServer Non-Local Client Int.InventoryControl ItemDBGlobalServerOrderDB SupplierDB CreditCardDB ATM-BanKDB IL: Item Locator CR: Cash Register IC: Invent. Control DO: Deli Orderer for Shopper/Employee Shopper/Employee

UTECA 3/26/99 CSE.RU-1.13 A General Class in HTSS  Why is Item General?  What is Applicability of Item? class Item { private: // Private Data int UPC; char* Name; int InStock, OnShelf, ROLimit; float RetailCost; public: // Public Methods Item(int code, char* str, int st1, int st2, int st3, float cost); void CreateNewItem(); int GetUPC(); char* GetName(); int GetQuantity(); int CheckReorderStatus(); void PrintItem(); void UpdatePrice(float new_value); };

UTECA 3/26/99 CSE.RU-1.14 Another General Class in HTSS  Collection Classes of General Classes are General class ItemDB {private: int Num_Items; int Curr_Item; Item* AllItems[Max_Items]; int FindFirstItem(); int FindNextItem(); int FindItemUPC(int code); int FindItemName(char* name); public: ItemDB(); // Constructor void InsertNewItem(Item* new_one); void DeleteExistingItem(int code); void FindDisplayItemUPC(int code); void FindDisplayItemName(char* name); void PrintAllItems(); };

UTECA 3/26/99 CSE.RU-1.15 Yet Another General Class in HTSS  GUI-Based Class for Supporting Inventory Control Actions Can be Domain Independent class InvControlGUI { private: int Curr_Option; // Current menu option public: InvControl(); // Constructor void PrintMenuSetOption(); void ActivateController(); void EnterNewItem(); void RemoveExistingItem(); void FindItem(); void InvSearchQuantity(); void InvSearchReorder(); void GenerateAnOrder(); };

UTECA 3/26/99 CSE.RU-1.16 Specific Classes in HTSS  General Classes are Refined to Represent Particular Items, Yielding Specific Classes... Item DairyItemProduceItemDeliItem DeliOrdererGUI OrdererGUI

UTECA 3/26/99 CSE.RU-1.17 Levels of General Classes  Not All General Classes Created Equally  Level of Generality Based on Role in Application  Purposes  Accommodate Large Systems with Multiple, Different Reusable Components  Reusable Components can Overlap, but Still be Distinct Reusable Units S S S S views as General if i j views as Specific if i < j

UTECA 3/26/99 CSE.RU Extended Hierarchy with More Levels of Generality DairyItemDeliItem Item ProduceItem NonPerishItemPerishItem BigYProdItemDoleProdItemBigYDairyItemHoodDairyItem Where can Item be Reused? Where can NonPerishItem and PerishItem be Reused? Where can ProduceItem and DairyItem be Reused? Are DoleProdItem and HoodDairyItem Specific?

UTECA 3/26/99 CSE.RU-1.19 General/Specific Paradigm in HTSS  Abstraction from HTSS to Domain Independent Inventory Control Application  Separation of Supermarket Domain Specifics  Leverage Commonalties for  Focused, Independent Design/Development  Future Products  Relevance  Domain-and-Organization-Specific Reuse  Expand to 24 hour Mom & Pop Stores  Expand to Other Retail Markets E.g., Auto parts, Clothing, Toy, etc.

UTECA 3/26/99 CSE.RU-1.20 Defining Component Concepts  A Component is Composed of One or More Classes (or Other Components) and is Intended to Support a “Constructed” Unit of Functionality  Classes Can be Utilized in Multiple Components  A Class Utilized in Multiple Components Maintains the “Same” Semantics in All of its Contexts  Our Interest Involves:  Reusable Classes Thru Reusable Components  A Reusable Component Consists of Classes and/or Other Components that are Expected to be Reused Together in Future Applications

UTECA 3/26/99 CSE.RU-1.21 Related Classes and Hierarchies  Class X is Related to Class Y if they are Related and Concept and are Expected to be Reused Together in Future Systems  Class X Related to Class Y is Subjectively Assigned by Software Engineer (Producer)  When Class X is Related to Class Y  X and All of X’s Descendants are Related to Y and All of Y’s Ancestors  Thus, to Reuse X or X’s Descendants, you Must Reuse B and All of B’s Ancestors  Class X Related to Y if Y at Same or Higher Level!  Related Classes Promote Reuse, Since They are Expected to be Reused Together

UTECA 3/26/99 CSE.RU-1.22 Related Hierarchies/Reusable Components  Two Sub-Hierarchies are Related if to Reuse One, you Must Reuse the Other  Purpose: Identify Reusable Dependencies Among Related Classes  Reusable Component: A Set of Related Classes that are Expected to be Reused as a Group  A Related B Defines Reusable Component! S S S S S S A Sub-Hierarchies B R

UTECA 3/26/99 CSE.RU-1.23 Related Characterization in Levels of Components - HTSS Item NonPerishItemPerishItem EnvironR DairyItemProduceItemDeliItem SubZero RTemp  What is Related Given R as Shown?  PerishItem and Item (All Ancestors)  Environ, SubZero, and Rtemp (All Descends.)  Does R from Environ to PerishItem Make Sense?  Should R be from PerishItem to Environ?

UTECA 3/26/99 CSE.RU-1.24 Related Characterizations in Levels of Components - HTSS  Where do Changes for Other Domains Occur? Specific Applications for Big Y or Shaw’s or Stop/Shop (S) Root classes for Items, ItemDB, etc., which are Most General. Inventory Control/Other Components. Classes Specific to Grocery Store Domain.

UTECA 3/26/99 CSE.RU-1.25 Reusability in HTSS Domain Specific Applications for Big Y or Shaw’s or Stop/Shop (S) Root classes for Items, ItemDB, etc., which are Most General. Inventory Control Other Components. Classes Specific to Grocery Store Domain. Inventory Control Tool for Ordering Items from Suppliers Cost Accounting Tool for Tracking Net and Gross Profit

UTECA 3/26/99 CSE.RU-1.26 Reusability in HTSS Domain Specific Applications for Big Y or Shaw’s or Stop/Shop (S) Root classes for Items, ItemDB, etc., which are Most General. Inventory Control/Other Components. Classes Specific to Grocery Store Domain. Classes for Large Supermarket Classes for Specialty Supermarket Classes for 24 Hour Convenience

UTECA 3/26/99 CSE.RU-1.27 What are Dependencies Among Classes?  Object Inclusion: Class Contains a Instance of Another Object  Attribute Definition: Class Contains Attribute that is the Type of Another Object  Method Invocation: Class Invokes a Method Defined on Another Object  Goals  Classify and Understand Dependencies  Assess “Good” vs. “Bad” Dependencies  Change “Bad” to “Good” by  Changing Class from S to G or G to S  Moving Code and/or Method Calls  Splitting a Class into Two Classes  Merging Two Classes

UTECA 3/26/99 CSE.RU-1.28 Reusing Sub-Hierarchies in Different Components - HTSS Will be reused with Components for another domain, e.g., Toy Store Will be reused with Components for different Super- market Companies Item... DairyItemProduceItemDeliItem NonPerishItemPerishItem  Dependencies Among General Related Classes Represents Valuable Design Knowledge

UTECA 3/26/99 CSE.RU-1.29 Which Dependencies in HTSS are Problematic? Environ R Item DairyItemProduceItemDeliItem NonPerishItemPerishItem  Impact of Dependencies from Item to Environ?  Must Reuse Environ When Reuse Item  Must Reuse Environ in “Blue” Component!

UTECA 3/26/99 CSE.RU-1.30 Evaluative Metrics and Methodology Objective Measures of Dependencies  Object-Oriented Design:  Object-Oriented Design: Collection of General and Specific Classes, with Related Characterizations  Quantify Dependencies for Reuse  Good: Promotes Reuse - Leave Alone  Bad: Hinders Reuse - Try to Change  Okay: No Impact on Reuse  Goals:  Given General/Specific Components and Related Components  Classify and Understand Dependencies  Measure Reuse Potential  Revise Design in Iterative Manner  Use Throughout Design/Development Process

UTECA 3/26/99 CSE.RU-1.31 Dependencies Among Related Classes  Remember, G/S are Subjectively Assigned by Software Designer  The Two G classes are Related  Related Classes are Intended to be Reused Together Good (1) G S G S Okay (5) Okay (7) Bad (3)

UTECA 3/26/99 CSE.RU-1.32 Sample Dependencies in HTSS InvCont DeliIC Item DeliItem Good (1) Okay (5) Okay (7) Bad (3)  InvCont and Item are Related Classes  InvCont to Item Dependencies are Good: Reused Together  Dependency from InvCont to DeliItem is Problem  Don’t Want to Reuse DeliItem with InvCont  ManagerGUI with InvCont Includes Useless DeliItem  Dependencies from DeliIC to Item and/or DeliItem  Don’t Impact Reuse  Can Reuse Item and DeliItem w/o DeliIC

UTECA 3/26/99 CSE.RU-1.33 Dependencies Among Non-Related Classes  Remember, G/S are Subjectively Assigned by Software Designer  The Two G Classes are Not Related  Non-Related Classes are NOT Intended to be Reused Together Okay (6) Okay (8) G S G S Bad (2) Bad (4)

UTECA 3/26/99 CSE.RU-1.34 Sample Dependencies in HTSS InvCont DeliIC Person Shopper Bad(2) Okay (6) Okay (8) Bad (4)  InvCont and Person are Classes that are Not Related  InvCont to Person or Shopper Dependencies are Bad  Don’t Want to Reuse Person/Shopper with InvCont  Must Reuse - Problem!  Dependencies from DeliIC to Person and/or Shopper  Don’t Impact Reuse  Can Reuse Person and Shopper w/o DeliIC  However, Poor Design if DeliIC Needs Person or Shopper!

UTECA 3/26/99 CSE.RU-1.35 Summarizing Dependencies and Actions to Improve Reusability

UTECA 3/26/99 CSE.RU-1.36 Dependencies in Levels of Components Summarizing Related Classes (1) (3) (5) (7) (7) (1) (1) Related to  Similar Diagram for Dependencies Among Unrelated Classes

UTECA 3/26/99 CSE.RU-1.37 Reuse Guidelines  Methodological Basis for Increasing Reuse  Designer Supplies General/Specific/Related for the Classes/Hierarchies in Application  Reuse Analysis Tool Calculates Couplings and Identifies Types of Reuse (Good, Bad, Okay)  Ideal Result: Maximize Reuse via Couplings  Type 1: G to G for Related Classes  Type 8: S to S for Non-Related Classes  Extended Guidelines: Menu of Choices  Different Ways to Move Couplings  Considers Impact of Movement on Design  Goal: Iterative Improvement in Reusability

UTECA 3/26/99 CSE.RU-1.38 Core Guidelines to Move Couplings to Increase Reuse Potential G S G S Type 2 Type 8 G S G S Type 4 Type 8 G S G S Type 5 Type 1 G S G S Type 7 Type 1 G S G S Type 3 G S G S Type 7

UTECA 3/26/99 CSE.RU-1.39 Extended Guidelines for Improving Reusability  Core Guidelines Emphasize Local Behavior  To Remove “Bad” or Improve “Okay” Coupling, Move Cause of the Coupling (e.g., Method Call)  Moving a General Method to Specific Class  Moving a Specific Method to General Class  Moving Method Up/Down a Hierarchy, Which Alters the Coupling, Can Impact Elsewhere  Expand the Analyses to Other Couplings of the Source and Destination of the Bad Coupling  Couplings to Source when Moving Down  Couplings to Destination when Moving Up  Extended Guidelines: Menu of Choices

UTECA 3/26/99 CSE.RU-1.40 Extended Guidelines to Improve Reuse Identifying the Problem S G S m() G G Type 7 G S G S Type 3 Type 7 Recall G S G S m() G Type 3 Suppose What has Occurred?

UTECA 3/26/99 CSE.RU-1.41 Extended Guidelines to Improve Reuse Identifying the Problem S G S m() G G Type 5 Suppose What has Occurred? G S G S m() G Type 1 G S G S Type 5 Type 1 Recall Type 3

UTECA 3/26/99 CSE.RU-1.42 Problem and Solution  Focus on Core Guidelines May Ignore the Impact of a Change for Other Related and Coupled Classes  When a Coupling is Moved from a G to S Class  Examine All Existing Coupling to G Class  G to G Coupling Now G to S  Likewise, When a Coupling Moved from S to G  Examine All Existing Coupling to S Class  S to S Coupling Now S to G  Both Cases Introduce “Bad” Coupling!  Solution: Extended Guidelines to Govern all Potential Scenarios for Removing “Bad” Couplings  We’ll Example Type 3 Couplings Only!

UTECA 3/26/99 CSE.RU-1.43 Extended Guidelines for Type 3 Couplings  Move Coupling Dst. to General Class or Change Dst. To a General Class  Type 3 to Type 1  May Introduce Couplings from G Dst. to Specific Classes  Move Coupling Src. to Specific Class or Change Src. To a Specific Class  Type 3 to Type 7  May Introduce Couplings from General Classes to Specific Src.  Change to Non-Related/Follow Type 4  Detailed Evaluation of Implementation  Key Concerns  Local Changes with Global Impact  “Wrong” Choice Degrades Reuse G S G S Type 3 Among Related

UTECA 3/26/99 CSE.RU-1.44 Removing Type 3 Couplings in HTSS Which Changes Make Sense? InvCont DeliIC Item DeliItem Type 3  Change InvCont to S or DeliItem to G  Neither Makes Sense  Against Design Intent!  Move Coupling Dst. to General Class  Find Problem Method Call, Attribute Access, Object Inclusion  Move from DeliItem and Item  Type 3 to Type 1  Move Coupling Src. to Specific Class  Find Problem Method Call, Attribute Access, Object Inclusion  Move from InvCont and DeliIC  Type 3 to Type 7  Detailed Evaluation of Implementation  Note: Maintain Application Semantics Type 1 Type 7

UTECA 3/26/99 CSE.RU-1.45 Evaluation and Analysis  Design Reusability Evaluation (DRE) Tool  Java-Based Tool for Analyzing Reusability  Takes C++, Ada95, and Java Code as Input  Works with General/Specific/Related as Subjectively Defined by Software Designer  Analyzes Couplings to Identify, for Each Type (1 to 8), the Number of Couplings  Allows Designer to Investigate Cause of and Correct “Bad” or Improve “Okay” Couplings  DRE can be Utilized in Different Ways  Evaluate Evolving Design/Implementation  Investigate the Reusability of Legacy Code  Examples of Video Rental System/FinancialFrame

UTECA 3/26/99 CSE.RU-1.46 Utilizing Reuse Methodology Evaluate Evolving Design/Implementation  Constructing New Applications  Software Design Proceeds in Stages  Today’s Norm: Incremental Development and Rapid Prototyping  General/Specific Classes/Related Components  Assigned Initially as Classes are Generated  Refined Throughout Increments/Versions  G to S, S to G, etc.  Related Components as Design Begins to Mature with Additional Details  Use Methodology to Find/Correct “Problems”  Video Rental System Test-Bed

UTECA 3/26/99 CSE.RU-1.47 Utilizing Reuse Methodology Investigate Reusability of Legacy Code  Reusability of Legacy Code  Examine Legacy Code in Detail  Talk/Contact Domain Experts with Corporate Knowledge of Code  General/Specific Classes/Related Components  Take “Educated Guess” for G/S Classes and Related Components  Run DRE and Find/Correct Problems  Re-evaluate Legacy Code with Different “Educated Guesses”  Compare/Contrast Results to Identify the “Best” way to Characterize Classes/Components  FinancialFrame as a Test-Bed

UTECA 3/26/99 CSE.RU-1.48 The Video Rental System (VRS)  VRS is for On-Line (Browser) Rental Tapes  Maintains Customer and Video Databases  Tracks Borrowing/Returning of Tapes  Logs Rented Tapes  CGI, C++, Netscape/Explorer  From Video Rental to Auto Parts  Undergraduate Project: Spring VRS-1  Repeated as Grad Project: Fall VRS-2  Goals:  Demonstrate General/Specific/Related Ideas  Incorporate/Reuse Design in Future System  Study Effectiveness Approach in Identifying and Removing Non-Reusable Dependencies

UTECA 3/26/99 CSE.RU-1.49 General and Specific Classes in VRS-1 VideoStoreInterface (S) StoreInterface (G) VideoCustomer (S) Customer (G) VideoCustomerInterface (S) CustomerInterface (G) VideoTape (S) Item (G) VideoTapeDB (S) ItemDB (G) RentedTapeDB (S)RentedTape (S) CustomerDB (G)HistoryList (G)Transaction (G)

UTECA 3/26/99 CSE.RU-1.50DRE

UTECA 3/26/99 CSE.RU-1.51DRE

UTECA 3/26/99 CSE.RU-1.52DRE

UTECA 3/26/99 CSE.RU-1.53 DRE and VRS-1 Tracking Incremental Versions

UTECA 3/26/99 CSE.RU-1.54 General/Specific Classes in VRS-2 and Related Characterizations VideoStoreInterface (S) StoreInterface (G) Customer (G) CustomerInterface (G) Video (S) Item (G) VideoItemList (S) ItemList (G) ReportGenerator (S) Transaction (G) VideoTransaction (S) CustomerList (G) VideoCustList (S)

UTECA 3/26/99 CSE.RU-1.55 DRE and VRS-2 Tracking Incremental Versions

UTECA 3/26/99 CSE.RU-1.56 One Type 3 Coupling: G to S Dependency Transaction (G) write_to_checkoutfile() VideoTransaction (S) Customer (G) take_item( )... tr->calculate_currentdate() tr->calculate_duedate() tr->write_to_historyfile() tr->write_to_checkoutfile()... calculate_currentdate() calculate_duedate() write_to_historyfile() What is the Problem? What is the Problem? How is it Resolved? How is it Resolved?

UTECA 3/26/99 CSE.RU-1.57 Resolving Type 3 G to S Dependency Customer (G) take_item( ) Transaction (G) write_to_checkoutfile() VideoTransaction (S) calculate_currentdate() calculate_duedate() write_to_historyfile()... tr->calculate_currentdate() tr->calculate_duedate() tr->write_to_historyfile() take_item_specific()... take_item_specific() VideoCustomer(S) ((VideoTransaction *) tr) -> write_to_checkoutfile()

UTECA 3/26/99 CSE.RU-1.58 The FinancialFrame Application  A Commercial C++ Framework Containing 441 Classes, Proprietary of FinancialComp  Designed for Reuse in Various Financial Apps.  Provides Basic Functionalities of Financial System  FinancialFrame’s Challenge - Manage Changes  Framework Constantly Evolving  New Functions and Modify Existing Functions  Conceptual Relevance:  Provide Realistic Context for Our Approach  Domain-and-Organization-Specific Reuse

UTECA 3/26/99 CSE.RU-1.59 The FinancialFrame Application  Our Purpose: Work with Existing Code  Establish General and Specific Classes  Characterize Related Components  Evaluate the Goodness of G/S Characterization and Identify Potential Problem Areas  General Components that are Specific  Specific Components that are General  Problematic Relevance:  Demonstrate Ability of Approach to Localize Effect of Changes  Describe Ways to Increase FinancialFrame’s Reuse Potential

UTECA 3/26/99 CSE.RU-1.60 General and Specific Classes in FinancialFrame FinancialCompTrader FinancialCompAccount FinancialCompDesk Main FinancialCompMainOtherMain SpecificFCMain (S) SpecificOtherMain (S)... YieldModel DiscountIndexBondBill CashFlowAnalyzer...

UTECA 3/26/99 CSE.RU-1.61Conclusions  Comprehensive Reusability Model and Evaluation  General/Specific/Related Characterizations  Capture/Analyze Reusability of OO Software  Achieve Highest Gain Through Early Identification and Reusability Evaluations!  Methodology and Empirical Verification  Guidelines to Encourage Reuse  Applicable to Reuse of Designs and Code  DRE Tool for C++, Ada95, Java  Strong Demonstration of Domain-and-Organization-Specific Reuse

UTECA 3/26/99 CSE.RU-1.62 Future Research  The Future Directions of Reuse  Changing Company Culture to Encourage  Providing Sufficient Rewards for Utilization  Cost and Time in Establishing Reuse Program  Short-Term Costs vs. Long-Range Benefits  Future/Ongoing Research  Collaboration on Large-Scale “Real” Examples  Integration of OO Reuse into UML and Associated OO Design/CASE Tools  Improvements and Enhancements to DRE  Investigation of Reusable Component Tools/ Libraries that Log and Find “Best” Component

UTECA 3/26/99 CSE.RU-1.63 Related Research at UConn  Enterprise Computing and Interoperability (Demurjian)  Security Issues for Distributed and Agent-Based Computing (Demurjian)  Optimal Deployment of Distributed Objects (Demurjian/Shvartsman)  Risks and Benefits of Java (Demurjian/Shin)  Frameworks for Scalable Distributed Applications (Shvartsman)  Interoperability of Heterogeneous Databases (Shin)  Joint:  Joint: Intelligent Distributed Component Appls. Frameworks (Shvartsman, Demurjian, Santos)

UTECA 3/26/99 CSE.RU-1.64 Final Remarks and Discussion  CSE Faculty Interested in Industrial Interactions  Engineering MS Program  Undergraduate Semester Projects  Storrs Senior Design Projects  Graduate Student Research Assistantships  Cooperative Research Funding  Faculty Presentations and Seminars  Industry Presentations (CSE Courses)  Faculty Consulting (Summers/Sabbaticals)  UConn CSE Web Page: 