0% found this document useful (0 votes)
50 views42 pages

Session 2

The document discusses software engineering processes and models. It describes the waterfall model as a linear set of phases from requirements to maintenance. The incremental and reuse-oriented models iterate development or reuse existing components. The key activities are requirements analysis, design/implementation, validation through testing, and evolution. Processes organize these differently, and all aim to produce quality software that meets customer needs.

Uploaded by

Isaac Kariuki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views42 pages

Session 2

The document discusses software engineering processes and models. It describes the waterfall model as a linear set of phases from requirements to maintenance. The incremental and reuse-oriented models iterate development or reuse existing components. The key activities are requirements analysis, design/implementation, validation through testing, and evolution. Processes organize these differently, and all aim to produce quality software that meets customer needs.

Uploaded by

Isaac Kariuki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

SOFTWARE ENGINEERING

SOFTWARE PROCESSES
SESSION 2
Objectives
 understand the concepts of software processes and software process models;
 Understand the 3 software process models and their usage
 Understand the fundamental process activities of software requirements
engineering, software development, testing, and evolution;
 understand why processes should be organized to cope with changes in the
software requirements and design
Software Process

 Defn
 is a set of related activities that leads to the production of a software
product.
 Can be development from scratch/extend/modify existing systems
Software Process Activities
 Software specification
 The functionality of the software and constraints on its operation must be defined.

 Software design and implementation


 The software to meet the specification must be produced.

 Software validation
 The software must be validated to ensure that it does what the customer wants.

 Software evolution
 The software must evolve to meet changing customer needs.
Software process models

 a software process model is a simplified representation of a software


process.
 Each process model represents a process from a particular perspective,
and thus provides only partial information about that process
 Waterfall Method
 Incremental development
 Reuse-oriented software engineering
Waterfall Method

 Takes a linear set of process activities of specification, development, validation,


and evolution and
 Represents them as separate process phases such as requirements specification,
software design, implementation, testing, and so on.
 It’s a plan-driven software model.
Waterfall Model
 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

 System and software design


 The systems design process allocates the requirements to either hardware or
software systems by establishing an overall system architecture.
 Software design involves identifying and describing the fundamental software
system abstractions and their relationships.

 Implementation and unit testing


 During this stage, the software design is realized as a set of programs or program
units
 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.

 Operation and maintenance


 Maintenance involves correcting errors which 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
Cont

 In principle, the result of each phase is one or more documents that are
approved (‘signed off’).
 In practice, these stages overlap and feed information to each other
 During design, problems with requirements are identified
 During coding, design problems are found etc
 This necessitates documentation changes
 To reduce costs in preparing and approving updated
documents “freezing” is done
 Problems are left for later resolution,
 ignored, or
 programmed around.
Incremental development

 Based on the idea of developing an initial implementation, exposing


this to user comment and evolving it through several versions until an
adequate system has been developed
 Suitable for most business, e-commerce, and personal
systems.
 developing the software incrementally, it is cheaper and
easier to make changes in the software as it is being
developed
 Benefits
 cost of accommodating changing customer requirements is reduced
 amount of analysis and documentation that has to be redone is
much less
 It is easier to get customer feedback on the development work that
has been done.
 More rapid delivery and deployment of useful software to the
customer is possible, even if all of the functionality has not been
included
 Challenges
 The process is not visible. Managers need regular
deliverables to measure progress.
 System structure tends to degrade as new increments are
added
Reuse-oriented software engineering
 Utilizes software reuse
 Look for code/module similar to what you need, pick and modify it
i.e Payment plugins, sms plugins etc
 Depends on large base of reusable software components
 Component analysis
 Given the requirements specification, a search is made for components
to implement that specification.
 Requirements modification
 The requirements are analyzed using information about the components
that have been discovered. They are then modified to reflect the
available components.
 System design with reuse
 The structure of the system is designed or an existing structure is
reused. The designers take into account the components that are reused
and organize the framework to cater for this
 Development and integration
 Software that cannot be externally procured is developed, and the
components are integrated to create the new system
Three types of software component
 Web services that are developed according to service standards
and which are available for remote invocation.

 Collections of objects that are developed as a package to be


integrated with a component framework such as .NET or J2EE.
 Stand-alone software systems that are configured for use in a
particular environment.
 Advantages
 reducing the amount of software to be developed
 Reducing the cost and risks.
 leads to faster delivery of the software

 Disadvantages
 requirements compromises are inevitable and this may lead to a system
that does not meet the real needs of users
 some control over the system evolution is lost as new versions of the
reusable components are not under the control of the organization using
them
ONLINE HOTEL RESERVATION SYSTEM

 To provide a platform to manage on-desk and online bookings


 To display organized information of hotel, prices and pictures.
 To add multiple hotels/rooms to the system.
 To change prices of hotel rooms when needed.
 To view of availability of rooms in real time.
 To store customer information which can be accessed anytime.
 To provide a user-friendly interface for customers for the easy
