Introduction To Software Engineering

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

INTRODUCTION TO SOFTWARE

ENGINEERING

By
Kritika Yadav
Topics to be covered:
• Introduction
• Components
• Characteristics
• Software Crisis
• Attributes
• SDLC Models
Software Engineering: Definition
Software Engineering is a collection of techniques,
methodologies and tools that help
with the production of

• a high quality software system


• with a given budget
• before a given deadline

while change occurs.


20
4

What is Software?

Data Software Programs

System
Documentation
Document
ation
User
Documentation
5

Software Development Crises

Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
6

What is a Software Process Model?

 Description of the software process that represents one view, such


as the activities, data or roles of people involved.

Examples of views Focus on…

Workflow Activities = human actions.


What is input, output, and dependencies.

Dataflow Activities = transformations of information.


How the input is transformed into output.

Role/Action What is the role of people involved in each step of


the process?
7

Attributes of good software

 Functional attributes (performance; what the system does).


 Non-functional attributes (quality; how the system does it).

Product Characteristic Description


Maintainability Evolution qualities such as Testability, extensibility.
Dependability Reliability, security, safety.
Efficiency Response time, processing time, memory utilization.
Usability Easy to learn how to use the system by target users.
Efficient to use the system by users to accomplish a task.
Satisfying to use by intended users.
8

Activity
 What are the key attributes for..
Cardiac monitor in an ICU
Interactive game Banking system
unit
Players, score, scenes, Client accounts, stocks heart rate, temperature,
theme. bonds, money transfers. blood pressure.
9

Challenges facing software engineering

Challenge Why? Software needs to ..

Different computers, different


Heterogeneity platforms, different support systems.
Cope with this variability.

Businesses are more responsive


Be delivered in shorter time
Delivery  supporting software needs to without compromising quality.
evolve as rapidly.

Software is a part of many aspects of


Demonstrate that it can be
Trust our lives (work, study, leisure). trusted by users.
SDLC Model
A framework that describes the activities
performed at each stage of a software
development project.
Waterfall Model
• Requirements – defines needed
information, function, behavior,
performance and interfaces.
• Design – data structures, software
architecture, interface
representations, algorithmic
details.
• Implementation – source code,
database, user documentation,
testing.
Waterfall Strengths
• Easy to understand, easy to use
• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff, track)
• Works well when quality is more important than cost
or schedule
Waterfall Deficiencies
• All requirements must be known upfront
• Deliverables created for each phase are considered
frozen – inhibits flexibility
• Can give a false impression of progress
• Does not reflect problem-solving nature of software
development – iterations of phases
• Integration is one big bang at the end
• Little opportunity for customer to preview the
system (until it may be too late)
When to use the Waterfall Model
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
Spiral SDLC Model
  Each phase of the Spiral Model is divided into four quadrants as
shown in the above figure. The functions of these four quadrants
are discussed below- 
Objectives determination and identify alternative solutions: Requirements
are gathered from the customers and the objectives are identified, elaborated,
and analyzed at the start of every phase. Then alternative solutions possible for
the phase are proposed in this quadrant. 
Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using the
best possible strategy. At the end of this quadrant, the Prototype is built for the
best possible solution. 
Develop next version of the Product: During the third quadrant, the identified
features are developed and verified through testing. At the end of the third
quadrant, the next version of the software is available. 
Review and plan for the next Phase: In the fourth quadrant, the Customers
evaluate the so far developed version of the software. In the end, planning for
the next phase is started.
Advantages of Spiral Model: 
• Risk Handling: The projects with many unknown risks that occur
as the development proceeds, in that case, Spiral Model is the
best development model to follow due to the risk analysis and risk
handling at every phase. 
• Good for large projects: It is recommended to use the Spiral
Model in large and complex projects. 
• Flexibility in Requirements: Change requests in the Requirements
at later phase can be incorporated accurately by using this model. 
• Customer Satisfaction: Customer can see the development of the
product at the early phase of the software development and thus,
they habituated with the system by using it before completion of
the total product. 
Disadvantages of Spiral Model:

• Complex: The Spiral Model is much more complex than other


SDLC models. 
• Expensive: Spiral Model is not suitable for small projects as it is
expensive. 
• Too much dependability on Risk Analysis: The successful
completion of the project is very much dependent on Risk
Analysis. Without very highly experienced experts, it is going to
be a failure to develop a project using this model. 
• Difficulty in time management: As the number of phases is
unknown at the start of the project, so time estimation is very
difficult. 
Evolutionary Model
• Evolutionary model suggests breaking down of
work into smaller chunks, prioritizing them
and then delivering those chunks to the
customer one by one. 
• The main advantage is that the customer’s
confidence increases as he constantly gets
quantifiable goods or services from the
beginning of the project to verify and validate
his requirements.
Application of Evolutionary Model
• It is used in large projects where you can easily
find modules for incremental implementation.
Evolutionary model is commonly used when
the customer wants to start using the core
features instead of waiting for the full software
• Evolutionary model is also used in object
oriented software development because the
system can be easily portioned into units in
terms of objects
Advantages:
• In evolutionary model, a user gets a chance to
experiment partially developed system
• It reduces the error because the core modules
get tested thoroughly.
Disadvantages:
• Sometimes it is hard to divide the problem
into several versions that would be acceptable
to the customer which can be incrementally
implemented and delivered
Prototype Model
• The Prototyping Model is one of the most popularly
used Software Development Life Cycle Models (SDLC
models).
• This model is used when the customers do not know
the exact project requirements beforehand.
• In this model, a prototype of the end product is first
developed, tested and refined as per customer
feedback repeatedly till a final acceptable prototype
is achieved which forms the basis for developing the
final product. 
FLOW DIAGRAM
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 developers to accommodate all
the changes demanded by the customer.
Uses
• The Prototyping Model should be used when
the requirements of the product are not
clearly understood or are unstable.
• It can also be used if requirements are
changing quickly. 
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. 
Flow Diagram
The various phases of Iterative model are as follows:

• 1. Requirement gathering & analysis: In this phase,


requirements are gathered from customers and
check by an analyst whether requirements will fulfil
or not. Analyst checks that need will achieve within
budget or not. After all of this, the software team
skips to the next phase.
• 2. Design: In the design phase, team design the
software by the different diagrams like Data Flow
diagram, activity diagram, class diagram, state
transition diagram, etc.
3. Implementation: In the implementation,
requirements are written in the coding language and
transformed into computer programmes which are
called Software.
4. Testing: After completing the coding phase,
software testing starts using different test methods.
There are many test methods, but the most
common are white box, black box, and grey box test
methods.
5. Deployment: After completing all the phases,
software is deployed to its work environment.
6. Review: In this phase, after the product
deployment, review phase is performed to check the
behaviour and validity of the developed product.
And if there are any error found then the process
starts again from the requirement gathering.
7. Maintenance: In the maintenance phase, after
deployment of the software in the working
environment there may be some bugs, some errors
or new updates are required. Maintenance involves
debugging and new addition options.
6. Review: In this phase, after the product
deployment, review phase is performed to check the
behaviour and validity of the developed product.
And if there are any error found then the process
starts again from the requirement gathering.
7. Maintenance: In the maintenance phase, after
deployment of the software in the working
environment there may be some bugs, some errors
or new updates are required. Maintenance involves
debugging and new addition options.
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.
Advantages of Iterative Model:

• 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.
Disadvantages of Iterative Model:

• 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.
Thank You

You might also like