CSE298 CSE300 DRE1.1 Design Reuse Evaluations  System of Metrics Defines Reusability Scale  General versus Specific Class Definitions  Related versus.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software change management
Configuration management
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Database Software Creation Process Arvin Meyer, MCP, MVP
Alternate Software Development Methodologies
GI Systems and Science January 30, Points to Cover  Recap of what we covered so far  A concept of database Database Management System (DBMS) 
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Distributed DBMSs A distributed database is a single logical database that is physically distributed to computers on a network. Homogeneous DDBMS has the.
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 1: Introduction to Decision Support Systems Decision Support.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Reuse-1 CSE298 CSE300 CSE Distributed Object Computing Professor: Dr. Steven A. Demurjian Topic: Object Oriented Reuse Members: Xiaopei Wang, Hai.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
Lesson 18: Configuring Application Restriction Policies
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Database System Development Lifecycle Transparencies
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
 Network Management  Network Administrators Jobs  Reasons for using Network Management Systems  Analysing Network Data  Points that must be taken.
This chapter is extracted from Sommerville’s slides. Text book chapter
Managing Software Quality
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 6 : Software Metrics
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
Software Engineering SM ? 1. Outline of this presentation What is SM The Need for SM Type of SM Size Oriented Metric Function Oriented Metric 218/10/2015.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
CSE 219 Computer Science III Program Design Principles.
Cohesion and Coupling CS 4311
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
GRASP: Designing Objects with Responsibilities
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 3: Software Project Management Metrics
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Firmware - 1 CMS Upgrade Workshop October SLHC CMS Firmware SLHC CMS Firmware Organization, Validation, and Commissioning M. Schulte, University.
Variables It is very important in research to see variables, define them, and control or measure them.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 COS 260 DAY 12 Tony Gauvin. 2 Agenda Questions? 5 th Mini quiz –Chapter 5 40 min Assignment 3 Due Assignment 4 will be posted later (next week) –If.
Legacy Systems and Software Reuse CS 560. Economics Software is expensive.  Most software development makes extensive use of existing software.  Developers.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
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,
Design Patterns: MORE Examples
Applied Software Implementation & Testing
Objects First with Java
The Object-Oriented Thought Process Chapter 05
Software Metrics “How do we measure the software?”
Configuration management
Designing For Testability
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 2: Building a System
Presentation transcript:

CSE298 CSE300 DRE1.1 Design Reuse Evaluations  System of Metrics Defines Reusability Scale  General versus Specific Class Definitions  Related versus Unrelated Hierarchy Definitions  Couplings Between Various Classes Provide Reusability Information  Tool Applies Metrics to Designed Source Code  Recognizes Java and C++ Code  Makes Objective Calculations Based on Subjective Information  Presents Suggestions for Improved Reuse  Simulates Effected Changes and Presents New Resulting Reuse Measurements

CSE298 CSE300 DRE1.2 General versus Specific Classes  General Class (G)  Those Application Classes that Facilitate Domain-and-Organization Specific Reuse  “What can I reuse in the future?”  Specific Class (S)  Those Application Classes that are Limited to use in a Single Application  “What is just for this project?”  Division Between General and Specific...  Is Subjectively Determined by Designer  Should Be Maintained by Developer  May Be Flexible

CSE298 CSE300 DRE1.3 Hierarchies of General Classes  General/Specific Determination Is Not Binary  Multiple Levels of Generality Exist  Class Person Can Be Reused?  Class Student Can Be Reused?  Class Undergraduate Can Be Reused?  Class CSEStudent Can Be Reused?  Hierarchy of General Classes Creates a Spectrum of Generality  High-Reuse Potential (G1)  Medium-Reuse Potential (Gn)  No-Reuse Potential (Gx) or (S)

CSE298 CSE300 DRE1.4 Related versus Unrelated Hierarchies  Incomplete Name of Idea  Related Class Relationship May Be One-Way  Class Database Has a Field of Class Person –Database is Related to Person  Class Person Has No Field for Class Database –Person is Not Related to Database  “Related” Implies Two-Way Bond  Actually “User Of” Not “Relative”  Half-Empty/Half-Full Glass Effect on Reuse  More Relationships Require More Code to be Ported From Project to Project  More Relationships Enable More Reuse

CSE298 CSE300 DRE1.5 Half-Empty Related Reuse  BAD, BAD, BAD!  Half-Empty Reuse  Unnecessary Source Code Deployed  Example: Class StoreItem to be Reused in Warehouse Application  Existing Dependencies  Department-StoreItem  WeeklySales-StoreItem  Three Classes Ported to Maintain Dependencies  3-for-1 Tradeoff –Code Maintenance –Code Size

CSE298 CSE300 DRE1.6 Half-Full Related Reuse  Great for Reuse!  Half-Full Reuse  More Source Code Reused in Project  Example: Class StoreItem to be Reused in Warehouse Application  Existing Dependencies  BrandName-StoreItem  Location-StoreItem  Three Classes Ported and Reused  3-for-3 Tradeoff –Less Redesign –More Reuse

