The Emerging Profession of Software Engineering. Dennis J. Frailey April 7, 2008 Presented at ITNG 2008



Similar documents
Introduction to Software Engineering Professional Issues SWENET OSE2 Module June 2003

Systems vs. Software Engineering Skills: A Gap Analysis

The Emergence of Software Engineering Professionalism

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

Professional Software Development

The Emergence of Software Engineering Professionalism

Introduction to Software Engineering. Week 1

IEEE Computer Society and Certified Software Development Professional

Online Computer Science Degree Programs. Bachelor s and Associate s Degree Programs for Computer Science

Professional Software Engineering: Fact or Fiction?

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

Software Engineering Ethics and Professional Conduct SWENET OSE3 Module July 2003

Chapter 1 Introduction

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Standards & Practices for the software and system engineers /

The SWEBOK Initiative and Software Measurement Intentions

Chapter 1- Introduction. Lecture 1

Introduction to Software Engineering

Lecture 2. Anis Koubaa

Licensure and Registration: Software Engineering PE Examination

CS4507 Advanced Software Engineering

Licensure and Certification: What this Means for the Environmental Engineer?

Mapping A Knowledge Areas of The SWEBOK Standard With The CBOK in Software Engineering Field Using A Set Theory

Notification of Request for Authorization under the Degree-Granting Institutions Act Date posted: December 14, 2015

THE SUBSTANTIAL EQUIVALENCY ASSESSMENT SYSTEM (SEAS) FREQUENTLY ASKED QUESTIONS

Chapter 1- Introduction. Lecture 1

How To Improve Software Quality

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

An Introduction to Software Engineering

SE 367 Software Engineering Basics of Software Engineering

Software Engineering as a Professional Discipline

Computer Security and Investigations

HEALTH INFORMATION MANAGEMENT (HIM) HUMAN RESOURCE PACKAGE

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

the state of the practice Variations in Software Development Practices

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING

The CCM Designation is the Means by Which the Profession:

Information Technology Architect Certification Program: Frequently Asked Questions June 2009 Version 2.1

Toward Curricular Guidance in the Cyber Sciences

CONTENT. King Hussein Faculty of Computing Sciences

Weldon School of Biomedical Engineering Continuous Improvement Guide

PMBOK for Dummies. Sean Whitaker, PMP Vice President, PMINZ

ENGINEERING What can I do with this major?

STAGE 1 COMPETENCY STANDARD FOR ENGINEERING ASSOCIATE

SCHOOL OF ENGINEERING Baccalaureate Study in Engineering Goals and Assessment of Student Learning Outcomes

Programme Specification

ASHP Professional Development Section Advisory Group. Professional Development Opportunities for Informatics Pharmacists

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

ENGINEERING COUNCIL OF SOUTH AFRICA. Discipline-specific Training Guideline for Candidate Engineers in Electrical Engineering

FAA / NAA DISPATCHER CERTIFICATE TRAINING PROGRAM

1) Chemical Engg. PEOs & POs Programme Educational Objectives

Post-Professional Athletic Training Residency Accreditation Standards & Guidelines. Version 1.2 August, 2010

The SWEBOK Guide A Curriculum Analysis Tool

Assumed Practices. Policy Changes Proposed on First Reading

A Study in Engineering and Military Ethics

A Life-Cycle Engineering Case Study

Eligibility Procedures and Accreditation Standards for Accounting Accreditation. Innovation Impact Engagement

PEI SOCIAL WORK REGISTRATION BOARD POLICY

Competency Requirements for Executive Director Candidates

"ACCREDITATION OF ENGINEERING PROGRAMS IN THE USA"

FAA approved to operate as a part 147 school, Member of Aviation Technical Education Council, and Member of Council of Airline Maintenance Managers

Setting Standards in Public Health Training. The Australian Experience Asia-Pacific Academic consortium for PH Accreditation in PH Education

History and Purpose of the Standards for Educational and Psychological Testing

National Commission for Academic Accreditation & Assessment. Handbook for Quality Assurance and Accreditation in Saudi Arabia PART 1

Types of Engineering Jobs

STATE OF NEVADA Department of Administration Division of Human Resource Management CLASS SPECIFICATION

Why Paralegal Certification Counts

COMPILATION OF STATE RULES, REGULATIONS AND STATUTES FOR THE LICENSING OF LAND SURVEYORS, LAND SURVEYORS IN TRAINING, AND COMITY

IBM Enterprise Asset Management

Introducing Software Engineering to the Freshman Student

Updating the International Standard Classification of Occupations (ISCO) Draft ISCO-08 Group Definitions: Occupations in ICT

Technology Courses. The following chart outlines the required courses in each of these three categories for the Ph.D. curriculum:

Software Engineering Profession and Discipline

All Professional Engineering Positions, 0800

Aviation Law Practice

South University Transfer Credit Policy

THE SYSTEMS ENGINEERING MAJOR AT A GLANCE

Licensed Practical Nurses, Registered Nurses

Transcription:

The Emerging g Profession of Software Engineering g Dennis J. Frailey April 7, 2008 Presented at ITNG 2008

Computer Software Development -- The Way it Was Software Developers The Public Who Cares! Protective Cloak of Technology Page 2

Major Disasters Attributed to Software Therac-25 - Radiation therapy unit killed five patients by administering massive overdoses of radiation due to a software control issue. Hundreds of others were maimed. 2003 Northeast Blackout Caused partially by a software flaw in a widely-deployed General Electric energy management system, affecting approximately 50 million people. 2004 Los Angeles Air Traffic Control Failure LAX Airport lost air traffic control due to improper maintenance of a software system. Over 400 flights were in the air when it happened. The back-up system also failed within seconds of being activated. French Ariane 5 Launch System Rocket tore itself apart due to a malfunction in the control software. Cost $500 million. Mars Climate Orbiter- Was destroyed when a navigation system error attributed to using English vs. metric units occurred. Cost $125 million of US Taxpayer dollars. Page 3

Major Project Failures Attributed to Software Cheyenne Mountain Upgrade Project to replace five main computer systems in the NORAD command center was reported by the General Accounting Office to be 11 years behind schedule and $1 billion over budget. California DMV Drivers License and registration system - Cancelled in 1994 after $45 million spent. FBI Virtual Case File Deemed a failure and abandoned after five years of effort, wasting at least $100 million. Washington D.C. City Payroll System - Abandoned in 2000 after deployment, costing $25 million. Ford Motor Company Purchasing system - Abandoned after deployment costing approximately $400 million. Hewlett-Packard Enterprise Resource System Problems contribute to $160 million loss in 2004. Page 4

The Way it Is Becoming Why does this My pacemaker Who should we sue software crash all has a for this fiasco? the time? computer! Page 5

What Do These Words Mean? PROCESS DISCIPLINE PROFESSION Regulation Loss of Creativity Meddling Police Doom and Gloom End of the World Software Engineering? Order Safety Responsibility Organization Consistency Reliability Page 6

