Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

Size: px
Start display at page:

Download "Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality"

Transcription

1 Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Current Research Team: Prof. Victor R. Basili Forrest Shull, Ph.D. Guilherme H. Travassos, D.Sc. (1) Jeffrey Carver, Graduate Research Assistant This work is partially supported by UMIACS and by NSF grant CCR (1) On leave from the Federal University of Rio de Janeiro - /Computer Science and System Engineering Department, partially supported by CAPES - Brazil Department of Computer Science Experimental Software Engineering Group Fraunhofer Center - Maryland Evolving a Process for Inspecting OO Designs Outline: Reading Techniques Families of Reading Techniques Lessons Learned from the Initial Study The Road Ahead Observational Studies Lessons Learned from the Observational Studies Open Questions 1

2 Reading Techniques Why read? Software practitioners are taught how to write, but typically not how to read, software documents Many software processes assume that practitioners know how to effectively find the information they need (i.e. how to read) such documents e.g. inspection process: read a document to find defects Reading Techniques For what? to deal with complete, consistent, unambiguous, and, correct documents across the software process Domain Knowledge General Requirements omission Increasing Quality! inconsistency Software Artifacts incorrect fact Software Artifacts: Requirements Documents, Use-cases Scenarios descriptions Design Diagrams Source Code Other Domain extraneous ambiguity 2

3 Reading Techniques Why read? looking for defects: Defect General Description Omission Necessary information about the system has been omitted from the software artifact. Incorrect Fact Some information in the software artifact contradicts information in the requirements document or the general domain knowledge. Inconsistency Information within one part of the software artifact is inconsistent with other information in the software artifact. Ambiguity Information within the software artifact is ambiguous, i.e. any of a number of interpretations may be derived that should not be the prerogative of the developer doing the implementation. Extraneous Information is provided that is not needed Information or used. to: understanding reusing analyzing constructing maintaining testing reasoning Reading Techniques Software reading techniques attempt to increase the effectiveness of inspections by providing procedural guidelines that can be used by individual reviewers to examine (or read ) a given software artifact and identify defects There is empirical evidence that software reading is a promising technique for increasing the effectiveness of inspections on different types of software artifacts, not just limited to source code. 3

4 Families of Reading Techniques Reading Technology PROBLEM SPACE Construction Analysis General Goal Maintenance Reuse Traceability Defect Detection Usability Specific Goal Requirements Design Code Test Plan Design Requirements Code User Interface Document (artifact) Use-Cases Project Source Code White Box Framework Black Box Framework Code Library SCR English Screen Shot Notation Form SOLUTION SPACE Scope-based Defect-based Perspective-based Usability-based Family System Wide Task Oriented Omission Inconsistent Incorrect Expert Novice Error Ambiguity DeveloperTester User Technique Reading Technology PROBLEM SPACE Analysis General Goal Defect Detection Usability Specific Goal Design Requirements Code User Interface Document (artifact) OO Diagrams SCR English Screen Shot Notation Form SOLUTION SPACE Traceability Defect-based Perspective-based Usability-based Family Horizontal Vertical Omission Ambiguity Technique Incorrect ExpertNoviceError Developer Tester User Inconsistent 4