CSE298 CSE300 DRE1.7Couplings  Definition: Dependencies Between Classes  Good For Reuse…  Classes are General and Related  Bad For Reuse...  Classes are Unrelated  One Class is General, the Other is Specific  Neither Good nor Bad for Reuse...  Classes are Specific  Coupling Counts Provide a System of Metrics on Which a Reusability Scale Can Be Formed  Coupling Counts Form Basis for DRE Theory

CSE298 CSE300 DRE1.8 DRE Tool  DRE Tool Provides Calculation of Code on Reusability Scale  DRE Calculations Based on Counting Couplings and Determining their Effect on Reuse  Rationale: OO Developer Incrementally Runs Code through DRE  Coupling Counts Provide Quality of Reuse Assurances  Reuse Bugs May Be Identified and Fixed Before Becoming Problems  Promotes Better OO Principles

CSE298 CSE300 DRE1.9 DRE Process  DRE Process: User Role  Step 1: User Selects DRE Mode  Currently Available in Java and C++ Mode  Ada95 Version May Exist  Step 2: User Selects Directory of Code  DRE Process: Tool Role  Step 3: Tool Parses through Source Code in Selected Directory  Step 4: Tool Returns Class Names and Class Pairs to User Interface

CSE298 CSE300 DRE1.10

CSE298 CSE300 DRE1.11 DRE Process  DRE Process: User Role  Step 5: User Selects General Classes  Step 6: User Selects Related Classes  7: User Requests Calculation of Coupling Counts  DRE Process: Tool Role  Step 8: Tool Makes Calculation Based on User’s Input  Step 9: Tool Returns Coupling Counts to User  Can Present Calculations Only  Can Present Calculations, Possible Errors, Improvement Ideas

CSE298 CSE300 DRE1.12 DRE Process  DRE Process: User Role  Step 10: User May Select Simulation of Changes  DRE Process: Tool Role  Step 11: Tool Outlines Possible Improvements  DRE Process: User Role  Step 12: User Chooses Improvements  DRE Process: Tool Role  Step 13: Tool Recalculates Coupling Values

CSE298 CSE300 DRE1.13

CSE298 CSE300 DRE1.14 DRE Modifications  Tool Created in Java 1.0.x by Margie Price  Most Recent Upgrade (Ellis et al., Fall 1998) Identified Several Key Upgrades  #1: Documentation and Comments  #2: Simulation Tool  #3: Characterization File  #4: Online Help  #5: Continued Conversion of AWT Components and Upgrade of GUI  #6: Ada95 Integration  #7: Data Type Reassignment  #8: Better Separation of Concerns

CSE298 CSE300 DRE1.15 DRE Modifications  #1: Documentation and Comments  Development of DRE Developers’ Guide  Effective API of classes, methods comprising DRE  Intended for use by future DRE developers  300+ Lines of Commented Code Added  #2: Simulation Tool  C++ Mode  Simulator repaired from previous developer bugs and Java version updates  Java Mode  Errors identified and methodology presented to remove them

CSE298 CSE300 DRE1.16 DRE Modifications  #3: Characterization File  Storage of User’s Defined General, Related Specifications for Project  File Storage and Retrieval Regained  #4: Online Help  Instruction Window Replaced by Help Files  Tips Window Removed from User Interface  #5: Upgrade of GUI  Final AWT Objects Removed  Main Interface Upgraded  Simulation Front-End Redesigned

CSE298 CSE300 DRE1.17 DRE Modifications  #6: Ada95 Integration  Not Attempted  #7: Data Type Reassignment  Attempt to Take Advantage of Java APIs  Standard Java Naming Conventions Applied  #8: Separation of Concerns  Further Separation Between User Interface and Functionality  Redeployment of Methods and Member Variables to More Logical Locations

CSE298 CSE300 DRE1.18 Future Directions of DRE - CBD  Marriage of Component Based Design and Design Reuse Evaluations  “What is a Component?”  A Set of Reusable Classes that Performs a Series of Functions  Self-Contained, General Objects that May Be Useful in Multiple Situations  Types of Components  User-Defined  Third-Party Open  Third-Party Encased

CSE298 CSE300 DRE1.19 Future Directions of DRE - CBD  User-Defined Components  General/Specific, Related Measurements:  Hierarchy of classes is General  Classes are Related to each other  Classes are not Related to non-component classes  Unnecessary To Parse Component Code  System reusability metrics independent of internal Component reusability metrics  External Couplings to Components  One way, from Specific/General, Related/Unrelated to General, Related  Always CC type #1,5 - Good For Reuse

CSE298 CSE300 DRE1.20 Future Directions of DRE - CBD  User-Defined Components Implementation  User Identification of Classes that Comprise a Component  Component Classes Parsed without Coupling Calculations  Component Classes Set to General, Related to All Other Classes  Regular Classes’ Couplings on Objects, Methods of Component Classes Set to Type 1,5  Simulation Tool Prevented From Redefining Component Classes  Outcome: System Reuse Independent from Component

