It contains phases of software development, software development process models and role of metrics and measurement.
Size: 829.44 KB
Language: en
Added: Mar 06, 2025
Slides: 105 pages
Slide Content
RAJIV GANDHI INSTITUTE OF PETROLEUM
TECHNOLOGY, JAIS, AMETHI
B.Tech. 3
rd
Year
Software Engineering (CS331)
By
Dr.Kalka Dubey
Department of Computer Science and Engineering
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Engineering (CS331)
09 (3-0-0)
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Syllabus
UNIT 1: Introduction of Software Engineering:
UNIT 2: Software Requirement Specification (SRS)
UNIT 3: Planning a Software Project
UNIT 4: System Design
UNIT 5: Detailed Design
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Objective:
•To understand the professional, ethical standards in the
software/system development and modification process,
especially by accepting responsibility for the
consequences of design decisions and design
implementations.
•The main objectives are how to develop software
efficiently in terms of cost, effort, and quality.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Text and Referred Books
Text books:
1. Software Engineering Roger Pressman, McGraw-Hill Science
2. Fundamentals of Software Engineering, Rajeev mall, PHI
3. Software Engineering: Theory and Practice, 2nd ed., S. L. P fleeger, Pearson Education.
Reference books:
1. Software Engineering Concepts by Richard Fairley, McGraw-Hill Science
2. An Integrated Approach to Software Engineering, Pankaj Jalote, Springer Science & Business
Media
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Outcome of the Course
After successfully completing this module the student will be able to explain the
software engineering principles and techniques that are used in developing quality
software products.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
UNIT-I (Introduction)
➢ Phases in Software development
➢ Software development process models
➢Role of metrics and measurement.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software
•The economies of all developed nations are dependent on software.
•More and more systems are software controlled.
•Software engineering is concerned with theories, methods and tools for
professional software development.
•Expenditure on software represents a significant fraction of GDP in all
developed countries.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software costs
•Software costs often dominate computer system costs.
•The costs of software on a PC are often greater than the hardware cost.
•Software costs more to maintain than it does to develop.
•For systems with a long life, maintenance costs may be several times development
costs.
•Software engineering is concerned with cost-effective software development.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software products
•Generic products
•Stand-alone systems that are marketed and sold to any customer who wishes to
buy them.
•Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists.
•Customized products
•Software that is commissioned by a specific customer to meet their own needs.
•Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Question Answer
What is software? Computer programs and associated documentation. Software products may
be developed for a particular customer or may be developed for a general
market.
What are the attributes of good software? Good software should deliver the required functionality and performance
to the user and should be maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is concerned with
all aspects of software production.
What are the fundamental software engineering
activities?
Software specification, software development, software validation and
software evolution.
What is the difference between software engineering
and computer science?
Computer science focuses on theory and fundamentals; software
engineering is concerned with the practicalities of developing and
delivering useful software.
What is the difference between software engineering
and system engineering?
System engineering is concerned with all aspects of computer-based
systems development including hardware, software and process
engineering. Software engineering is part of this more general process.
Question Answer
What are the key challenges facing software
engineering?
Coping with increasing diversity, demands for reduced delivery times
and developing trustworthy software.
What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are testing
costs. For custom software, evolution costs often exceed development
costs.
What are the best software engineering techniques
and methods?
While all software projects have to be professionally managed and
developed, different techniques are appropriate for different types of
system. For example, games should always be developed using a series
of prototypes whereas safety critical control systems require a complete
and analyzable specification to be developed.
What differences has the web made to software
engineering?
The web has led to the availability of software services and the
possibility of developing highly distributed service-based systems.
Web-based systems development has led to important advances in
programming languages and software reuse.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet the changing needs
of customers. This is a critical attribute because software change is an inevitable
requirement of a changing business environment.
Dependability and securitySoftware dependability includes a range of characteristics including reliability, security
and safety. Dependable software should not cause physical or economic damage in the
event of system failure. Malicious users should not be able to access or damage the
system.
Efficiency Software should not make wasteful use of system resources such as memory and processor
cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation,
etc.
Acceptability Software must be acceptable to the type of users for which it is designed. This means that
it must be understandable, usable and compatible with other systems that they use.
Software engineering
•Software engineering is an engineering discipline that is concerned with all
aspects of software production from the early stages of system specification
through to maintaining the system after it has gone into use.
•Engineering discipline
•Using appropriate theories and methods to solve problems bearing in mind
organizational and financial constraints.
•All aspects of software production
•The technical process of development.
•Project management and the development of tools, methods etc. to support software
production.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Importance of software engineering
•More and more, individuals and society rely on advanced software systems.
We need to be able to produce reliable and trustworthy systems economically
and quickly.
•It is usually cheaper, in the long run, to use software engineering methods and
techniques for software systems rather than just write the programs as if it
was a personal programming project.
•For most types of system, the majority of costs are the costs of changing the
software after it has gone into use.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software process activities
•Software specification, where customers and engineers define the software
that is to be produced and the constraints on its operation.
•Software development, where the software is designed and programmed.
•Software validation, where the software is checked to ensure that it is what
the customer requires.
•Software evolution, where the software is modified to reflect changing
customer and market requirements.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
General issues that affect most software
•Heterogeneity
•Increasingly, systems are required to operate as distributed systems across
networks that include different types of computer and mobile devices.
•Business and social change
•Business and society are changing incredibly quickly as emerging economies
develop and new technologies become available. They need to be able to change
their existing software and to rapidly develop new software.
•Security and trust
•As software is intertwined with all aspects of our lives, it is essential that we can
trust that software.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Application types
•Stand-alone applications
•These are application systems that run on a local computer, such as a PC.
•They include all necessary functionality and do not need to be connected to a
network.
•Interactive transaction-based applications
•Applications that execute on a remote computer and are accessed by users from
their own PCs or terminals.
•These include web applications such as e-commerce applications.
•Embedded control systems
•These are software control systems that control and manage hardware devices.
• Numerically, there are probably more embedded systems than any other type of
system.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Application types
•Batch processing systems
•These are business systems that are designed to process data in large batches.
•They process large numbers of individual inputs to create corresponding outputs.
•Entertainment systems
•These are systems that are primarily for personal use and which are intended to
entertain the user.
•Systems for modelling and simulation
•These are systems that are developed by scientists and engineers to model physical
processes or situations, which include many, separate, interacting objects.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software engineering fundamentals
•Some fundamental principles apply to all types of software system,
irrespective of the development techniques used:
•Systems should be developed using a managed and understood development
process.
•Dependability and performance are important for all types of system.
•Understanding and managing the software specification and requirements (what
the software should do) are important.
•Where appropriate, you should reuse software that has already been developed
rather than write new software.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software engineering and the web
•The Web is now a platform for running applications and organizations are
increasingly developing web-based systems rather than local systems.
•Web services allow application functionality to be accessed over the web.
•Cloud computing is an approach to the provision of computer services
where applications run remotely on the ‘cloud’.
•Users do not buy software buy pay according to use.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Web software engineering
•Software reuse is the dominant approach for constructing web-based
systems.
•Web-based systems should be developed and delivered incrementally.
•User interfaces are constrained by the capabilities of web browsers.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Web-based software engineering
•Web-based systems are complex distributed systems.
•The fundamental ideas of software engineering apply to web-based software
in the same way that they apply to other types of a software system.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phases in Software development
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Introduction to SDLC – Definitions
•System Development Life Cycle (SDLC) Also know as Software Development
Life Cycle.
•It is a systematic approach to solving business problems.
•It is the process of creating or altering software or system, and the models and
methodologies that people use to develop Systems or Software.
•It is the logical process used by a systems analyst to develop an information
system, including requirements, validation, training, and user ownership
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Development Life Cycle (SDLC)
Phase 1 – Planning
•Identifying Information
•Determining Information Requirements
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Identifying Information
•Identifying Information
•To generate a high-level view of the intended Software and determine the goals of the
Software.
•Problems: basic problems and technical problems
•Opportunities: business plan
•Competitors : market share / initiator
•Objectives and Goals
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
•Determining Information Requirements
•Interview management, operations personnel
•Gather systems/operating documents
•Use questionnaires
•Observe the system and personnel involved
•who, what, where, when, why, how
Determining Information Requirements
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 2 – Analyzing
•Analyzing system needs
•Create data flow diagrams.
•Document procedural logic for data flow diagram processes.
•Complete the data dictionary.
•Make semi structured decisions.
•Prepare and present the system proposal.
•Recommend the optimal solution to management.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 3 – Designing
•Designing the recommended system
•In systems design functions and operations are described in detail, including screen
layouts, business rules, process diagrams and other documentation.
•The output of this stage will describe the new system as a collection of modules or
subsystems
•Basics
•Design the user interface and produce program specifications
•Techniques
•Design system controls, files and/or database and produce decision trees or tables
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 4 – Developing
•Developing and documenting software
•Design computer programs using structure charts, and pseudocode
•Walkthrough program design
•Write computer programs / coding
•Document software with help files, procedure manuals, and Web sites with Frequently Asked
Questions
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Coding
•Modular & subsystem programming code will be accomplished during this
stage.
•It is interlinked with the testing stage.
•Here overall coding will be tested.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 5 – Testing
•Testing
•Test and debug computer programs
•Test the computer system
•Enhance system
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Types of Testing
•Types of testing:
•Data set testing
•Unit testing
•System testing
•Integration testing
•Black box testing
•White box testing
•Module testing
•Regression testing
•Automation testing
•User acceptance testing
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 6 – Evaluation & Maintenance
•Implementing and Evaluating the software
•Plan conversion
•Train users
•Purchase and install new equipment
•Convert files
•Install system
•Review and evaluate system
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Phase 6 – Evaluating & Maintenance
•The deployment includes changes and enhancements.
•Maintaining is the crucial aspect of SDLC
Typical Effort Distribution ?
•Req. - ?
•Design - ?
•Coding - ?
•Testing - ?
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Typical Effort Distribution
•Distribution of effort :
•Req. - 10-20%
•Design - 10-20%
•Coding - 20-30%
•Testing - 30-50%
•Coding is not the most expensive!
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Distribution of effort
•How programmers spend their time?
•Writing programs ?
•Reading programs and manuals ?
•Job communication ?
•Others ?
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Distribution of effort…
•How programmers spend their time
•Writing programs - 13%
•Reading programs and manuals - 16%
•Job communication - 32%
•Others - 39%
•Programmers spend more time in reading programs than in writing them.
•Writing programs is a small part of their lives.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
When are defects introduced?
•The distribution of error occurrences by phase is
•Req. - 20%
•Design - 30%
•Coding - 50%
•Defects can be injected at any of the major phases.
•Cost of latency: The cost of defect removal increases exponentially
with latency time.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Strengths of SDLC
•Control
•Monitor large projects
•Detailed steps
•Evaluate costs and completion targets
•Documentation
•Well defined user input
•Ease of maintenance
•Development and design standards
•Tolerates changes
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Weaknesses of SDLC
•Increased development time
•Increased development cost
•Systems must be defined up front
•Rigidity / inflexibility
•Hard to estimate costs, project overruns
•User input is sometimes limited
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Development Process
Models
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Development Process
•Process is distinct from product
•products are outcomes of executing a process on a project.
•Software Engineering focuses on the process.
•Premise: Proper processes will help achieve project objectives of high
quality.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Process
•Process: A particular method, generally involving a number of steps.
•Software Process: A set of steps, along with ordering constraints on
execution, to produce software with the desired outcome.
•A software process is comprised of many component processes.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Key Processes
Software Process
Software
Development
Engineering
Project
Management
Other
Configuration
management
Change
management
Inspection
process
Process
Improvement
Process
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Dev Processes
•Two major processes
•Engineering– “development and quality steps needed to engineer the software”
•Project management – “planning and controlling the development process”
•Key Roles
•Developers execute Engineering process
•Software architects, lead developers, ...
•Project manager(s) executes the management process
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Development Processes Model
A framework that describes the activities performed at
each stage of a software development project.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Software Development Processes Model
•Common Models
•Waterfall – The oldest and most widely used
•Prototyping – Prototype, followed by Waterfall
•V-Model- A variant of the waterfall
•Iterative – Used widely in product development.
•Rapid Application Development (RAD) – Quick
•Agile Development Models- Lightweight methodologies
•Spiral Model-
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Waterfall Model
•The Waterfall model is the most obvious way to develop software.
•Linear sequence of stages/phases
•Requirements -> Analysis –> Design –> Code –> Test –> Deploy –> Maintenance
•A phase starts only when the previous one has been completed; no
feedback!
•The phases partition the project, each addressing a separate concern.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Waterfall Model
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
•Linear ordering implies each phase should have some output.
•The output must be validated/certified.
•Outputs of earlier phases: work products
•Common outputs of a waterfall: SRS, project plan, design docs, test plan
and reports, final code, supporting docs.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Waterfall Model
Waterfall Advantages
•Natural approach for problem solving
•Conceptually simple, cleanly divides the problem into distinct
independent phases
•Easy to administer in a contractual setup – each phase is a milestone
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Waterfall disadvantages
•No feedback paths:
•Challenging to accommodate change requests.
•Inefficient error corrections.
•No overlapping of phases.
•Very document-oriented, requiring docs at the end of each phase.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Waterfall Usage
•Well suited for projects where requirements can be understood easily and
technology decisions are easy.
•It has been used widely .
•For standard/familiar type of projects it still may be the most optimum.
•Well suited to the outsourcing model.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Summary – Waterfall Model
Strength Weakness Types of Projects
Simple
Easy to execute
Intuitive and logical
Easy contractually
All or nothing – too risky.
Requirement frozen early.
May choose outdated
hardware/technologies.
Disallows changes.
No feedback from users.
Well understood problems,
automation of existing manual
systems
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Model
•The prototyping model can be considered to be an extension of the waterfall
model.
•This model suggests building a working prototype of the system, before
development of the actual software.
•A prototype is a toy and implementation of a system.
•It has limited functional capabilities, low reliability, and inefficient
performance as compared to the actual software.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Model
•A prototype can be built very quickly by using several shortcuts.
•For example, tools based on fourth generation languages (4GL) may be
used to construct the prototype for the GUI parts.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Model
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Development of prototype
•Starts with the initial requirements.
•Only key features which need better understanding are included in the
prototype.
•No point in including those features that are well understood.
•Feedback from users taken to improve the understanding of the
requirements.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping
•Cost can be kept low
•Build only features needing clarification
•“quick and dirty” – quality not important, scripting etc can be used
•Things like exception handling, recovery, standards are omitted
•Cost can be a few % of the total
•Learning in prototype building will help in building the software, besides
improved requirements
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Advantages
•Requirement will be more stable and more likely to satisfy user needs.
•Early opportunity to explore scale/performance issues.
•Ability to modify or cancel the project early.
•Enhanced user engagement.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Disadvantage
•Potential hit on cost and schedule.
•Potential false sense of security if prototype does not focus on key (high risk) issues.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Prototyping Model
•Applicability:
•When requirements are hard to elicit.
•When confidence in requirement is low.
•Where requirements are not well understood.
•When the user needs drive the design.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
V-Model Model
•A popular development process model, V-model is a variant of the
waterfall model.
•Verification and validation activities are carried out throughout the
development life cycle, and therefore the chances of bugs in the work
products considerably reduce.
• Suitable for use in projects concerned with development of safety-critical
software that are required to have high reliability.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
V-Model Model
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
V-Model Model
•In each development phase, along with the development of a work
product, test case design and the plan for testing the work product are
carried out, whereas the actual testing is carried out in the validation
phase.
•In the validation phase, testing is carried out in three steps—unit,
integration, and system testing.
•The purpose of these three different steps of testing during the validation
phase is to detect defects that arise in the corresponding phases of
software development— requirements analysis and specification, design,
and coding respectively
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
V-Model Advantages
•Testing activities (test case design, test planning, etc.) are carried out in parallel with
the development activities.
•Test cases are designed when the schedule pressure has not built up, the quality of the
test cases is usually better.
•The test team is reasonably kept occupied throughout the development cycle in
contrast to the waterfall model where the testers are active only during the testing
phase. This leads to more efficient manpower utilization.
•The test team is associated with the project from the beginning.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
V-Model Disadvantage
•Being a derivative of the classical waterfall model, this model inherits most of the
weaknesses of the waterfall model.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development Model
•The Iterative waterfall model has been very popular during the 1970s and
1980s.
•The main change brought about by the iterative model to the waterfall
model is in the form of providing feedback paths from every phase to its
preceding phases.
•The feedback paths allow for correcting errors committed by a
programmer during some phase
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development Model
•No matter how careful a programmer may be, might end up committing
some mistake or other while carrying out a life cycle activity.
•If during the testing phase a design error is identified, then the feedback
path allows the design to be reworked and the changes to be reflected in
the design documents and all other subsequent documents.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Enhancement
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development
•Most Software Products follow it.
•Used commonly in customized development also
•Businesses want quick response for software
•Cannot afford the risk of all-or-nothing
•Newer approaches use in iterative development.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development
•Benefits
•Get-as-you-pay
•feedback for improvement
•Drawbacks
•Architecture/design may not be optimal
•Amount of refactoring may increase
•Total cost may increase
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Iterative Development
•Applicability
•where response time is important,
•risk of long projects cannot be taken,
•all reqirement not known
•Execution
•Each iteration is a mini waterfall – decide the specs, then plan the iteration
•Length of iteration driven by amount of new functionality to be added in an
iteration
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Rapid Application Development (RAD)
•The rapid application development (RAD) model was proposed in the
early nineties.
• It is an attempt to overcome the rigidity of the waterfall model that
makes it difficult to accommodate any change requests from the
customer.
• It proposed a few radical extensions to the waterfall model.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Rapid Application Development (RAD)
•This model has the features of both prototyping and evolutionary
models.
• In this model, prototypes are constructed, and incrementally the
features are developed and delivered to the customer.
• But unlike the prototyping model, the prototypes are not thrown away
but are enhanced and can be used in software construction.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Rapid Application Development (RAD)
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Goals of the RAD model
•To decrease the time taken and the cost incurred to develop software
systems.
•To limit the costs of accommodating change requests.
•To reduce the communication gap between the customer and the
developers.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Applicability of RAD Model
•Customized software
•Non-critical software
•Highly constrained project schedule
•Large software
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
RAD versus Prototyping model
•In the prototyping model, the developed prototype is primarily used by
the development team to gain insights into the problem, choose between
alternatives, and customer feedback.
•The code developed during prototype construction is usually thrown
away.
•In contrast, in RAD it is the developed prototype that evolves into the
deliverable software.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Agile Development Models
•The Agile software development model was proposed in the mid-1990s
to overcome the serious shortcomings of the waterfall model.
•The Agile model was primarily designed to help a project to adapt to
change requests quickly.
•A major aim of the Agile model is to facilitate quick project
completion.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Goals of the Agile Development Models
•Working software over comprehensive documentation.
•Frequent delivery of incremental versions of the software to the
customer in intervals of a few weeks.
•Requirement change requests from the customer are encouraged and
are efficiently incorporated.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Advantages and disadvantages of Agile Model
•The agile Model derive much of their agility by relying on the tacit
knowledge of the team members about the development project and
informal communications to clarify issues, rather than spending
significant amounts of time in preparing formal documents and
reviewing them.
•Eliminates some overhead
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Advantages and disadvantages of Agile Model
•Lack of formal documents leaves scope for confusion and important
decisions taken during different phases can be misinterpreted at later
points of time by different team members.
•In the absence of any formal documents, it becomes difficult to get
important project decisions such as design decisions to be reviewed
by external experts.
•When the project completes and the developers disperse, maintenance
can become a problem.
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
Spiral Model
•Proposed by Boehm in 1988.
•Each loop of the spiral represents a phase of the software process:
•the innermost loop might be concerned with system feasibility,
•the next loop with system requirements definition,
•the next one with system design, and so on.
•There are no fixed phases in this model, the phases shown in the figure are just
examples.
Spiral Model
Determine
Objectives
Identify &
Resolve Risks
Develop Next
Level of Product
Customer
Evaluation of
Prototype
Spiral Model
•The team must decide:
•how to structure the project into phases.
•Start work using some generic model:
•add extra phases
•for specific projects or when problems are identified during a project.
•Each loop in the spiral is split into four sectors (quadrants).
Objective Setting (First Quadrant)
•Identify objectives of the phase,
•Examine the risks associated with these objectives.
•Risk:
•any adverse circumstance that might hamper the successful completion of a software project.
•Find alternate solutions possible.
Risk Assessment and Reduction
•For each identified project risk,
•a detailed analysis is carried out.
•Steps are taken to reduce the risk.
•For example, if there is a risk that the requirements are inappropriate:
•a prototype system may be developed.
Development and Validation
•Development and Validation (Third quadrant):
• develop and validate the next level of the product.
•Review and Planning (Fourth quadrant):
•review the results achieved so far with the customer and plan the next iteration around the
spiral.
•With each iteration around the spiral:
•progressively more complete version of the software gets built.
When is best to use it?
Many reasons to use the spiral method are listed below:
•For high-risk projects.
•The client is not sure about what requirements they want.
•When the new product needs customer feedback to improve it.
•Significant/major changes.
Benefits & drawbacks:
Benefits Drawbacks
Allows the use prototyping Management is more complex
Client can see the system early on Should not be used for small projects
Changes in requirements can be made easilyThis method requires a lot of documentation
Comparison of Different Life Cycle Models
•Iterative model
•most widely used model.
•But, suitable only for well-understood problems.
•Prototype model is suitable for projects not well understood:
•user requirements
•technical aspects
Software Measurement and Metrics
•Software metrics are a standard of measure that contains many activities
which involve some degree of measurement.
•It can be classified into three categories:
➢ Product metrics
➢ Process metrics
➢ Project metrics.
Software Measurement and Metrics
•Product metrics describe the characteristics of the product:
➢ Size of the Product
➢Complexity
➢Design features
➢Performance
➢Quality level.
Software Measurement and Metrics
•Process metrics can be used to improve:
➢ Software development
➢ Maintenance
•Examples include the effectiveness of defect removal during development,
the pattern of testing defect arrival, and the response time of the fix
process.
Software Measurement and Metrics
•Project metrics describe:
➢ Project characteristics
➢ Execution
•Examples include the number of software developers, the staffing
pattern over the life cycle of the software, cost, schedule, and productivity.
Scope of Software Metrics
•Software metrics contain many activities which include the following −
➢Cost and effort estimation
➢Productivity measures and model
➢Data collection
➢Quantity models and measures
➢Reliability models
➢Performance and evaluation models
➢Structural and complexity metrics
➢Capability – maturity assessment
➢Management by metrics
➢Evaluation of methods and tools
Unit 1 End
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi
THANKS…..
Dr. Kalka Dubey Assistantt Professor RGIPT Jais Amethi