Lecture 01:A Brief Overview of
Software Engineering
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1
Objectives
⚫ To introduce software engineering and to explain
its importance
⚫ To set out the answers to key questions about
software engineering
⚫ To introduce ethical and professional issues and
to explain why they are of concern to software
engineers
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 2
Topics covered
⚫ FAQs about software engineering
⚫ Professional and ethical responsibility
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 3
FAQs about software engineering
⚫ What is software?
⚫ What is software engineering?
⚫ How Software domain is different from other engineering domains?
⚫ Apply Engineering approach to software development
⚫ What is a software process?
⚫ What is a software process model?
⚫ What are the costs of software engineering?
⚫ What are the attributes of good software?
⚫ What are the key challenges facing software engineering?
⚫ What are the professional and ethical responsibilities of software
engineering practitioners?
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 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 or may be developed for a general market.
⚫ Software products may be
• Generic - developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
• Bespoke (custom) - developed for a single customer according
to their specification.
⚫ New software can be created by developing new
programs, configuring generic software systems or
reusing existing software.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 5
What is software engineering?
⚫ Def1: Software engineering is an engineering discipline that is
concerned with all aspects of software production.
⚫ Def 2: Software engineering is the application of a systematic,
disciplined, quantifiable approach to the development, operation, and
maintenance of software, and the study of these approaches; that is,
the application of engineering to software.
⚫ Software engineers should adopt a systematic and organised
approach to their work and use appropriate tools and techniques
depending on the problem to be solved, the development constraints
and the resources available.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 6
Cont…
⚫ Software engineering is defined as the discipline
whose aim is the production of quality software,
delivered on time and within the budget and that
satisfy its requirements.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 7
Challenge in large projects
Developing large /complex software app is very challenging
⚫ Effort intensive
⚫ High cost
⚫ Long development time
⚫ Changing needs for user
⚫ High risk of failure, user acceptance, performance,
maintainability
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 8
Successful Software System
▪ Software development projects have not always been
successful
▪ When we do consider a software application successful?
‗ Development completed
‗ It is useful and
‗ It is usable, and
‗ It is used
Cost effectiveness, maintainability applied.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 9
Failure Reasons
⚫ Schedule slippage
⚫ Cost over-runs
⚫ Does not solve user ‘s problems
⚫ Poor quality of software
⚫ Poor Maintainability
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 10
Failure Reasons
⚫ Ad hoc software development lead to such
problems
— No planning of developing work(e.g. no milestones
are defined)
— Deliverables to user are not identified
— Poor Understanding of user requirements
— No control or review
— Technical incompetence of developers
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 11
Software Projects
Software is different from other projects
⚫ Cost of production is concentrated in
development
⚫ Maintenance consists of making corrections,
enhancing or adding functions
⚫ Progress in development is difficult to measure
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 12
Apply Engineering Approach
Planning and control is even more important in software development
Engineering approach:
⚫ Attempt to estimate cost/effort
⚫ Plan and schedule work
⚫ Involve user in defining requirements
⚫ Identify stages in development
⚫ Define clear milestones so that progress can be measured
⚫ Schedule review quality
⚫ Define Deliverables
⚫ Plan extensive Testing
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 13
Job of software engineer is difficult
⚫ Dealing with users
⚫ Dealing with technical people
⚫ Dealing with Management
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 14
Roles of a Software Engineer
Software engineering involves "programming- in- the
large
– understand requirements and write specifications
–– member of a team
– communication skills
– management skills
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 15
What are the attributes of 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 accepted by the users for whom it was designed.
This means it must be understandable, usable and compatible
with other systems.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 16
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;
• It is often necessary to integrate new software with older legacy
system written in different programming labuages.
⚫ Delivery
• Developing techniques that lead to faster delivery of software;
⚫ Trust
• Developing techniques that demonstrate that software can be
trusted by its users.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 17
Professional and ethical responsibility
⚫ Software engineering involves wider
responsibilities than simply the application of
technical skills.
⚫ Software engineers must behave in an honest
and ethically responsible way if they are to be
respected as professionals.
⚫ Ethical behaviour is more than simply upholding
the law.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 18
Issues of professional responsibility
⚫ Confidentiality
• Engineers should 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 of proportion with their competence.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 19
Issues of professional responsibility
⚫ 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).
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 20
Key points
⚫ Software engineering is an engineering discipline that is
concerned with all aspects of software production.
⚫ Software products consist of developed programs and
associated documentation. Essential product attributes
are maintainability, dependability, efficiency and usability.
⚫ The software process consists of activities that are
involved in developing software products. Basic activities
are software specification, development, validation and
evolution.
⚫ Software engineers have responsibilities to the
engineering profession and society. They should not
simply be concerned with technical issues.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 21