The Emerging g g Profession of Software Engineering g g Dennis - - PowerPoint PPT Presentation

the emerging g g profession of software engineering g g
SMART_READER_LITE
LIVE PREVIEW

The Emerging g g Profession of Software Engineering g g Dennis - - PowerPoint PPT Presentation

The Emerging g g Profession of Software Engineering g g Dennis J Frailey Dennis J. Frailey April 7, 2008 Presented at ITNG 2008 Page 2 4/10/2008 The Public Who Cares! Protective Cloak of Technology Computer Software Development --


slide-1
SLIDE 1

The Emerging g g Profession of Software Engineering

Dennis J Frailey

g g

Dennis J. Frailey April 7, 2008 Presented at ITNG 2008

slide-2
SLIDE 2

Computer Software Development -- The Way it Was Software Developers The Public

Who Cares!

Protective Cloak of Technology

Page 2 4/10/2008

slide-3
SLIDE 3

Major Disasters Attributed to Software j

Therac-25 - Radiation therapy unit killed five patients by

administering massive overdoses of radiation due to a software g 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

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 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

Page 3 4/10/2008

g g $125 million of US Taxpayer dollars.

slide-4
SLIDE 4

Major Project Failures Attributed to Software

Cheyenne Mountain Upgrade – Project to replace five main

computer systems in the NORAD command center was reported p y p 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

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

g y y y deployment, costing $25 million.

Ford Motor Company Purchasing system - Abandoned after

d l t ti i t l $400 illi deployment costing approximately $400 million.

Hewlett-Packard Enterprise Resource System – Problems

contribute to $160 million loss in 2004

Page 4 4/10/2008

contribute to $160 million loss in 2004.

slide-5
SLIDE 5

The Way it Is Becoming

Wh h ld Wh d thi M k Who should we sue for this fiasco? Why does this software crash all the time? My pacemaker has a computer! the time? computer!

Page 5 4/10/2008

slide-6
SLIDE 6

What Do These Words Mean? PROCESS PROCESS DISCIPLINE DISCIPLINE PROFESSION PROFESSION

Regulation Order Loss of Creativity Meddling Safety Responsibility S ft Meddling “Police” Responsibility Organization Softw are Engineering? Doom and Gloom End of the World Consistency Reliability

Page 6 4/10/2008

End of the World Reliability

slide-7
SLIDE 7

Terminology gy

Engineering: The application of science and Engineering: The application of science and mathematics by which properties of matter and the sources of energy are made useful to and the sources of energy are made useful to people.

(Merriam-Webster's New ( Collegiate Dictionary, 10th Edition)

Page 7 4/10/2008

slide-8
SLIDE 8

Terminology gy

Software Engineering. The application of a So t a e g ee g e app cat o

  • 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 4/10/2008

slide-9
SLIDE 9

David Parnas’s List of 9 Tasks a Software Engineer Should Know How to Do g

Analyze the intended application Participate in the design of the computer system

configuration A l th f f d d i

Analyze the performance of a proposed design Design the basic structure of the software

A l th ft t t f d i d

Analyze the software structure for desired

characteristics Implement the software

Implement the software Integrate new software

Perform systematic and statistical testing

Perform systematic and statistical testing Revise and enhance software systems

Page 9 4/10/2008

Parnas, D. (2001) “The Professional Responsibilities of Software Engineers”, Software Fundamentals: Collected Papers by David L. Parnas, MA: Addison-Wesley. pp. 540-541.

slide-10
SLIDE 10

Programmer vs Software Engineer g g Programmer Software Engineer Writing code Developing systems,

  • ften large and highly

g g y complex Using techniques learned from individual Applying widely accepted techniques based on experience q proven knowledge Building products that work Building products that you can depend on

Page 10 4/10/2008

y p

slide-11
SLIDE 11

Software Engineering is Growing Up

Black Art Profession Black Art Profession

Page 11 4/10/2008

slide-12
SLIDE 12

Terminology gy

  • Profession. A calling requiring specialized knowledge and often

long and intensive academic preparation; a principal calling, g g vocation or employment; the whole body of persons engaged in a calling. P f i l (1) R l ti t h t i ti f f i

  • Professional. (1) Relating to or characteristic 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. g

  • Professionalism. (1) The conduct aims or qualities that

characterize or mark profession or a professional person. (2) Th f ll i f f i ( hl i ) f i li lih d The following of a profession (as athletics) for gain or livelihood.

(Merriam-Webster's New Collegiate Dictionary 10th Edition )

Page 12 4/10/2008

Collegiate Dictionary, 10th Edition )

slide-13
SLIDE 13

Elements of a Profession

Public Public Licensing Licensing Authorit Authority Regulator Regulator Body of Knowledge y Curriculum Research Principles Performance Norms W k W k F Professional Professional Wor

  • rk Force
  • rce

Professional Professional Practice Practice

Page 13 4/10/2008

slide-14
SLIDE 14

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 14 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-15
SLIDE 15

Software Engineering Has Been Emerging as an Engineering Profession g g g g

1968 -- NATO conference introduces the term Software

Engineering Engineering

1970-present – Textbooks, Masters Degrees, Tools,

Techniques, and Standards Techniques, and Standards

1980-2000 -- Licensing for software engineers is recognized

in Texas, BC, Ontario, Australia, United Kingdom

2001 -- Rochester Institute of Technology grants the first-in-

US Software Engineering bachelor degrees. (Degree requires five years including co-op work ) requires five years, including co-op work.)

