Springer NewYork Berlin Heidelberg Barcelona Budapest HongKong London Milan Paris Santa Clara Singapore Tokyo UNDERGRADUATE TEXTS IN COMPUTER SCIENCE

Size: px
Start display at page:

Download "Springer NewYork Berlin Heidelberg Barcelona Budapest HongKong London Milan Paris Santa Clara Singapore Tokyo UNDERGRADUATE TEXTS IN COMPUTER SCIENCE"

Transcription

1 UNDERGRADUATE TEXTS IN COMPUTER SCIENCE Editors David Gries Fred B. Schneider Springer NewYork Berlin Heidelberg Barcelona Budapest HongKong London Milan Paris Santa Clara Singapore Tokyo

2 UNDERGRADUATE TEXTS IN COMPUTER SCIENCE Beidler, Data Structures and Algorithms Ja/ote, An Integrated Approach to Software Engineering, Second Edition Kozen, Automata and Computability Merritt and Stix, Migrating from Pascal to C++ Zeig/er, Objects and Systems

3 Pankaj Jalote AN INTEGRATED APPROACH TO SOFTWARE ENGINEERING Second Edition With 108 Illustrations " Springer

4 Pankaj Jalote Department of Computer Science and Engineering Indian Institute of Technology Kanpur India Series Editors David Gries Fred B. Schneider Department of Computer Science Comell University UpsonHall Ithaca, NY USA Library of Congress Cataloging-in-Publication Data Jalote, P. An integrated approach to software engineering / Pankaj Jalote. - 2nded. p. cm. - (Undergraduate texts in computer science) IncIudes bibliographical references and index. 1. Software engineering I. Title. H. Series. QA J dc Printed on acid-free paper. ISBN DOI / ISBN (ebook) 1997, 1991 Springer-Verlag New York, Inc. Softcover reprint of the hardcover 2nd edition 1997 All rights reserved. This work may not be translated or copied in whole or in part without the written permission ofthe publisher (Springer-Verlag New York, Inc., 175 Fifth Avenue, New York, NY 10010, USA), except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any form of information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use of general descriptive names, trade names, trademarks, etc., in this publication, even if the former are not especially identified, is not to be taken as a sign that such names, as understood by the Trade Marks and Merchandise Marks Act, may accordingly be used freely by anyone. Production managed by Steven Pisano; manufacturing supervised by Johanna Tschebull. Camera-ready copy prepared from the author's Jb.TPC files

5 Preface to the Second Edition A lot has changed in the fast-moving area of software engineering since the first edition of this book came out. However, two particularly dominant trends are clearly discernible: focus on software processes and object-orientation. A lot more attention is now given to software processes because process improvement is considered one of the basic mechanisms for improving quality and productivity. And the object-oriented approach is considered by many one of the best hopes for solving some of the problems faced by software developers. In this second edition, these two trends are clearly highlighted. Aseparate chapter has been included entited "Software Processes." In addition to talking about the various development process models, the chapter discusses other processes in software development and other issues related to processes. Object-orientation figures in many chapters. Object-oriented analysis is discussed in the chapter on requirements, while there is a complete chapter entitled "Object-Oriented Design." Some aspects of object-oriented programming are discussed in the chapter on coding, while specific techniques for testing object-oriented programs are discussed in the chapter on testing. Overall, if one wants to develop software using the paradigm of object -orientation, ab aspects of development that require different handling are discussed. Most of the other chapters have also been enhanced in various ways. In particular, the chapters on requirements specification and testing have been considerably enhanced. The focus of the book remains an introductory course on software engineering; advanced topics are still not included. The basic case study-based approach of the book has been preserved. In addition to the structured design of the case study, the object-oriented design of the case study has been performed, and the design is described in the book. The structured design has now been implemented in C (in the

6 vi Preface to the Second Edition first edition the coding was done in Pascal), keeping in mind the growing popularity of the C language in cornmercial establishments. The object-oriented design has been coded in C++. Again, C++ was chosen mostly due to its high availability and popularity. Both the C and C++ code of the case study are available to readers from the horne page for the book. Metrics-based software development has been steadily gaining importance. This trend has been reftected in the book by placing greater emphasis on the role of metrics in software development. The use of some of the metrics in effecting the development process has been demonstrated on the case study. For example, metrics were used to evaluate, and then change, the design of the case study. Similarly, the C code was evaluated and then changed to reduce the complexity. Tools that were developed for metrics extraction and evaluation are also being made available through the horne page. A horne page has been created on the Web for this edition of the book, through which some of the documents and code of the case study and some of the tools used can be obtained. The URL of the horne page is The following material is available through the horne page (these are discussed at appropriate places in the book): 1. Design specifications for the structured design of the case study (both the initial and the final versions). 2. The C code implementing the final structured design of the case study (both the initial and the final versions). 3. The C++ code implementing the object-oriented design of the case study. 4. The following tools whieh have been used in the case study: dmetric-to evaluate the complexity of a design. complexi ty-to evaluate the complexity of ac program. style-to evaluate the style of ac program. ccov-a test coverage analyzer for C programs. I would like to express my gratitude to many people who readily clarified issues and provided feedback on various parts of the book. These include Frank McGarry; Professors Vietor Basili, Alan Davis, Ginaluigi Caldiera, Harish Karnik, and Mary Jean Harrold; and many others. I am partieularly grateful to Kamal K. Mantri, S. Haripriya, and G. Aditya Kiran for developing the C and C++ code for the case study, developing the tools used for evaluation, and performing experiments with the tools and various designs. I would also like to express my thanks to Infosys Technologies Ltd., Bangalore, where I am spending my sabbatical, for providing the necessary help to finish this edition. Comments about the book are welcome and can be sent by to jalote@iitk.ernet.in. Pankaj Jalote

