0% found this document useful (0 votes)
7 views56 pages

Unit 1

The document provides an overview of software engineering, defining software and its characteristics, and outlining the software development life cycle (SDLC) models such as Waterfall, Incremental, and Spiral models. It also discusses software myths, the evolving role of software, and the importance of systematic processes in software development. Additionally, it covers various software types and the significance of risk management and quality assurance in engineering practices.

Uploaded by

21wh1a0546
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)
7 views56 pages

Unit 1

The document provides an overview of software engineering, defining software and its characteristics, and outlining the software development life cycle (SDLC) models such as Waterfall, Incremental, and Spiral models. It also discusses software myths, the evolving role of software, and the importance of systematic processes in software development. Additionally, it covers various software types and the significance of risk management and quality assurance in engineering practices.

Uploaded by

21wh1a0546
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/ 56

Software

Engineering
Contents
Introduction to Software Engineering
o What is Software
o Characteristics of Software
o The evolving role of software
o Changing nature of software
o Software myths
What is software??

• Software is a set of executable program codes ,associated


with libraries and documentations
Characteristics of Software

• It s developed or Engineered not manufactured


• Software does not wear out
• Custom built
What is Software Engineering
• Software Engineering is the process of designing,
developing, testing, and maintaining software. It is a
systematic and disciplined approach to software development
that aims to create high-quality, reliable, and maintainable
software.
Evolving role of Software

Software has dual role


1.Product
2.Process(Vehicle)
Changing nature of Software
Continuous…..

• Software is everywhere and anywhere


• It keeps on changing from one situation to another
• It will be categorized into 7 types
• System software: Eg- Compiler,file management
• Application software:Eg- Calculator,Alaram ,C ,Java & MS
Word
• Engineering and Scientific calculations: Eg: Calculus and
Statistics
• Embedded Software: lies inside hardware Eg: Microwave oven
• ProductLine software : Computer graphics and DBMS
• Web Application software: Eg-Websites
• AI software: Robotics and Gaming
Legacy Software
• Old software
• Developed decades ago
• Inextendible design
• No documentation
• Cannot meet needs of new technology
Software myths
• Management myths
Myth 1:Available standards and Procedures are enough
• Reality: The book of standards may very well exist but, is it used?
Myth 2:We can add workers when we get behind schedule
• Reality: In software development, when new team members join, existing
ones invest time in teaching them about the project
Myth 3: I can just relax and let that firm built it if we give to third party
• Reality :If an organization does not understand how to manage and control
software projects internally
• Customer myths:
Myth 1:General statement of project is enough, details can
be filled later
• Reality :Unclear objectives are a recipe for disaster, even if a
comprehensive and stable statement of requirements is
challenging.
Myth 2: Software requirements can be changed easily because software is
flexible.
• Reality: Changing requirements can increase the cost of project
• Practitioner/Developer myths:
Myth 1:Once the program is done ,job is done
• Reality : After delivering to customer ready to change
anything
Myth 2: The only deliverable work product for a successful project is the
working program
• Reality: Assess the quality before completion of code
 Myth 3: The only deliverable work product is the software
program code
• Reality: Provide clear information about product and
documentation
A Generic View of Process
Layered technology
A Process framework
The Capability Maturity Model Integration(CMMI)
Process patterns
Process assessment
Personal and team process models
Layered Technology
Framework activities

Communication
Planning
Modelling-Analysis and Design
Construction
Deployment
Process Framework
Umbrella Activities
Software project tracking and control
Risk management
Software quality assurance
Formal technical reviews
Measurement
Software configuration management
Reusability management
Work product preparation and production
Capability Maturity Model
Integration
Process Patterns

• Software process is a collection of patterns


• It has a process template(have all related features of the
patterns)
• Process template include:
Pattern Name
Intent: Objective
Type
 Task: Requirements Gathering
 Stage: Framework
 Phase :Sequence of framework activities(Model)
 Initial Context
Problem
Solution
Resulting Context: Advantages & Disadvantages
Related Problems
Process Assessment
• Techniques in
Personal and team process models
SDLC
(Software Development

Life Cycle)
Water fall model
Evolutionary model