2003 -- Four university BS programs in software engineering

were accredited by ABET. y

– The total was up to 15 by 2007 and more are being considered for 2008 – There are over 50 masters programs in software engineering in the U.S.

alone

Page 15 4/10/2008

alone

slide-16
SLIDE 16

ABET Accredited Software Engineering Programs in the US, as of 2007 g ,

Auburn University Clarkson University Embry-Riddle Aeronautical University - Daytona Beach Fairfield University-School of Engineering

Fl id I tit t f T h l

Florida Institute of Technology University of Michigan-Dearborn Milwaukee School of Engineering Milwaukee School of Engineering Mississippi State University Monmouth University Pennsylvania State University, Behrend College Rochester Institute of Technology

R H l I tit t f T h l

Rose-Hulman Institute of Technology University of Texas at Arlington University of Texas at Dallas

www.abet.org

Page 16 4/10/2008

University of Texas at Dallas University of Wisconsin-Platteville

g

slide-17
SLIDE 17

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 17 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-18
SLIDE 18

Other Signs that Software Engineering is Becoming an Accepted Profession g p

1998 -- ACM/IEEE-CS Software Engineering Code of Ethics was

completed. 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 Bod of Kno ledge p blished in book form Engineering Body of Knowledge published in book form. – Trial usage 2002-2004. – Several universities are using it to rationalize curriculum e g SMU

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 4/10/2008

Engineering Body of Knowledge

slide-19
SLIDE 19

Software Engineering Code of Ethics g g Software engineers shall commit themselves to making the analysis specification design making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession In a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public software engineers safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

Page 19 4/10/2008

http://www.acm.org/serving/se/code.htm

slide-20
SLIDE 20

Eight Ethical Principles g p

  • 1. PUBLIC - Software engineers shall act consistently with the public

interest. 2 CLIENT AND EMPLOYER S ft i h ll t i

  • 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

  • 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. 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. p

  • 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

  • 7. COLLEAGUES

Software engineers shall be fair to and supportive of their colleagues.

  • 8. SELF - Software engineers shall participate in lifelong learning

regarding the practice of their profession and shall promote an ethical

Page 20 4/10/2008

g g p p p approach to the practice of the profession.

slide-21
SLIDE 21

Body of Knowledge

Software Requirements Analysis Software Design

Software Design

Software Construction Software Testing Software Maintenance Software Configuration

Management

Software Engineering

Management Management

Software Engineering Process Software Engineering Tools and Software Engineering Tools and

Methods

Software Quality

Page 21 4/10/2008

www.swebok.org

slide-22
SLIDE 22

Other Body of Knowledge Efforts y g

Australian Computer Society core body of

knowledge knowledge www.acs.org.au/index.cfm?action=show&conID=cbok

British Computer Society

p y

–BOK under development

Many others are adopting the SWEBOK

Rather than developing their own BOKs for software

–Rather than developing their own BOKs for software

engineering

Page 22 4/10/2008

slide-23
SLIDE 23

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 23 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-24
SLIDE 24

IEEE Certified Software Development Professional (CSDP) ( )

Formal recognition of demonstrated proficiency

