0% found this document useful (0 votes)
7 views

Software - Evolution Lecture 3

Uploaded by

Dex Tre
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Software - Evolution Lecture 3

Uploaded by

Dex Tre
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

Chapter 9 – Software Evolution

Chapter 9 Software evolution 1


Topics covered

 Evolution processes
 Change processes for software systems
 Program evolution dynamics
 Understanding software evolution
 Software maintenance
 Making changes to operational software systems
 Legacy system management
 Making decisions about software change

Chapter 9 Software evolution 2


Software change

Chapter 9 Software evolution 3


Importance of evolution

Chapter 9 Software evolution 4


Evolution processes

Chapter 9 Software evolution 5


Change identification and evolution processes

Chapter 9 Software evolution 6


The software evolution process

Chapter 9 Software evolution 7


Change implementation

Chapter 9 Software evolution 8


Change implementation

 Iteration of the development process where the revisions


to the system are designed, implemented and tested.
 A critical difference is that the first stage of change
implementation may involve program understanding,
especially if the original system developers are not
responsible for the change implementation.
 During the program understanding phase, you have to
understand how the program is structured, how it
delivers functionality and how the proposed change
might affect the program.

Chapter 9 Software evolution 9


Urgent change requests

Chapter 9 Software evolution 10


The emergency repair process

Chapter 9 Software evolution 11


Program evolution dynamics

Chapter 9 Software evolution 12


Change is inevitable

Chapter 9 Software evolution 13


Key points

 Software development and evolution can be thought of


as an integrated, iterative process that can be
represented using a spiral model.
 For custom systems, the costs of software maintenance
usually exceed the software development costs.
 The process of software evolution is driven by requests
for changes and includes change impact analysis,
release planning and change implementation.
 Lehman’s laws, such as the notion that change is
continuous, describe a number of insights derived from
long-term studies of system evolution.
Chapter 9 Software evolution 14
Tools of Software Development

 2 types of tools used by software


engineers:
1. Analytical tools
– Stepwise refinement
– Cost-benefit analysis
– Software metrics
2. CASE tools
CASE (Computer-Aided Software Engineering)
Tools

Software that is used to support software


process activities
Provides software process support by
 automating some process activities
 providing information about the software being
developed
Currently used in every phase/workflow of
life cycle
CASE Tools

Benefits
 Improve software quality
• Enforce discipline
• Help communication between development team
members
• Information is illustrated through diagrams that are
typically easier to understand
• Development information is centralized
CASE Tools

Benefits
 Reduction of time and effort
• Tasks are much faster to complete and alter
• Enhance reuse of models or models’ components
• Can reduce maintenance costs
CASE Tools

Problems
 Limitations in flexibility of documentation
 Major danger: completeness and syntactic
correctness does NOT mean compliance with
requirements
 Costs associated with the use of the tool
• Purchase price
• Training
3 Categories of CASE Tools

Tools
Workbenches
Environments
3 Categories of CASE Tools

Tools
 Support individual process tasks
 Examples:
• Checking the consistency of a design
• Compiling a program
• Comparing test results
CASE Tools

Upper-CASE tools (front-end tools)


 Assist developer during requirements,
analysis, and design workflows or activities
Lower-CASE tools (back-end tools)
 Assist with implementation, testing, and
maintenance workflows or activities
Integrated CASE tools (I-CASE)
 provide support for the full life cycle
• REVIEW THE UNIFIED PROCESS to SEE WHERE EACH OF THESE TOOLS ARE USED
3 Categories of CASE Tools

Workbenches
 Collection of tools that together support:
• Process workflows (requirements, design, etc.)
• One or two activities where an activity is a related
collection of tasks
 Commercial examples:
• PowerBuilder
• Software Through Pictures
• Software Architect
3 Categories of CASE Tools

Environments
 Support the complete software process or, at
least, a large portion of the software process
 Normally include several different workbenches
which are integrated in some way
Taxonomy of CASE Tools
Components of CASE

Design Analysis
Generator tool

Drawing Code
Tool Generator

Document CASE Database


Generator repository Generator

Error-checking Prototyping
tool Tool

Screen and
Security and
Report Generator
Version Control
Components of CASE

CASE repository
 Central component of any CASE tool
 Also known as the information repository or
data dictionary
Components of CASE

CASE repository
 Centralized database
 Allows easy sharing of information between
tools and SDLC activities
 Used to store graphical diagrams and prototype
forms and reports during analysis and design
workflows
 Provides wealth of information to project
manager and allows control over project
 Facilitates reusability
Components of CASE

CASE repository acts as:


 Information repository
• Combines information about organization’s business
information and application portfolio
• Provides automated tools to manage and control
access
 Data dictionary
• Used to manage and control access to information
repository
• Facilities for recording, storing and processing
resources
• Useful for cross-referencing
Components of CASE
Components of CASE
Components of CASE

Analysis tools
 Generate reports that help identify possible
inconsistencies, redundancies and omissions
 Generally focus on
• diagram completeness and consistency
• data structures and usage
Components of CASE

 CASE documentation generator tools


 Create standard reports based on contents of repository
 Need textual descriptions of needs, solutions, trade-offs,
diagrams of data and processes, prototype forms and reports,
program specifications and user documentation
 High-quality documentation leads to 80% reduction in system
maintenance effort in comparison to average quality
documentation
CASE workbenches
An analysis and design workbench

Structured Repor t
Data
diag ramming gener ation
dictionary
tools facilities

Centr al Query
Code
infor mation language
gener ator
repository facilities

Forms Design, analysis


Import/e xport
creation and checking
facilities
tools tools
Analysis workbench components
Computer-aided software
engineering
Case technology
CASE classification
Functional tool classification

Tool type Examples


Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-structuring systems
Activity-based tool classification

Re-eng ineering tools

Testing tools

Debugg ing tools

Prog ram analysis tools

Language-processing
tools

Method suppor t tools

Prototyping tools

Configuration
management tools

Change management tools

Documentation tools

Editing tools

Planning tools

Specification Design Implementation Verification


and
Validation
CASE integration
Tools, workbenches, environments

CASE
technolo g y

Tools Wor kbenches Environments

File Integrated Pr ocess-centr ed


Editors Compilers
compar ators en vironments en vironments

Analysis and
Pro gramming Testing
design

Multi-method Single-method General-purpose Language-specific


workbenches workbenches workbenches workbenches

You might also like