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

Software Engineering Unit 1

The document provides an overview of software, its applications, and the importance of software engineering, emphasizing that software is developed rather than manufactured. It discusses various software development life cycle (SDLC) models, including the Waterfall, Incremental, RAD, Prototyping, and Spiral models, along with their advantages and disadvantages. Additionally, it highlights the need for adaptability in legacy software and the challenges posed by the software crisis.

Uploaded by

malviyamishra19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Software Engineering Unit 1

The document provides an overview of software, its applications, and the importance of software engineering, emphasizing that software is developed rather than manufactured. It discusses various software development life cycle (SDLC) models, including the Waterfall, Incremental, RAD, Prototyping, and Spiral models, along with their advantages and disadvantages. Additionally, it highlights the need for adaptability in legacy software and the challenges posed by the software crisis.

Uploaded by

malviyamishra19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 44

UNIT 1- INTRODUCTION

WHAT IS SOFTWARE?

Software is: (1) instructions (computer programs) that when executed provide desired
features, function, and performance;
(2)enable the programs to adequately manipulate information and (3) documentation
that describes the operation and use of the programs.

 Software is developed or engineered, it is not manufactured in the


classical sense.
 Software doesn't "wear out."
 Although the industry is moving toward component-based construction,
most
software continues to be custom-built.
SOFTWARE APPLICATIONS

 system software
 application software
 engineering/scientific software
 embedded software
 WebApps (Web applications)
 AI software
LEGACY SOFTWARE

Why must it change?


• software must be adapted to meet the needs of new computing environments or
technology.
• software must be enhanced to implement new business requirements.
• software must be extended to make it interoperable with other more modern systems or
databases.
• software must be re-architected to make it viable within a network environment
SOFTWARE ENGINEERING

 Some realities:
 a concerted effort should be made to understand the problem before a software solution is developed
 design becomes a prime activity
 software should exhibit high quality
 software should be maintainable
 The definition:
[Software engineering is] the establishment and use of sound engineering principles in
order to obtain economically software that is reliable and works efficiently on real machines.
 The IEEE definition:
Software Engineering: (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software; that is, the application of
engineering to software. (2) The study of approaches as in (1).
S/W ENGG IS A LAYERED TECHNOLOGY
SOFTWARE CHARACTERISTICS
SOFTWARE CRISIS

 Software Crisis is a term used in computer science for the difficulty of writing useful and
efficient computer programs in the required time
 Reasons can be:

 Solution: SOFTWARE ENGINEERING


VARIOUS SDLC MODELS

 WATERFALL MODEL
 PROTOTYPE MODEL
 SPIRAL MODEL
 EVOLUTIONARY DEVELOPMENT MODELS
 ITERATIVE ENHANCEMENT MODELS
WATERFALL MODEL (CLASSIC LIFE CYCLE MODEL)
POINTS TO PONDER(WATERFALL MODEL)

 Systematic, sequential approach for software development


 Oldest paradigm for software engineering
 Also sometimes called linear model
 Real projects rarely follow it. Why?
Linear nature. Customer need a lot of patience to see the end product. Blocking
states occurs where some team members of later phases wait until earlier phases complete their work.
For completing all phases in a concrete fashion huge and highly skilled workmen are necessary.

Useful at places where requirements are fixed and work need to be completed in a linear manner.
THE INCREMENTAL MODEL

 It delivers a series of releases, called increments, that provide progressively more


functionality for the customers as each increment is delivered.
 Thus combines waterfall model elements , applied in incremental fashion.
 Each linear sequence produces deliverables “increments” of the software
 Useful when staffing is less. Early increments can be implemented with fewer people and
later more staff can be hired.
ADVANTAGES AND DISADVANTAGES

 Advantages –
  Error Reduction (core modules are used by the customer from the beginning of the phase and
then these are tested thoroughly)
  Uses divide and conquer for breakdown of tasks.
  Lowers initial delivery cost.
  Incremental Resource Deployment.

 Disadvantages –
  Requires good planning and design.
  Total cost is not lower.
  Well defined module interfaces are required
THE RAD (RAPID APPLICATION DEVELOPMENT) MODEL:

 Rapid Application Development (RAD) is an incremental software


development process model which is a “high-speed” adaptation of
the linear sequential model in which rapid development is achieved
by using component-based construction. If requirements are well
understood and project scope is constrained, the RAD process
enables a development team to create a “fully functional system”
within very short time periods, such as in 60 to 90 days.
ADVANTAGES –

 Use of reusable components helps to reduce the cycle time of the project.
 Feedback from the customer is available at initial stages.
 Reduced costs as fewer developers are required.
 Use of powerful development tools results in better quality products in comparatively
shorter time spans.
 The progress and development of the project can be measured through the various stages.
 It is easier to accommodate changing requirements due to the short iteration time spans.
DISADVANTAGES

• The use of powerful and efficient tools requires highly skilled professionals.
• The absence of reusable components can lead to failure of the project.
• The team leader must work closely with the developers and customers to close the project
in time.
• The systems which cannot be modularized suitably cannot use this model.
• Customer involvement is required throughout the life cycle.
• It is not meant for small scale projects as for such cases, the cost of using automated tools
and techniques may exceed the entire budget of the project.
ACTIVITY TIME

SCENARIO:
ABC - Honda 2- wheeler spare parts manufacturer industry - is searching for some s/w developer who
can create their website.
Client Profile: ABC is a well renowned name in Delhi NCR region for manufacturing and wholesale
selling of spare parts of two-wheeler of Honda company. It is one among the leading company in this
business. Yearly turnover is around 80 crores. It is clean and highly reputed industry.
Case 1: Reputation is most and most important thing for ABC. They are ready to pay but they want
best results. Ready to invest more time even. So, they have invested a lot of time and money to come
up with very clear requirements.
Case 2: Due to some top management and developer conflicts, company now started doubting the
work and want to see some output . It cannot wait anymore
Case 3 : Developer has crossed the timeline …company want the deliverables in next 90 days.
EVOLUTIONALRY PROCESS MODELS

 Process model which evolves more in each iteration.


 Thus evolutionary process models are iterative
 They are characterized in a manner that enables software engineers to develop
increasingly more complete versions of the software.
Some if them are:
Prototyping
Spiral Model
Concurrent Development Model
PROTOTYPING
 Prototyping: Often, a customer defines a set of general
objectives for software but does not identify detailed
requirements for functions and features.
 In other cases, the developer may be unsure of the
efficiency of an algorithm, the adaptability of an operating
system, or the form that human-machine interaction
should take.
 In these, and many other situations, a prototyping
paradigm may offer the best approach.
 Although prototyping can be used as a stand-alone
process model, it is more commonly used as a technique
that can be implemented within the context of any one of
the process models.
THE PROTOTYPE MODEL
ADVANTAGES –

 The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.
 New requirements can be easily accommodated as there is scope for refinement.
 Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
 The developed prototype can be reused by the developer for more complicated projects in
the future.
 Flexibility in design.
DISADVANTAGES –
 Costly w.r.t time as well as money.
 There may be too much variation in requirements each time the prototype is evaluated by
the customer.
 Poor Documentation due to continuously changing customer requirements.
 It is very difficult for the developers to accommodate all the changes demanded by the
customer.
 There is uncertainty in determining the number of iterations that would be required before
the prototype is finally accepted by the customer.
 After seeing an early prototype, the customers sometimes demand the actual product to be
delivered soon.
 Developers in a hurry to build prototypes may end up with sub-optimal solutions.
 The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.
THE SPIRAL MODEL

 Originally proposed by Barry Boehm, the spiral model is an evolutionary software process
model that couples the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model.
 It provides the potential for rapid development of increasingly more complete versions of
the software.
 Boehm describes the model in the following manner:
 "The spiral development model is a risk-driven process model generator that is used to guide multi-
stakeholder concurrent engineering of software intensive systems.
 It has two main distinguishing features. One is a cyclic approach for incrementally growing a
system’s degree of definition and implementation while decreasing its degree of risk. The other is a
set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually
satisfactory system solutions."
KEY POINTS : SPIRAL MODEL

 Using the spiral model, software is developed in a series of evolutionary releases.


 During early iterations, the release might be a model or prototype.
 During later iterations, increasingly more complete versions of the engineered system are
produced.
 A spiral model is divided into a set of framework activities defined by the software
engineering team.
 Each of the framework activities represent one segment of the spiral path illustrated in
Figure.
 The spiral model can be adapted to apply throughout the life of the computer software.
SEGMENTS:

 SEGMENT 1 includes following activities: Communication (requirement gathering,

customer evaluation and understanding)


 SEGMENT 2 includes following activities: Planning (estimation, scheduling and risk
analysis)
 SEGMENT 3 includes following activities: Modeling (analysis and design)
 SEGMENT 4 includes following activities: Construction (coding and testing)
 SEGMENT 5 includes following activities: Deployment (delivery and feedback)
CIRCUITS AROUND THE SPIRAL:
 As this evolutionary process begins, the software team performs activities that are implied
by a circuit around the spiral in a clockwise direction, beginning at the center.
 Risk is considered as each revolution is made.
 Anchor point milestones - a combination of work products and conditions that are attained
along the path of the spiral - are noted for each evolutionary pass.
 The first circuit around the spiral might result in the development of a product specification
and concept development of project, that starts at the core of the spiral and continues for
multiple iterations until concept development is complete.
 Each pass through the planning region results in adjustments to the project plan.
 Cost and schedule are adjusted based on feedback derived from the customer after
delivery.
 In addition, the project manager adjusts the planned number of iterations required to
complete the software.
 The version or build or deliverable produced at the end of Deployment phase of the last
circuit, is the final software product.
ADVANTAGES OF SPIRAL MODEL:
DISADVANTAGES OF SPIRAL MODEL:
ITERATIVE ENHANCEMENT MODEL

 In this Model, you can start with some of the software specifications and develop the first
version of the software. After the first version if there is a need to change the software,
then a new version of the software is created with a new iteration. Every release of the
Iterative Model finishes in an exact and fixed period that is called iteration.
 The Iterative Model allows the accessing earlier phases, in which the variations made
respectively. The final output of the project renewed at the end of the Software
Development Life Cycle (SDLC) process.
WHEN TO USE THE ITERATIVE MODEL?

 When requirements are defined clearly and easy to understand.


 When the software application is large.
 When there is a requirement of changes in future.
ADVANTAGE

 Testing and debugging during smaller iteration is easy.


 A Parallel development can plan.
 It is easily acceptable to ever-changing needs of the project.
 Risks are identified and resolved during iteration.
 Limited time spent on documentation and extra time on designing.
DISADVANTAGE

 It is not suitable for smaller projects.


 More Resources may be required.
 Design can be changed again and again because of imperfect requirements.
 Requirement changes can cause over budget.
 Project completion date not confirmed because of changing requirements.

You might also like