You are on page 1of 28

CH. NO.

1 INTRODUCTION TO SOFTWARE
ENGINEERING AND PROCESS MODEL.
-BY POOJA BAHIRAT.
POINTS TO PONDER/REMEMBER.
What is Software?
What is meant by Software Engineering?
Can I identify standard set of activities in
software Engineering?
What is process flow?
Can I have different approaches/models to
software development?
What are the benefits and limitations of different
approaches/models?
Does the models affects the development cost of
software?
WHAT IS A SOFTWARE?

Software can be defined as set of programs


clubbed together to achieve a particular goals or
objective.
Also in other words , software can be defined as
product which is build and supported by software
engineers over a long period. This product consist
of computer programs, contents generated as a
result of program execution , data structures etc.
Good Software is one which provides expected
functionality and performance to the user and
which is easy to maintain and use.
NATURE OF SOFTWARE ENGINEERING.
Software is not manufactured like other products.
Software is developed or engineered.

IEEE defines S.E as:


The Application of a systematic,disciplined,quantifiable approach to
the development,operation,and maintenance of a software;that is,
the application of engineering of software.

Layers of Software Engineering.


1) Quality: Quality management is base for software
engineering. It is mainly divided into 6 parts.
Functionality.
Reliability
Usability
Efficiency
Maintainability
Portability
2) Process : This layer tries to hold quality and
technical methods together in order to delivers software
in time.
3) Methods : This layer focuses on how to build a
software.
4) Tools : This layer refers to automated or semi
automated tools which help the people involved to
complete software processes more efficient and with less
errors.
CHANGING NATURE OF SOFTWARE.
The role of software has changed drastically with the
evolution in technology and now software industry is
playing an important role in world’s economy.
The four broad categories of software are:
1) Web Apps: Web applications run on web browser and
uses web technology for performing its task.
2) Mobile Applications: The software which is designed
specifically for mobile platforms like Android, iOS,
Windows.
3) Cloud Computing: A cloud architecture allows sharing
of resources which can be public or private. It allows user
to access resources from any geographical areas ,
anytime using any computing device.
4) Product-line Software: software is developed for
common functionality identified among many products
within the product line. It includes requirements,
architecture, design patterns, reusability, test case etc.
SOFTWARE PROCESS FRAMEWORK.
This framework consists of multiple sections, each sections
performs its own work process.
Software process framework consists of below 5 activities
as there in-depth details need to understood and work
upon, it is known as framework activities.
1) Communication
2) Planning.
3) Modelling (designing/ERD)
4) Construction.
5) Deployment.
UMBRELLA ACTIVITIES.
PROCESS ADAPTATION.

Software process should be flexible and user friendly in


nature, it should be dynamic to the project.
It is possible that a software process used for one project
can differ with another project based on following areas:
1) Sequence of activities and tasks performed.
2) Quality assurance techniques and activities used.
3) Stress given on details of process description.
4) Level of liberty given to the software team.
5) Details of roles played by individuals in a development
team.
GENERIC PROCESS MODELS.
Different methodologies or processes are used for
development of the project known as process
model.
A generic process framework consists of 2 types of
activities:
1. Fundamentals activities :
communication,planning,modeling,construction
and deployment as mentioned above.
2. Umbrella activities : these activities are
applied throughout the software development
project.
Process flow specifies the way to carry these
activities with respect to time and order. There are
four types of process flow.
Linear process flow and Iterative Process Flow:
Evolutionary and Parallel Process Flow:
PRESCRIPTIVE PROCESS MODELS.

Prescriptive process models provides orderly


approach to software engineering. It specifies step
by step sequence of activities addressing ‘’how
to do’’ the software development.
1. The Waterfall model.
2. Incremental Process Model
3. Evolutionary Process Model.
4. Concurrent Model.
5. The Unified Process.
THE WATERFALL MODEL.
Waterfall model is also known as classic life cycle
model. This process begins with requirement
investigation,analysis,design,development,
testing implementation and maintenance.
Characteristics of waterfall models:
1. Every stage must start only after completion of
the stage above it.
2. There is no way return to previous stage in a
waterfall model.
3. This model represents a structure completely
perfect for ambiguity free of software
engineering.
4. Waterfall model is linear, sequential model.
General approach Enhanced process
Requirement
Communication
Investigation
Analysis Planning
Design Modeling STAGES OF
Development Construction WATERFALL MODELS.
Testing Deployment
Implementation
Maintenance
ADVANTAGES AND DISADVANTAGES.
Advantages Disadvantages
If there is a problem in any
It is very simple to understand stage, we have to restart from
and use. beginning of the whole waterfall
model.
As there is a time available Not suitable for rapid
quality work can be done. development.
Time required are more than any
False can be easily found.
of the approaches.
Practical implementation is
Activities are independent
tough.
Every stage completes with its
Increases in cost and time.
specify guidelines.
INCREMENTAL PROCESS MODEL.
Wherever there is a need of implementing a
software within maximum time and for specific
amount of requirement Incremental model is
used.
Incremental model is modified version of
waterfall model approach.
Incremental model works as above:
1. A set of instruction are taken and worked on
according to waterfall approach.
2. To avoid multiple restarts according to waterfall
approach if a requirement is missing a new
increment is started with the combination of
new requirement.
3. The same cycle is implemented for this new
increment as well.
ADVANTAGE AND DISADVANTAGES.
Advantages Disadvantages
Actual cost may exceed the
Work with small size team.
estimate cost.
System is broken into small
Initial product delivery is faster
increments
Confusion is created because of
Can accommodate changes.
multiple increments.
Customer response and feedback Problem may occur as all
is considered after every requirements are not gathered at
increment completion, beginning.
PROTOTYPING PROCESS MODEL.
Prototyping model is a miniature model creation of
whole working process of a software than getting
feedback from customer and reiterate changes
suggested and getting feedback again with the
completion of whole project and software.
This model comes in picture when a customer is clear
about the goals of development but is enable to
provide details on input process output.
Prototyping design consist of below 5 steps:
a. Communication.
b. Modeling.(Quick design)
c. Planning.(Quick Plan)
d. Construction.
e. Deployment and feedback.
Prototyping approaching is cycle which involve
customer feedback as very important component.
This gives the customer and developer to understand
what the actual requirements is.
Advantages Disadvantages
As customer is involved through
out in the model he can This model is costly.
understand the effort taken
under this process.
It has poor documentation
Requirement change can be because of continuously changing
possible at any type of points. customer requirements.

There may be too much variation


Reduces cost of adapting
in requirements.
changes.

Customers sometimes demand


the actual product to be delivered
Helps in reducing various types
soon after seeing an early
of risk.
prototype.
SPIRAL MODEL
Spiral model is based on concept which represent
a spiral structure of geometry to implicate its
nature of iteration and understanding of
prototyping getting customer feedback at
every stage of complete development
process.
It is a combination of waterfall model and
prototyping model.
It is consist of all frame work activities
including your generic framework process.
Advantages Disadvantages

Convinced customers for


Considers the entire software life
evolutionary approach model is
cycle.
difficult.

Suitable for large and complex Experts are needed to identify


software. the risk in project.

Better understanding and Incase a risk is missed out and it


handling of risk at each tends to be a major one it will
evolutionary level by both effects directly working process.
developers and customer.
CONCURRENT MODEL
This model is used by the software development team to
represent elements of any model which are iterative and
parallel.
It is also referred as concurrent engineering. It helps in
identifying correct state of the current project.
Activity can be in any one of the following states:
1. Inactive : Not yet started.
2. Under development : Indicates partial progress.
3. Under review: Assessment of the implementation done
till now.
4. Baselined : compared with the expected requirements.
5. Done : Completed as per the specifications.
6. Awaiting changes: Waiting for feedback and suggestions.
7. Under revision: Going through suggested updates.
Advantages Disadvantages
Fast development. Need better communication
among team members.
It is applicable to all types of Remembering states of
software development processes. activities is essential,
Gives immediate feedback.
It is easy to understand.
THE UNIFIED PROCESS
The process flow in unified process is incremental,
iterative and highly focused on customer involvement. It
is mainly designed for object-oriented development
using UML(Unified Modeling Languages).
The UP is divided into cycles and each cycle consists of
four consecutive phases.
Phases of Unified process are as follow:
1) Inception
2) Elaboration
3) Construction
4) Transition
1)Inception : Inception phase mainly focuses on objectives, business
requirement and scope of a project.
It involves communication and planning activities.
Plan is prepared for incremental and iterative development of project.
2) Elaboration: At the end of this phase, most of the requirements of the
system are identified. It involves communication and modeling activities.
It includes use case model, analysis model, design model, implementation
model and deployment model.
3) Construction : Different software components are integrated together and
software increment is developed and tested(Using unit testing, integration testing
and acceptance testing).
Analysis and design models developed in elaboration are thus completed here.
4) Transition : The outcome of this phase is product release. Here
the developed software is transferred for beta testing to client’s
environment.
When feedback received from user is used in identifying the defects
in the system and initiating necessary updates, it is referred to as
production phase. Thus, production phase coincides with the
deployment activities.

You might also like