You are on page 1of 25

GANPAT UNIVERSITY

U. V. PATEL COLLEGE OF ENGINEERING

2CEIT406
SOFTWARE ENGINEERING &
PROJECT MANAGEMENT
LECTURE 1
INTRODUCTION TO SOFTWARE
AND SOFTWARE ENGINEERING
Prepared by: Prof. Ravi Raval (Asst. Prof in C.E Dept. , UVPCE)
Course Contents
Course Outcomes: Units to be covered:
1. Introduction to software
engineering
On successful completion of the course, the students will be 2. Requirement Modeling
able to: and Design
3. Model Development
CO1 understand various software process models such as
using Unified Modelling
waterfall, Spiral and evolutionary models
Language (UML)
CO2 demonstrate effective teamwork and strong working 4. Software Project
knowledge of ethics and professional responsibility for Planning
5. Software Metrics
managing the software projects.
6. Software testing
CO3 demonstrate effective project execution, quality control 7. Software quality and
and risk management techniques that result in successful Risk Management
projects 8. Project selection and
Books:scope management
CO4 conduct project planning activities that accurately (1) Software Engineering a practitioner’s approach by
forecast project costs, timelines and quality. Roger S. Pressman
CO5 conduct standard tests and measurements for validation (2) Software Engineering, New Age International by
of projects and to apply results to improve processes K. K. Aggarwal & Yogesh Singh
Teaching and Examination marks Scheme
Teaching Scheme Theory Practical
3 1

Theory
Internal Exam Quiz Assignments Lecture Final Theory Total
(Best out of 2) (Best out of 2) Attendance Exam
20 10 5 5 60 100
Practical
Continuous Lab Attendance Term-work / Practical Viva voce Total
Evaluation File Exam
15 5 10 10 10 50
Unit 1: Intro. to Software Engineering
Contents:  RAD Models

 Software Engineering definition(s)  Scope of each model and their


 Software characteristics comparison
 Software applications
 Life Cycle Models:
 Waterfall
 Classical
 iterative
 Prototyping
 Spiral Model
Unit 1: Intro. to Software Engineering
Why we are learning Software Engineering? - Script is interpreted vs. program
- Reduce Complexity is executed.
- A "script" is code that acts upon
- To minimize software cost
some system in an external or
- To decrease time independent manner and can be
- Handling big projects removed or disabled without
- Reliable softwares disabling the system itself.
- A "program" is code that
- Effectiveness
constitutes a system.
What is the significance of SE in Computer -
A set of program makes up a
Science / IT?
software
- Difference between Script Vs. Program Vs.
Software
Unit 1: Intro. to Software Engineering
What is software?
Software is:
1) instructions (computer programs) that when executed provide desired features, function, and
performance;
2) data structures that enable the programs to adequately manipulate information, and
3) descriptive information in both hard copy and virtual forms that describes the operation and
use of the programs.
So, Software is a logical rather than a physical system element. Therefore, software has
characteristics that are considerably different than those of hardware:
Software Characteristics:
1. Software is developed or engineered; It is not manufactured in the classical
sense.
In both activities, high quality is achieved through good design, but the manufacturing
phase for hardware can introduce quality problems that are nonexistent (or easily
corrected) for software. Both activities are dependent on people, but the relationship
between people applied and work accomplished is entirely different. Both activities
require the construction of a “product,” but the approaches are different.
Unit 1: Intro. to Software Engineering
2. Software doesn’t wear out.
Hardware failure rate rises as components suffers from
cumulative effects of dust, vibration, abuse, temperature
humidity etc. Software is not susceptible to the environment
maladies The failure rate curve for software should take the
form of the “idealized curve” shown in Figure. Undiscovered
defects will cause high failure rates early in the life of a
program.
3. Although the industry is moving toward component-based
construction, most softwares continues to be custom built.

Software Application Domains


(1) System Software (2) Application software (3) Engineering /
Scientific softwares (4) Embedded Softwares (5) Product-line
softwares (6) Web applications (7) AI Applications (8) Open
world computing (9) Netsourcing (10) Open source.
Unit 1: Intro. to Software Engineering
What is software engineering? maintainable.
Before developing a software; you should “Software engineering is the establishment
understand few realities of softwares: and use of sound engineering principles in
1. It follows that a concerted effort should be
order to obtain economically software that
made to understand the problem before a is reliable and works efficiently on real
software solution is developed. machines.” - Fritz Bauer [Nau69]
2. It follows that design becomes a pivotal
“The application of a systematic,
activity. disciplined, quantifiable approach to the
development, operation, and maintenance of
3. It follows that software should exhibit high
software;” - IEEE [IEE93a]
quality.
4. It follows that software should be
Unit 1: Intro. to Software Engineering
What is software development life - Enables planning of resources in
cycle (SDLC)? advance.
SDLC used to facilitate the development of - Enables subsequent controls in advance.
a large software product in a systematic, - Aids management to track progress of
well-defined and cost-effective way. the system.
Why to follow SDLC? Apart from that
- Helps to understand the entire process. Entry criteria and exit criteria has to be
- Enhances a structured approach to specified.
development. Any model must have atleast 5 phases and
atmost 9 phases.
Unit 1: Intro. to Software Engineering
So, on an average, any SDLC model can (5) Coding
have 7 to 8 phases. These are: (6) Testing
(1) Project initiation and planning OR (7) Implementation
Recognition of need OR Preliminary
Investigation. (8) Maintenance.