5 Late A Lender : Specified Lender Receive Monthly Report receive a monthly report monthly report informing payment on time [ payment time <= due time ] monthly_report(lender, loans, borrowers) Fanny May : Loan Arranger monthly report informing payment on time [ payment time <= due time ] Good verify_report() monthly report informing late payment [ payment time > due time + 10 ] identify_report_format() look_for_a_lender(lender) update(lender) look_for_a_loan(loan) lende r : new_lender(name,contact,phone_number) update_loan(lender, borrower) new_loan(lender, borrowers) monthly report informing late payment [ payment time > due time + 10 ] Default Loan : Loan look_for_a_ update_ new_ Borrower : Borrower Goal: To develop a family of reading techniques that can be used to read OO high level design artifacts against 1. themselves, and 2. requirements descriptions and use-cases within a domain in order to identify defects among them. Abstractions of Information: tracing the semantic consistency of pairs of documents Uses of Information: detect defects Procedures: For detecting defects in design diagrams UML Artifacts: Monthly Report Lender name : text id : text contact : text phone_number : number 1.* Bundle active time period : date profit : number estimated risk : number total : number loan analyst : id_number discount_rate : number investor_name : text date_sold : date Specified Lender Receive Reports Request Investor Investment Request Generate Reports Fanny May Loan Analyst Borrower name : text id : number risk : number status : text risk() set_status_good() set_status_late() set_status_default() borrower_status() set_status() 1..* 1 1..* Loan amount : number interest rate : number settlement data : date term : date status : text original_value : number principal_original : number risk() set_status_default() set_status_late() set_status_good() discount_rate() borrowers() principal_remaining() * risk() calculate_profit() cost() Loan Arranger rec_monthly_report() inv_request() generate reports() identify_report_format() verify_report() look_for_a_lender() look_for_a_loan() identify_loan_by_criteria() manually_select_loans() optimize_bundle() calculate_new_bundle() identify_asked_report() aggregate_bundles() aggregate_loans() aggregate_borrowers() Loan-Arranger Requirements Specification Jan. 8, 1999 Fixed_Rate Loan risk() principal_remaining() Variable_Rate Loan principal_remaining : number risk() principal_remaing() aggregate_lenders() format_report() show_report() Background Banks generate income in many ways, often by borrowing money from their depositors at a low interest rate, and then lending that same money at a higher interest rate in the form of bank loans. However, property loans, such as mortgages, typically have terms of 15, 25 or even 30 years. For example, suppose that you purchase a $150,000 house with a $50,000 down payment and borrow a $100,000 mortgage from National Bank for thirty years at 5% interest. That means that National Bank gives you $100,000 to pay the balance on your house, and you pay National Bank back at a rate of 5% per year over a period of thirty years. You must pay back both principal and interest. That is, the initial principal, $100,000, is paid back in 360 installments (once a month for 30 years), with interest on the unpaid balance. In this case the monthly payment is $ Although the income from interest on these loans is lucrative, the loans tie up money for a long time, preventing the banks from using their money for other transactions. Consequently, the banks often sell their loans to consolidating organizations such as Fannie Mae and Freddie Mac, taking less long-term profit in exchange for freeing the capital for use in other ways. Loan Arranger Classes Description Class name: Fixed_Rate Loan Category: Logical View Documentation: A fixed rate loan has the same interest rate over the entire term of the mortgage External Documents: Export Control: Public Cardinality: n Hierarchy: Superclasses: Loan Public Interface: Operations: risk principal_remaining State machine: No Concurrency: Sequential Persistence: Persistent Operation name: risk Public member of: Fixed_Rate Loan Return Class: float Documentation: take the average of the risks' sum of all borrowers related to this loan if the average risk is less than 1 round up to 1 else if the average risk is less than 100 round up to the nearest integer otherwise round down to 100 Concurrency: Sequential Loan State Diagram monthly report informing late payment [ due time < payment time < due time + 10 ] 5

6 Target Artifacts: Requirements Specification Requirements Descriptions Use-Cases High Level Design Class Diagrams Class Descriptions State Machine Diagrams Interaction Diagrams Vertical reading Horizontalreading (Sequence) looking for defects: Type of Defect Omission Incorrect Fact Inconsistency Ambiguity Extraneous Information Description One or more design diagrams that should contain some concept from the general requirements or from the requirements document do not contain a representation for that concept. A design diagram contains a misrepresentation of a concept described in the general requirements or requirements document. A representation of a concept in one design diagram disagrees with a representation of the same concept in either the same or another design diagram. A representation of a concept in the design is unclear, and could cause a user of the document (developer, low-level designer, etc.) to misinterpret or misunderstand the meaning of the concept. The design includes information that, while perhaps true, does not apply to this domain and should not be included in the design. Table 1 Types of software defects, and their specific definitions for OO designs 6

