A Discipline for Software Engineering



Similar documents
LECTURE 1. SYSTEMS DEVELOPMENT

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

SOFTWARE ENGINEERING OVERVIEW

SE 367 Software Engineering Basics of Software Engineering

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

Software Engineering: Analysis and Design - CSE3308

The Emergence of Software Engineering Professionalism

Fundamentals of Measurements

What do you think? Definitions of Quality

How To Develop Software

CSC340: Information Systems Analysis and Design. About the Course

Introduction to Software Engineering

The Capability Maturity Model for Software, Version 1.1

R I T. IEEE Computer Society Certified Software Development Professional (CSDP) Exam. Buenos Aires, Argentina Junio de Software Engineering

TIER II STANDARD FOR FINANCIAL MANAGEMENT SPECIALISTS

C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering

Business Subject Matter Requirements. Part I: Content Domains for Subject Matter Understanding and Skill in Business

OMCP R Certification Handbook

(Refer Slide Time: 01:52)

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Management Information System Prof. Biswajit Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur

Software Engineering. Introduction. Lecturer: Giuseppe Santucci

Security Engineering Best Practices. Arca Systems, Inc Boone Blvd., Suite 750 Vienna, VA

ICEC INTERNATIONAL LOCATION FACTOR COST MODEL

Introducing Formal Methods. Software Engineering and Formal Methods

Software Engineering. What is a system?

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

PEI SOCIAL WORK REGISTRATION BOARD POLICY

Infusing Business Analysis into the Product Lifecycle

Qualification Specification

Software Production and Lifecycle Models

SE403 SOFTWARE PROJECT MANAGEMENT CHAPTER 1 INTRODUCTION. Assist. Prof. Dr. Volkan TUNALI Faculty of Engineering / Maltepe University

Software Process for QA

Call topics. September SAF RA joint call on Human and organizational factors including the value of industrial safety

ICT Competency Profiles framework Job Stream Descriptions

Competency Statements for Dental Public Health*

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Comparing Agile Software Processes Based on the Software Development Project Requirements

Set-Based Design: A Decision-Theoretic Perspective

SMALL BUSINESS MANAGEMEN

Software Engineering UNIT -1 OVERVIEW

MANAGING INFORMATION TECHNOLOGY PROJECTS

Miracle Integrating Knowledge Management and Business Intelligence

EXAMPLES OF FUNCTIONAL COMPETENCIES

Realizing business flexibility through integrated SOA policy management.

The constant effort to grow the business has many benefits, some of which are listed below:

ENGINEERING ECONOMICS AND FINANCE

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Components of Geonomics and Bio-Informatics

1. Global E Business and Collaboration. Lecture 2 TIM 50 Autumn 2012

Kathy Schwalbe, Ph.D., PMP Augsburg College. ; \ COURSE TECHNOLOGY *» CENGAGE Learning-

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

Accounting and Finance for Managers and Entrepreneurs

Collaborative Forecasting

Project Management in Signal Processing Project based on. CDIO Model

U.S. DEPARTMENT OF THE INTERIOR SENIOR LEVEL AND SCIENTIFIC AND PROFESSIONAL PERFORMANCE AGREEMENT AND APPRAISAL SYSTEM.

Project Planning and Project Estimation Techniques. Naveen Aggarwal

QUALITY INDICATORS FOR ASSISTIVE TECHNOLOGY SERVICES RESEARCH-BASED REVISIONS, 2004

Introduction to Software Engineering Professional Issues SWENET OSE2 Module June 2003

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

CLOUD MIGRATION STRATEGIES

Anatomy of an Enterprise Software Delivery Project

Introduction to Agile Software Development

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Software Development Life Cycle (SDLC)

Specialty Guidelines for the Delivery of Services by Industrial/Organizational Psychologists

TMP3413 Software Engineering Lab. Lecture 01: Team Software Process Overview

Role and Skill Descriptions. For An ITIL Implementation Project

ROMANIAN - AMERICAN UNIVERSITY School of Domestic and International Business, Banking and Finance

MANUFACTURING IN THE CLOUD IMPROVED PRODUCTIVITY AND COST SAVINGS ARE ON THE HORIZON

Advanced Software Engineering FYI!

History and Purpose of the Standards for Educational and Psychological Testing

CMC-Canada CMC-Canada fosters excellence and integrity in the management consulting profession as a whole.

