+ All Categories
Home > Documents > The Future of Software Engineering. Contents How have we done (since 1968)? Technology transfer ...

The Future of Software Engineering. Contents How have we done (since 1968)? Technology transfer ...

Date post: 11-Jan-2016
Category:
Upload: archibald-gaines
View: 212 times
Download: 0 times
Share this document with a friend
28
The Future of Software Engineering
Transcript
Page 1: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

The Future of Software Engineering

Page 2: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Contents How have we done (since 1968)? Technology transfer Decision-making in software engineering

(skip) The professionalization of software

engineering: Education Licensing Certification Code of Ethics

Page 3: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Seven Key Factors that have Altered Software Engineering

1. Criticality of time-to-market2. Lower hardware costs and greater development and

maintenance costs3. Availability of powerful desktop computing4. Extensive use of local and wide-area networking5. Availability and adoption of object oriented

technology6. GUIs with WIMP7. Unpredictability of the waterfall model

Wasserman’s Toward a Discipline of Software Engineering (1996)

Page 4: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Seven Key Factors that have altered Software Engineering since 1996

1.

2.

3.

4.

5.

6.

7.

Page 5: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Discipline of Software Engineering

Abstraction Analysis and design notations User interface prototyping Software architecture Software process Reuse Measurement Tools and integrated environments

Wasserman’s Toward a Discipline of Software Engineering (1996)

Page 6: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Technology Transfer How well do we move the new

software engineering research and ideas into common practice It typically takes 10 to 15 years for

innovations to flow down into common practice.

Because of the criticality of time-to-market, often new technologies are adopted before there is clear evidence of benefit.

Page 7: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Best Practices Project planning and management practices

Automated estimation tools 1973 Evolutionary delivery 1988 Measurement 1977 Risk management planning 1981

Requirements engineering practices Change board 1978 Throwaway user interface prototyping 1975 JAD sessions 1985

Design practices Information hiding 1972 Design for change 1979

Construction practices Source code control 1980 Incremental integration 1979

Quality assurance practices Branch-coverage testing 1979 Inspections 1976

Process improvement SEI’s Software Capability Maturity Model 1987 Software Engineering Process Groups 1989

Steve McConnell, Professional Software Development

Page 8: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Adopter Types

Page 9: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Software Engineering as a Profession

In 2006, Money Magazine and Salary.com rated software engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field

US Bureau of Labor Statistics Employment of software engineers is

expected to grow by 38% through 2016 Employment of computer programmers is

expected to decline by 4% through 2016

Page 10: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Issues in the Profession

Improvement in software engineering education

Licensing and/or certification to improve process and product

Code of Ethics

Page 11: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Software Engineering Education

Approaches Specializing in software engineering as

part of a computer science major Specializing in software engineering as

part of a computer engineering major Specializing in software engineering as

part of an engineering major Specializing in software engineering as a

separate degree from computer science or computer engineering

Page 12: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Software Engineering Involves Both Computer Science and Engineering

Computer science Engineering

Data management Disciplined processes

Data patterns Large, integrated systems

Data transformation Coordinated teams

Algorithm paradigms Nonfunctional properties (e.g., performance, reliability, maintainability, ease of use)

Programming languages

Human-computer interaction

Page 13: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Software Engineering vs. Computer Science

Computer science Focuses on data, data transformation, and algorithm Advanced courses present designs and programming

techniques for specific application domain Software engineering

Focuses on building software products Looks at all activities involved in developing a

software system from initial idea to final product Design concepts tend to focus on general-purpose

design principles, patterns, and criteria Advanced courses present design and analysis

techniques that scale to large software system

Page 14: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

S.E. Body of Knowledge

Computing curricula Software Engineering 2004

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

SWEBOK Software Engineering Body of Knowledge

http://www.swebok.org/

Page 15: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Licensing and/or Certification Licensing: a legal restriction on who is

allowed to practice in a regulated profession

Certification: a voluntary process administered by a professional society. The intent of certification is to give the public a

way of knowing who is qualified to perform specific kinds of work.

The IEEE Computer Society offers certification as a certified software development professional