7 Description: Fall/98 course - CMSC Students organized in 15 teams (14 (3 students team) and 1 (2 students team)) System: financial database application (a system responsible for organizing the loans held by a financial consolidating organization, and for bundling them for resale to investors) Problem features: small system with low number of classes but with some design complexity due to non-functional performance requirements Target programming languages: C++ or Java Goal: to evaluate the first version of the reading techniques Size Measures for the inspected design: Class Name Attrs. WMC DIT NOC CBO State Dgm. exists? Seq1 Contains? Seq2 Containstainstains? Seq3 Con- Seq4 Con- Seq5 Contains? Property Borrower Lender yes Loan yes yes Fixed Rate Loan Adjustable Rate Loan Bundle yes yes Investment yes Request Loan Arranger yes yes yes yes yes Financial Org yes yes yes yes yes yes Loan Analyst yes yes yes yes yes number of attributes (Attrs.), Weighted Methods/Class (WMC), Depth of Inheritance (DIT), Number of Children (NOC), and Coupling Between Objects (CBO) 7

8 The inspection process with OO reading techniques: Reader 1 Reader 2 Reader 3 looking for consistency horizontal reading looking for consistency horizontal reading looking for traceability vertical reading Meet as a team to discuss a comprehensive defect list. Each reader is an expert in a different aspect Final list of all defects sent to designer for repairing Subset of metrics collected in the feasibility study When Collected Before the study After individual review Metrics a) Details on subjects amount of experience with requirements, design, and code b) Time spent on review (in minutes) c) Opinion of effectiveness of technique (measured by what percentage of the defects in the document they thought they had found) d) How closely they followed the techniques (measured on a 3-point scale) e) Number and type of defects reported After team meeting f) Time spent (in minutes) g) Usefulness of different perspectives (open-ended question) In post-hoc interviews h) How closely they followed technique (open-ended question, to corroborate d) i) Were the techniques practical, would they use some or all of them again (openended question) 8

9 Reading Technique for Class diagrams x Class descriptions For each class modeled into the class diagram, do: 1)Read the class description to find an associated description to the class. Underline with a yellow pen the portion of the Class descriptions corresponding to the class Verify if: 1.1)All the attributes are described and with basic types associated Underline them with a blue pen 1.2)All the behaviors and conditions are described Underline them with a green pen 1.3)All the class inheritance relationships are described Draw a box around them with a yellow pen if there is any 1.4) All the class relationships (association, aggregation and composition) are described with multiplicity indication Circle each multiplicity indication with a blue pen if it is correct. First version of a horizontal reading technique. The emphasis is on syntactic checking, that is, that the OO notation on both diagrams agrees. Some results from the experiment: The definition of design defects by extending an already existing defect taxonomy It is important to measure the effectiveness (number of defects found): Subjects using vertical reading tended, on average, to report slightly more defects of omission and incorrect fact (i.e. of types of defects uncovered by comparisons against the requirements) than those using horizontal reading (6.8 versus 5.4 defects) Subjects using horizontal reading tended to report more defects of ambiguity and inconsistency (i.e. of types of defects uncovered by examination of the design diagrams themselves) than subjects using vertical reading (5.3 versus 2.9) 9

10 Some results from the experiment: developers agreed that using: heuristics to construct OO artifacts is good some kind of OO reading technique is worthwhile some developers said that they would like to use the same techniques again but, the mechanisms used to instrument them should be improved. The study allowed us to identify weaknesses in the first version of the techniques that have led to a second version It was possible to demonstrate that such reading techniques can be used as part of design inspections, and do help reviewers detect defects The Road Ahead: 1. Improving first version of the reading techniques using the subjects feedback by: inserting semantic concerns into the reading techniques to improve the detection of defects (incorrect fact, ambiguity and extraneous) inserting construction concerns into the reading techniques to allow developers argue about design reasoning 10