How To Improve Software Quality

Business Transformation with Cloud ERP

How To Create A Process Measurement System

Selecting Sensors for Safety Instrumented Systems per IEC (ISA )

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Standards and Criteria for Approval of Sponsors of Continuing Education for Psychologists. August 2015

NEOXEN MODUS METHODOLOGY

An Introduction to Software Engineering

FROM LAND INVENTORY TO LAND MANAGEMENT The evolution of an operational GIS. Environment Canada, Ottawa, Canada

FUTURE RESEARCH DIRECTIONS OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING *

Software Engineering. Objectives. Designing, building and maintaining large software systems

Project Management Using Earned Value

High-frequency trading, flash crashes & regulation Prof. Philip Treleaven

OMCP R Certification Handbook

Business Analysis Capability Assessment

Transcription:

A Discipline for Software Engineering (Humphrey, (Humphrey, 1995) 1995) Introduction Humphrey Preface - slide 1 Outline Software Development: Craft or Discipline? How SE is taught Humphrey s book s approach Humphrey Preface - slide 2 1

Components of a Disciplined SE Process (Humphrey, (Humphrey, 1995, 1995, p. p. ix; ix; Clark, Clark, 1996) 1996) Defect Management Comprehensive methods for: Planning Tracking Analysis Integrated control mechanisms completes the project management tool set Humphrey does not refer to this Humphrey Preface - slide 3 Software Engineering - Craft or Engineering Discipline? Examples Automated luggage system delays new airport opening by 1 1/2 years at $1.1 million per day in interest and operating costs. (Gibbs, 1994, p. 86) California DMV pulls the plug after a 7- year, $44.3-million debacle. Over 6 times the original budget. Over 24% of projects over 5000 function points in size are canceled. (Jones, 1995, p. 3, and Gibbs, 1994, p. 88) Humphrey Preface - slide 4 2

Software Engineering - Craft or Engineering Discipline? It s like musket making was before Eli Whitney. (Brad Cox, quoted in Gibbs, 1994, p. 87) Despite 50 years of progress, the software industry remains years - perhaps decades - short of the mature engineering discipline needed to meet the demands of an information-age society. (Gibbs, 1994, p. 87) Humphrey Preface - slide 5 Software Engineering - Craft or Engineering Discipline? Why do we have these problems? Is Software Engineering REALLY an engineering discipline, or is it still just a craft? Humphrey Preface - slide 6 3

Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) Origins of the Term Software Engineering 1968 NATO workshop Def: Engineering (p. 15) a set of current best practices for development. the disciplined application of scientific knowledge to resolving conflicting constraints and requirements for problems of immediate, practical significance. Humphrey Preface - slide 7 Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) Evolution of an Engineering Discipline Humphrey Preface - slide 8 4

Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) Evolution of Civil Engineering Humphrey Preface - slide 9 Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) Evolution of Chemical Engineering Humphrey Preface - slide 10 5

Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) Evolution of Software Engineering Humphrey Preface - slide 11 Measuring and Managing Information is much easier to store, describe, and manipulate than knowledge. (p. 61) The level of knowledge that a process has reached determines how a process should be controlled, whether and how it can be automated, the key tasks of the workforce, and other major aspects of its management. (p. 61) Humphrey Preface - slide 12 6

Measuring and Managing Examples Chaparral Steel doubled mill output used original electric furnace and caster Semiconductor manufacturers routinely obtain 80% yield after only a few years, when starting with 40% minimal capital investment changed mfg. process (procedures, control adjustments, raw materials recipes, etc.) Humphrey Preface - slide 13 Measuring and Managing Definition: Technological Knowledge Technological knowledge [is] understanding the effects of the input variables on the output. (p. 62) Diagram of a Process Humphrey Preface - slide 14 7

Measuring and Managing Eight Stages of Knowledge (p. 63, 64) Name Comment Typical Knowledge Form 1 Complete Ignorance Nowhere 2 Awareness Pure Art Tacit 3 Measure Pretechnological Written 4 Control of the mean Scientific method feasible Written & embodied in hardware 5 Process capability Local recipe Hardware and operating manual 6 Process characterization Tradeoffs to reduce costs Empirical equations (numerical) 7 Know why Science Scientific formulas & algorithms 8 Complete knowledge Nirvana Humphrey Preface - slide 15 Measuring and Managing Evolution of Knowledge and Performance (p. 65) Knowledge about [a] process and how to run it is incomplete and develops gradually through various kinds of learning. (p. 61) Humphrey Preface - slide 16 8

