0% found this document useful (0 votes)
49 views

Week 2 Software Process

The document discusses different software process models, including the waterfall model, incremental development model, and integration and configuration model. The waterfall model represents the software development process as sequential phases such as requirements, design, implementation, and testing. The incremental model develops the system through a series of versions that add new functionality. The integration and configuration model focuses on reusing existing components and configuring them for a new system. The document provides details on the typical activities and advantages of each model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Week 2 Software Process

The document discusses different software process models, including the waterfall model, incremental development model, and integration and configuration model. The waterfall model represents the software development process as sequential phases such as requirements, design, implementation, and testing. The incremental model develops the system through a series of versions that add new functionality. The integration and configuration model focuses on reusing existing components and configuring them for a new system. The document provides details on the typical activities and advantages of each model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

SI201415

SOFTWARE ENGINEERING
4 Credits
Week 2
Software Process

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Outline
• Software Process Models
• Process Activities
• Coping with Change
• Process Improvement
• Agile Software Development

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Introduction
• A software process is a set of related activities that leads to the
production of a software system
• there is no universally applicable software process. The process used
in different companies depends on the type of software being
developed, the requirements of the software customer, and the skills
of the people writing the software.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Introduction
although there are many different software processes, they all must include, in
some form, the four fundamental software engineering activities that
introduced.
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.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Introduction
• However, when describing processes, it is also important to describe who is involved,
what is produced, and conditions that influence the sequence of activities:
1. Products or deliverables are the outcomes of a process activity. For example, the
outcome of the activity of architectural design may be a model of the software
architecture.
2. Roles reflect the responsibilities of the people involved in the process. Examples of
roles are project manager, configuration manager, and programmer.
3. Pre- and postconditions are conditions that must hold before and after a process
activity has been enacted or a product produced. For example, before architectural
design begins, a precondition may be that the consumer has approved all requirements;
after this activity is finished, a postcondition might be that theUML models describing
the architecture have been reviewed.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
• A software process model (sometimes called a Software Development
Life Cycle or SDLC model) is a simplified representation of a software
process
• Each process model represents a process from a particular
perspective and thus only provides partial information about that
process.
• For The example, a process activity model shows the activities and
their sequence but may not show the roles of the people involved in
these activities.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
• These generic models are high-level, abstract descriptions of software
processes that can be used to explain different approaches to
software development.
• You can think of them as process frameworks that may be extended
and adapted to create more specific software engineering processes.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
1. The waterfall model This takes
the fundamental process
activities of specification,
development, validation, and
evolution and represents them as
separate process phases such as
requirements specification,
software design, implementation,
and testing.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
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 requirements to either hardware or software systems. It
establishes an overall system architecture. Software design involves
identifying and describing the fundamental software system
abstractions and their relationships.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
3. Implementation and unit testing During this stage, the software design is
realized as a set of programs or program units. Unit testing involves verifying that
each unit meets its specification.
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.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Software Process Models
2. Incremental development
This approach interleaves the
activities of specification,
development, and validation.
The system is developed as a
series of versions
(increments), with each
version adding functionality
to the previous version.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
• Incremental software development, which is a fundamental part of
agile development methods, is better than a waterfall approach for
systems whose requirements are likely to change during the
development process.
• This is the case for most business systems and software products.
Incremental development reflects the way that we solve problems.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
• Incremental development has three major advantages over the waterfall model:
1. The cost of implementing requirements changes is reduced. The amount of
analysis and documentation that has to be redone is significantly less than is
required with the waterfall model.
2. It is easier to get customer feedback on the development work that has been
done. Customers can comment on demonstrations of the software and see how
much has been implemented. Customers find it difficult to judge progress from
software design documents.
3. Early delivery and deployment of useful software to the customer is possible,
even if all of the functionality has not been included. Customers are able to use
and gain value from the software earlier than is possible with a waterfall process.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Software Process Models
3. Integration and configuration This
approach relies on the availability of
reusable components or systems.
The system development process
focuses on configuring these
components for use in a new setting
and integrating them into a system.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
1. Requirements specification The initial requirements for the system are
proposed. These do not have to be elaborated in detail but should include
brief descriptions of essential requirements and desirable system features.
2. Software discovery and evaluation Given an outline of the software
requirements, a search is made for components and systems that provide
the functionalityrequired. Candidate components and systems are
evaluated to see if they meet the essential requirements and if they are
generally suitable for use in the system.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Software Process Models
3. Requirements refinement During this stage, the requirements are refined using
information about the reusable components and applications that have been
discovered. The requirements are modified to reflect the available components,
and the system specification is re-defined. Where modifications are impossible, the
component analysis activity may be reentered to search for alternative solutions.
4. Application system configuration If an off-the-shelf application system that
meets the requirements is available, it may then be configured for use to create the
new system.
5. Component adaptation and integration If there is no off-the-shelf system,
individualreusable components may be modified and new components developed.
These are then integrated to create the system.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Group Discussion
• We will discuss about SDLC
Spiral
V-Model
Prototype Model
Rapid Application Development
• Describe about every model, Advantages, Disadvantages.
• 10 Minutes for Discussion
• 5 Minutes for Presentation

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
• Real software processes are interleaved sequences of technical,
collaborative, and managerial activities with the overall goal of
specifying, designing, implementing, and testing a software system
• The four basic process activities of specification, development,
validation, and evolution are organized differently in different
development processes

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
• Software specification or
requirements engineering
is the process of
understanding and
defining what services are
required from the system
and identifying the
constraints on the
system’s operation and
development.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
1. Requirements elicitation and analysis This is the process of deriving the system
requirements through observation of existing systems, discussions with potential users
and procurers, task analysis, and so on. This may involve the development of one or more
system models and prototypes. These help you understand the system to be specified.
2. Requirements specification Requirements specification is the activity of translating the
information gathered during requirements analysis into a document that defines a set of
requirements. Two types of requirements may be included in this document. User
requirements are abstract statements of the system requirements for the customer and
end-user of the system; system requirements are a more detailed description of the
functionality to be provided.
3. Requirements validation This activity checks the requirements for realism, consistency,
and completeness. During this process, errors in the requirements document are
inevitably discovered. It must then be modified to correctthese problems.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Process Activities
• Software design and implementation
• A software design is a description of the
structure of the software to be
implemented, the data models and
structures used by the system, the
interfaces between system components
and, sometimes, the algorithms used.
• Designers do not arrive at a finished
design immediately but develop the
design in stages.
• They add detail asthey develop their
design, with constant backtracking to
modify earlier designs.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Process Activities
1. Architectural design, where you identify the overall structure of the system, the principal components
(sometimes called subsystems or modules), their relationships, and how they are distributed.
2. Database design, where you design the system data structures and how these are to be represented
in a database. Again, the work here depends on whether an existing database is to be reused or a new
database is to be created.
3. Interface design, where you define the interfaces between system components. This interface
specification must be unambiguous. With a precise interface, a component may be used by other
components without them having to know how it is implemented. Once interface specifications are
agreed, the components can be separately designed and developed.
4. Component selection and design, where you search for reusable components and, if no suitable
components are available, design new software components. The design at this stage may be a simple
component description with the implementation details left to the programmer. Alternatively, it may
be a list of changes to be made to a reusable component or a detailed design model expressed in the
UML. The design model may then be used to automatically generate an implementation.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
• Software validation or, more
generally, verification and
validation (V & V) is intended to
show that a system both conforms
to its specification and meets the
expectations of the system
customer. Program testing, where
the system is executed using
simulated test data, is the principal
validation technique.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
1. Component testing The components making up the system are tested by the people
developing the system. Each component is tested independently, without other system
components. Components may be simple entities such as functions or object classes or
may be coherent groupings of these entities. Test automation tools, such as JUnit for
Java, that can rerun tests when new versions of the component are created, are
commonly used (Koskela 2013).
2. System testing System components are integrated to create a complete system. This
process is concerned with finding errors that result from unanticipated interactions
between components and component interface problems. It is also concerned with
showing that the system meets its functional and non-functional requirements, and
testing the emergent system properties. For large systems, this may be a multistage
process where components are integrated to form subsystems that are individually
tested before these subsystems are integrated to form the final system.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Process Activities
3. Customer testing This is the final stage in the testing process before
the system is accepted for operational use. The system is tested by the
system customer (or potential customer) rather than with simulated
test data. For custom-built software, customer testing may reveal errors
and omissions in the system requirements definition, because the real
data exercise the system in different ways from the test data. Customer
testing may also reveal requirements problems where the system’s
facilities do not really meet the users’ needs or the system performance
is unacceptable. For products, customer testing shows how well the
software product meets the customer’s needs.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Activities
• Software Evolution
• The flexibility of software is one
of the main reasons why more
and more software is being
incorporated into large,
complex systems. Once a
decision has been made
tomanufacture hardware, it is
very expensive to make changes
to the hardware design.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Coping with Change
• Change is inevitable in all large software projects. The system
requirements change as businesses respond to external pressures,
competition, and changed management priorities.
• Change adds to the costs of software development because it usually
means that work that has been completed has to be redone. This is
called rework

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Coping with Change
• Two related approaches may be used to reduce the costs of rework:
• Change anticipation, where the software process includes activities
that can anticipate or predict possible changes before significant
rework is required.
• Change tolerance, where the process and software are designed so
that changes can be easily made to the system.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Coping with Change
• two ways of coping with change and changing system requirements:
• System prototyping, where a version of the system or part of the
system is developed quickly to check the customer’s requirements
and the feasibility of design decisions.
• Incremental delivery, where system increments are delivered to the
customer for comment and experimentation.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Coping with Change

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Coping with Change

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Improvement
• Nowadays, there is a constant demand from industry for cheaper,
better software, which has to be delivered to ever-tighter deadlines.
• Consequently, many software companies have turned to software
process improvement as a way of enhancing the quality of their
software, reducing costs, or accelerating their development
processes.
• Process improvement means understanding existing processes and
changing these processes to increase product quality and/or reduce
costs and development time.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Process Improvement
• Process measurement You
measure one or more attributes of
the software process or product.
• Process analysis The current
process is assessed, and process
weaknesses and bottlenecks are
identified.
• Process change Process changes
are proposed to address some of
the identified process weaknesses.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Assessment Software
• The notion of process maturity was introduced in the late 1980s
when the Software Engineering Institute (SEI) proposed their
model of process capability maturity (Humphrey 1988). The
maturity of a software company’s processes reflects the process
management, measurement, and use of good software
engineering practices in the company.
• Capability Maturity Model (CMM)

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Assessment Software
• Initial The goals associated with the process
area are satisfied, and for all processes the
scope of the work to be performed is
explicitly set out and communicated to the
team members.
• Managed At this level, the goals associated
with the process area are met, and
organizational policies are in place that
define when each process should be used.
There must be documented project plans
that define the project goals. Resource
management and process monitoring
procedures must be in place across the
institution.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Assessment Software
• Defined This level focuses on organizational
standardization and deployment of
processes. Each project has a managed
process that is adapted to the project
requirements from a defined set of
organizational processes. Process assets and
process measurements must be collected
and used for future process improvements.
• Quantitatively managed At this level, there
is an organizational responsibility to use
statistical and other quantitative methods to
control subprocesses. That is, collected
process and product measurements must be
used in process management.
M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software
Engineering
Assessment Software
• Optimizing At this highest level,
the organization must use the
process and product
measurements to drive process
improvement. Trends must be
analyzed and the processes
adapted to changing business
needs.

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering
Thank you!!

M. Gilvy Langgawan Putra, S.Kom.,M.MT - Software


Engineering

You might also like