Software Engineering Lecture 1
Software Engineering Lecture 1
2
Reference Book
3
Marks Distribution
4
What is software?
• Computer programs and associated documentation
such as:
– Requirements, Design models and User manuals.
• Software products may be developed for:
– A particular customer
• Custom - developed for a single customer according to their
specification.
– A general market.
• Generic - developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
• New software can be created by:
– Developing new programs
– Configuring generic software systems or
– Reusing existing software.
5
What is Software Engineering?
• Systematic approach for developing software
– Methods and techniques to develop and
maintain quality software to solve problems.
• (Software Engineering: Methods and Management,
fleeger, 1990)
– Study of the principles and methodologies for
developing and maintaining software systems.
• (`Perspectives on Software Engineering,''
Zelkowitz,1978.)
6
What is Software Engineering
• Practical application of scientific knowledge in the
design and development of computer programs and
the associated documentation required to develop,
operate, and maintain them.
– (“Software Engineering,'' Boehm, 1976)
• Deals with establishment of sound engineering
principles and methods in order to economically
obtain software that is reliable and works on
machines.
– (“Software Engineering,'' Bauer, 1972)
7
Software costs
• Software costs often dominate computer 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 be
several times development costs.
• Software engineering is concerned with cost-
effective software development.
8
What are the costs of software engineering?
• Roughly 60% of costs are development costs, 40%
are testing costs.
– For custom software, evolution costs often exceed
development costs.
• Costs vary depending on:
– The type of system being developed
– The requirements of system attributes such as
performance and system reliability.
• Distribution of costs depends on the development
model that is used.
9
What is a software process?
• A set of activities whose goal is the development or
evolution of software.
• Generic activities in all software processes are:
– Specification
• what the system should do and its development constraints
– Development
• Production of the software system
– Validation
• Checking that the software is what the customer wants
– Evolution
• Changing the software in response to changing demands.
10
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;
– Prototype
– Spiral
– Iterative development;
11
What are the attributes of a good software?
• The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and acceptable.
• Maintainability
– Software must evolve to meet changing needs;
• Dependability
– Software must be trustworthy;
• Efficiency
– Software should not make wasteful use of system resources;
• Acceptability
– Software must be accepted by the users for whom it was designed.
This means it must be understandable, usable and compatible with
other systems.
12
What are the key challenges facing software
engineering?
• Heterogeneity, delivery and trust.
• Heterogeneity
– Developing techniques for building software that can
cope with heterogeneous platforms and execution
environments;
• Delivery
– Developing techniques that lead to faster delivery of
software;
• Trust
– Developing techniques that demonstrate that software
can be trusted by its users.
13
Why is software development so difficult?
• Communication • Project characteristics
– Between customer and – Changing requirements
developer • 5 x cost during
• Poor problem definition is development
largest cause of failed • up to 100 x cost during
software projects maintenance
– Within development – Hardware/software
team configuration
• More people = more – Security requirements
communication
– Real time requirements
• New programmers need
training – Reliability requirements
14
Why is software development so difficult?
• Personnel • Management issues
characteristics – Realistic goals
– Ability – Cost estimation
– Prior experience – Scheduling
– Communication skills – Resource allocation
– Team cooperation – Quality assurance
– Training – Version control
• Facilities and – Contracts
resources
– Identification
– Acquisition
15
Software VS Hardware
17
Issues of professional responsibility
• Confidentiality
– Engineers should normally respect the confidentiality of
their employers or clients irrespective of whether or not a
formal confidentiality agreement has been signed.
• Competence
– Engineers should not misrepresent their level of
competence. They should not knowingly accept work
which is out with their competence.
18
Issues of professional responsibility
• Intellectual property rights
– Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc.
– They should be careful to ensure that the intellectual property of
employers and clients is protected.
• Computer misuse
– Software engineers should not use their technical skills to misuse
other people’s computers.
– Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of
viruses).
19
ACM/IEEE Code of Ethics
• The professional societies in the US have
cooperated to produce a code of ethical practice.
• Members of these organisations sign up to the
code of practice when they join.
• The Code contains eight Principles related to the
behaviour of and decisions made by professional
software engineers, including practitioners,
educators, managers, supervisors and policy
makers, as well as trainees and students of the
profession.
20
Code of ethics - preamble
• Preamble
– The short version of the code summarizes aspirations at a
high level of the abstraction; 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
become legalistic and tedious; without the details, the
aspirations can become high sounding but 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 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:
21
Code of ethics - principles
• PUBLIC
– Software engineers shall act consistently with the public
interest.
• 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.
• PRODUCT
– Software engineers shall ensure that their products and
related modifications meet the highest professional
standards possible.
22
Code of ethics - principles
• 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 and maintenance.
• PROFESSION
– Software engineers shall advance the integrity and
reputation of the profession consistent with the public
interest.
23
Code of ethics - principles
• 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.
24