0% found this document useful (0 votes)
7 views40 pages

Lecture 2

The document outlines various software processes and the Software Development Life Cycle (SDLC), detailing the structured activities involved in developing software systems. It discusses characteristics of software processes, phases of SDLC, and different models such as Waterfall, Prototype, Incremental, Spiral, and V-Model, each with their strengths and weaknesses. The document emphasizes the importance of planning, user involvement, and iterative development to effectively meet software requirements.

Uploaded by

Eliroi Fiseha
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)
7 views40 pages

Lecture 2

The document outlines various software processes and the Software Development Life Cycle (SDLC), detailing the structured activities involved in developing software systems. It discusses characteristics of software processes, phases of SDLC, and different models such as Waterfall, Prototype, Incremental, Spiral, and V-Model, each with their strengths and weaknesses. The document emphasizes the importance of planning, user involvement, and iterative development to effectively meet software requirements.

Uploaded by

Eliroi Fiseha
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/ 40

SOFTWARE

PROCESSES

DEPARTMENT OF COMPUTER
SCIENCE
BULE HORA UNIVERSITY
SOFTWARE PROCESS
 A process is an organized set of activities, which
transforms inputs to outputs.
 We can use synonyms of process such as: procedure,
method, course of action, etc.
 Software engineering, as a discipline, has many
processes.
 Software process: organizing a structured set of
activities to develop software systems.
 These processes help in performing different software
engineering activities in an organized manner.
CHARACTERISTICS PROCESS
 Produces intermediate and final products
 Each process activity has entry and exit criteria
 Activities are organized in sequence, so timing is
clear
 Each process guiding principles, including goals of
each activity
 Uses resources, subject to set of constraints (such as
schedule, no. of people working )
 May be composed of sub-processes with hierarchy or
links
CON...
 There are many different software processes but all
must include four 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 DEVELOPMENT LIFE CYCLE (SDLC)
 The software development lifecycle begins with the
identification of a requirement for software and ends
with the formal verification of the developed
software against that requirement. So SDLC goes
through a series of phases.
Helps to understand the entire process

 Enables planning of resources in advance


Enforces a structured approach to development

Helps to track progress of the system



CON...

Figure. Simple life cycle for software development


(UML use case diagram).
CON...
 The software development life-cycle can be divided into
5-9 phases:
 Project initiation and planning
 Project identification and selection
 Feasibility study
 Project analysis
 System design
 Coding
 Testing
 Implementation
 Maintenance
CON...
 problem definition It is the decision about problems in
the existing system and the impetus for system change.
 The need for changes in the existing system are
identified and shortcomings of the existing system are
detected. which leads to Feasibility Study.
 Feasibility Study is an analysis of the viability of an
idea. answer the essential question of “should we
proceed with the proposed project idea?”
 Used to identify how, where, and to whom you intend to
sell a service or product. Provides detail concept about
your business.
CON...
 How and where the business is operate
 How can I succeed
 Even if you have a great business idea, you have to
find a cost-effective way to produce and sell your
product/service
 Organizational Feasibility. Organizational feasibility
is how well a proposed information system supports
the objectives of the organization and is a strategic
plan for an information system
CON...
 Economic feasibility (Cost/Benefits Analysis): how
much start-up capital is needed, sources of capital,
returns on investment( profit ) , etc.
 if a project can’t cover its development costs, it
won’t be approved,
 Technical Feasibility:
 Operational Feasibility.
 Schedule Feasibility
 Political Feasibility
CON...
 Project Analysis. a detailed study of the various
operations performed by a system and their relationships
within and outside the system.
– Examine and document the relevant aspects of the
existing system, its shortcomings and problems.
– Analyze the findings and record the results.
– Define and document in an outline the proposed
system.
– Test the proposed design against the known facts.
– Produce a detailed report to support the proposals.
– Estimate the resources required to design and
implement the system.
CON...
 The objective is to provide solutions to stated problems,