Terminology Engineering: The application of science and mathematics by which properties of matter and the sources of energy are made useful to people. (Merriam-Webster's New Collegiate Dictionary, 10th Edition) Page 7

Terminology Software Engineering. g The application of a systematic disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (IEEE Std 610.12) Page 8

David Parnas s List of 9 Tasks a Software Engineer Should Know How to Do Analyze the intended application Participate in the design of the computer system configuration Analyze the performance of a proposed design Design the basic structure of the software Analyze the software structure t for desired d characteristics Implement the software Integrate new software Perform systematic and statistical testing Revise and enhance software systems Parnas, D. (2001) The Professional Responsibilities of Software Engineers, Software Fundamentals: Collected Papers by David L. Parnas, MA: Addison-Wesley. pp. 540-541. Page 9

Programmer vs Software Engineer Programmer Writing code Using techniques learned from individual experience Building products that work Software Engineer Developing systems, often large and highly complex Applying widely accepted techniques based on proven knowledge Building products that you can depend on Page 10

Software Engineering is Growing Up Black Art Profession Page 11

Terminology Profession. A calling requiring specialized knowledge and often long and intensive academic preparation; a principal calling, vocation or employment; the whole body of persons engaged in a calling. Professional. (1) Relating to or characteristic ti of a profession; engaged in one of the learned professions; characterized by or conforming to the technical or ethical standards of a profession. (2) participating for gain or livelihood in an activity or field of endeavor often engaged in by amateurs; engaged in by persons receiving financial returns. Professionalism. (1) The conduct aims or qualities that characterize or mark profession or a professional person. (2) The following of a profession (as athletics) for gain or livelihood. lih (Merriam-Webster's New Collegiate Dictionary, 10th Edition ) Page 12

Elements of a Profession Public Licensing Authority Body of Knowledge Regulator Curriculum Principles Research Work Force Performance Norms Professional Practice Page 13

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 14

ABET Accredited Software Engineering Programs in the US, as of 2007 Auburn University Clarkson University Embry-Riddle Aeronautical University - Daytona Beach Fairfield University-School of Engineering Florida Institute t of Technology University of Michigan-Dearborn Milwaukee School of Engineering Mississippi State University Monmouth University Pennsylvania State University, Behrend College Rochester Institute of Technology Rose-Hulman Institute t of Technology University of Texas at Arlington University of Texas at Dallas University of Wisconsin-Platteville University of Texas at Dallas www.abet.org Page 16

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 17

Other Signs that Software Engineering is Becoming an Accepted Profession 1998 -- ACM/IEEE-CS Software Engineering Code of Ethics was completed. 2001 -- ACM/IEEE-CS Computing Curriculum 2001 is completed - includes a SW engineering component. 2004 Release of specialized curriculum for SW engineering 2002 Strawman version of IEEE-CS Guide to the Software Engineering Body of Knowledge published in book form. Trial usage 2002-2004. Several universities are using it to rationalize curriculum, e.g. SMU, NTU, NJIT. 2002 -- IEEE-CS instituted the Certified Software Development Professional (CSDP) Program 2004 Ironman version of IEEE-CS Guide to the Software Engineering Body of Knowledge Page 18

Software Engineering g Code of Ethics Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: http://www.acm.org/serving/se/code.htm Page 19

Eight Ethical Principles 1. PUBLIC - Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment. 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. 8. SELF - Software engineers shall participate in lifelong learning regarding g the practice of their profession and shall promote an ethical approach to the practice of the profession. Page 20

Body of Knowledge Software Requirements Analysis Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality www.swebok.org Page 21

Other Body of Knowledge Efforts Australian Computer Society core body of knowledge www.acs.org.au/index.cfm?action=show&conid=cbok British Computer Society BOK under development Many others are adopting the SWEBOK Rather than developing their own BOKs for software engineering Page 22

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 23

IEEE Certified Software Development Professional (CSDP) Formal recognition of demonstrated proficiency within and comprehension of a specified body of knowledge at a point in time. Peer recognition Not registration or licensure. Registration: listing by and with a body of individuals or organizations that are certified Licensure: authorization granted by government body for an individual or organization to practice a business or occupation Certification is voluntary. http://www2.computer.org/portal/web/certification / / / Page 24

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 25

Software Engineering g Curriculum Model http://sites.computer.org/ccse/se2004volume.pdf Page 26

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 27

Recent Activities 2007 - issec Project to establish a model Graduate Curriculum in Software Engineering i Will establish recommended links to systems engineering (systems analysis, etc.) 2007 Software Engineering g Licensing Consortium, dedicated to making software engineering eligible for licensing in the US Will not change how licensing works, but will advise on the qualifications for software engineers who wish to be licensed 2008 IITP International IT Professional Page 28

issec - Software Engineering Reference Model for Graduate Curricula (in progress) Worldwide, most of the value in new products and systems is delivered through software. Much of the complexity of those products and systems resides in and is addressed by software. Most of the "surprises" that occur after product shipment and system deployment can be traced back to software being implemented incorrectly. Software is the underlying technology to advance mobile phones, automobiles, and aircraft. The ability of any large company or government agency to manage its projects and organization depends heavily on sophisticated software that supports its business and technical processes, ranging from logistics systems to manufacturing systems to customer relationship management systems. Software is everywhere. Yet, reports have painted the same story for years - - that creating and evolving large-scale software on schedule, on budget, with expected functionality, is uncommon. http://www.asysti.org/issechome.aspx Page 29

issec - Software Engineering Reference Model for Graduate Curricula (in progress) Software engineering is the acknowledged discipline by which large-scale and complex software is developed. Many universities teach software engineering at the undergraduate level. The lack of a current model graduate curriculum is dismaying considering the reliance of the world economy on the quality of senior software engineering professionals. The issec (integrated Software and Systems Engineering curriculum) Project is creating a new model graduate software engineering curriculum that reflects new understandings in how to build software, how software engineering depends on systems engineering, and how software engineering education is influenced by individual domains, such as telecommunications and defense systems. The resulting curriculum will be suitable for a university education leading to a Masters Degree in SWE. http://www.asysti.org/issechome.aspx Page 30

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 31

Software Engineering Licensing Consortium IEEE (USA, CS PPC, CS Wireless) NSPE (PEI, L&QP, BOD) TBPE (Board, Staff, SWETF) NCEES (Exam Development) NSPE -BOD -L&QP -PEI -Staff NCEES -BOD -EPE TBPE -SWETF -Board -Staff Software Engineering Licensing Consortium Others -Florida -New York IEEE -USA -Comm Soc -Comp Soc -Wireless Software engineers are engaged in a significant role in evaluating, designing, g, developing, deploying, operating, and maintaining critical software systems. In order to protect the public health, safety, and welfare, such practices should be regulated in the same manner as other engineering practices are regulated. Page 32

Examples of Software Applications that affect Health, Safety and Welfare Infrastructure: emergency dispatch services, fire alarms/sprinklers, emergency shut down systems, electrical grid, public water supply Medicine: heart lung machines, ventilators, medical infusion pumps, medical dispensers, implant devices, robotics, and medical records Energy: nuclear reactors, override systems, electrical grid systems, petroleum pumps Recreation: amusement park rides Transportation: railway signals/controls, auto; airbags, brakes, seatbelts, aviation; air traffic control, avionics, air crew life support, emergency evacuation equipment, automated traffic control Financial: banking systems, accounting, online financial systems, information security Government: taxation, licenses, criminal systems legislative support, public policy tools Communications: switching, transmission multiplexing, network management Military: GPS satellite, radio communications, artillery controls, aircraft systems Page 33

IITP (International IT Professional) Background Information I3P (International Professional Practice Program) is a new organization ation that will award ard the International Information Technology Professional (IITP) credential will be organized in early 2008, under the auspices of IFIP IFIP (International Federation for Information Processing) a UNESCO Consultative Committee, founded in 1958 IFIP members are computing societies one member society per country US is an exception: both IEEE-CS and ACM are IFIP members I3P members will be IFIP member/affiliate societies Microsoft has committed $1-1.5M to this effort Negotiations with other potential sponsors are under way Page 34

IITP (International IT Professional) is an umbrella (meta-)credential designed to increase the international recognition of societyoffered professional computing credentials an I3P member society will be able to submit a professional credential for IITP accreditation (anticipated i to take place in Summer 2008) society members who currently hold IITP- accredited d credentials will also receive the IITP credential Page 35

I3P Participants Current participants in the I3P effort, and their certifications: British Computer Society Chartered IT Professional (CITP) Australian Computer Society Computer Professional (CP) Canadian Information Processing Society Information Systems Professional (ISP) Proposed future participants IEEE and others in the US CSDP IT organizations from other countries around the world Note: This is an effort of professional societies. The target audience is industry, not individual professionals. Page 36

Key Interrelationships Development of Software Engineering Curriculum Development of Certification/ Licensing Criteria and Exams Consensus on acore Body of Knowledge Development of University Program Accreditation Criteria Code of Ethics, Professional Practices, Performance Norms Page 37

Good Things I Have Seen with a Focus on Professionalism, Discipline, and Process More Accurate Estimates Software that does Not Crash (at least not often :-) Higher Productivity Employees Like it They often return after Leaving for Greener Pastures Because we do not have such a zoo in our software development organization Reports indicate that young software engineers are especially eager to see their profession recognized Page 38

Bad Things I Have Seen with the Same Focus Overly Prescriptive Interpretations People wanting a Cookbook instead of a Model Dehumanization of Software Development Process and Discipline i are Blamed because the Software Still Isn t Perfect or it takes a while to produce it... Employees Leaving because they Don t Like the Climate Some see it as too rigid and sometimes it is! Most of this results from individuals who apply rules without fully understanding the underlying principles Page 39

Observations Education and Understanding are the Keys to Effective and Proper Use True professionals in any field always have good processes and disciplined practices Even if they don t use that terminology They know how to make effective use of good processes and practices And they know when the processes and practices do not apply There will always be differences of opinion about these topics How mature must a field be before standards of practice are put in place? How do you balance the need for discipline i with the need for innovation? Page 40

Excuses Professional practices cannot guarantee safety, so insisting on those practices is not justified. We ve done it the old way for 40 years, so why should we change? The Perfect is the Enemy of the Good Page 41

Processes, Discipline and Professionalism help us stand on the shoulders of giants Instead of standing on each others feet Apologies to Richard Hamming, ACM Turing Lecture, 1969. Page 42

Appendices

Reference Material http://www.swebok.org -- SW engineering body of knowledge project http://computer.org/certification -- IEEE-CS certified software development professional http://www.acm.org/serving/se/code.htm / / / h -- Software Engineering Code of Ethics http://sites.computer.org/ccse/ org/ccse/ -- ACM Software Engineering curriculum info http://www.abet.org ABET accreditation information http://www.abet.org/criteria.html -- Accreditation criteria (includes SW engineering) http://www.tbpe.state.tx.us/ -- Texas PE Board Page 44

Additional References http://www.acs.org.au/index.cfm?action=show&conid=cbok - - Australian Computer Society body of knowledge http://sites.computer.org/ccse/se2004volume.pdf -- SE2004 Software Engineering g Curriculum Model http://www.asysti.org/issechome.aspx -- Integrated Systems and Software Engineering g Curriculum web site Page 45

ABET Accredited Computing Programs in the US, as of 2007 Information Technology: 3 programs Information Systems: 24 Programs Computer Science: 230 Programs Computer Engineering: About 200 Programs Other Titles: 4 Programs Page 46

Software Engineering Defined for Licensing Software engineering is the application and/or study of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that has an impact on the lives, property, economy, or security of people or the national defense; that is, the application of engineering to software. Page 47