Measuring and Managing Knowledge-based Learning and Organizational Improvement Humphrey Preface - slide 17 Measuring and Managing Balance Between Degree of Procedure & Stage of Knowledge Automation of a large, complex, poorly understood, conventional manufacturing process leads to a large, complex, poorly understood, unreliable, expensive, and automated manufacturing process. (p. 67) Humphrey Preface - slide 18 9

Measuring and Managing Applying Stages of Knowledge 1.Understand how much you know and don t know What are the important variables? At what stage are they? Which ones give most leverage at the next stage? How can you manage the process well at these stages? Are your management methods consistent with knowledge levels? How should you handle the inevitable variables which you know less about but which are still important? Humphrey Preface - slide 19 Measuring and Managing Applying Stages of Knowledge (cont.) 2.Understand and manage the locations of knowledge 3. Be wary of de-skilling the workforce and freezing the process 4. Learn carefully and systematically Humphrey Preface - slide 20 10

Measuring and Managing Lord Kelvin, in the 1890s: When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind: it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the stage of science. (quoted on p. 72) Humphrey Preface - slide 21 Prospects for an Engineering Discipline of Software (Shaw, 1990) 1990) 5 Steps to Become True Engineering (p. 22-24) 1.Understand the nature of expertise. 2.Recognize different ways to get information. 3.Encourage routine practice. 4.Expect professional specializations. 5.Improve coupling between science and commercial practice. Humphrey Preface - slide 22 11

Legal Status of Software Engineering (Jones, 1995) 1995) Software engineering is not one of the 36 engineering professions recognized and licensed in the United States... 48 states have laws... that prohibit anyone who is not licensed from using the term engineer in describing his occupation and work. Tennessee now actively prohibits the use of software engineering in business literature and advertising. The state of Texas has forced universities to stop offering master s degrees in software engineering. Humphrey Preface - slide 23 Legal Status of Software Engineering (Jones, 1995) 1995) What makes an engineering profession? Well-defined body of knowledge, often many sub-specialties Academic curricula to transfer the knowledge and prepare students to pass qualifying exams Qualifying exams certifying minimal competence for practicing the profession Continuing education, to maintain currency Code of ethics Strong professional associations Recognized canon of standard practices - malpractice may be evaluated against these Methods for monitoring and addressing malpractice Liability insurance Humphrey Preface - slide 24 12

Software Engineering - Craft or Engineering Discipline? So what is software engineering? The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. (Fritz Bauer, quoted in Pressman, 1992, p. 23.) The development, on schedule and within budget, of high quality software that meets the users and organization s needs. (Turk) Humphrey Preface - slide 25 Software Engineering Success (Turk, 1995) 1995) Factors Affecting Success: Technological Personal Group Managerial Geographical Cultural Measures of Success: Project vs. Product Financial vs. Acceptance / Use Humphrey Preface - slide 26 13

So, How is SE Taught? Typically, learn programming languages on toy problems. vs. Learn industrial practices on toy problems. Initial learning will require scaled-down ( toy ) problems. However, one can still learn industrial practices on these scaled-down problems. This is much better than learning scaled-down practices which don t transfer to large development projects. Humphrey Preface - slide 27 This Book s Approach (Humphrey, (Humphrey, 1995, 1995, p. p. x) x) Learn how to: Make accurate plans Estimate the accuracy of these plans Track actual performance against these plans These techniques are the basis for implementing controls which allow software projects to be well managed. Humphrey Preface - slide 28 14

Exercises To Teach These Skills Approximately 10 exercises Approximately 5-10 hours for each exercise. Each exercise teaches new skills and further expands your process capabilities. Humphrey Preface - slide 29 Keys to Success in the Implementing the PSP (Humphrey, (Humphrey, 1995, 1995, p. p. xiii, xiii, xiv) xiv) Most industrial organizations who successfully implement the PSP training program are at CMM level 2 or greater. (Although I think that introducing the PSP can be a tool for getting organizations TO levels 1 and 2 ) Visible senior management support. (Project managers will support it if senior manager does.) Voluntary engineer participation. Apply the techniques to text s problems, not to work at first. (Turn-around and feedback quicker.) Work problems as you read the chapters. Humphrey Preface - slide 30 15