(2) Project identification and Selection OR


Feasibility Study
(3) Project analysis
(4) System Design
Unit 1: Intro. to Software Engineering
Now let’s explore each phase one by one. D. Operational Feasibility: End user
acceptance, management support, customer-
(1) Identify, understand and describe supplier and government requirements.
problem fully.
(3) Project analysis
(2) Feasibility study types:
(4) System Design
A. Organizational feasibility: How well the
proposed system supports the strategic (5) Coding
objectives of the organization.
(6) Testing
B. Technical Feasibility: Hardware, software
and network capability, reliability and (7) Implementation
availability (8) Maintenance: Corrective maintenance,
C. Economic Feasibility: Cost saving, Adaptive maintenance, Perfective
Increased revenue, decreased investment, Maintenance, Preventive Maintenance
increased profits
Unit 1: Intro. to Software Engineering
Prescriptive Process Models
Prescriptive Process Models

Evolutionary Process
The Waterfall Model
Models Rapid
Classical Iterative Application
Waterfall Waterfall Prototypin Spiral Model
Model Model g Model Model
Unit 1: Intro. to Software Engineering
Advantages
Prescriptive Process Models: It is a linear Model
It is a segmental model
(1) Waterfall Model It is systematic and sequential
It is simple one to understand and follow
It has proper documentations.
Disadvantages
It’s difficult to define all requirements at the beginning of a project
This model is not suitable for accommodating any change.
A working version of the system of is not seen until late in the
project’s life
It does not scale up well to large project
It involves heavy documentation. Documentation requires at end of
each phase.
We cannot go in the backward direction while SDLC performs
There is no sample model for clearly in realization the customers
needs.
There is no risk analysis
If there is any mistake or error in any phase then it will propagate to
the last
Unit 1: Intro. to Software Engineering
Advantages Disadvantages
Prescriptive Process Models: Phase containment of errors: detecting errors as Difficult to
close to their points of commitment as possible incorporate
(2) Iterative Waterfall Model Collaboration: collaboration between the business change requests:
owners and developers. Incase of
Flexibility to incorporate changes change/new
Testing and feedback requirement once
Predictable Outcomes the development
Maintenance: Ongoing maintenance during live phase started then
projects. Wait till next cycle
start
Easy to manage : to track progress, detect issues & Incremental
manage resources. delivery not
Faster to market supported
Scalable: can be used for various sizes and Overlapping of
complexities phases not
Improved customer satisfaction supported
Quality Assurance Risk handling not
Risk Reduction supported
Well organized Limited customer
Cost-effective interactions
Simplicity and effective feedback
Unit 1: Intro. to Software
Engineering

Evolutionary Process Models:


(3) Prototype Model:
Unit 1: Intro. to Software Engineering
Evolutionary Process Models:
(3) Prototype Model:
Advantages: Disadvantages:
1) Suitable for large system for which there is no 8) The developer often compromises in order to get
manual process to define the requirements working prototype quickly. (use of inappropriate
2) Prototyping make requirements more clear and OS, algorithms AND/OR programming technology)
system more transparent. 9) End users may not like to know the difference
3) Flexibility in design and development is also between a prototype and a well-engineered fully
supported by the model. developed product.
4) System training 10)If not managed properly, the interactive process of
5) Quality of software is good
prototype demonstration and refinement can
continue for long duration.
6) User training to use the system.
11)If end user is not satisfied with initial prototype, he
7) User services determination may loose interest in the project.
Unit 1: Intro. to Software Engineering
Evolutionary Process Models:
(4) Spiral Model:
Unit 1: Intro. to Software Engineering
Evolutionary Process Models:
(4) Spiral Model:
Advantages Disadvantages
It is a risk driven model No Strict standards for software development
It’s very flexible No particular beginning or end of particular phase
Less documentation is needed Different people may find it complex to use
It makes a use of prototyping Requires expertise risk management & excellent management
skills
It is more realistic model for Not suitable for small project. Sometimes the cost of risk analysis
software development. may exceed the actual cost of the project
Unit 1: Intro. to Software Engineering
(5) Rapid Application Development Model: Each development
 to overcome the rigidity of the waterfall model (and its derivatives) team usually consists