usually in the form of specifications to meet the users
requirements and to make recommendations for a new
computer-based system.
• Analysis is iterative and progressive process.
 System Design. System design is the most creative and
challenging phase
 Determining data required to produce the output
 Determining processing methods and using software
 Determining methods of data capture
 Defining detailed critical procedures
 Calculating timings of processing
CON...
 Coding. The goal of the coding phase is to translate
the design of the system into code in a given
programming language.
 affects both testing and maintenance

Testing. Testing is the major quality-control measure


used during software development.
 Its basic function is to detect errors in the software
 Implementation. It is mainly concerned with user
training, site selection, and preparation and file
conversion.
CON...
 Maintenance. Maintenance is an important part of
the SDLC. But it has some problems:
 Availability of a few maintenance tools.
 User may not accept the cost of maintenance.
 Standards and guidelines of project may be poorly
defined.
 A good test plan is lacking.
CLASSIFICATIONS OF SDLC MODEL
 Software Development Life Cycle, SDLC for short, is a
well-defined, structured sequence of stages in software
engineering to develop the intended software product
 There are a number of different models for software
development lifecycles. Which describe the
interrelationships between software development phases
 Waterfall model
 prototype model
 incremental model
 V-shaped model
 Spiral model
CON...
 Waterfall model: organize the activities in linear
fashion. Each phase is end up with expected output
in the forms of document.
 Waterfall model is the simplest model
 All the phases of SDLC will function one after another
in linear manner. That is, when the first phase is
finished then only the second phase will start and so
on.
CLASSICAL WATERFALL MODEL
CON...
 Classical waterfall model is idealistic:

 Assumes that no defect is introduced during


any development activity.

 In practice developers commit errors:

 Defects do get introduced in almost every


phase of the life cycle.
ITERATIVE WATERFALL MODEL
CON...
 Defects usually get detected much later in the life cycle:
• For example, a design defect might go unnoticed till
the coding or testing phase.

 Once a defect is detected:

 The phase in which it occurred and parts of the work


already completed subsequent phases needs to be
reworked.

 Therefore need feedback paths in the classical waterfall


model.
WATERFALL MODEL STRENGTHS

 Easy to understand, easy to use


 Provides a reference to inexperienced staff
 Provides requirements stability

 Facilitates strong management control (plan, staff, track)

 Waterfall Deficiencies

 All requirements must be known upfront

 Does not accommodate any change.

 There is no risk analysis.


CON...
 Can give a false impression of progress Integration is
one big bang at the end

 Little opportunity for customer to pre-view the


system.

 When to use the Waterfall Model


 Requirements are well known and stable

 Technology is understood

 Experienced Development team


CON...
 When to use the Waterfall Model
 Requirements are very well known
 When it is possible to produce a stable design
 E.g. a new version of an existing product
 E.g. porting an existing product to a new platform.
PROTOTYPE PROCESS MODEL
 It is model implementation of the project with limited
functionalities.
 The prototype model suggests that before
development of the actual software, a working
prototype of the system should be built first
 What is a Prototype? It is a quickly developed, easily
modifiable and extendible working model of the
required application.
REASONS FOR PROTOTYING

 learning by doing: useful where requirements are


only partially known

 improved communication

 improved user involvement

 reduces the need for documentation

 reduces maintenance costs i.e. changes after the


application goes live
CON...
PROTOTYPING: ADVANTAGES
 The resulting software: more usable
 User needs are better accommodated
 The design is of higher quality
 The resulting software is easier to maintain
 Overall, the development incurs less effort

 Prototyping Weaknesses
 Sometimes expensive
 Overall maintainability may be overlooked
 Process may continue forever (scope creep)
CON...
 What is the main goal of this model?
 To avoid early freezing of the requirements
 Instead of freezing the requirement, prototype is built to