11 Reading Technique for Class diagrams x Class descriptions 2) Read the class descriptions to find an associated description to each class on the class diagram. Take a look at the class description. Can this description be used to describe the class that you are considering at this time? Is it using an adequate abstraction level? Box the class name in the class description with a blue pen and write in the same number given to the class on the class diagram. Mark found classes with a blue symbol (*) on the class diagram Make good use of this time and verify if: All the attributes are described along with basic types Can this class encapsulate all these attributes? Are the attributes associated to feasible/possible basic types? Does it make sense to have these attributes in the class description? Is some attribute missing between the two documents or sounding extraneous? Write down missing and extraneous attributes with a yellow pen All the behaviors and constraints are described Can this class encapsulate all these behaviors? Is some behavior missing between the two documents or sounding extraneous? Are the behavior descriptions using the same abstraction level? Do the behaviors use the class attributes to accomplish the procedure? Are the constraints reachable using the attributes and behaviors of the class? Do the constraints make sense for this class? Are the constraints depending upon some class attributes? Were they described? Write down missing/extraneous behaviors with a green pen Write down missing/extraneous constraints with a yellow pen The Road Ahead: 2. Assessment issues: Better metrics for assessing inspections effectiveness by looking for a way to take account false positives (i.e. items that are reported by reviewers but which should really not be considered defects) Developing qualitative as well as quantitative means of assessment. Qualitative methods would help us understand the process as well as the results. 11

12 The Road Ahead Observational Study: we use the term observational to define a setting in which an experimental subject performs some task while the experimenter gathers data about what exactly the subject does. Purpose: to collect data about how the particular task is accomplished observational data Time taken Problems encountered Inquisitive data Influence of prior knowledge Lessons Learned from the Observational Studies Observational data Time taken: time for applying the techniques is influenced by prior experience of the reader, complexity of the information, order of reading steps and levels of abstraction Problems encountered: organizational and semantic issues, format of software artifacts Inquisitive data Influence of prior knowledge: domain knowledge seemed to be necessary to support horizontal reading basic OO knowledge seemed to be necessary 12

13 The Road Ahead: 3. Improving defect taxonomy making use of expert opinion (where experts include skilled practitioners and researchers) to understand if the taxonomy captures the important types of defects in OO designs 4. Empirically validating the reading techniques doing experiments with specified projects and real development Experiment: 5. Packaging and replicating the experiments in other places identifying the applicability of such reading techniques in different development environments Technical Report: ftp://ftp.cs.umd.edu/pub/papers/papers/ncstrl.umcp/cs- TR-4070/CS-TR-4070.ps.Z Open Questions: 1. What is the role of domain knowledge for these two sets of reading techniques? Horizontal x Vertical reading 2. What is the adequate level of automated support that should be provided for such techniques? Some steps are repetitive and mechanical to the reader Clerical activities need to be identified 13

Application of the perspectivebased reading technique in the nuclear I&C context. Jussi Lahtinen

Application of the perspectivebased reading technique in the nuclear I&C context. Jussi Lahtinen S VISIONS SCIENCE TECHNOLOGY RESEARCH HIGHLIGHT 9 Application of the perspectivebased reading technique in the nuclear I&C context CORSICA work report 2011 Jussi Lahtinen VTT TECHNOLOGY 9 Application

More information

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

The role of replications in Empirical Software Engineering

The role of replications in Empirical Software Engineering Empir Software Eng (2008) 13:211 218 DOI 10.1007/s10664-008-9060-1 VIEWPOINT The role of replications in Empirical Software Engineering Forrest J. Shull & Jeffrey C. Carver & Sira Vegas & Natalia Juristo

More information

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

The Role of Controlled Experiments in Software Engineering Research

The Role of Controlled Experiments in Software Engineering Research The Role of Controlled Experiments in Software Engineering Research Victor R. Basili 1 The Experimental Discipline in Software Engineering Empirical studies play an important role in the evolution of the

More information

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering System Models Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain why the context of a system should be modeled as part of the RE process To describe

More information

10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd)

10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd) Slide 10..1 CHAPTER 10 Slide 10..2 Object-Oriented and Classical Software Engineering REQUIREMENTS Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu Overview Slide 10..3