within and comprehension of a specified body of within and comprehension of a specified body of knowledge at a point in time. P iti

Peer recognition Not registration or licensure.

–Registration: listing by and with a body of individuals or

  • rganizations that are certified

–Licensure: authorization granted by government body for

an individual or organization to practice a business or

  • ccupation
  • ccupation

Certification is voluntary.

// 2 / / / f

Page 24 4/10/2008

http://www2.computer.org/portal/web/certification

slide-25
SLIDE 25

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 25 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-26
SLIDE 26

Software Engineering Curriculum Model g g

Page 26 4/10/2008

http://sites.computer.org/ccse/SE2004Volume.pdf

slide-27
SLIDE 27

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 27 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-28
SLIDE 28

Recent Activities

2007 - iSSEc Project to establish a model

G d t C i l i S ft E i i Graduate Curriculum in Software Engineering

–Will establish recommended links to systems

engineering (systems analysis, etc.)

2007 – Software Engineering Licensing

g g g Consortium, dedicated to making software engineering eligible for licensing in the US engineering eligible for licensing in the US

–Will not change how licensing works, but will advise

  • n the qualifications for software engineers who wish
  • n the qualifications for software engineers who wish

to be licensed

2008 – IITP – International IT Professional

Page 28 4/10/2008

2008 – IITP – International IT Professional

slide-29
SLIDE 29

iSSEc - Software Engineering Reference Model for Graduate Curricula (in progress) ( p g )

Worldwide, most of the value in new products and systems is

delivered through software. Much of the complexity of those g p y 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 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 p y 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 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

Page 29 4/10/2008

expected functionality, is uncommon.

http://www.asysti.org/issechome.aspx

slide-30
SLIDE 30

iSSEc - Software Engineering Reference Model for Graduate Curricula (in progress) ( p g )

Software engineering is the acknowledged discipline by

which large-scale and complex software is developed. Many universities teach software engineering at the undergraduate level 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 senior software engineering professionals.

The iSSEc (integrated Software and Systems Engineering

i l ) P j t i ti d l d t ft 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 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 education leading to a Masters Degree in SWE.

Page 30 4/10/2008

http://www.asysti.org/issechome.aspx

slide-31
SLIDE 31

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 31 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-32
SLIDE 32

Software Engineering Licensing Consortium

IEEE (USA, CS PPC, CS

Wireless)

TBPE

  • SWETF

Board

Wireless)

NSPE (PEI, L&QP, BOD)