of about five to six
that makes it difficult to accommodate any change requests from members, including a
the customer. customer
representative who is
 This model has the features of both prototyping and evolutionary responsible to
communicate with
models. customers.
Working: In the RAD model, development takes place
in a series of short cycles or iterations. At any time, the
development team focuses on the present iteration only,
and therefore plans are made for one increment at a time.
The time planned for each iteration is called a time box.
Each iteration is planned to enhance the implemented
functionality of the application by only a small amount.
During each time box, a quick-and-dirty prototype-style
software for some functionality is developed. The
customer evaluates the prototype and gives feedback on
the specific improvements that may be necessary. The
prototype is refined based on the customer feedback.
Please note that the prototype is not meant to be released
to the customer for regular use though.
Unit 1: Intro. to Software Engineering
(5)
Development RapidModel: Application Disadvantages:
Advantages: The use tools
efficient of requires
powerfulhighly
and
 The use of reusable components skilled professionals.
helps
the to reduce the cycle time of
project.
 The absencecan of
components lead reusable
to the
 Feedback from the customer is failure of the project.
available
 Reduced
at the initial stages.  The team leader must work
closely with the developers and
developers costs
are required.as fewer customers to close the project on
 The use tools of results
powerful time.
 The systems which cannot be
development
better quality products in
in modularized suitably cannot use
comparatively shorter this model.
time  Customer
spans.
 The progress and development required involvement
throughout the is
life
of the project can be measured cycle.
through the various stages.
 It is easier to accommodate
 It is not asmeant
projects in for small-scale
such cases,tools
the
changing requirements due to the cost
and of using
techniques automated
mayproject.
exceed the
short iteration
 Productivity
time spans. entire budget of the
boosted with amay lowerbenumber
quickly
of  Not everyRAD.
used with application can be
Unit 1: Intro. to Software Engineering
Comparisons of all models:
Strength Weakness Types of Project
 All or nothing approach
 Requirements frozen early
 For well understood
 Disallows changes
 Simple problems
Waterfall  Cycle time too long
 Easy to execute  Short duration project
Model  May choose outdated hardware
 Intuitive and logical  Automation of existing
technology
manual systems.
 User feedback not allowed
 Encourages requirement bloating
 Helps in requirement  System with novice
 Front heavy process
Prototypin elicitation users
 Possibly higher cost
g Model  Reduces risk  Best for uncertain
 Disallows later changes
 Leads to a better system requirements
Unit 1: Intro. to Software Engineering
Comparisons of all models:
Strength Weakness Types of Project
 Regular/Quick deliveries  Each iteration can have  For businesses where
 Reduces risk planning overhead time is of essence
Accommodates changes  Cost may increase as work  Where risk of long project
Iterative / 
Allows user feedback done in one iteration may have cannot be taken
Incremental 
 Allows reasonable exit to be undone later.  Where requirements are
Model
points  System architecture and not known
 Avoids req. bloating structure may suffer as
 Prioritizes requirements frequent changes are made
 Controls project risks  No strict standards for software  Project built on untested
Spiral  Very flexible development assumptions
Model  Less documentation  No particular beginning or end
needed of particular phase
Unit 1: Intro. to Software Engineering
Selection of a life cycle model:
How to chose a model for a given software to be developed?
Selection of model based on characteristics of requirement
Requirements Waterfall Prototype Iterative Spiral
Are requirements easily understandable and defined? Yes No No No
Do we change requirements quite often? No Yes No Yes
Can we define requirements early in the cycle? Yes No Yes No
Requirements are indicating a complex system to be built No Yes Yes Yes
Selection based on Status of development team
Less Experience on similar projects No Yes No Yes
Less domain knowledge (new to technology) Yes No Yes Yes
Less experience on tools to be used Yes No No Yes
Availability of training No No Yes No
Unit 1: Intro. to Software Engineering
Selection of a life cycle model:
Selection
How to chose a model for a given softwarebased ondeveloped?
to be Users participation
Requirements Waterfall Prototype Iterative Spiral
Users involvement in all phases No Yes No No
Limited users participation Yes No Yes Yes
Users have no previous experience of participation in similar No Yes Yes Yes
projects
Users are experts of problem domain No Yes Yes No
Selection based on type of project with associated risk
Project is the enhancement of existing system No No Yes Yes
Funding is stable for the project Yes Yes No Yes
High reliability requirements No No Yes No
Tight project schedule No Yes Yes Yes
Use of reusable components No Yes No Yes
Are resources (time/money/people etc.) scarce? No Yes No No

You might also like