More information

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions Announcements SE 1: Software Requirements Specification and Analysis Lecture 4: Basic Notations Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445 Send your group

More information

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology? In this Lecture you will Learn: Systems Development Methodologies What a systems development methodology is Why methodologies are used The need for different methodologies The main features of one methodology

More information

(BA122) Software Engineer s Workshop (SEW)

(BA122) Software Engineer s Workshop (SEW) Training for the Business Analyst (BA122) Software Engineer s Workshop (SEW) Duration: 4 days CDUs (Continuing Development Units): 28 Description: A practical workshop covering the role of the Business-Systems

More information

Software Review Guidelines

Software Review Guidelines Software Review Guidelines Walcélio Melo Oracle / UCB 196 Van Burren St, Suite 200 Herndon, VA, 20170 wmelo@computer.org Forrest Shull Fraunhofer Center - Maryland University of Maryland 4321 Hartwick

More information

II. TYPES OF LEVEL A.

II. TYPES OF LEVEL A. Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.

More information

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs. CH04 Capturing the Requirements Understanding what the customers and users expect the system to do * The Requirements Process * Types of Requirements * Characteristics of Requirements * How to Express

More information

Requirements Engineering Process

Requirements Engineering Process Software Engineering Requirements Engineering Process Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To describe the principal requirements engineering activities and d their

More information

Percerons: A web-service suite that enhance software development process

Percerons: A web-service suite that enhance software development process Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software

More information

Business Process Modeling with Structured Scenarios

Business Process Modeling with Structured Scenarios Business Process Modeling with Structured Scenarios Doug Rosenberg ICONIX Software Engineering, Inc. In 2008, based on our experience with a number of business process engineering projects over the last

More information

Lecture 9: Requirements Modelling

Lecture 9: Requirements Modelling A little refresher: What are we modelling? Lecture 9: Requirements Modelling Requirements; Systems; Systems Thinking Role of Modelling in RE Why modelling is important Limitations of modelling Brief overview

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Evaluating a Usability Inspection Technique by means of Industry Case Studies

Evaluating a Usability Inspection Technique by means of Industry Case Studies Evaluating a Usability Inspection Technique by means of Industry Case Studies Marcos Gomes Tecnologia de Informação e Comunicação Amazonas S.A. (PRODAM), Manaus, AM, Brazil, 69020-110 marcos.gomes@prodam.am.gov.br

More information

Process Models and Metrics

Process Models and Metrics Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

More information

Execution of A Requirement Model in Software Development

Execution of A Requirement Model in Software Development Execution of A Requirement Model in Software Development Wuwei Shen, Mohsen Guizani and Zijiang Yang Dept of Computer Science, Western Michigan University {wwshen,mguizani,zijiang}@cs.wmich.edu Kevin Compton

More information

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD) Design methods List of possible design methods Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP) OO is good, isn t it Decision tables E-R Flowcharts FSM JSD JSP

More information

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao Requirements Analysis Concepts & Principles Instructor: Dr. Jerry Gao Requirements Analysis Concepts and Principles - Requirements Analysis - Communication Techniques - Initiating the Process - Facilitated

More information

Object-oriented design methodologies

Object-oriented design methodologies Object-oriented design methodologies An object-oriented methodology is defined as the system of principles and procedures applied to object-oriented software development. Five years ago, there was no standard

More information

Quantitative and qualitative methods in process improvement and product quality assessment.

Quantitative and qualitative methods in process improvement and product quality assessment. Quantitative and qualitative methods in process improvement and product quality assessment. Anna Bobkowska Abstract Successful improvement of the development process and product quality assurance should

More information

Partnering for Project Success: Project Manager and Business Analyst Collaboration

Partnering for Project Success: Project Manager and Business Analyst Collaboration Partnering for Project Success: Project Manager and Business Analyst Collaboration By Barbara Carkenord, CBAP, Chris Cartwright, PMP, Robin Grace, CBAP, Larry Goldsmith, PMP, Elizabeth Larson, PMP, CBAP,

More information