TBPE (Board Staff

NSPE

  • BOD
  • L&QP

IEEE

  • USA
  • Comm Soc
  • Board
  • Staff

TBPE (Board, Staff,

SWETF)

NCEES (Exam

Q

  • PEI
  • Staff
  • Comp Soc
  • Wireless

Software Engineering Licensing Consortium

NCEES (Exam

Development)

NCEES

  • BOD
  • EPE

Others

  • Florida
  • New York

“Software engineers are engaged in a significant role in evaluating, designing, developing, deploying, operating, and g, g g, p g, p y g, p g, 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

Page 32 4/10/2008

regulated … in the same manner as other engineering practices are regulated.”

slide-33
SLIDE 33

Examples of Software Applications that affect Health, Safety and Welfare , y

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,

gy y g y petroleum pumps

Recreation: amusement park rides Transportation: railway signals/controls auto; airbags brakes seatbelts 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 Financial: banking systems, accounting, online financial systems,

information security

Government: taxation, licenses, criminal systems legislative support,

public policy tools public policy tools

Communications: switching, transmission multiplexing, network

management

Page 33 4/10/2008

Military: GPS satellite, radio communications, artillery controls, aircraft

systems

slide-34
SLIDE 34

IITP (International IT Professional) Background Information

I3P (International Professional Practice Program)

is a ne

  • rgani ation that

ill a ard the International

–is a new organization that will award the International

Information Technology Professional (IITP) credential

–will be organized in early 2008 under the auspices of IFIP

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

  • ne member society per country

US is an exception: both IEEE-CS and ACM are IFIP 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

Page 34 4/10/2008

–Negotiations with other potential sponsors are under way

slide-35
SLIDE 35

IITP (International IT Professional) is …

an “umbrella” (meta-)credential designed to

( ) g increase the international recognition of society-

  • ffered professional computing credentials

an I3P member society will be able to submit a

professional credential for IITP accreditation ( i i d k l i S 2008) (anticipated to take place in Summer 2008)

society members who currently hold IITP-

dit d d ti l ill l i th IITP accredited credentials will also receive the IITP credential

Page 35 4/10/2008

slide-36
SLIDE 36

I3P Participants p

Current participants in the I3P effort, and their certifications:

British Computer Society British Computer Society

Chartered IT Professional (CITP)

Australian Computer Society

Computer Professional (CP)

Canadian Information Processing Society

Information Systems Professional (ISP)

y ( )

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.

Page 36 4/10/2008

The target audience is industry, not individual professionals.

slide-37
SLIDE 37

Key Interrelationships

Development of Software Software Engineering Curriculum Consensus on a Core a Core Body of Knowledge Development of Certification/ Licensing Criteria Development of University Program Accreditation Licensing Criteria and Exams Criteria Code of Ethics, Professional Practices, Performance Norms

Page 37 4/10/2008

Code of Ethics, Professional Practices, Performance Norms

slide-38
SLIDE 38

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 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 4/10/2008

slide-39
SLIDE 39

Bad Things I Have Seen with the Same Focus

Overly Prescriptive Interpretations People wanting a Cookbook instead of a Model “Dehumanization” of Software Development

P d Di i li Bl d b th S ft

Process and Discipline 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!

g

Most of this results from individuals who apply rules without fully understanding the underlying principles

Page 39 4/10/2008

slide-40
SLIDE 40

Observations

Education and Understanding are the Keys to Effective

and Proper Use and Proper Use

– True professionals in any field always have good processes and

disciplined practices

Even if they don’t use that terminology

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 topics

– How mature must a field be before standards of practice are put

in place? H d b l th d f di i li ith th d f

– How do you balance the need for discipline with the need for

innovation?

Page 40 4/10/2008

slide-41
SLIDE 41

Excuses

“We’ve done it the “P f i l

  • ld way for 40

years, so why should we “Professional practices cannot guarantee safety, should we change?” g y, so insisting on those practices is not justified ” not justified.

“The Perfect is the Enemy of the Good”

Page 41 4/10/2008

the Good

slide-42
SLIDE 42

Processes, Discipline and Professionalism help t d th h ld f i t us stand on the shoulders of giants

–Instead of standing on each others’ feet

g

Apologies to Richard Hamming, ACM Turing Lecture, 1969.

Page 42 4/10/2008

slide-43
SLIDE 43

Appendices Appendices

slide-44
SLIDE 44

Reference Material

http://www.swebok.org -- SW engineering body of

knowledge project g p j

http://computer.org/certification -- IEEE-CS certified

software development professional h // / i / / d h S f

http://www.acm.org/serving/se/code.htm -- Software

Engineering Code of Ethics

http://sites computer org/ccse/ -- ACM Software http://sites.computer.org/ccse/ -- ACM Software

Engineering curriculum info

http://www.abet.org – ABET accreditation information

p g

http://www.abet.org/criteria.html -- Accreditation criteria

(includes SW engineering)

http://www.tbpe.state.tx.us/ -- Texas PE Board

Page 44 4/10/2008

slide-45
SLIDE 45

Additional References

http://www.acs.org.au/index.cfm?action=show&conID=cbok -

  • Australian Computer Society body of knowledge

Australian Computer Society body of knowledge

http://sites.computer.org/ccse/SE2004Volume.pdf -- SE2004

Software Engineering Curriculum Model g g

http://www.asysti.org/issechome.aspx -- Integrated Systems

and Software Engineering Curriculum web site g g

Page 45 4/10/2008

slide-46
SLIDE 46

ABET Accredited Computing Programs in the US, as of 2007 ,

Information Technology:

– 3 programs

3 programs

Information Systems:

– 24 Programs

24 Programs

Computer Science:

– 230 Programs

g

Computer Engineering:

– About 200 Programs

Other Titles:

– 4 Programs

Page 46 4/10/2008

slide-47
SLIDE 47

Software Engineering Defined for Licensing Software engineering is the application and/or study of a systematic, disciplined, quantifiable approach to the development operation and approach to the development, operation, and maintenance of software, that has an impact on th li t it f l the lives, property, economy, or security of people

  • r the national defense; that is, the application of

engineering to software.

Page 47 4/10/2008