7 Preface to the First Edition It is now c1ear that development of large software systems is an extremely complex activity which is full of various opportunities to introduce errors. Software engineering is the discipline that attempts to provide methods to handle this complexity and enable us to produce reliable software systems with maximum productivity. This book offers an integrated approach to software engineering. The "integrated" approach is different from others because the different topics are not covered in isolation. A running case study is employed, which is used throughout the book, illustrating the different activities of software development on the same project. Most ofthe major outputs ofthe project, such as the project plan, design document, code, test plan, test report, and so on, are shown for the case study. It is important, and very instructive, to not only teach the principles of software engineering but also apply them to a software development project so that all aspects of development can be seen c1early on a project. Such an approach, besides explaining the principles, also offers a case study which can be used as a model for a software development project by a student. Integration is further achieved by combining software metrics with the different development phases, instead of having aseparate chapter on the subject. It is recognized that metrics are used for controlling and assessing a software project and are employed throughout the life cyc1e. In the book, for each phase, relevant metrics and their use is discussed in the chapter for that phase. This conveys the right idea that metrics is not really a separate topic, complete in itself, but is integrated with the different activities of software development. Similarly, for each phase, quality assurance activities and the control activities that need to be performed while the activities of that phase are being done are described in the chapter for the particular phase.

8 viii Preface to the First Edition The sequence of chapters is essentially the same as the sequence of activities performed during software development. All activities, including quality assurance and control activities, that should be performed during a particular phase are grouped in one chapter. This is particularly useful for a project-based introductory course in software engineering in which both the students and the instructor can follow the chapters in the order given both in the lectures as weil as in the project. This book is for students who have not had previous training in software engineering, and it is suitable for a one-semester course. In order to limit the scope of the book and focus it for an introductory course, advanced topics like software reuse, reverse engineering, development environments, and so on, have not been included. It was feit that in an introductory course, rather than trying to give a ftavor of all the topics, it would be best to introduce the student to the discipline of software engineering as weil as to some of the important topics, and to prepare the student for taking advanced courses in the area of software engineering. This need was further feit since in the undergraduate computer science curriculum of most universities, the students have no exposure to software engineering prior to the introductory course, and often do not have any other foilow-up course before they graduate. One of the goals of the book, then, is to include only as much material as can be covered in a one-semester course, which may be the only software engineering course in a computer science student's education. I am grateful to my coileagues Vietor R. Basili and Dieter Rombach for their valuable inputs during the conceptual stages. I am particularly grateful to students in the software engineering courses that I taught at the University of Maryland and the Indian Institute of Technology, Kanpur. Teaching and interacting with the students had a great inftuence on the final form of the book. Students in my course at the Indian Institute of Technology, partieularly Sandeep Sharma and Samudrala Sridhar, deserve special thanks for helping with the case study.