A Survey on Requirement Analysis in the Nigerian Context

A Survey on Requirement Analysis in the Nigerian Context A Survey on Requirement Analysis in the Nigerian Context Olaronke Ganiat Elias 1, Janet Olusola Olaleke 1, Micheal Segun Olajide 1, and Nureni John Ayinla 1 1 Computer Science Department, Adeyemi College

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) VERSION 2.1 SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS 1 TABLE OF CONTENTS INTRODUCTION... 3 About The Service-Oriented Modeling Framework

More information

Chap 4. Using Metrics To Manage Software Risks

Chap 4. Using Metrics To Manage Software Risks Chap 4. Using Metrics To Manage Software Risks. Introduction 2. Software Measurement Concepts 3. Case Study: Measuring Maintainability 4. Metrics and Quality . Introduction Definition Measurement is the

More information

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

IV. Software Lifecycles

IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

More information

Quality prediction model for object oriented software using UML metrics

Quality prediction model for object oriented software using UML metrics THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE. UML Quality prediction model for object oriented software using UML metrics CAMARGO CRUZ ANA ERIKA and KOICHIRO

More information

An Experimental Comparison of Reading Techniques for Defect Detection in UML Design Documents

An Experimental Comparison of Reading Techniques for Defect Detection in UML Design Documents An Experimental Comparison of Reading Techniques for Defect Detection in UML Design Documents Oliver Laitenberger, Colin Atkinson, Maud Schlich Fraunhofer Institute for Experimental Software Engineering

More information

Empirical Models and Techniques for Software Engineering Development

Empirical Models and Techniques for Software Engineering Development Building an Experience Base for Software Engineering: A Report on the First eworkshop Victor Basili, Roseanne Tesoriero, Patricia Costa, Mikael Lindvall, Ioana Rus, Forrest Shull, Marvin Zelkowitz Fraunhofer

More information

The SPES Methodology Modeling- and Analysis Techniques

The SPES Methodology Modeling- and Analysis Techniques The SPES Methodology Modeling- and Analysis Techniques Dr. Wolfgang Böhm Technische Universität München boehmw@in.tum.de Agenda SPES_XT Project Overview Some Basic Notions The SPES Methodology SPES_XT

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

Quality Management. Objectives

Quality Management. Objectives Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the

More information

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN

1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1.1 INTRODUCTION Systems are created to solve problems. One can think of the systems approach as an organized way of dealing with a problem. In this dynamic

More information

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES Robert M. Bruckner Vienna University of Technology bruckner@ifs.tuwien.ac.at Beate List Vienna University of Technology list@ifs.tuwien.ac.at

More information

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting petemcbreen@acm.org All rights reserved. You have permission to copy and distribute the document as long as you make no changes

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

Domain Analysis for the Reuse of Software Development Experiences 1

Domain Analysis for the Reuse of Software Development Experiences 1 Domain Analysis for the Reuse of Software Development Experiences 1 V. R. Basili*, L. C. Briand**, W. M. Thomas* * Department of Computer Science University of Maryland College Park, MD, 20742 USA ** CRIM

More information

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective: CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if

More information

Quality Management. Managing the quality of the software process and products

Quality Management. Managing the quality of the software process and products Quality Management Managing the quality of the software process and products Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 24 Slide 1 Objectives To introduce the quality management process

More information

Requirements Management

Requirements Management REQUIREMENTS By Harold Halbleib Requirements Management Identify, Specify, Track and Control Requirements Using a Standard Process About the author... Harold Halbleib has a degree in Electrical Engineering

More information

Assuming the Role of Systems Analyst & Analysis Alternatives

Assuming the Role of Systems Analyst & Analysis Alternatives Assuming the Role of Systems Analyst & Analysis Alternatives Nature of Analysis Systems analysis and design is a systematic approach to identifying problems, opportunities, and objectives; analyzing the

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Flowcharting, pseudocoding, and process design

Flowcharting, pseudocoding, and process design Systems Analysis Pseudocoding & Flowcharting 1 Flowcharting, pseudocoding, and process design The purpose of flowcharts is to represent graphically the logical decisions and progression of steps in the

