Chapter 2 Software Ippt
Chapter 2 Software Ippt
BURIE CAMPUS
DEPARTMENT OF COMPUTER SCIENCE
Fundamentals of Software Engineering
By:
Amare W.
1
2
Chapter Two
Software processes
♥A process is an organized set of activities, which transforms inputs to outputs.
♥A software process is a sequence of activities that leads to the production of a software product.
♥The systematic approach that is used in software engineering is sometimes called a software process.
♥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.
3 02/11/2022
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
3/2/2018
6 02/11/2022
….cont’d
♥ The SDLC aims to produce a high quality software that meets or
exceeds client/customer expectations, reaches completion within
times and cost estimates.
♥ The SDLC is a framework defining tasks performed at each step
in the software development process.
♥ There are many SDLC used during software development process.
SDLC is used to
Helps to understand the entire process
Enables planning of resources in advance
Enforces a structured approach to development 3/2/2018
3/2/2018
13 02/11/2022
stage.
14 02/11/2022
♥ The outcome of the technical feasibility study is to define the various technical
approaches that can be followed to implement the project successfully with
minimum risks.
♥ Also within the planning stage scope and boundary of concepts are defined.
♥ During this activity the developer attempts to understand the problem and
delimit its scope. Feasibility study focused on:
Economic feasibility
Operational feasibility
Technical feasibility
Political feasibility
3/2/2018
Schedule feasibility
15 02/11/2022
2. Design
♥ Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the
customer or the market analysts.
♥ This is done through Software Requirement Specification (SRS).SRS
document which consists of all the product requirements to be designed and
developed during the project life cycle.
♥ SRS is the reference for product architects to come out with the best
architecture for the product to be developed.
♥ Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented
3/2/2018
in a
Design Document Specification (DDS).
16 02/11/2022
3. Development
♥ In this stage of SDLC the actual development starts and the product
is built.
♥ The programming code is generated as per DDS. If the design is
performed in a detailed and organized manner, code generation can
be accomplished without much hassle.
♥ Developers have to follow the coding guidelines defined by their
organization and programming tools like compilers, interpreters,
debuggers etc. are used to generate the code.
♥ Different high level programming languages such as C, C++, Pascal,
3/2/2018
4. Testing
♥ This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC.
♥ However this stage refers to the testing only stage of the product where products
defects are reported, tracked, fixed and retested, until the product reaches the quality
standards defined in the SRS.
♥ Testing is the major quality-control measure used during software
development.Testing is done by the programmers, end-users and quality assurance
experts.
♥ Programmers know the best of how the program works and therefor they can
identify the most vulnerable areas of the software.
♥ End-users would pay more attentions to their routine tasks which helps to3/2/2018
ensure the
software can fulfill the requirements.
18 02/11/2022
3/2/2018
21 02/11/2022
Waterfall Model
♥ The Waterfall Model was 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. The waterfall model is consistent
with other engineering process models and documentation is produced at
each phase.
♥ The waterfall model is an example of a plan-driven process—in principle,
you must plan and schedule all of the process activities before starting
work on them.
♥ In a waterfall model, each phase must be completed before the next phase
3/2/2018
them properly.
24 02/11/2022
2. Design
♥ The goal of the design phase is to transform the requirements
specified in the SRS document into a structure that is suitable for
implementation in some programming language.
♥ In technical terms, during the design phase the software architecture
is derived from the SRS document.
♥ Assigning responsibilities to objects and specifying detailed
dynamics of their interactions under different usage scenarios.
♥ Two distinctly different approaches are available: the traditional
3/2/2018
design approach and the object-oriented design approach.
28 02/11/2022
Implementation /Coding
Testing
♥ During this phase, each module is unit tested to determine the correct
working of all the individual modules.
♥ It involves testing each module in isolation as this is the most efficient
way to debug the errors identified at this stage. 3/2/2018
30 02/11/2022
3/2/2018
32 02/11/2022
Cons
High amounts of risk and uncertainty
It is difficult to measure progress within stages
Cannot accommodate changing requirements
Adjusting scope during the life cycle can end a project
No working software is produced until late during the life cycle
Only system that can be modularized can be built using RAD.
Requires highly skilled developers/designers
High dependency on modeling skills
Inapplicable to cheaper projects as cost of modeling and automated
code
Generation is very high
Requires user involvement throughout the life cycle 3/2/2018
36 02/11/2022
Prototype Model
version.
38 02/11/2022
Incremental Model
3/2/2018
42 02/11/2022
Pros
Generates working software quickly and early during the software life
cycle.
This model is more flexible – less costly to change scope and requirements.
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
Cons
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 model. 3/2/2018
43 02/11/2022
V-shaped Model
3/2/2018
45 02/11/2022
Verification Phases
Requirement analysis:
♥ This is the first phase in the development cycle where the
product requirements are understood from the customer
perspective.
♥ This is a very important activity and need to be managed well, as
most of the customers are not sure about what exactly they need.
♥ The acceptance test design planning is done at this stage as
business requirements can be used as an input for acceptance
testing. 3/2/2018
46 02/11/2022
3/2/2018
47 02/11/2022
Detail design:
♥ In this phase the detailed internal design for all the system
modules is specified, referred to as Low Level Design LLD.
♥ It is important that the design is compatible with the other modules
in the system architecture and the other external systems.
♥ Unit tests are an essential part of any development process and
helps eliminate the maximum faults and errors at a very early stage.
♥ Unit tests can be designed at this stage based on the internal
module designs. 3/2/2018
49 02/11/2022
Coding Phase
♥ The actual coding of the system modules designed in the design
phase is taken up in the Coding phase.
♥ The best suitable programming language is decided based on the
system and architectural requirements.
♥ The coding is performed based on the coding guidelines and
standards.
♥ The code goes through numerous code reviews and is optimized for
best performance before the final build is checked into the
3/2/2018
repository.
50 02/11/2022
Validation Phases
Unit testing:
♥Unit tests designed in the module design phase are executed on the
code during this validation phase.
♥Unit testing is the testing at code level and helps eliminate bugs at an
early stage, though all defects cannot be uncovered by unit testing.
Integration testing:
♥Integration testing is associated with the architectural design phase.
♥Integration tests are performed to test the coexistence and
communication of the internal modules within the system.
3/2/2018
51 02/11/2022
System testing:
♥ System testing is directly associated with the System design phase. System tests check
the entire system functionality and the communication of the system under
development with external systems.
♥ Most of the software and hardware compatibility issues can be uncovered during
system test execution.
Acceptance testing:
♥ Acceptance testing is associated with the business requirement analysis phase and
involves testing the product in user environment.
♥ Acceptance tests uncover the compatibility issues with the other systems available in
the user environment. It also discovers the non-functional issues such as load and
3/2/2018
Pros
This is a highly disciplined model and Phases are completed one at a time.
Works well for smaller projects where requirements are very well
understood.
Simple and easy to understand and use.
Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process
Cons
High risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and on-going projects.
Not suitable for the projects where requirements are at a moderate to high
risk of changing.
Once an application is in the testing stage, it is difficult to go back and
3/2/2018
change a functionality
54 02/11/2022
Spiral Model
study, the next loop with requirements specification, the next one
56 02/11/2022
3/2/2018
57 02/11/2022
3/2/2018
59 02/11/2022
Reading Assignment
1. Read other SDLC model like Agile Model,
iteration waterfall………etc..
2. Why study software engineering?
3. Difference between system analysis and
system design.
4. Characteristics of SRS
3/2/2018
61 02/11/2022
3/2/2018
63 02/11/2022
3/2/2018
66 02/11/2022
group coordination.
70 02/11/2022
Level 4 Managed
♥ An organization moves up to level 4 when it focuses its effort
on quantities and quality management in addition to all the key
process of level 2 and 3. Such two more key processes are
added
Quantitative process management
Software quality management
♥ Quantitative management of attributes such as quality,
productive, or efficiency is part of the organization at this level.
3/2/2018
71 02/11/2022
Level 5 optimizing
♥ The highest level of CMM is level 5 (optimizing level). The emphasis here is
on continuous improvement.
♥ In order to facilitate such improvement, three key processes must be included:
Detect prevention, Technology change management and Process change
management
♥ All the key processes at this ultimate level contribute to an organization
poised for changes and improvements.
♥ SEI’s CMM has been used by thousands of software organizations across
multiple countries. 3/2/2018
72 02/11/2022
management
74 02/11/2022
3/2/2018
75 02/11/2022
Software Metrics
3/2/2018
77 02/11/2022
Thank you