Metrics for OO Design Distinct & measurable characteristics of OO design:- Size:-it is defined as – population,volume,length & functionality Population.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Ch 3 System Development Environment
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
Metrics for Object Oriented Design Shyam R. Chidamber Chris F. Kemerer Presented by Ambikadevi Damodaran.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Software Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
Object-Oriented Metrics
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Introduction to Software Testing
Comp 587 Parker Li Bobby Kolski. Automated testing tools assist software engineers to gauge the quality of software by automating the mechanical aspects.
Chapter 1 The Systems Development Environment
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 1 The Systems Development Environment
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
Chapter 2 The process Process, Methods, and Tools
The Rational Unified Process
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
An Introduction to Software Architecture
Chapter 6 : Software Metrics
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Measurement & Metrics
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15b: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
Version control – Project repository, version management capability, make facility, issue/bug tracking Change control Configuration audit – compliments.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Project Scheduling 1. Why Are Projects Late? An unrealistic deadline established by someone outside the software development group Changing customer requirements.
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
An Automatic Software Quality Measurement System.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
The Systems Development Environment Systems Analysis and Design II.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Lecture 19: Object-Oriented Testing & Technical Metrics.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Object Oriented Metrics
Chapter 33 Estimation for Software Projects
Pragmatics 4 Hours.
A Hierarchical Model for Object-Oriented Design Quality Assessment
Modern Systems Analysis and Design Third Edition
Course Notes Set 12: Object-Oriented Metrics
Object-Oriented Analysis and Design
Modern Systems Analysis and Design Third Edition
Distribution and components
Object oriented system development life cycle
Object-Oriented Metrics
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Mei-Huei Tang October 25, 2000 Computer Science Department SUNY Albany
Introduction to Software Testing
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Chapter 26 Estimation for Software Projects.
Modern Systems Analysis and Design Third Edition
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Metrics for OO Design Distinct & measurable characteristics of OO design:- Size:-it is defined as – population,volume,length & functionality Population – it’s a static count of OO entities such as classes/operations Volume– dynamically maintained OO entities Length- chain of interconnected design elements Functionality-indirect identification of the value delivered to the customer by OO application Complexity:-examination of OO classes interaction Coupling:-the connection between of OO design Sufficiency:- does the class fully reflect all properties of application domain Completeness:-whether some components can be reusable? Cohesion:- OO component has been designed together and has all operations working to achieve a single component

Class oriented metrics The class is the fundamental unit of an OO system;to assess OO design quality measures and metrics of individual class, class hierarchy,class collaboration are observed A class encapsulates data and the function manipulates data,it is “parent” for subclasses that inherit its attributes and operations CK metrics suite – Chidamber and Kemerer have proposed most widely referenced sets of OO s/w metrics (CK metrics suite)- proposed six class based design metrics for OO system(Pg 628) – Weighted method per class(WMC) – Depth of Inheritance Tree(DIT) – No.of Children(NOC) – Coupling between object classes(CBO) – Response for class(RFC) – Lack of Cohesion in methods(LCOM)

Use case estimation Use case oriented metrics:-use cases are used for customer level or business domain requirements They imply s/w features and functions Use case is used as a normalization measure just like FP or LOC They describe user visible functions and features that are basic requirements of a system Use cases are independent of programming lang/technology used The number of use cases are directly proportional to the size of application in LOC and to the no.of test cases designed to fully exercise the application No std.size for use case and Researchers have proposed use case pts(UCPs) as a techq. for estimating project effort UCP is a function of the no.of actors and transactions implied by the use case models and its similar to FP

Estimation with use cases Use cases provide an insight into s/w scope and requirements to a s/w team Use cases can be problematic for following reasons:- – Use cases described using many diff formats & styles – They represent an external view of s/w – They do not address the complexity of functions and features that described – They describe complex behavior,involves many functions and features Unlike LOC/FP,one person’s use case may require months of effort while another’s may be implemented in a day or two Before use cases can be used for estimation, the level within structural hierarchy is established, the avg.length of each use case is determined, the type of s/w(webApp,scientific/engineering,business,real time or embedded) defined & a rough architecture is considered Empirical(experimental/observed) data may be used to establish the estimated no.of LOC or FP per use case LOC estimate=N*LOCavg + [(Sa/Sh – 1) + (Pa/Ph – 1)] * LOCadjust Where N– no.of actual use cases, LOCavg—avg(observed)LOC per use case LOCadjust—represents an adjustment based on n percent of LOCavg Sa– actual scenarios per use case Sh—avg.scenarios per use case Pa- actual pages per use case Ph- avg.pages per use case Refer Refer

OO Tracking programs (like conclusion of the story) Technical milestone:-OO analysis completed – All classes and class hierarchy defined & reviewed – Class attributed and operations associated with a class defined & reviewed – Class relationship have been established & reviewed – Behavioral model created – Reusable classes noted Technical milestone :-OO design completed The set of subsystems have been defined and reviewed Classes are allocated to subsystems and reviewed Task allocation has been done and reviewed Responsibilities and collaborations have been identified Attributes and operations redefined The communication model has been generated Technical milestone :-OO programming completed Each new class implemented in code Extracted classes(from a reuse library) have been implemented Prototype or increment has been built Technical milestones :- OO testing – The correctness and completeness of OO analysis and design – A Class Responsibility Collaboration Network has been developed – Test cases designed – Cluster testing completed – System level tests completed

Introduction to CASE System analysis and design process is a complex process. It requires a careful steps and planning. Methodologies and approaches has been developed to systematically improve the efficiency and effectiveness of this process so it can better support and be aligned with the business needs. The emergence of personal computer has enabled the broader adoption of CASE tools which were previously only available on commonly very expensive mainframe. Because of the wide selection available on the market right now, managers of organization need to wisely select the appropriate CASE tool for their organizational need. Although the CASE tools being evaluated is not very extensive, this online paper is intended to give an overview and a initial thought on selecting the a CASE tool. Case Tool Computer-aided software engineering (CASE) tools is defined as software tools that provide automated support for some portion of the systems development process. CASE tool can be categorized into three categories: Upper CASE Middle CASE Lower CASE Because of their similarities, sometimes Upper and Middle CASE are simply referred as Upper CASE. Generally, Upper CASE is a tool for high level view of software development whereas lower CASE is mostly being used as a tool at the programming and testing phase.

CASE history in a nutshell Software designers have used diagrammatic representations of their designs since the earliest days of software development. Over time the nature of these design diagrams has changed and so have the tools used to produce them. Much like early word processors replaced typewriters, early CASE tools served as electronic replacements for paper, pencil, and stencil. Many of these early CASE tools became unused "shelfware" because they did not provide significant value to software designers (Iivari, 1996). Later,CASE tools added sophisticated code generation, reverse engineering, and version control features. These features add value via increased automation of some design tasks, for example, converting a design into a source code skeleton.

What is CASE (Computer-AidedSoftware Engineering)? Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support The CASE tools may also include a code generator which automatically generates source code from the system model and some process guidance which gives advice to the software engineer on what to do next. This type of CASE tool, aimed at supporting analysis and design, is sometimes called an upper- CASE tool because it supports early phases of the software process