More information

Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control

Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control Quality Management Sommerville Chapter 27 Objectives To introduce the quality management process and key quality management activities To explain the role of standards in quality management To explain

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

Introduction to Software Engineering. 8. Software Quality

Introduction to Software Engineering. 8. Software Quality Introduction to Software Engineering 8. Software Quality Roadmap > What is quality? > Quality Attributes > Quality Assurance: Planning and Reviewing > Quality System and Standards 2 Sources > Software

More information

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction CS 3141: Team Software Project Introduction Ali Ebnenasir Department of Computer Science Michigan Technological University Acknowledgement Betty H.C. Cheng Software Engineering Systematic approach for

More information

11 Tips to make the requirements definition process more effective and results more usable

11 Tips to make the requirements definition process more effective and results more usable 1 11 Tips to make the s definition process more effective and results more usable This article discusses what I believe are the key techniques for making s definition process repeatable from project to

More information

HOME AFFORDABLE MODIFICATION PROGRAM BASE NET PRESENT VALUE (NPV) MODEL SPECIFICATIONS

HOME AFFORDABLE MODIFICATION PROGRAM BASE NET PRESENT VALUE (NPV) MODEL SPECIFICATIONS Overview HOME AFFORDABLE MODIFICATION PROGRAM BASE NET PRESENT VALUE (NPV) MODEL SPECIFICATIONS As a part of the Making Home Affordable Program, we are providing standardized guidance and a base net present

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

Data Modeling Basics

Data Modeling Basics Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy

More information

Lesson 8: Introduction to Databases E-R Data Modeling

Lesson 8: Introduction to Databases E-R Data Modeling Lesson 8: Introduction to Databases E-R Data Modeling Contents Introduction to Databases Abstraction, Schemas, and Views Data Models Database Management System (DBMS) Components Entity Relationship Data

More information

Developing Techniques for Using Software Documents: A Series of Empirical Studies

Developing Techniques for Using Software Documents: A Series of Empirical Studies Developing Techniques for Using Software Documents: A Series of Empirical Studies Ph.D. Thesis Proposal Forrest J. Shull University of Maryland Abstract This proposal presents an empirical method for developing

More information

A Systematic Review Process for Software Engineering

A Systematic Review Process for Software Engineering A Systematic Review Process for Software Engineering Paula Mian, Tayana Conte, Ana Natali, Jorge Biolchini and Guilherme Travassos COPPE / UFRJ Computer Science Department Cx. Postal 68.511, CEP 21945-970,

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT SYSTEMS ANALYSIS & DESIGN EXAMINERS REPORT

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT SYSTEMS ANALYSIS & DESIGN EXAMINERS REPORT BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT SYSTEMS ANALYSIS & DESIGN EXAMINERS REPORT Monday 28 th September 2015 Case Study for both sections A and

More information

IV. The (Extended) Entity-Relationship Model

IV. The (Extended) Entity-Relationship Model IV. The (Extended) Entity-Relationship Model The Extended Entity-Relationship (EER) Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of EER Diagrams

More information

Section C. Requirements Elicitation

Section C. Requirements Elicitation This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License. Your use of this material constitutes acceptance of that license and the conditions of use of materials on this

More information

Effective Business Requirements (Virtual Classroom Edition)

Effective Business Requirements (Virtual Classroom Edition) Developing & Confirming Effective Business Requirements (Virtual Classroom Edition) Eliminate Costly Changes and Save Time by Nailing Down the Project Requirements the First Time! Pre-Workshop Preparation

More information

Requirements Based Testing Process Overview

Requirements Based Testing Process Overview Requirements Based Testing Process Overview 2009 Bender RBT Inc. 17 Cardinale Lane Queensbury, NY 12804 518-743-8755 info@benderrbt.com www.benderrbt.com The requirements-based testing (RBT) process addresses

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

Using Measurement to translate Business Vision into Operational Software Strategies