9 Contents Preface to the Second Edition Preface to the First Edition 1 Introduction 1.1 The Software Problem Software Is Expensive Late, Costly, and Unreliable Problem of Change and Rework 1.2 Software Engineering Problem The Problem of Scale Cost, Schedule, and Quality The Problem of Consistency 1.3 The Software Engineering Approach Phased Development Process Project Management and Metrics 1.4 Summary Overview of the Book. Exercises... 2 Software Processes 2.1 Software Process Processes, Projects, and Products Component Software Processes. 2.2 Characteristics of a Software Process Predictability... v vii

10 x Contents Support Testability and Maintainability Early Defect Removal and Defect Prevention Process Improvement Software Development Process A Process Step Specification Waterfall Model Prototyping Iterative Enhancement The Spiral Model Project Management Process Phases of Management Process Metrics, Measurement, and Models. 2.5 Software Configuration Management Process Configuration Identification Change Control Status Accounting and Auditing 2.6 Process Management Process Building Estimation Models Process Improvement and Maturity 2.7 Summary Exercises Software Requirements Analysis and Specification 3.1 Software Requirements Need for SRS Requirement Process 3.2 Problem Analysis Analysis Issues Informal Approach Structured Analysis Object-Oriented Modeling Other Modeling Approaches Prototyping Requirements Specification Characteristics of an SRS Components of an SRS Specification Languages Structure of a Requirements Document 3.4 Validation Requirement Reviews Other Methods 3.5 Metrics Size Measures Quality Metrics

11 Contents xi 3.6 Summary 146 Exercises 147 Case Study Planning a Software Project Cost Estimation... a Uncertainties in Cast Estimatian Building Cost Estimation Models On Size Estimation COCOMO Model An Example Project Scheduling Average Duration Estimation Project Scheduling and Milestones Example Continued Staffing and Personnel Planning Rayleigh Curve Personnel Plan Example Cantinued Team Structure Software Configuration Management Plans Quality Assurance Plans Verification and Validation (V& V) Inspections and Reviews Project Monitoring Plans Time Sheets Reviews Cast -Schedule-Milestone Graph Earned Value Method Unit Development Folder Risk Management Risk Management Overview Risk Assessment Risk Control Summary 201 Exercises Case Study Plan Function-Oriented Design Design Principles Problem Partitioning and Hierarchy Abstraction Modularity Top-Down and Bottom-Up Strategies. 215

12 xii Contents 5.2 Module-Level Concepts Coupling Cohesion Design Notation and Specification Structure Charts Specification Structured Design Methodology Restate the Problem as a Data Flow Diagram Identify the Most Abstract Input and Output Data Elements First-Level Factoring Factoring the Input, Output, and Transform Branches Design Heuristics Transaction Analysis Discussion Verification Design Reviews Automated Cross-Checking Metrics Network Metrics Stability Metrics Information Flow Metrics Summary 249 Exercises 251 Case Study Object-Oriented Design Analysis and 00 Design Concepts Classes and Objects Relationships Among Objects Inheritance and Polymorphism Design Concepts Design Notation and Specification Design Methodology Dynamic Modeling Functional Modeling Defining Internal Classes and Operations Optimize and Package Examples Metrics Summary 315 Exercises 316 Case S~udy.. 318

13 Contents xiii 7 Detailed Design Module Specifications Specifying Functional Modules Specifying Classes Detailed Design PDL Logic/ Algorithm Design State Modeling of Classes Verification Design Walkthroughs Critical Design Review Consistency Checkers Metrics Cyclomatic Complexity Data Bindings Cohesion Metric Summary 352 Exercises Coding Programming Practice Top-Down and Bottom-Up Structured Programming Information Hiding Programming Style Internal Documentation Law of Demeter for 00 Programs Verification Code Reading Static Analysis Symbolic Execution Proving Correctness Code Inspections or Reviews Unit Testing Metrics Size Measures Complexity Metrics Style Metrics Summary 393 Exercises 395 Case Study Testing 9.1 Testing Fundamentals

