UNIT-I
UNIT-I
ENGINEERING
UNIT-I
• Introduction to software, SE
• Software Development Life Cycles
• Analysis
• Design
• Coding and Testing
• Maintenance
• Software Quality Assurance
EVOLUTION OF SOFTWARE
• Operation Manuals :
• User manuals
• System overview, Beginners user tutorial, reference guide
• Operation manuals
• Installation guide, System administration guide
SOFTWARE MYTHS
Hardware Software
• Application Software :
• Application software consists of standalone programs that solve a
specific business need.
• Application software is used to control the business function in real-
time.
• Example : stock market
• Web Applications:
• Web apps is used to build browser-based applications. It is used to create web
pages namely static and dynamic web page. It also used to link files as a
hyperlink .
• Ex. Railway Reservation System
A quality Focus
• Every organization is rest on its commitment to quality.
Process:
• The processes define the tasks to be performed and the order in which
they are to be performed – what needs to be done
LAYERED TECHNOLOGY
Methods:
• It provide the technical aspects means how-to build a software.
Tools:
• Provide automated or semi-automated support for the process,
methods and quality control.
• The tools are combined so that information created by one tool can be
used by another tool, Example : computer-aided software
engineering (CASE) Tool)
CASE TOOLS
• Maintenance Phase
• Bugzilla for defect tracking
PROCESS FRAMEWORK
PROCESS FRAMEWORK
It is performed It is performed
in Small Project in Large Project
It is more about
It is more about
development of a project
Development
+
Monitoring of a
project
FRAMEWORK ACTIVITIES-
CPMCD
FRAMEWORK ACTIVITIES
(CPMCD)
• Communication:
• Communication with customers, stakeholders, team members
• It results into requirements gathering and related activities
• Planning:
• Workflow that needs to be followed for development
• Software project plan- Describe technical task, risk Analysis, cost
estimation, work schedule.
• Modeling:
• Developer and customer both understand the requirements (Analysis
of requirements) & Design of software – Top Down or Bottom Up
• Construction
• Code generation: either manual or automated (Drag and Drop) or both
• Testing – to uncover error in the code.
• Deployment:
• Delivery to the customer for evaluation
• Customer provide feedback
UMBRELLA ACTIVITIES
Estimation- S/W
Size, Schedule
Cost, Resource,
Duration
No. of staff
Quality
Standardizatio
Document Manuals
n
Version Control
and change
UMBRELLA ACTIVITIES
• Software project tracking and control
• Assessing progress against the project plan and maintain schedule
• Formal technical reviews
• Assessing software work products to uncover and remove errors before goes
into next action or activity.
• Software quality assurance
• Define and conducts the activities required to ensure software quality.
• Software configuration management
• Manages the effects of change.
• Reusability management
• Mechanisms to achieve reusable components.
• Measurement
• Define and collects process, project, and product measures that meets
customer’s needs- Estimation of project.
• Risk management
• Assesses risks that may effect that outcome of project or quality of product
(i.e. software)
CAPABILITY MATURITY MODEL
INTEGRATION (CMMI)
Level 1 (Performed) – All specific goals are performed as per defined by CMMI
Level 2 (Managed) –
• All level 1 criteria have been satisfied
• In addition to Level I;
• People doing work have access to adequate resources to get job done,
• Stakeholders are actively involved,
• Work tasks and products are monitored, controlled, reviewed, and
evaluated for conformance to process description.
Level 3 (Defined) –
• All level 2 criteria have been achieved.
• In addition;
• management and engineering processes documented
• standardized and integrated into organization-wide software process
CMMI LEVEL (CONT.)
Level 5 (Optimized) –
• Continuous process improvement is enabled by quantitative
feedback from the process and testing innovative ideas.
CMM LEVEL
SDLC MODEL
• Waterfall Model
• Iterative Waterfall model
• V-model
• Prototype model
• Incremental Model
• Evolutionary model
• Spiral model
• Agile model
SDLC MODEL
WATERFALL MODEL
CONTINUE..
• Disadvantage
• No Feedback
• No Experiment
• High Risk
• No parallelism
• 60% efforts goes in maintenance
ITERATIVE WATERFALL MODEL
CONTINUE..
• Advantage
• Basic model of development
• Simple and Easy
• Small Project
• Feedback
• Disadvantage
• No parallelism
• No intermediary delivery of product
V-MODEL
CONTINUE..
• Advantage
• Time saving
• Good understanding of project at beginning
• Every components must be testable
• Progress can be traced easily
• Proactive defect tracking
• Disadvantage
• No feedback
• Risk
PROTOTYPE MODEL
CONTINUE..
• Advantage
• Customer not clear with idea of working of software
• Throw-away model
• Good for technical and requirement risk
• Disadvantage
• Increase in cost of development
INCREMENTAL MODEL
CONTINUE..
• Advantage
• Module by module development
• Customer interaction maximum
• Large project
• Early release of product on demand
• Flexible to change
• Disadvantage
• Not for small project
• Highly skilled resources are required
EVOLUTIONARY MODEL
(INCREMENTAL + ITERATIVE)
EVOLUTIONARY MODEL
• Advantage
• Customer requirements are clearly specified
• Risk analysis is better
• It supports changing environment
• Initial operating time is less
• Better suited for large projects
• Disadvantage
• Not suitable for small project
• Cost is high
• Highly skilled resources are required
SPIRAL MODEL
CONTINUE..
• Advantage
• Risk Handling
• Radius of spiral= cost
• Angular Degree = progress
• Large project
• Customer satisfaction
• Disadvantage
• Complex
• Expensive
• Too much risk analysis
RAD MODEL
CONTINUE..
• Advantage
• Reduced development time: RAD can help businesses complete
more projects in a shorter amount of time (2-3 months).
• Customer involvement: RAD encourages regular feedback from
users and stakeholders throughout the development process.
• Enhanced collaboration: RAD emphasizes communication and
collaboration between developers, designers, and stakeholders.
• Disadvantage
• Scope creep: User feedback can lead to continuous changes in
requirements, which can cause scope creep
• Project Size: Not suitable for large projects ( Managing Team is very
difficult)
• Project Cost: RAD may require more money spent on talented
developers
AGILE DEVELOPMENT MODELS
What is
Agility
• Effective (rapid
and adaptive)
response to
change
• Effective
communication
among all
stakeholders
• Drawing the
customer onto the
team
• Organizing a team
so that it is in
control of the work
AGILE- SCRUM DEVELOPMENT
• One of the most popular agile development model is scrum model (idea came
from Rugby game)
• Scrum is lightweight (document less), iterative, and incremental model
• Scrum break down the development phase into stages or cycle called “sprint”
(term came from marathon)
• Duration of sprint is 2 week or maximum 1 months
• Development time of each sprint is dedicated thereby managing only one sprint
at a time
• Scrum team has scrum master and product owner with constant communication
on the daily basis
• Keywords: Backlog, Sprint, daily Scrum, Scrum master, Product owner
• Backlog- All the requirements are mentioned here
• Scum master- Handle the team as well as product owner
AGILE – SCRUM DEVELOPMENT
• Advantage
• Reduce the development time
• Scrum customer satisfaction
• Reviewing the current sprint before moving to new one
• Disadvantage
• More efficient for small team size
• Maintenance problem due to less documentation
AGILE – EXPERIMENTAL
PROGRAMMING
AGILE- XP
AGILE – EXPERIMENTAL
PROGRAMMING
• XP Planning
• Begins with the creation of “user stories”
• Agile team assesses each story and estimates cost
• Stories are grouped together and for deliverable
(working module) inclemently
• A commitment is made on delivery date
• After the first increment “project plan” is used to
define subsequent delivery dates for other
increments (working modules)
KEY POINT IN EXPERIMENTAL
PROGRAMMING
• Story Card- Requirement are written on story card
• XP plan time – 2 weeks ( For development or prototype building)
• TDD – Write test before you write code
• Refactoring- Rewriting of code in better way without changing the existing
code functionality
• Pair programming- Two developers work in pairs to check each others
work and provide support
• on-site customer – Developer can talk any time to customer regarding
his/her requirement in modules.
• Maintenance- : Source code documentation is discouraged as module
code may change several time.
AGILE – EXPERIMENTAL
PROGRAMMING
• Advantage
• Reduced Documentation (Based on user stories)
• Test based development ( Stable development)
• Customer involvement in the iteration (for Acceptance Testing)
• Pair Programming
• Refactoring- Removal of duplication, increase cohesion, reduce
coupling
• CRC Card – Class, Responsibilities, and Collaborator ( To increase
cohesion)
• Disadvantage
• XP is costly due to testing, refactoring, and prototype
• Require version control management ( due to changes in
development)
EXPERIMENTAL
PROGRAMMING VS SCRUM
TEST DRIVEN DEVELOPMENT-
XP
TEST DRIVEN DEVELOPMENT
• Advantage
• Improved Code Quality- reduce bugs in future
• Faster Feedback – Code Correctness
• Better Requirement Clarity- Applicable for TDD
• Disadvantage
• Time-Consuming – Writing several test case takes time
• Steep Learning Curve – Team must be familiar with Testing
otherwise TDD is not suitable development process
• Overhead in Dynamic Requirements – Any change in
requirement makes overhead in TDD
FEATURE DRIVEN
DEVELOPMENT MODEL
FDD
• Advantage
• Clear feature breakdown- suitable development if
feature is planned in advance
• User-centric approach – Feature prioritization based on
customer need
• Customer involvement in team – Requirement risk
handled
• Disadvantage
• Limited flexibility – If many changes are made by
customer
• Not well planned – unnecessary feature may be also
implemented if not planned
CRYSTAL – AGILE
DEVELOPMENT
CRYSTAL – AGILE
DEVELOPMENT
• Advantage
• High quality deveopment
• Improved customer satisfaction
• Reduced risk
• Disadvantage
• Lack of documentation
• Dependence on team expertise
• Disorganization – If team member does not have
much experience
COMPARISON OF ALL SDLC
MODEL/ PERSPECTIVE MODEL
Wat Iterativ Prototy Incre Evoluti RAD Spiral Agile
erfal e pe ment onary
l Waterfa al
ll
Basic Waterfall User Modul Increme Time Prototyp Increme
requirem e by ntal and cost e (II- ntal
Rigid + ent not modul constrai Quard)
Feedbac clear e + nts +
Inflex k develo +
ible High user pment Iterative
Involvem Iterative Increme
Not ent Early ntal (III- +
for deliver Quard) Lightwei
large Requirem y of ght
proje ent Risk modul +
ct is e Iterative Develop
covered (IV- ment
QUESTIONS
Q-II
Q-I
Q-IV Q-III
CBSD- KEY POINTS
THANK YOU
UML DIAGRAMS- SEPM LAB