Using Measurement to translate Business Vision into Operational Software Strategies Using Measurement to translate Business Vision into Operational Software Strategies Victor R. Basili University of Maryland and Fraunhofer Center - Maryland BUSINESS NEEDS Any successful business requires:

More information

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture Delmir de Azevedo Junior 1 and Renato de Campos 2 1 Petrobras University, Republican

More information

Software Requirements. Objectives

Software Requirements. Objectives Software Requirements cmsc435-1 Objectives To introduce the concepts of user and system requirements To describe functional and non-functional requirements To explain how software requirements may be organized

More information

VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Sub Code : CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year : ME CSE / I Year

More information

UML TUTORIALS THE USE CASE MODEL

UML TUTORIALS THE USE CASE MODEL UML TUTORIALS THE USE CASE MODEL www.sparxsystems.com.au Sparx Systems 2004 Page 1/5 describes the proposed functionality of the new system. A Use Case represents a discrete unit of interaction between

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process Definitions Software Metrics Software Engineering Measure - quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Number of errors Metric -

More information

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages On General-purpose Textual Modeling Languages On General-purpose Textual Modeling Languages Martin Mazanec and Ondřej Macek Martin Mazanec and Ondřej Macek Department of Computer Science, FEL, Czech Technical

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable

More information

Goal Setting and the Software Design Process

Goal Setting and the Software Design Process Analysis of designers work Master s Thesis Joost Meijles Thursday, 2005 July 14 1 year Master Software Engineering Supervisors Universiteit van Amsterdam Prof. Dr. P. Klint Philips Medical Systems Ir.

More information

(Refer Slide Time 00:56)

(Refer Slide Time 00:56) Software Engineering Prof.N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-12 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue

More information

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e. Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e., a representation of information as a continuous flow that

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

SC207 Software Engineering. Review Report: Producing More Reliable Software

SC207 Software Engineering. Review Report: Producing More Reliable Software SC207 Software Engineering Review Report: Producing More Reliable Software Guo Zaiyi (SA1) Lecturer: Dr. Edmond C. Prakash School of Computer Engineering Nanyang Technological University Abstract This

More information

What is a requirement? Software Requirements. Descriptions and specifications of a system

What is a requirement? Software Requirements. Descriptions and specifications of a system What is a requirement? Software Requirements Descriptions and specifications of a system May range from a high-level abstract statement of a service or a statement of a system constraint to a detailed

More information

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University Data Analysis 1 SET08104 Database Systems Copyright @ Napier University Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship?

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Story Card Based Agile Software Development

Story Card Based Agile Software Development Story Card Based Agile Software Development Chetankumar Patel, and Muthu Ramachandran Leeds Metropolitan University, UK c.patel@leedsmet.ac.uk Abstract The use of story cards for user stories in many Extreme

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.

Do you know? 7 Practices for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd. Do you know? "7 Practices" for a Reliable Requirements Management by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd. In this white paper, we focus on the "Requirements Management,"

More information

Metrics in Software Test Planning and Test Design Processes

Metrics in Software Test Planning and Test Design Processes Master Thesis Software Engineering Thesis no: MSE-2007:02 January 2007 Metrics in Software Test Planning and Test Design Processes Wasif Afzal School of Engineering Blekinge Institute of Technology Box

More information

Introduction to the Hewlett-Packard (HP) 10BII Calculator and Review of Mortgage Finance Calculations

Introduction to the Hewlett-Packard (HP) 10BII Calculator and Review of Mortgage Finance Calculations Introduction to the Hewlett-Packard (HP) 10BII Calculator and Review of Mortgage Finance Calculations Real Estate Division Sauder School of Business University of British Columbia Introduction to the Hewlett-Packard

More information

DOCUMENT CUSTODIAN CERTIFICATION JOB AIDS

DOCUMENT CUSTODIAN CERTIFICATION JOB AIDS DOCUMENT CUSTODIAN CERTIFICATION JOB AIDS These Job Aids provide additional detailed information regarding what is required for institutions that are providing document certification and custody services

More information