booking process.
 To provide a secure payment gateway for online transaction
Process Activities
PROCESS ACTIVITIES
 Four basic process activities of specification, development,
validation, and evolution are organized differently in different
development processes.
 In the waterfall model, they are organized in sequence
 Incremental development they are interleaved
 Software specification/Requirements Engineering
 It 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
 Requirements are usually presented at two levels of detail.
 End-users and customers need a high-level statement of the
requirements;
 system developers need a more detailed system specification.
 Activities in Requirements Engineering Process
 Feasibility study
 An estimate is made of whether the identified user needs may be satisfied using
current software and hardware technologies
 Requirements elicitation and analysis
 The process of deriving the system requirements through observation of existing
systems, discussions with potential users and procurers, task analysis, and so on.
 Requirements specification
 Is the activity of translating the information gathered during the analysis activity
into a document that defines a set of requirements
 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
 Requirements validation
 This activity checks the requirements for realism, consistency, and completeness.
Errors in the requirements document are inevitably discovered.
 Software design and implementation.
 Software implementation
 is the process of converting a system specification into an executable
system.
 It always involves processes of software design and programming
 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
 Model of the Design Process
 Four Activities
 Architectural design,
 where you identify the overall structure of the system, the principal components
(sometimes called sub-systems or modules), their relationships, and how they are
distributed
 Interface design,
 where you define the interfaces between system components
 Component design,
 where you take each system component and design how it will operate
 Database design,
 where you design the system data structures and how these are to be represented
in a database
 Software validation
 verification and validation (V&V) is intended to show that a system
both conforms to its specification and that it meets the expectations of
the system customer.
 stages in the testing process
 Development testing
 The components making up the system are tested by the people
developing the system. Each component is tested independently, without
other system components
 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
 Acceptance testing /Alpha
 This is the final stage in the testing process before the system is
accepted for operational use. The system is tested with data supplied by
the system customer rather than with simulated test data
 Alpha versus Beta Testing
 Alpha
 Custom systems are developed for a single client.
 The alpha testing process continues until the system developer and
the client agree that the delivered system is an acceptable
implementation of the requirements
 Beta
 Involves delivering a system to a number of potential customers
who agree to use that system.
 They report problems to the system developers.
 This exposes the product to real use and detects errors that may not
have been anticipated by the system builders.
 After this feedback, the system is modified and released either for
further beta testing or for general sale.
 Software evolution
 This is where software is continually changed over its lifetime
in response to changing requirements and customer needs.
 Coping with Change
 Software changes due to
 business procuring the system responds to external pressures
 Management priorities change.
 As new technologies become available,
 new design and implementation possibilities emerge.
Dealing with Change
 Change avoidance,
 where the software process includes activities that can anticipate possible
changes before significant rework is required i.e prototyping
 Change tolerance,
 where the process is designed so that changes can be accommodated at
relatively low cost(incremental delivery)
 Cont’
 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 some
design decisions.
 This supports change avoidance as it allows users to experiment with
the system before delivery and so refine their requirements
 Incremental delivery,
 where system increments are delivered to the customer for comment and
experimentation.
 This supports both change avoidance and change tolerance
 Prototype development
 A prototype
 It is an initial version of a software system that is used to demonstrate
concepts, try out design options, and find out more about the problem
and its possible solutions
 Helps put costs under control and system stakeholders experiment with
the system early
 In the requirements engineering process, a prototype can help
with the elicitation and validation of system requirements.
 In the system design process, a prototype can be used to explore
particular software solutions and to support user interface design.
 Process of prototype development
 Incremental delivery
 is an approach to software development where some of the developed
increments are delivered to the customer and deployed for use in an
operational environment
 Customers identify services needed and the priority order
 Number of delivery increments defined with each having subset of system
functionality.
 As new increments completed, they are integrated to existing increments
 Advantages
 Customers can use the early increments as prototypes and gain
experience that informs their requirements for later system
increments
 Customers do not have to wait until the entire system is delivered
before they can gain value from it
 The process maintains the benefits of incremental development
in that it should be relatively easy to incorporate changes into the
system.
 As the highest-priority services are delivered first and increments
then integrated, the most important system services receive the
most testing.
 Challenges
 Iterative development can also be difficult when a replacement
system is being developed.
 The essence of iterative processes is that the specification is
developed in conjunction with the software however
procurement procedures differ.
 Most systems require a set of basic facilities that are used by
different parts of the system which may be hard to identify at the
beginning.
 Boehm’s spiral model
 the software process is represented as a spiral, rather than a
sequence of activities with some backtracking from one activity
to another.
 Each loop in the spiral represents a phase of the software process.
 Thus, the innermost loop might be concerned with system
feasibility, the next loop with requirements definition, the next
loop with system design, and so on.
Boehm’s spiral model
To Be Continued

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy