Software Process
Software Process
Class 2
PROFESSIONAL SOFTWARE DEVELOPMENT
•Developed by teams rather than individuals.
•Maintained and changed throughout its life.
•A professionally developed software system is
often more than a single program.
•It may include
oSystem documentation
oUser documentation
oWebsite for users
Software products
Software engineers are concerned with
developing software products. (i.e. software
which can be sold to a customer)
• Generic products
• Customized products
• Generic
The organization that develops the software
controls the software specification.
• Custom
The specification is usually developed and
controlled by the organization that is buying
the software.
Product characteristics
• Maintainability
• Dependability and security
• Efficiency
• Acceptability
Software Engineering
Software Engineering is an engineering
discipline that is concerned with all the
aspects of software production from the early
stages of system specification through to
maintaining the system after it has gone into
use.
Two key phrases
• Engineering discipline
Engineers make things work. They apply theories, methods
and tools where these are appropriate. They use them
selectively and always try to discover solutions to problems
even when there are no applicable theories and methods.
• All aspects of software production
Not just concerned with the technical process. It also includes
activities such as software project management and the
development of tools, methods and theories to support
software production.
In general, software engineers adopt a
systematic and organized approach to their
work, as this is often the most effective way to
produce high quality software.
The systematic approach that is used in
software engineering is sometimes called as
software process.
General issues that affect many different
types of software:
• Heterogeneity
• Business and social change
• Security and trust
Software Engineering ethics
• Confidentiality
• Competence
• Intellectual property rights
• Computer misuse
Software process
• A software process is a sequence of activities that
leads to the production of a software product.
• There are four fundamental activities that are
common to all software process. These activities
are:
– Software specification
– Software development
– Software validation
– Software evolution
Different types of system needs different
development process.
• In some form, these activities are part of all
software process.
• In practice,, they are complex activities in
themselves and include sub activities such as
requirements validation, architectural design,
unit testing etc.
• There are also supporting process activities
such as documentation and software
configuration management.
Process description may include
– Products: which are the outcomes of a process
activity.
– Roles: which reflects the responsibilities of the
people involved I the process.
– Pre- and post- conditions: which are statements
that are true before and after a process activity
has been enacted or a product produced.
Frequently asked questions about software
• What is a software?
• What are the attributes of good software?
• What is software engineering?
• What are the fundamental software
engineering activities?
• What is the difference between software
engineering and computer science?
• What is the difference between software
engineering and system engineering?
• What are the key challenges facing software
engineering?
• What are the costs of software engineering?
• What are the best software engineering
techniques and methods?
• What differences has the web made to
software engineering?