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

Process Model - Software Engineering

The document discusses several common software development process models: 1. The waterfall model is a linear sequential model where each phase must be completed before the next begins. It is simple but inflexible. 2. The V-model extends the waterfall with testing phases for each development stage. It is highly disciplined but rigid. 3. The incremental model divides work into smaller modules developed in cycles. It is more flexible and risks can be identified and addressed earlier. 4. The spiral model is similar to incremental but places more emphasis on risk analysis with four phases per cycle. It is well-suited to large, critical projects.

Uploaded by

Bint E Hoor
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Process Model - Software Engineering

The document discusses several common software development process models: 1. The waterfall model is a linear sequential model where each phase must be completed before the next begins. It is simple but inflexible. 2. The V-model extends the waterfall with testing phases for each development stage. It is highly disciplined but rigid. 3. The incremental model divides work into smaller modules developed in cycles. It is more flexible and risks can be identified and addressed earlier. 4. The spiral model is similar to incremental but places more emphasis on risk analysis with four phases per cycle. It is well-suited to large, critical projects.

Uploaded by

Bint E Hoor
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

1

CHAPTER 2
PROCESS MODELS
Process framework
A process framework establishes the foundation for a complete software process by
identifying a small number of framework activities that are applicable to all software
projects, regardless of size or complexity. It also includes a set of umbrella activities that
are applicable across the entire software process.

What are the five generic process framework activities?


• There are five generic process framework activities:

1. Communication:
The software development starts with the communication between customer
and developer.

2. Planning:
It consists of complete estimation, scheduling for project development and
tracking.

3. Modeling:

• Modeling consists of complete requirement analysis and the design of the project
like algorithm, flowchart etc.

• The algorithm is the step-by-step solution of the problem and the flow chart shows
a complete flow diagram of a program.

• 4. Construction:

• Construction consists of code generation and the testing part.

• Coding part implements the design details using an appropriate programming


language.

• Testing is to check whether the flow of coding is correct or not.

• Testing also check that the program provides desired output.

• 5. Deployment:

PREPARED BY: HABIBA SHOAIB


2

• Deployment step consists of delivering the product to the customer and take
feedback from them.

• If the customer wants some corrections or demands for the additional capabilities,
then the change is required for improvement in the quality of the software

PROCESS FLOW

PREPARED BY: HABIBA SHOAIB


3

PREPARED BY: HABIBA SHOAIB


4

IDENTIFYING A TASK SET


A task set is a collection of software engineering work tasks that must be accomplished to complete
a particular project.

PROCESS PATTERN
Process patterns can be defined as the set of activities, actions, work tasks or work products and
similar related behaviour followed in a software development life cycle.

PREPARED BY: HABIBA SHOAIB


5

PROCESS ASSESSMENT AND IMPROVEMENT


▪ Standard CMMI Appraisal Method for Process
Improvement

• The Standard CMMI Appraisal Method for Process Improvement (SCAMPI)


is the official Software Engineering Institute(SEI) method to provide quality
rating to Capability Maturity Model Integration (CMMI) models.
• SCAMPI are used to identify strengths and weaknesses of current
processes, reveal development risks, and determine capability and maturity
level ratings.
• They are mostly used either as part of a process improvement program or
for rating prospective suppliers.

▪ CBA IPI "CMM-Based Assessment for Internal


Process Improvement".

▪ The CBA-IPI is the authorized way to obtain a maturity level rating.

PREPARED BY: HABIBA SHOAIB


6

▪ CBA-IPI stands for "CMM-Based Assessment for Internal Process Improvement".


▪ The CBA-IPI method was developed by SEI (Software Engineering Institute).

▪ Software Process Improvement and Capability