14 xiv Contents References Index EITor, Fault, and Failure Test Orades Top-Down and Bottom-Up Approaches Test Cases and Test Criteria Psychology oftesting Functional Testing Equivalence Class Partitioning Boundary Value Analysis Cause-Effect Graphing Special Cases Structural Testing Control Flow-Based Criteria Data Flow-Based Testing An Example Mutation Testing Test Case Generation and Tool Support. 9.4 Testing Object-Oriented Programs Issues in Testing Classes State-Based Testing Incremental Testing for Subdasses 9.5 Testing Process Comparison of Different Techniques Levels of Testing Test Plan Test Case Specifications Test Case Execution and Analysis. 9.6 Metrics-Reiiability Estimation Basic Concepts and Definitions Musa's Basic Model Failure Data and Parameter Estimation Translating to Calendar Time An Example. 9.7 Summary Exercises Case Study

Studies in the Economics of Uncertainty

Studies in the Economics of Uncertainty Studies in the Economics of Uncertainty Josef Hadar Thomas B. Fomby Tae Kun Sea Editors Studies in the Economics of Uncertainty In Honor of Josef Hadar With 25 Illustrations Springer Verlag New York Berlin

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

The MRI Study Guide for Technologists

The MRI Study Guide for Technologists The MRI Study Guide for Technologists Kenneth S. Meacham The MRI Study Guide for Technologists With 51 Illustrations Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest

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

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

Automated Firewall Analytics

Automated Firewall Analytics Automated Firewall Analytics Ehab Al-Shaer Automated Firewall Analytics Design, Configuration and Optimization 123 Ehab Al-Shaer University of North Carolina Charlotte Charlotte, NC, USA ISBN 978-3-319-10370-9

More information

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

SOFTWARE ENGINEERING INTERVIEW QUESTIONS SOFTWARE ENGINEERING INTERVIEW QUESTIONS http://www.tutorialspoint.com/software_engineering/software_engineering_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Software Engineering

More information

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York Software Project Management A Process-Driven Approach Ashfaque Ahmed CRC Press Taylor Si Francis Group Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business

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

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4 COURSE TITLE : SOFTWARE ENGINEERING COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4 TIME SCHEDULE MODULE TOPICS PERIODS 1 Software engineering discipline evolution

More information

Effective Methods for Software and Systems Integration

Effective Methods for Software and Systems Integration Effective Methods for Software and Systems Integration Boyd L. Summers CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 CRC Press is an imprint of Taylor

More information

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business Software Engineering Design Theory and Practice Carlos E. Otero CRC Press Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business AN

More information

A Case study based Software Engineering Education using Open Source Tools

A Case study based Software Engineering Education using Open Source Tools A Case study based Software Engineering Education using Open Source Tools Sowmya B J Dept. of CSE M. S. Ramaiah Institute of Technology sowmyabj@msrit.edu Srinidhi Hiriyannaiah Dept. of CSE M.S. Ramaiah

More information

USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT

USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT Pankaj Jalote Department of Computer Science and Engineering Indian Institute of Technology Kanpur

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

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

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Formal Software Testing Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Scope of Testing Find defects early Remove defects prior to production Identify Risks Unbiased opinion When Should Testing

More information

How To Understand Software Engineering

How To Understand Software Engineering PESIT Bangalore South Campus Department of MCA SOFTWARE ENGINEERING 1. GENERAL INFORMATION Academic Year: JULY-NOV 2015 Semester(s):III Title Code Duration (hrs) SOFTWARE ENGINEERING 13MCA33 Lectures 52Hrs

More information

Knowledge Infrastructure for Project Management 1

Knowledge Infrastructure for Project Management 1 Knowledge Infrastructure for Project Management 1 Pankaj Jalote Department of Computer Science and Engineering Indian Institute of Technology Kanpur Kanpur, India 208016 Jalote@iitk.ac.in Abstract In any

More information

Instructional Design

Instructional Design Instructional Design for Librarians and Information Professionals Lesley S. J. Farmer Neal-Schuman Publishers New York London Published by Neal-Schuman Publishers, Inc. 100 William St., Suite 2004 New

More information

Certified Software Quality Engineer (CSQE) Body of Knowledge

Certified Software Quality Engineer (CSQE) Body of Knowledge Certified Software Quality Engineer (CSQE) Body of Knowledge The topics in this Body of Knowledge include additional detail in the form of subtext explanations and the cognitive level at which the questions

