Chapter 1 - Introduction To Software Engineering
Chapter 1 - Introduction To Software Engineering
Engineering
Chapter 1
Why Software Engineering?
Larger problems,
Lack of adequate training in software engineering,
Increasing skill shortage,
Low productivity improvements.
Some Software failures
User Manuals
System Overview
Beginner’s Guide Tutorial
Reference Guide
Operational Manuals
Installation Guide
System Administration Guide
Frequently asked questions about software engineering
Question Answer
What is software? Computer programs and associated documentation.
Software products may be developed for a particular
customer or may be developed for a general market.
What are the attributes of good Good software should deliver the required functionality
software? and performance to the user and should be
maintainable, dependable and usable.
What are the key challenges Coping with increasing diversity, demands for reduced
facing software engineering? delivery times and developing trustworthy software.
What are the costs of Roughly 60% of software costs are development costs,
software engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software While all software projects have to be professionally
engineering techniques and managed and developed, different techniques are
methods? appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems
require a complete and analyzable specification to be
developed. You can’t, therefore, say that one method is
better than another.
What differences has the web The web has led to the availability of software services
made to software and the possibility of developing highly distributed
engineering? service-based systems. Web-based systems development
has led to important advances in programming languages
and software reuse.
Software Product
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
–Bespoke (custom) - developed for a single customer according to their
specification
Software product is a product designated for delivery to the user
Essential attributes of good software
Product Description
characteristic
Maintainability Software should be written in such a way so that it can evolve to
meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a
changing business environment.
Efficiency Software should not make wasteful use of system resources such
as memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Customer Perspective
A general statement of objectives is sufficient to get started
with the development of software. Missing/vague
requirements can easily be incorporated/detailed out as
they get concretized.
Software with more features is better Software
Software can work right the first time
Software Myths cont…
Developer Perspectives
Once the software is demonstrated, the job is done
Software quality can not be assessed before testing
The only deliverable for a software development project is
the tested code
Aim is to develop working programs
Software Engineering Terminologies
Deliverables and Milestones
▪ Different deliverables are generated during software development.
The examples are source code, user manuals, operating procedure
manuals etc.
▪ The milestones are the events that are used to ascertain the status of
the project. Finalization of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.
Product and Process
▪ Product: What is delivered to the customer, is called a product. It may
include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
▪ Process: Process is the way in which we produce software. It is the
collection of activities that leads to (a part of) a product. An efficient
process is required to produce good quality products.
▪ If the process is weak, the end product will undoubtedly suffer, but an
obsessive over reliance on process is also dangerous.
Software Engineering Terminologies cont…