Determination (SPICE),
• ISO/IEC 15504 Information technology – Process assessment, also termed
Software Process Improvement and Capability Determination (SPICE), is a
set of technical standards documents for the computer software
development process and related business management functions.
• It is one of the joint International Organization for Standardization (ISO)
and International Electrotechnical Commission (IEC) standards, which was
developed by the ISO and IEC joint subcommittee, ISO/IEC JTC 1/SC 7.[1]
• ISO/IEC 15504 was initially derived from process lifecycle standard ISO/IEC
12207 and from maturity models like Bootstrap, Trillium and the Capability
Maturity Model (CMM).

▪ ISO 9000:2000 Software


ISO 9000:1994 emphasized quality assurance via preventive actions, instead of final product
inspection, requiring evidence of compliance with documented procedures.

Waterfall Model
• The Waterfall Model was the first Process Model to be introduced.
• It is also referred to as a linear-sequential life cycle model.
• It is very simple to understand and use.
• In a waterfall model, each phase must be completed before the next phase
can begin and there is no overlapping in the phases.

Some situations where the use of Waterfall model is most appropriate are −

• Requirements are very well documented, clear and fixed.

PREPARED BY: HABIBA SHOAIB


7

• Technology is understood and is not dynamic.


• The project is short.

Waterfall Model – Advantages


• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Phases are processed and
completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Clearly defined stages.

Waterfall Model - Disadvantages.


• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high
risk of changing.
• Cannot accommodate changing requirements.

V-Model
• The V-model is an SDLC model where execution happens in a sequential
manner in a V-shape.
• It is also known as Verification and Validation model.
• The V-Model is an extension of the waterfall model and is based on the
association of a testing phase for each corresponding development stage.
• This means that for every single phase in the development cycle, there is a
directly associated testing phase.
• This is a highly-disciplined model and the next phase starts only after
completion of the previous phase.

Advantages of V-model:

PREPARED BY: HABIBA SHOAIB


8

• Simple and easy to use..


• Works well for small projects where requirements are easily understood.

Disadvantages of V-model:
• Very rigid and least flexible.
• Software is developed during the implementation phase, so no early prototypes
of the software are produced.
• If any changes happen in midway, then the test documents along with
requirement documents has to be updated.

When to use the V-model:


• The V-shaped model should be used for small to medium sized projects where
requirements are clearly defined and fixed.
• The V-Shaped model should be chosen when ample technical resources are
available with needed technical expertise.

Incremental model
• In incremental model the whole requirement is divided into various builds.
• Multiple development cycles take place here, making the life cycle a “multi-
waterfall” cycle.
• Cycles are divided up into smaller, more easily managed modules.
• Incremental model is a type of software development model like V-model,
Agile model etc.

PREPARED BY: HABIBA SHOAIB


9

Advantages of Incremental model:


• This model is more flexible – less costly
• It is easier to test and debug during a smaller iteration.
• In this model customer can respond to each built.
• Lowers initial delivery cost.
• Easier to manage risk because risky pieces are identified and
handled during it’d iteration.
Disadvantages of Incremental model:
• Needs good planning and design.
• Needs a clear and complete definition of the whole system before
it can be broken down and built incrementally.
• Total cost is higher than waterfall.

When to use the Incremental model:


• This model can be used when the requirements of the complete
system are clearly defined and understood.
• Major requirements must be defined; however, some details can
evolve with time.
• A new technology is being used

Spiral model
• The spiral model is similar to the incremental model, with more emphasis
placed on risk analysis.
• The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation
• Its one of the software development models like Waterfall, Agile, V-Model.
• This Spiral model is a combination of iterative development process model
and sequential linear development model

PREPARED BY: HABIBA SHOAIB


10

Advantages of Spiral model:

• It reduces high amount of risk.


• It is good for large and critical projects.
• It gives strong approval and documentation control.
• In spiral model, the software is produced early in the life cycle process.

Disadvantages of Spiral model:


• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects.

When to use Spiral model:


• 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
• Significant changes are expected (research and exploration)

PREPARED BY: HABIBA SHOAIB


11

