Professional Documents
Culture Documents
An Introduction To Software Engineering
An Introduction To Software Engineering
Software Engineering
|
m
x ectives
ë To introduce software engineering and to explain
its importance
ë To set out the answers to key questions a out
software engineering
ë To introduce ethical and professional issues and
to explain why they are of concern to software
engineers
|
m
Topics covered
ë FAQs a out software engineering
ë Professional and ethical responsi ility
|
m
Software engineering
ë The economies of ALL developed nations are
dependent on software
ë More and more systems are software controlled
ë Software engineering is concerned with theories,
methods and tools for professional software
development
ë Software engineering expenditure represents a
significant fraction of GNP in all developed
countries
|
m
Software costs
ë Software costs often dominate system costs. The
costs of software on a PC are often greater than
the hardware cost
ë Software costs more to maintain than it does to
develop. For systems with a long life,
maintenance costs may e several times
development costs
ë Software engineering is concerned with cost-
effective software development
|
m
FAQs a out software engineering
ë What is software?
ë What is software engineering?
ë What is the difference etween software
engineering and computer science?
ë What is the difference etween software
engineering and system engineering?
ë What is a software process?
ë What is a software process model?
|
m
FAQs a out software engineering
ë What are the costs of software engineering?
ë What are software engineering methods?
ë What is CASE (Computer-Aided Software
Engineering)
ë What are the attri utes of good software?
ë What are the key challenges facing software
engineering?
|
m
What is software?
|
m
What is software engineering?
|
m
What is the difference etween software
engineering and computer science?
|
m
What is the difference etween software
engineering and system engineering?
|
m
What is a software process?
|
m
What is a software process model?
ë A simplified representation of a software process,
presented from a specific perspective
ë Examples of process perspectives are
Workflow perspective - sequence of activities
Data-flow perspective - information flow
Role/action perspective - who does what
ë Generic process models
Waterfall
Evolutionary development
Formal transformation
Integration from reusa le components
|
m
What are the costs of software engineering?
|
m
What are software engineering methods?
ë Structured approaches to software development which
include system models, notations, rules, design advice
and process guidance
ë Model descriptions
Descriptions of graphical models which should e produced
ë Rules
Constraints applied to system models
ë Recommendations
Advice on good design practice
ë Process guidance
What activities to follow
|
m
What is CASE (Computer-Aided Software
Engineering)
|
m
What are the attri utes of good software?
ë The software should deliver the required functionality and
performance to the user and should e maintaina le,
dependa le and usa le
ë Maintaina ility
Software must evolve to meet changing needs
ë Dependa ility
Software must e trustworthy
ë Efficiency
Software should not make wasteful use of system resources
ë Usa ility
Software must e usa le y the users for which it was designed
|
m
What are the key challenges facing software
engineering?
|
m
Professional and ethical responsi ility
|
m
Issues of professional responsi ility
ë
Engineers should normally respect the confidentiality
of their employers or clients irrespective of whether
or not a formal confidentiality agreement has een
signed.
ë
Engineers should not misrepresent their level of
competence. They should not knowingly accept work
which is outwith their competence.
|
m
Issues of professional responsi ility
|
m
ACM/IEEE Code of Ethics
ë The professional societies in the US have
cooperated to produce a code of ethical practice.
ë Mem ers of these organisations sign up to the
code of practice when they oin.
ë The Code contains eight Principles related to the
ehaviour of and decisions made y professional
software engineers, including practitioners,
educators, managers, supervisors and policy
makers, as well as trainees and students of the
profession.
|
m
Code of ethics - pream le
ë º
The short version of the code summarizes aspirations at a high
level of the a straction; the clauses that are included in the full
version give examples and details of how these aspirations
change the way we act as software engineering professionals.
Without the aspirations, the details can ecome legalistic and
tedious; without the details, the aspirations can ecome high
sounding ut empty; together, the aspirations and the details
form a cohesive code.
Software engineers shall commit themselves to making the
analysis, specification, design, development, testing and
maintenance of software a eneficial and respected profession.
In accordance with their commitment to the health, safety and
welfare of the pu lic, software engineers shall adhere to the
following Eight Principles:
|
m
Code of ethics - principles
ë 1. PUBLIC
Software engineers shall act consistently with the pu lic
interest.
ë 2. CLIENT AND EMPLxER
Software engineers shall act in a manner that is in the est
interests of their client and employer consistent with the pu lic
interest.
ë 3. PRxDUCT
Software engineers shall ensure that their products and related
modifications meet the highest professional standards possi le.
|
m
Code of ethics - principles
ë JUDGMENT
Software engineers shall maintain integrity and independence
in their professional udgment.
ë 5. MANAGEMENT
Software engineering managers and leaders shall su scri e to
and promote an ethical approach to the management of
software development and maintenance.
ë 6. PRxFESSIxN
Software engineers shall advance the integrity and reputation of
the profession consistent with the pu lic interest.
|
m
Code of ethics - principles
ë 7. CxLLEAGUES
Software engineers shall e 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 approach to the practice
of the profession.
|
m
Ethical dilemmas
ë Disagreement in principle with the policies of
senior management
ë our employer acts in an unethical way and
releases a safety-critical system without finishing
the testing of the system
ë Participation in the development of military
weapons systems or nuclear systems
|
m
ey points
ë m
ë m
ë Methods are organised ways of producing software. They include
suggestions for the process to e followed, the notations to e used,
rules governing the system descriptions which are produced and
design guidelines.
|
m
ey points
ë m
ë m
ë
|
m