• Evolutionary model is a combination of Iterative and


Incremental model of software development life cycle.
• Evolutionary model suggests breaking down of work into
smaller parts, prioritizing them and then delivering those
parts to the customer one by one.
Types of Evolutionary Process
Models

1.Iterative Model(Prototype and Spiral model)


2.Incremental Model(Incremental and RAD)
Incremental Model

• Incremental Model is a process of software development


where requirements divided into multiple standalone modules
of the software development cycle
When we use the Incremental Model

• A project has a lengthy development schedule.


• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• You can develop prioritized requirements first.
Advantage of Incremental Model

• Errors are easy to be recognized.


• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.
Disadvantage of Incremental Model

• Need for good planning


• Total Cost is high.
• Well defined module interfaces are needed.
RAD Model
• In the RAD model, the functional modules are developed in
parallel as prototypes and are integrated to make the
complete product for faster product delivery.
Advantages

• Changing requirements can be accommodated.


• Progress can be measured.
• Iteration time can be short with use of powerful RAD tools.
• Productivity with fewer people in a short time.
• Reduced development time.
Disadvantages

• Only system that can be modularized can be built using RAD.


• Requires highly skilled developers/designers.
• High dependency on Modelling skill
• Suitable for project requiring shorter development times.
Prototype model

• Dummy model
• Used when customer not clear about requirements
• Also called through away model
Prototype model
Advantage of Prototype Model

1.Reduce the risk of incorrect user requirement


2.Good where requirement are changing/uncommitted
3.Regular visible process aids management
4.Support early product marketing
Disadvantage of Prototype Model

1.An unstable/badly implemented prototype often becomes the final


product.
2.Require extensive customer collaboration
Costs customer money
Needs committed customer

3.Special tools & techniques are required to build a prototype.


4.Prototyping tools are expensive
5.It is a time-consuming process.
Spiral model

• A spiral model diagram shows the project cost as the radius


and the progress in the current phase as the angular degree.
Individual phase starts with a design goal and ends with a
progress review by the developer or client.
Advantages of the Spiral Model
• It emphasizes risk assessment and management throughout
the project lifecycle
• The Spiral Model emphasizes continuous feedback and
refinements to meet customer requirements and ensure
satisfaction.
• The spiral model allows for continuous improvement as each
cycle builds on past lessons and enhances expertise.
Disadvantages of the Spiral Model

• Managing and tracking multiple iterations in the development


process is challenging due to detailed planning and
execution.
• Continuous user involvement in every phase can be
challenging without active engagement, leading to
insufficient feedback and unsatisfactory outcomes.
• The Spiral Model is suitable for large-scale projects that
require flexibility, but not for smaller projects with limited
budgets.
Unified process model

• Used only in object oriented systems


• The Unified Process (UP) is a software development framework
used for object-oriented modeling. The framework is also known
as Rational Unified Process (RUP) and the Open Unified Process
• It defines the order of phases
• It follows an iterative, incremental, architecture-centric, and use-
case driven approach
Phases
• We can represent a unified process model as a series of
cycles. Each cycle ends with the release of a new system
version for the customers. We have four phases in every
cycle:
• Inception
• Elaboration
• Construction
• Transition
Inception

The main goal of this phase involves delimiting the project


scope. This is where we define why we are making this product
in the first place. It should have the following:
• What are the key features?
• How does this benefit the customers?
• Which methodology will we follow?
• What are the risks involved in executing the project?
• Schedule and cost estimates.
Elaboration

We build the system given the requirements, cost, and time


constraints and all the risks involved. It should include the
following:
• Develop with the majority of the functional requirements
implemented.
• Finalize the methodology to be used.
• Deal with the significant risks involved.
Construction

• This phase is where the development, integration, and testing


take place. We build the complete architecture in this phase
and hand the final documentation to the client.
Transition

• This phase involves the deployment, multiple iterations,


releases, and improvements of the software. The users will
test the software, which may raise potential issues. The
development team will then fix those errors.

You might also like