Software Processes: The Software Process Model
Software Processes: The Software Process Model
Software Processes: The Software Process Model
The term software specifies to the set of computer programs, procedures and
associated documents (Flowcharts, manuals, etc.) that describe the program and how
they are to be used.
A software process is the set of activities and associated outcome that produce a
software product. Software engineers mostly carry out these activities. These are four
key process activities, which are common to all software processes. These activities are:
1. A workflow model: This shows the series of activities in the process along with
their inputs, outputs and dependencies. The activities in this model perform
human actions.
2. 2. A dataflow or activity model: This represents the process as a set of
activities, each of which carries out some data transformations. It shows how the
input to the process, such as a specification is converted to an output such as a
design. The activities here may be at a lower level than activities in a workflow
model. They may perform transformations carried out by people or by
computers.
3. 3. A role/action model: This means the roles of the people involved in the
software process and the activities for which they are responsible.
1. The waterfall approach: This takes the above activities and produces them as
separate process phases such as requirements specification, software design,
implementation, testing, and so on. After each stage is defined, it is "signed off"
and development goes onto the following stage.
2. Evolutionary development: This method interleaves the activities of
specification, development, and validation. An initial system is rapidly developed
from a very abstract specification.
3. Formal transformation: This method is based on producing a formal
mathematical system specification and transforming this specification, using
mathematical methods to a program. These transformations are 'correctness
preserving.' This means that you can be sure that the developed programs meet
its specification.
4. System assembly from reusable components: This method assumes the parts
of the system already exist. The system development process target on
integrating these parts rather than developing them from scratch.
Software Crisis
1. Size: Software is becoming more expensive and more complex with the growing
complexity and expectation out of software. For example, the code in the
consumer product is doubling every couple of years.
2. Quality: Many software products have poor quality, i.e., the software products
defects after putting into use due to ineffective testing technique. For example,
Software testing typically finds 25 errors per 1000 lines of code.
3. Cost: Software development is costly i.e. in terms of time taken to develop and
the money involved. For example, Development of the FAA's Advanced
Automation System cost over $700 per lines of code.
4. Delayed Delivery: Serious schedule overruns are common. Very often the
software takes longer than the estimated time to develop, which in turn leads to
cost shooting up. For example, one in four large-scale development projects is
never completed.
In other words, a life cycle model maps the various activities performed on a software
product from its inception to retirement. Different life cycle models may plan the
necessary development activities to phases in different ways. Thus, no element which life
cycle model is followed, the essential activities are contained in all life cycle models
though the action may be carried out in distinct orders in different life cycle models.
During any life cycle stage, more than one activity may also be carried out.
Need of SDLC
The development team must determine a suitable life cycle model for a particular plan
and then observe to it.
Without using an exact life cycle model, the development of a software product would
not be in a systematic and disciplined manner. When a team is developing a software
product, there must be a clear understanding among team representative about when
and what to do. Otherwise, it would point to chaos and project failure. This problem can
be defined by using an example. Suppose a software development issue is divided into
various parts and the parts are assigned to the team members. From then on, suppose
the team representative is allowed the freedom to develop the roles assigned to them in
whatever way they like. It is possible that one representative might start writing the code
for his part, another might choose to prepare the test documents first, and some other
engineer might begin with the design phase of the roles assigned to him. This would be
one of the perfect methods for project failure.
A software life cycle model describes entry and exit criteria for each phase. A phase can
begin only if its stage-entry criteria have been fulfilled. So without a software life cycle
model, the entry and exit criteria for a stage cannot be recognized. Without software life
cycle models, it becomes tough for software project managers to monitor the progress
of the project.
SDLC Cycle
SDLC Cycle represents the process of developing software. SDLC framework includes the
following steps:
The stages of SDLC are as follows:
Stage1: Planning and requirement analysis
The senior members of the team perform it with inputs from all the stakeholders and
domain experts or SMEs in the industry.
Planning for the quality assurance requirements and identifications of the risks
associated with the projects is also done at this stage.
Business analyst and Project organizer set up a meeting with the client to gather all the
data like what the customer wants to build, who will be the end user, what is the
objective of the product. Before creating a product, a core understanding or knowledge
of the product is very necessary.
For Example, A client wants to have an application which concerns money transactions.
In this method, the requirement has to be precise like what kind of operations will be
done, how it will be done, in which currency it will be done, etc.
Once the required function is done, an analysis is complete with auditing the feasibility
of the growth of a product. In case of any ambiguity, a signal is set up for further
discussion.
Once the requirement analysis is done, the next stage is to certainly represent and
document the software requirements and get them accepted from the project
stakeholders.
The next phase is about to bring down all the knowledge of requirements, analysis, and
design of the software project. This phase is the product of the last two, like inputs from
the customer and requirement gathering.
In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow
the coding guidelines described by their management and programming tools like
compilers, interpreters, debuggers, etc. are used to develop and implement the code.
Stage5: Testing
After the code is generated, it is tested against the requirements to make sure that the
products are solving the needs addressed and gathered during the requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance testing are
done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is deployed.
Then based on the assessment, the software may be released as it is or with suggested
enhancement in the object segment.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues come up
and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as
maintenance.
waterfall model
What is the waterfall model?
The waterfall model is a linear, sequential approach to the software
development lifecycle (SDLC) that is popular in software engineering and
product development.
The waterfall model uses a logical progression of SDLC steps for a project,
similar to the direction water flows over the edge of a cliff. It sets distinct
endpoints or goals for each phase of development. Those endpoints or goals
can't be revisited after their completion.
https://youtu.be/bNLcRdrSQAU
In the waterfall method, each step is dependent on the output of the previous
step. There's a linear progression to the way these projects unfold.
waterfall model doesn't include a project's end user or client as much as other
development methodologies. Users are consulted during the initial stages of gathering
and defining requirements, incorporating client feedback after that. By leaving the
client out of the main part of the waterfall process, the development team moves
quickly through the phases of a project.
This methodology is good for teams and projects that want to develop a project
according to fixed or unchanging requirements set forth at the beginning of the
project. Waterfall projects have a high degree of process definition with little or no
output variability. Waterfall is also a good choice if the project is constrained by cost
or time.
Projects based on the waterfall model are well defined, predictable and have specific
documentation. They also have the following characteristics:
fixed requirements;
ample resources;
an established timeline;
well-understood technology; and
In software development, if an application needs to work on the first try at the risk of
losing customers, waterfall is a suitable method because it sets out to achieve that
goal. Contrast that with Agile project management and development methodology.
Agile methods use ongoing reiteration, which is an iterative approach that involves
designing, developing and testing software in repeated cycles that build upon each
other.
Feasibility Study
The feasibility study is based on the needs of the project, where many people (human
resource, business analyst, architecture) evaluate whether the project can be done or
not. To develop a good project, we should follow the various characteristics, which are
based on the customer requirements:
Aspects Description
Legal Can the company handle the project as cyber law and other monitoring
agreements?
Technical Check whether the available machine supports the software or not?
Operation The company should able to generate operation that is given by the clients?
feasibility
Economic Should the company able to complete the product within given budget or
not?
Schedule The project should be done within the given schedule or not.
1. Requirements. Potential requirements, deadlines and guidelines for the
project are analyzed and placed into a formal requirements document, also
called a functional specification. This stage of development defines and
plans the project without mentioning specific processes.
5. Testing. This is when quality assurance, unit, system and beta tests identify
issues that must be resolved. This may cause a forced repeat of the coding
stage for debugging. If the system passes integration and testing, the
waterfall continues forward.
enables large or changing teams to move toward a common goal that's been
defined in the requirements stage;
Design isn't adaptive; when a flaw is found, the entire process often
needs to start over.