CSE298 CSE300 DRE1.21 Future Directions of DRE - CBD  Third-Party Open, Third-Party Encased  Similar to User-Defined  Internal Parsing of Couplings Unnecessary  Always Present Good Reuse in Design  Third-Party Open Implementation  Same as User-Defined  Third-Party Encased Implementation  Requires Parsing of Standard Component API  Two Approaches  Write separate parser for each third-party API framework  Assume unknown class names are Components (current design)

CSE298 CSE300 DRE1.22 Coupling Counts 1,5 - Good For Reuse??  Coupling Count Type 1  General Source Related to General Destination  Always Good for Reuse  Coupling Count Type 5  Specific Source Related to General Destination  Price Dissertation Presents as “Improvable”  No harm in current situation  Possibility of rearranging couplings to get Type 1  CBD Renders Type 5 “Unimprovable”  Defined Component cannot be extended  Reason for improvement disabled  In CBD, Always Good for Reuse

CSE298 CSE300 DRE1.23 Future of DRE - Multilevel Generals  Realization of General/Specific as Spectrum as Opposed to Binary Choice  Current Tool Asks: “Is this class General?” not “What level of General Class is this?”  Coupling Count Basis of Reuse Calculation Directly Affected by Generality Levels

CSE298 CSE300 DRE1.24 Future of DRE - Multilevel Generals  Coupling Counts Based on Cartesian Product of General(G0)/Specific(Gx,S) Nature of Two Components over Related and Unrelated Hierarchies  Multiple Levels of Generality Destory Price- Defined Coupling Counts  G0-G0, Related - Type 1  G5-G5, Related - Also Type 1?  New System of Metrics Is Necessary

CSE298 CSE300 DRE1.25 Future of DRE - Multilevel Generals  Possible Metrics Solutions and Problems  Qualitative Assessment of Reuse  Desired Effect (Continual Code Modification) Perhaps Missing  Continue with 8 CCs, Assign Less-General Class as Specific  Few General-General Measurements Will Result (Producing Bad or “Improvable” CCs)  G5-G5 Coupling Equal to G0-G0 Coupling  Separate CC For Each Level of Generality  Requires 2*n 2 CCs for n levels  At what point is differentiation impossible?

CSE298 CSE300 DRE1.26 Future of DRE - Multilevel Generals  Possible Metrics Solutions and Problems cntd.  Ignore Multiple Generals, Calculate as Normal  Point of Multiple Generals?  Windowing Technique - Set # of CCs, Groups of Generals  i.e. 16 CCs, 3 groups of Generals  No distinction made in greater numbers of multiple generals  Couplings Worth Different Amounts, Depending on Locations  Requires complicated metrics calculations  May produce few Specific-Specific dependencies

CSE298 CSE300 DRE1.27 Future of DRE - Multiple Generals  Best solution: Couplings Worth Different Amounts, Depending on Location  Example: System with 6 Levels of Generality, G0 (Most General) through G5 (Specific)  G0-G0 Coupling Among Related Classes Gets Maximum Value for Coupling Type 1  G4-G4 Coupling Among Related Classes  Still Type 1, Good For Reuse  On reusability scale, least reusable, gets lowest Coupling Value  Default Type as Specific Reduces Low Specific-Specific Problem

CSE298 CSE300 DRE1.28 Future Directions of DRE  CBD and Multiple Generals Are High-Level Concepts, Only to be Undertaken in Major Revamps of Current Tool  CBD Alteration  Requires Specification of Component Types  Requires Redesign of Parser, User Interface, and Metrics Calculator  Multiple Generals Alteration  Requires Major Overhaul of Coupling Counts Theory  Requires Major Redesign of Metrics Calculator and User Interface

CSE298 CSE300 DRE1.29 DRE Analysis  “Is DRE stable for production?”  No  “Is DRE stable for UConn?”  Relatively

CSE298 CSE300 DRE1.30 DRE Problems  DRE Written in Java  Problem: Continued Development of Language Has Unintentional Effect of Deprecations  Solution: DRE Tool must be upgraded often  Parser Incomplete  Problem: Coding Styles Vary, and Possibilities Are Many  Solution: Continue to test DRE on code samples and modify source when necessary –Problem: Already has resulted in “Hack” code  Solution: Incorporate a “real” parser into DRE –Problem: Bulky

CSE298 CSE300 DRE1.31 DRE Problems  Separation of Concerns Plagues DRE Code  Problem: Bad OO Design  Solution: Incrementally remove internal dependencies and relocate functions –Problem: Complicated code, results in “Hack” code  Solution: Take DRE Specs and start again –Problem: Major overhead  Solution: Ignore it –Problem: Hard to upgrade  Public Use of DRE  Problem: Purpose of Software without Users?  Solution: Fix all other problems

CSE298 CSE300 DRE1.32Conclusions  DRE Tool  Relatively Stable  Relatively User-Friendly  Helpful in Design?  Further Work  Continued Maintenance  Ada95 Integration  Parser Fixes  Simulation Repair  High-Level Redesign