More information

PHYSICAL TESTING OF RUBBER

PHYSICAL TESTING OF RUBBER PHYSICAL TESTING OF RUBBER PHYSICAL TESTING OF RUBBER Roger Brown Springer Library of Congress Cataloging-in-Publication Data A CLP. Catalogue record for this book is available from the Library of Congress.

More information

Springer-Verlag Berlin Heidelberg GmbH

Springer-Verlag Berlin Heidelberg GmbH Information Systems Outsourcing Springer-Verlag Berlin Heidelberg GmbH Rudy Hirschheim Armin Heinzl. Jens Dibbern Editors Information Systems Outsourcing Enduring Themes, Emergent Patterns and Future Directions

More information

Switching and Finite Automata Theory

Switching and Finite Automata Theory Switching and Finite Automata Theory Understand the structure, behavior, and limitations of logic machines with this thoroughly updated third edition. New topics include: CMOS gates logic synthesis logic

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

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

The Neuropsychology Toolkit

The Neuropsychology Toolkit The Neuropsychology Toolkit Richard L. Wanlass The Neuropsychology Toolkit Guidelines, Formats, and Language Richard L. Wanlass University of California, Davis, Medical Center Sacramento, CA, USA Richard.Wanlass@ucdmc.ucdavis.edu

More information

NETWORK INFRASTRUCTURE SECURITY

NETWORK INFRASTRUCTURE SECURITY NETWORK INFRASTRUCTURE SECURITY Network Infrastructure Security Angus Wong Alan Yeung Angus Wong Macao Polytechnic Institute Rua de Luis Gonzaga Gomes Macao Alan Yeung City University of Hong Kong 83 Tat

More information

IMPROVEMENT THE PRACTITIONER'S GUIDE TO DATA QUALITY DAVID LOSHIN

IMPROVEMENT THE PRACTITIONER'S GUIDE TO DATA QUALITY DAVID LOSHIN i I I I THE PRACTITIONER'S GUIDE TO DATA QUALITY IMPROVEMENT DAVID LOSHIN ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Morgan Kaufmann

More information

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK Software Engineering Modern Approaches SECOND EDITION Eric J. Braude Boston University, Metropolitan College Michael E. Bernstein Boston University, Metropolitan College TECHNISCHE INFORM ATIONSBIBLIOTHEK

More information

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR) Total Quality Management (TQM) Quality, Success and Failure Total Quality Management (TQM) is a concept that makes quality control a responsibility to be shared by all people in an organization. M7011

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

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

How To Write A Diagram

How To Write A Diagram Data Model ing Essentials Third Edition Graeme C. Simsion and Graham C. Witt MORGAN KAUFMANN PUBLISHERS AN IMPRINT OF ELSEVIER AMSTERDAM BOSTON LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE

More information

Lasers in Restorative Dentistry

Lasers in Restorative Dentistry Lasers in Restorative Dentistry Giovanni Olivi Matteo Olivi Editors Lasers in Restorative Dentistry A Practical Guide Editors Giovanni Olivi Rome Italy Matteo Olivi Rome Italy ISBN 978-3-662-47316-0 DOI

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

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

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Testing Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To discuss the distinctions between validation testing and defect t testing To describe the

More information

International Series on Consumer Science

International Series on Consumer Science International Series on Consumer Science For further volumes: http://www.springer.com/series/8358 Tsan-Ming Choi Editor Fashion Branding and Consumer Behaviors Scientific Models 1 3 Editor Tsan-Ming Choi

More information

Software Engineering 1

Software Engineering 1 THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Software Engineering 1 General Comments Most of the scripts produced by candidates this year were well structured and readable, showing

More information

Oral and Cranial Implants

Oral and Cranial Implants Oral and Cranial Implants Hugh Devlin Ichiro Nishimura Editors Oral and Cranial Implants Recent Research Developments Editors Hugh Devlin School of Dentistry University of Manchester Manchester United

More information

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle The Second Management Innovation and Practices Conference, Tamsui, Taiwan, April 2001,Volume 2, pp59-68 應 用 測 試 於 軟 體 發 展 生 命 週 期 Testing In The Software Development Life Cycle 蔡 博 元 莊 立 文 真 理 大 學 資 訊

