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

Ch. 1 Introduction to Software Engineering and Process Model.

Uploaded by

Ashish Sah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Ch. 1 Introduction to Software Engineering and Process Model.

Uploaded by

Ashish Sah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

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.
➢ 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 (Institute of Electrical and Electronics
Engineers)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 STAGES OF
Design Modeling WATERFALL
Development Construction 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.
EVOLUTIONARY PROCESS MODEL
● Evolutionary model is also called as the successive version
model and it is combination of Iterative and Incremental
model.
● The Projects used evolutionary model which need’s can’t
understand using new automation tools.this model is also
used when customer requirements are uncertain.

There are two types of models in Evolutionary Process–


1. Prototyping Model.
2. Spiral Model
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 activities is essential,
processes.
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