Week 2 Software Engineering
Week 2 Software Engineering
SOFTWARE
ENGINEERING
CHAPTER 2: SOFTWARE
PROCESSES
[email protected]
INTENDED LEARNING
OBJECTIVES
01 02 03 04
understand the have been introduced know about the understand the
concepts of software to three general fundamental process notion of software
processes and software process activities of software process improvement
software process models and when requirements and the factors that
models; they might be used; engineering, software affect software
development, testing, process quality.
and evolution;
CHAPTER 2:
SOFTWARE
PROSESSES
A software process is a set of related activities that leads to
the production of a soft ware system. On the other hand,
there are many different types of software systems, and there
is no universal software engineering method that is applicable
to all of them. Consequently, there is no universally applicable
software process. The process used in different companies
depends on the type of software being devel oped, the
requirements of the software customer, and the skills of the
people writing the software.
HOWEVER, ALTHOUGH THERE
ARE MANY DIFFERENT
SOFTWARE PROCESSES;
1. Software specification The functionality of the software and
constraints on its operation must be defined.
2. Software development The software to meet the
specification must be produced.
3. Software validation The software must be validated to
ensure that it does what the customer wants.
4. Software evolution The software must evolve to meet
changing customer needs
PROCESS
SOFTWARE CONFIGURATION AND
PROJECT PLANNING
Processes also include other activities, such as software configuration management and project
planning that support production activities. When we describe and discuss processes, we usually talk
about the activities in these processes, such as specifying a data model and designing a user interface,
and the ordering of these activities.
HISTORY OF SOFTWARE
ENGINEERING
01 02 03 04
Products or deliverables Roles reflect the Pre- and postconditions For example, before architec
tural design begins, a
are the outcomes of a responsibilities of the are conditions that must
precondition may be that the
process activity. For people involved in the hold before and after a consumer has approved all
example, the outcome of process. Examples of roles process activity has been requirements; after this activity
is finished, a postcondition
the activity of are project manager, enacted or a product
might be that the UML models
architectural design may configuration manager, produced. describing the architecture have
be a model of the and programmer. been reviewed.
software architecture.
SOFTWARE
PROCESSES
Software processes are complex and, like all intellectual and creative
processes, rely on people making decisions and judgments. As there is
no universal process that is right for all kinds of software, most
software companies have developed their own development
processes.
SOFTWARE PROCESS
MODEL
a software process model (sometimes called a Software
Development Life Cycle or SDLC model) is a simplified
representation of a soft ware process. Each process model
represents a process from a particular perspective and thus
only provides partial information about that process.
01.
This takes the fundamental process
activities of specifica tion, development,
validation, and evolution and represents
them as separate process phases such as
requirements specification, software design,
implemen tation, and testing.
2. Incremental model.
3. Integration and configuration.
03.
Thiis approach relies on the availability of
reus able components or systems. The
system development process focuses on
configuring these components for use in a
new setting and integrating them into a
system.
1. WATER FALL
The first published model of the software development
process was derived from engineering process models used in
large military systems engineering (Royce 1970).
THE STAGES OF THE
WATERFALL MODEL
DIRECTLY REFLECT THE
FUNDAMENTAL SOFTWARE
DEVEL OPMENT ACTIVITIES:
1. Requirements analysis and definition The system’s services, constraints,
and goals are established by consultation with system users. They are then
defined in detail and serve as a system specification.
2. System and software design The systems design process allocates the
require ments to either hardware or software systems. It establishes an
overall system architecture. Software design involves identifying and
describing the funda mental software system abstractions and their
relationships.
3. Implementation and unit testing During this stage, the software design is
real ized as a set of programs or program units. Unit testing involves
verifying that each unit meets its specification
THE STAGES OF THE
WATERFALL MODEL
DIRECTLY REFLECT THE
FUNDAMENTAL SOFTWARE
DEVEL OPMENT ACTIVITIES:
4. Integration and system testing The individual program units or
programs are integrated and tested as a complete system to ensure that
the software requirements have been met. After testing, the software
system is delivered to the customer.
5. Operation and maintenance Normally, this is the longest life-cycle phase.
The system is installed and put into practical use. Maintenance involves
correcting errors that were not discovered in earlier stages of the life cycle,
improving the implementation of system units, and enhancing the system’s
services as new requirements are discovered
WATERFAL MODEL
01 02 03 04
Requirements analysis
and definition The System and software Software should not Implementation and
system’s services, design The systems make wasteful use of unit testing During this
constraints, and goals design process allocates system resources such as stage, the software
are established by the require ments to memory and processor design is real ized as a
consultation with either hardware or cycles. Efficiency set of programs or
system users. They are software systems. It therefore includes program units. Unit
then defined in detail establishes an overall responsiveness, testing involves verifying
and serve as a system system architecture. processing time, that each unit meets its
specification resource utilization, etc. specification.
01.
Embedded
systems
THE WATERFALL
MODEL 02.
Critical systems
03.
maintenance Normally, this is the longest life-cycle phase. The
system is installed and put into practical use. Maintenance involves
Large software
correcting errors that were not discovered in earlier stages of the systems
life cycle, improving the implementation of system units, and
enhancing the system’s services as new requirements are
discovered
INCREMENTAL AND 01.
Engineering discipline Engineers make
things work. They apply theories, methods,
and tools where these are appropriate.
However, they use them selectively and
DEVELOPMENT
always try to discover solutions to problems
even when there are no applicable theories
and methods.
02
All aspects of software production Software
with all aspects of software production from the early stages of engineering is not just concerned with the
system specification through to maintaining the system after it has technical processes of software
development. It also includes activities such
gone into use. In this definition, there are two key phrases: as software project management and the
development of tools, methods, and
theories to support software development.
ACTIVITY GROUP PRESENTATION
Imagine that a government wants a software program that helps to keep track of the
utiliza tion of the country’s vast mineral resources. Although the requirements put
forward by the government were not very clear, a software company was tasked with
the development of a prototype. The government found the prototype impressive, and
asked it be extended to be the actual system that would be used. Discuss the pros and
cons of taking this approach.
You have developed a prototype of a software system and your manager is very
impressed by it. She proposes that it should be put into use as a production system, with
new features added as required. This avoids the expense of system development and
makes the system immediately useful. Write a short report for your manager explaining
why prototype systems should not normally be used as production systems.
PRESENTED BY TRISTAN JORGE CUARTERO
THANK
YOU VERY
MUCH!
[email protected]