chaitra-1.pptx fake news detection using machine learning
Â
Software maintenance
1. Software Maintenance
īˇ Software maintenance includes error corrections,
enhancement of capabilities, deletion of obsolete capabilities
and optimization
īˇ Any work done to change the software after it is in operation is
considered to be maintenance work
īˇ Maintenance may span for 20 years
Categories of Maintenance
Corrective Maintenance
īˇ Modifications initiated by defects
īˇ Design error, logic error and coding error defects
īˇ Design errors due to incorrect, incomplete or
misunderstood change request
īˇ Faulty logic flow and incomplete test data
īˇ Data processing errors
īˇ Emergency fixes like patching come to the rescue in
case of system failure
īˇ Patching causes ripple effect(change in one part of
the system may cause unpredictable change in other
parts)
Adaptive Maintenance
īˇ Modifications to match changes in environment
īˇ Business rules, govt policies and work patterns
īˇ Changes in hardware, software platform-compiler
and operating system
Perfective Maintenance
īˇ Improving efficiency and performance
īˇ Enhancement of existing system functionality
īˇ Making product cleaner structured and better
documented
2. Other Types of Maintenance
īˇ Preventive Maintenance: to correct long term
effects of corrective, adaptive and perfective
changes over time
īˇ Making program easier to understand
īˇ Includes code restructuring, code optimization and
documentation updating
īˇ Confined to Organization
Problems
During
Maintenance
īˇ Program written by other person in isolation
īˇ Program changed by a person who did not
understand it properly
īˇ Program listings are not structured
īˇ Maintained by persons who are not original authors
contributing to ripple effect
īˇ Some problems become clear when system is in use
īˇ Systems are not designed for change
Solutions to
Maintenance
Problems
īˇ Budget and effort Allocation: More time and
resources to be invested in design of more
maintainable systems
īˇ Complete Replacement of System: IF maintaining
cost = developing cost
3. īˇ Maintenance of existing system if replacement not
possible
Phases of
Maintenance
Process
īˇ Phase 1-Program Understanding: It is based on the
complexity, documentation and self-descriptiveness
of the program
īˇ Phase 2- Generating Maintenance Proposal: It is
affected by extensibility (it is the measure of the
extent to which program can support extensions)
īˇ Phase 3- Account for Ripple Effect: Stability of
system is affected by Ripple effect. Stability is
defined as the resistance to amplification of changes
īˇ Phase 4- Modified Program Testing: Program
testability is defined as measure of effort required
to adequately test program according to well
defined testing criterion
Maintenance Models
Quick-Fix Model
īˇ Ad hoc approach to maintaining software
īˇ Fix without detailed analysis for long term
effect
īˇ No or little documentation
īˇ Done due to pressure of deadlines and
for quick fixes
Iterative EnhancementModel
4. īˇ Based on philosophy that changes in
software system throughout its lifetime
are iterative process
īˇ Requires complete documentation
īˇ Done in three stages- 1.Analysis
2.Characterization
of proposed modification
3. Redesign and
Implementation
īˇ Supports code Reuse
īˇ In first iteration problem is identified and
in next iteration it is addressed
īˇ Problem is the full documentation is not
always available
Reuse Oriented Model
It involves reuse of old system and steps are
1. Identify parts of old system that can be
reused
2. Understand these parts
3. Modify appropriate to new requirements
4. Integration of modified parts
Boehmâs Model
īˇ Based on economic models and principles
īˇ Maintenance is represented as a closed
loop cycle
īˇ Maintenance is driven by Manager
5. Taute MaintenanceModel
It consists of 8 phases which are described
below
īˇ Change request Phase: Maintenance
team gets request which is then
identified and a unique number assigned
īˇ Estimate Phase: Devoted to have
reasonable estimate of time and effort
required
īˇ Schedule Phase: Identify the change
requests for next schedule
īˇ Programming Phase: source code
modified to implement change
īˇ Test Phase: Old and new test cases are
made. Regression Testing is done
īˇ Documentation Phase: System and User
documents are updated to main co-
relation
6. īˇ Release Phase: Software product
delivered and acceptance testing is
carried out
īˇ Operation Phase: Software placed under
normal Operation
Estimation
of
Maintenance
Costs
Belady And Lehman Model
īˇ Effort and cost can increase
exponentially if poor software
development approach is used.
īˇ M = P + Ke(c-d)
M: Total Effort Expended
P : Productivity Effort in Design,
Coding and Testing (Person-Months)
K: Constant
c: Complexity measure because
of bad design and documentation
d: Degree to which maintenance
team is familiar to software
Boehm Model
īˇ ACT stands for Annual Change
Traffic
īˇ It is defined as âThe fraction of
Software Product source
instructions which undergo change
7. during a year either through
addition, deletion or modification
īˇ ACT = (KLOCadded
+KLOCdeleted)/KLOCtotal
īˇ (Annual Maintenance Effort) AME =
ACT*SDE*EAF
īˇ SDE: Software Development Effort
in person-months
īˇ EAF: Effort Adjustment Factor
Regression
Testing
Small changes in one part of system may have subtle
undesired effect in other unrelated parts
īˇ Regression testing is the process of retesting the
modified parts of the software and ensuring that no
new errors have been introduced into the previously
tested code
īˇ It increases confidence in program correctness,
located errors, preserve quality and ensure software
continued operation
īˇ Make use of existing test suites
īˇ Retest affected components that have been
modified
īˇ Budget gives no time for regression testing
īˇ Performed many times in software lifetime and
mainly in crisis situation
Selective Retest Techniques
īˇ Better than retest-all technique
8. īˇ Partition existing test suite containing
reusable, retestable and obsolete test cases
īˇ Obsolete test case specify incorrect input-
output relation(SpecificationObsolete) or no
longer exercise program
components(Coverage-Obsolete)
īˇ Three categories of Selective Retest
Techniques are:
1. Coverage Technique:Locate coverable
program components that have been
modified
2. MinimizationTechnique:Select minimal
set of test cases
3. Safe Techniques:Select every test case
īˇ Categories in which techniques are classified
are:
Inclusiveness: Extent of exposing fault
Precision: Ability to avoidchoosing test case
that will not cause errors
Efficiency: Measures computationalcost
Generality:Ability to handleDiverse language
Reverse
Engineering
īˇ Process to find difficult, unknown and hidden
information about software
īˇ Recover information from existing code or
documentation
9. īˇ Used in program comprehension, redocumentation,
recovery of design approach, identifying reusable
components and components that need
restructuring, high level description of system
īˇ Divided into various classes given below
īˇ Mapping from application domain to program
domain
īˇ Mapping between concrete and abstract level
īˇ Rediscovering high level structure
īˇ Missing link between program and semantics
īˇ Extract Reusable component
Levels of Reverse
Engineering
īˇ Redocumentation: Recreation of semantically
equivalent representation with same abstraction
īˇ To create alternative view and hierarchical data flow
īˇ Improve Documentation
īˇ Generate documentation for newly generated
program
īˇ Design Recovery: Identify and Extract higher level
abstraction from source code
īˇ To develop non-identical applications
Componentsof Reverse
Engineering Tool
īˇ Restructurer detects poorly structured code
fragments
īˇ Cross reference lists places where variable is defined
īˇ Static analyzer detects anomalous constructs
īˇ The text editor and simple tools
RIGI
īˇ Interactive graphical editor
10. īˇ Extract system components and relationship from
source code
īˇ Create Subsystem from flow graph using Graph
Editor
īˇ Evaluating subsystem for cohesion and coupling and
iterating until satisfactory subsystem have been
created
Refine language Tools
īˇ Family of Interactive, extensible workbenches for
analyzing and reengineering code in programming
languages
īˇ Customizable to any programming language
īˇ Interactive source code navigation
īˇ Generation of structure charts
īˇ Online viewing and printing of reports
īˇ Export design information to forward-engineering
CASE tools
Software
RE-Engineering
īˇ Concerned with taking existing legacy(old systems)
systems and re-implementing them to make them
more maintainable
īˇ Redocumented, Restructured
īˇ Translated to modern programming language
īˇ Migrate to new Platform(client-server)
Source Code Translation
īˇ Needed for:
īˇ Hardware platform Update
īˇ Staff Skill shortage
11. īˇ Organizational Policy Changes
īˇ REFINE system is powerful tool for this task
īˇ It recognizes patterns in source code
Program Restructuring
īˇ Done to change form without changing semantics
īˇ Some techniques are:
1.Control Flow Driven restructuring: imposition of
clear control structure within source code
2.Efficiency Driven: Restructuring a function like
changing IF-ELSE to Switch
3,Adaption Driven: Changing coding style to adapt
program to a new programming language
Configurati
on
Management
īˇ Software is configuration of software components
released in form of executable codes
īˇ If source code of software is modified without effect
on executable equivalent then exact representation
may not exist
īˇ The process by which software maintenance and
development is controlled is called configuration
management
īˇ It is concerned with development of procedures and
standards for cost effective managing and
controlling changes in an evolving software system
12. ConfigurationManagement
Activities
īˇ Divided into 4 parts:
1. Identification of Component and Changes
2. Control of way by which changes are made
3. Auditing Changes
4. Status accounting- recording and documenting
activities taken place
īˇ Document Required:-
1. Project Plan
2. SRS
3. SDD(Software Design Description)
4. Test plans/cases
5. User Manuals
Software versions
īˇ Two types of versions will be there namely:
revisions(replace) and variations (variety)
īˇ Version Control Tools: It helps to manage multiple
versions of file. It comprises of:
īˇ Name of each source code component (variations
and revisions)
īˇ Versions of various compilers and linkers used
īˇ Name of software staff who constructed component
īˇ Date and time it was constructed
Change Control Process
īˇ Change request form is used to record
recommendations regarding the change
īˇ Recommendations include: Proposed change,
Estimated costs and how to implement change
īˇ Submitted to CCA(Change Control Authority)
13. īˇ Revised software is revalidated by SQA(Software
Quality Assurance) team to ensure that change has
not adversely affected other parts of system
Documenta
tion
īˇ Written record of facts about software system
īˇ Used to convey purpose, content and clarity of
software system.
īˇ User Documentation: Description of functions of
system without reference to how functions are
implemented
īˇ Like System Overview, Installation Guide, Beginnerâs
Guide, Reference Guide
īˇ System Documentation: It includes SRS,
implementation, System test plan and Acceptance
Test Plan
īˇ Three levels of Documentation:
1. User Manual: What system does without going
into details
2. Operatorâs Manual: How to use system and
how to recover from faults
3. Maintenance manual: Functional specification,
design , code listing and test data results