Evolutionary prototyping
• Evolutionary prototyping is a software development method where the
developer or development team first constructs a prototype.
• Note that evolutionary prototyping is similar to incremental development
• Evolutionary prototyping is a lifecycle model in which the system is developed
in increments so that it can readily be modified in response to end-user and
customer feedback.


The advantages of the Prototyping Model are as follows −

• Increased user involvement in the product even before its implementation.

• Reduces time and cost

• Quicker user feedback is available leading to better solutions

• Missing functionality can be identified easily.

• Confusing or difficult functions can be identified.

The Disadvantages of the Prototyping Model are as follows −

• Users may get confused in the prototypes and actual systems.

• Practically, this methodology may increase the complexity of the system

• The effort invested in building prototypes may be too much if it is not


monitored properly.

PREPARED BY: HABIBA SHOAIB


12

• Concurrent Process Model


It is also called as concurrent model.

The communication activity has completed in the first iteration and exits in the
awaiting changes state.

The modeling activity completed its initial communication and then go to the
underdevelopment state.

If the customer specifies the change in the requirement, then the modeling activity
moves from the under development state into the awaiting change state.

The concurrent process model activities moving from one state to another state.

Advantages of the concurrent development model

This model is applicable to all types of software development processes.

It is easy for understanding and use.

It gives immediate feedback from testing.

PREPARED BY: HABIBA SHOAIB


13

It provides an accurate picture of the current state of a project.

Disadvantages of the concurrent development model

It needs better communication between the team members. This may not be
achieved all the time.

It requires to remember the status of the different activities.

Component-based development (CBD)


Component-based development (CBD) is a branch of software engineering.
This process is apply when reuse is a developmental objective.

.Formal Methods
IT EMPHASIZES THE MATHEMATICAL SPECIFICATION OF REQUIREMENTS.
AOSD
It provides a process and methodological approach for defining, specifying,
designing and construction aspects.

Unified Process.
▪ The Unified Software Development Process or Unified Process is a popular
iterative and incremental software development process framework.
▪ The best-known and extensively documented refinement of the Unified Process
is the Rational Unified Process (RUP).
▪ Other examples are OpenUP and Agile Unified Process

This process divides the development process into four phases:

1.Inception 2. Elaboration 3.Conception 4. Transition


1. Inception - The idea for the project is stated. The development team
determines if the project is worth pursuing and what resources will be
needed.
2. Elaboration - The project's architecture and required resources are further
evaluated. Developers consider possible applications of the software and
costs associated with the development.
3. Construction - The project is developed and completed. The software is
designed, written, and tested.

PREPARED BY: HABIBA SHOAIB


14

4. Transition - The software is released to the public. Final adjustments or


updates are made based on feedback from end users.

UP has the following major characteristics:

• It is use-case driven
• It is architecture-centric
• It is risk focused
• It is iterative and incremental

PREPARED BY: HABIBA SHOAIB


15

The Personal Software Process (PSP)


PSP is a structured software development process that is intended to help software engineers
understand and improve their performance, by using a "disciplined, data- driven procedure“:

The PSP was created by Watts Humphrey.The personal software process is about making individual
engineers work to the best of their abilities.

PSP is a series of defined processes that allow software engineers to produce high-quality products on
time and within budget. PSP shows engineers how to:

• Manage the quality of their projects


• Make commitments they can meet
• Improve estimating and planning
• Reduce defects in their products

Team Software Process (TSP)


• The Team Software Process (TSP) guides engineering teams in developing software-intensive
products.
• Early experience with the TSP shows that its use improves the quality and productivity of
engineering teams while helping them to meet cost and schedule commitments.

PREPARED BY: HABIBA SHOAIB


16

• The TSP is designed for use with teams of 2 to 20 members,


• and the larger multi-team TSP process is designed for teams of up to about 150 members.
• While TSP versions are planned for larger projects

PREPARED BY: HABIBA SHOAIB

You might also like