Page 16: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Professions Requiring Licenses Acupuncturist Alarm company operator Amateur boxer Architect Attorney Barber Certified public accountant Contractor Cosmetologist Custom upholsterer Dentist Embalmer Family counselor Funeral director Geologist Guide dog instructor

Hearing aid dispenser Jockey Locksmith Manicurist Mule jockey Nurse Pest control operator Physician Physician's assistant Private investigator Professional engineer Real estate appraiser Repossessor Retail furniture dealer Veterinarian

Page 17: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Licensed Engineers

Engineers are not required to obtain licenses. Engineering companies are required to

employ some licensed engineers, but not all of their engineers have to be licensed.

44% of civil engineers are licensed 9% of electrical engineers are licensed

Page 18: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Licensed Professional engineer

Page 19: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Opponents of Licensing Software Engineers

1. There is no widely accepted body of knowledge whose mastery would define competency in software engineering

2. Knowledge in software engineering changes so quickly that exams will be out of date by the time they're offered

3. Licenses would unduly restrict the number of people who could practice software engineering at a time when demand for software engineers is increasing.

4. There is no guarantee that licensed software engineers will produce and maintain high quality software

5. Licensing may afford false assurance to the public that software developed by licensed professionals is of high quality

Page 20: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Code of Ethics In 1998, the Software Engineering Code

of Ethics and Professional Practice was adopted by both the ACM and IEEE Computer Society http://www.acm.org/serving/se/code.htm A code of ethics provides an environment in

which software engineers can make ethical decisions without jeopardizing their advancement within the profession. Without a code of ethics, software engineers

must rely solely on their individual judgments to resolve ethical dilemmas.

Page 21: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

SE Code of Ethics and Professional Practice

Public Software engineers shall act consistently with the public

interest. In particular, software engineers shall, as appropriate:

1. Accept full responsibility for their own work

2. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment.

3. Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents.

Page 22: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

SE Code of Ethics and Professional Practice

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. In particular, software engineers shall, as appropriate:1. Provide service in their areas of competence, being

honest and forthright about any limitations of their experience and education.

2. Not knowingly use software that is obtained or retained either illegally or unethically.

3. Identify, document, collect evidence and report to the client or the employer promptly if, in their opinion, a project is likely to fail, to prove too expensive, to violate intellectual property law, or otherwise to be problematic.

Page 23: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

SE Code of Ethics and Professional Practice

Product: Software engineers shall ensure that their products and related

modifications meet the highest professional standards possible. In particular, software engineers shall, as appropriate:1. Strive for high quality, acceptable cost and a reasonable

schedule, ensuring significant tradeoffs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.

2. Ensure an appropriate method is used for any project on which they work or propose to work.

3. Work to follow professional standards, when available, that are most appropriate for the task at hand, departing from these only when ethically or technically justified.

4. Strive to fully understand the specifications for software on which they work.

Page 24: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

SE Code of Ethics and Professional Practice

Judgment: Software engineers shall maintain integrity and independence in their professional judgment

Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development maintenance

Profession: Software engineers shall advance the integrity and reputation of the profession, consistent with the public interest

Colleagues: Software engineers shall be fair to and supportive of their colleagues

Self: Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

Page 25: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Ethical Dilemma

Death-march projects: a software engineer believes a project's schedule is unachievable and likely to fail.

Page 26: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Ethical Dilemma Death-march projects: a software

engineer believes a project's schedule is unachievable and likely to fail.

According to the Code, if software engineers think a project is likely to fail, they shall report the evidence that leads them to believe that to their employer or client.

Page 27: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Ethical Dilemma

Code-and-fix development: management insists that software developers engage in code-and-fix development.

Page 28: The Future of Software Engineering. Contents  How have we done (since 1968)?  Technology transfer  Decision-making in software engineering (skip)

Ethical Dilemma

Code-and-fix development: management insists that software developers engage in code-and-fix development.

According to the code, use of code-and-fix development is inconsistent with a software engineer's ethical duty to produce high-quality products for acceptable costs, within reasonable schedules, using appropriate methods.


Recommended