understand the requirement
 To enable the client to better understand the requirement
 When to use the Prototyping Model?
 When requirements are not known at the beginning of
the project
 When requirements are unstable and constantly
changing
 When quick demonstrations are required
 When user requires proof of concept
INCREMENTAL PROCESS MODEL
 Incremental development is dividing the project in
various independent parts and developing these sub-
parts at the same rate/ different rate and integrating
them when ready.
 Steps
 Develop a system in smaller portions at a time
 Then slowly add increased functionality
 Each subsequent release of the system adds function
to the previous release, until all designed
functionality has been implemented.
CON... Define outline
requirements
Assign requirements
to increments
Design system
architectur
e

Develop system Validate Integrate Validate


increment increment increment system
Final
system
System incomplete

 Incremental Model Strengths


 Develop high-risk or major functions first
 Each release delivers an operational product
 Customer can respond to each build
 Uses “divide and conquer” breakdown of tasks
 Lowers initial delivery cost
 Initial product delivery is faster

CON...
 Incremental Model Weaknesses

 Requires good planning and design


 Requires early definition of a complete and fully
functional system to allow for the definition of increments
 Well-defined module interfaces are required
 Total cost of the complete system is not lower
 When to use the Incremental Model
 Most of the requirements are known up-front but are
expected to evolve over time
A need to get basic functionality to the market early
 On projects which have lengthy development
schedules
SPIRAL MODEL

 Adds risk analysis, and 4gl RAD prototyping to the


waterfall model
 Each cycle
involves the same sequence of steps as
the waterfall process model
SPIRAL MODEL STRENGTHS
 Provides early indication of insurmountable risks,
without much cost
 Users see the system early because of rapid
prototyping tools
 Critical high-risk functions are developed first
 The design does not have to be perfect
 Users can be closely tied to all lifecycle steps
 Early and frequent feedback from users
 Cumulative costs assessed frequently
SPIRAL MODEL WEAKNESSES
 Time spent for evaluating risks too large for small or low-
risk projects
 Time spent planning, resetting objectives, doing risk
analysis and prototyping may be excessive
 The model is complex
 Risk assessment expertise is required
 Spiral may continue indefinitely
 Developers must be reassigned during non-development
phase activities
 May be hard to define objective, verifiable milestones that
indicate readiness to proceed through the next iteration
WHEN TO USE SPIRAL MODEL
 When creation of a prototype is appropriate
 When costs and risk evaluation is important
 For medium to high-risk projects
 Long-term project commitment unwise because of
potential changes to economic priorities
 Users are unsure of their needs
 Requirements are complex
 New product line
 Significant changes are expected (research and
exploration)
V MODEL
 It is a variant of the Waterfall

 emphasizes verification and validation

 V&V activities are spread over the entire life cycle.

 Verification and validation (V & V) is intended to


show that a system conforms to its specification and
meets the requirements of the system customer.

 In every phase of development:

 Testing activities are planned in parallel with


development.
CON...
V-Shaped Steps
 Project and Requirements Planning – allocate resources
 Product Requirements and Specification Analysis – complete
specification of the software system
 Architecture or High-Level Design – defines how software functions
fulfill the design
 Detailed Design – develop algorithms for each architectural
component
 Coding – transform algorithms into software
 Unit testing – check that each module acts as expected
 Integration and Testing – check that modules interconnect correctly
 System and acceptance testing – check the entire software system
in its environment
 Production, operation and maintenance – provide for enhancement
V Model Strengths
 Emphasize planning for verification and validation of
the product in early stages of product development
 Each deliverable must be testable
 Easy to use

V Model Weaknesses
 Does not support overlapping of phases

 Does not handle iterations or phases

 Does not easily handle later changes in requirements

 Does not support risk analysis activities


WHEN TO USE V MODEL

 All requirements are known up-front


 Solution and technology are known
 Natural choice for systems requiring high reliability:

 Embedded control applications

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