More information

Adult Attachment in Clinical Social Work

Adult Attachment in Clinical Social Work Adult Attachment in Clinical Social Work Essential Clinical Social Work Series Series Editor: Carol Tosone For other titles published in this series, go to www.springer.com/series/8115 Susanne Bennett

More information

Introduction and Overview

Introduction and Overview Introduction and Overview Definitions. The general design process. A context for design: the waterfall model; reviews and documents. Some size factors. Quality and productivity factors. Material from:

More information

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM) Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM) Pankaj Jalote 1 Infosys Technologies Ltd. Bangalore 561 229 Fax: +91-512-590725/590413 Jalote@iitk.ernet.in, jalote@iitk.ac.in

More information

Component Based Development in Software Engineering

Component Based Development in Software Engineering Component Based Development in Software Engineering Amandeep Bakshi, Rupinder Singh Abstract--In today s world, Component Based development is an active research area for more than a decade in software

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

Software Development with Agile Methods

Software Development with Agile Methods Case Study Software Development with Agile Methods Introduction: Web application development is a much studied, heavily practiced activity. That is, capturing and validating user requirements, estimating

More information

How to contribute to the joint course on software engineering by case studies

How to contribute to the joint course on software engineering by case studies How to contribute to the joint course on software engineering by case studies Zoran Budimac, Klaus Bothe Version: February 27, 2004. Abstract. This document describes where and how the joint course on

More information

CSTE Mock Test - Part III Questions Along with Answers

CSTE Mock Test - Part III Questions Along with Answers Note: This material is for Evaluators reference only. Caters to answers of CSTE Mock Test - Part III paper. 1. Independence is important in testing is mostly due to the fact that (Ans: C) a. Developers

More information

Statistics for Biology and Health

Statistics for Biology and Health Statistics for Biology and Health Series Editors M. Gail, K. Krickeberg, J.M. Samet, A. Tsiatis, W. Wong For further volumes: http://www.springer.com/series/2848 David G. Kleinbaum Mitchel Klein Survival

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

The Elective Part of the NSS ICT Curriculum D. Software Development

The Elective Part of the NSS ICT Curriculum D. Software Development of the NSS ICT Curriculum D. Software Development Mr. CHEUNG Wah-sang / Mr. WONG Wing-hong, Robert Member of CDC HKEAA Committee on ICT (Senior Secondary) 1 D. Software Development The concepts / skills

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Sustainable Supply Chains

Sustainable Supply Chains Sustainable Supply Chains International Series in Operations Research & Management Science Volume 174 Series Editor: Frederick S. Hillier Stanford University, CA, USA Special Editorial Consultant: Camille

More information

Ammonia. Catalysis and Manufacture. Springer-Verlag. Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Ammonia. Catalysis and Manufacture. Springer-Verlag. Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest Ammonia Catalysis and Manufacture With contributions by K. Aika, L. 1. Christiansen, I. Dybkjaer, 1. B. Hansen, P. E. H0jlund Nielsen, A. Nielsen, P. Stoltze, K. Tamaru With 68 Figures and 23 Tables Springer-Verlag

More information

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York SOFTWARE TESTING A Craftsmcm's Approach THIRD EDITION Paul C. Jorgensen A Auerbach Publications Taylor &. Francis Croup Boca Raton New York Auerbach Publications is an imprint of the Taylor & Francis Group,

More information

Quantitative Quality Management through Defect Prediction and Statistical Process Control Τ

Quantitative Quality Management through Defect Prediction and Statistical Process Control Τ Quantitative Quality Management through Defect Prediction and Statistical Process Control Τ Pankaj Jalote, K. Dinesh, S. Raghavan, M. R. Bhashyam, M. Ramakrishnan Infosys Technologies Ltd. Summary: To

More information

How To Model Software Development Life Cycle Models

How To Model Software Development Life Cycle Models Various Software Development Life Cycle Models Sahil Jindal, Puneet Gulati, Praveen Rohilla Dronacharya College of Engineering, India Abstract:An SDLC model is a conceptual framework describing different

More information

Standard for Software Component Testing

Standard for Software Component Testing Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document

More information

Software quality engineering. Quality assurance. Testing

Software quality engineering. Quality assurance. Testing 4 Software Quality Engineering c Jeff Tian, to be published by John Wiley, 2005 Software quality engineering Quality assurance Testing Figure 1.1. engineering Scope and content hierarchy: Testing, quality

More information

Fundamentals of Measurements

Fundamentals of Measurements Objective Software Project Measurements Slide 1 Fundamentals of Measurements Educational Objective: To review the fundamentals of software measurement, to illustrate that measurement plays a central role

More information

Assessment of Quality Assurance practices in Pakistani Software Industry

Assessment of Quality Assurance practices in Pakistani Software Industry Assessment of Quality Assurance practices in Pakistani Software Industry 4 6 M. Fawad, K. Ghani, M. Shafi, I. A. Khan, M. I. Khattak, Nasim Ullah,4 Computer Science Department, Comsats Institute of Information

More information

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist Software Metrics 1. Lord Kelvin, a physicist 2. George Miller, a psychologist Software Metrics Product vs. process Most metrics are indirect: No way to measure property directly or Final product does not

More information

Software Project Models

Software Project Models INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

More information

Java and the Java Virtual Machine

Java and the Java Virtual Machine Java and the Java Virtual Machine Springer Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Singapore Tokyo Robert F. SHirk Joachim Schmid Egon Borger Java and the Java Virtual Machine

More information

How to Become a Clinical Psychologist

How to Become a Clinical Psychologist How to Become a Clinical Psychologist Based on information gathered from assistant psychologists, trainee clinical psychologists and clinical psychology course directors across the country, How to Become

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 SPECIFICATION AND MANAGEMENT. Requirements Analysis and Specification

REQUIREMENTS SPECIFICATION AND MANAGEMENT. Requirements Analysis and Specification REQUIREMENTS SPECIFICATION AND MANAGEMENT In this note we give the requirements process in a software organization, a template for the requirements document, and the process to manage changes to the requirements.

More information

Identification and Analysis of Combined Quality Assurance Approaches

Identification and Analysis of Combined Quality Assurance Approaches Master Thesis Software Engineering Thesis no: MSE-2010:33 November 2010 Identification and Analysis of Combined Quality Assurance Approaches Vi Tran Ngoc Nha School of Computing Blekinge Institute of Technology

More information

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model Software Design Design (I) Software Design is a process through which requirements are translated into a representation of software. Peter Lo CS213 Peter Lo 2005 1 CS213 Peter Lo 2005 2 Relationships between

More information

Medical Device Software Verification, Validation, and Compliance

Medical Device Software Verification, Validation, and Compliance Medical Device Software Verification, Validation, and Compliance David A. Vogel ARTECH HOUSE BOSTON LONDON artechhouse.com Contents Preface The Author's Background and Perspective of Validation Acknowledgments

More information

Chapter 7: Software Engineering

Chapter 7: Software Engineering Chapter 7: Software Engineering Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 7: Software Engineering 7.1 The Software Engineering

More information

in Counseling A Guide to the Use of Psychological Assessment Procedures Danica G. Hays

in Counseling A Guide to the Use of Psychological Assessment Procedures Danica G. Hays Assessment in Counseling A Guide to the Use of Psychological Assessment Procedures Danica G. Hays AMERICAN COUNSELING ASSOCIATION 5999 Stevenson Avenue Alexandria, VA 22304 www.counseling.org Assessment

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

An Analysis on Objectives, Importance and Types of Software Testing

An Analysis on Objectives, Importance and Types of Software Testing Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 2, Issue. 9, September 2013,

More information

INVENTORY MANAGEMENT: Principles, Concepts and Techniques

INVENTORY MANAGEMENT: Principles, Concepts and Techniques INVENTORY MANAGEMENT: Principles, Concepts and Techniques Materials Management I Logistics Series Eugene L. Magad, Series Editor Previously vublished by Chavman & Hall Total Materials Management: Achieving

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC Modernized and Maintainable Code Frank Weil, Ph.D. UniqueSoft, LLC UniqueSoft is a provider of next-generation software development tools and services specializing in modernizing legacy software using

More information

Lessons from Software Work Effort Metrics 1

Lessons from Software Work Effort Metrics 1 Lessons from Software Work Effort Metrics 1 Karl E. Wiegers Process Impact www.processimpact.com How many of these questions about your software development organization can you answer with confidence?

More information

IT3205: Fundamentals of Software Engineering (Compulsory)

IT3205: Fundamentals of Software Engineering (Compulsory) INTRODUCTION : Fundamentals of Software Engineering (Compulsory) This course is designed to provide the students with the basic competencies required to identify requirements, document the system design

More information

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, 2013. p i.

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, 2013. p i. New York, NY, USA: Basic Books, 2013. p i. http://site.ebrary.com/lib/mcgill/doc?id=10665296&ppg=2 New York, NY, USA: Basic Books, 2013. p ii. http://site.ebrary.com/lib/mcgill/doc?id=10665296&ppg=3 New

More information

Software Engineering. How does software fail? Terminology CS / COE 1530

Software Engineering. How does software fail? Terminology CS / COE 1530 Software Engineering CS / COE 1530 Testing How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible to implement Faulty design Faulty code Improperly

More information

Software Testing Strategies and Techniques

Software Testing Strategies and Techniques Software Testing Strategies and Techniques Sheetal Thakare 1, Savita Chavan 2, Prof. P. M. Chawan 3 1,2 MTech, Computer Engineering VJTI, Mumbai 3 Associate Professor, Computer Technology Department, VJTI,

More information

superseries FIFTH EDITION

superseries FIFTH EDITION Prelims-I046413.qxd 3/19/07 1:04 PM Page i Institute of Leadership & Management superseries Motivating to Perform in the Workplace FIFTH EDITION Published for the Institute of Leadership & Management AMSTERDAM

More information

Applying Comparative Effectiveness Data to Medical Decision Making

Applying Comparative Effectiveness Data to Medical Decision Making Applying Comparative Effectiveness Data to Medical Decision Making Carl V. Asche Editor Applying Comparative Effectiveness Data to Medical Decision Making A Practical Guide Adis Editor Carl V. Asche Research

More information

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of

More information

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT Mar 31, 2014 Japan Aerospace Exploration Agency This is an English translation of JERG-2-610. Whenever there is anything ambiguous in this document, the original

More information

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 INTRODUCTION This course is designed to provide the students with the basic competencies required to identify requirements, document

More information

Java Programming (10155)

Java Programming (10155) Java Programming (10155) Rationale Statement: The world is full of problems that need to be solved or that need a program to solve them faster. In computer, programming students will learn how to solve

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

An Internet Course in Software Development with C++ for Engineering Students

An Internet Course in Software Development with C++ for Engineering Students An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This

More information

Automated Module Testing of Embedded Software Systems

Automated Module Testing of Embedded Software Systems Automated Module Testing of Embedded Software Systems Master s Thesis Fredrik Olsson Henrik Lundberg Supervisors Thomas Thelin, LTH Michael Rosenberg, EMP Nicklas Olofsson, EMP II Abstract When designing

More information

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN Mohammad A. Rob, University of Houston-Clear Lake, rob@cl.uh.edu ABSTRACT In recent years, there has been a surge of

More information

Requirements and Recommendations for the Realization of a Configuration Management Database

Requirements and Recommendations for the Realization of a Configuration Management Database Requirements and Recommendations for the Realization of a Configuration Management Database Thomas Schaaf 1, Boran Gögetap 2 1 MNM Team, Ludwig Maximilians University, Munich, Germany Thomas.Schaaf@mnm-team.org

More information

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability Volume 5, Issue 4, April 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review of Static

More information

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations International Journal of Recent Research and Review, Vol. VI, June 2013 Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations Uma Kumari 1, Abhay Upadhyaya

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

Software Engineering Question Bank

Software Engineering Question Bank Software Engineering Question Bank 1) What is Software Development Life Cycle? (SDLC) System Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step

More information

Integrity 10. Curriculum Guide

Integrity 10. Curriculum Guide Integrity 10 Curriculum Guide Live Classroom Curriculum Guide Integrity 10 Workflows and Documents Administration Training Integrity 10 SCM Administration Training Integrity 10 SCM Basic User Training

More information

ICS 121 Lecture Notes Spring Quarter 96

ICS 121 Lecture Notes Spring Quarter 96 Software Management Cost Estimation Managing People Management Poor managment is the downfall of many software projects Ð Delivered software was late, unreliable, cost several times the original estimates

More information