Tools of Software Development 2 types of tools used by software engineers: 1.

advertisement
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 1
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 2
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 3
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 4
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 5
3 Categories of CASE Tools



Tools
Workbenches
Environments
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 6
3 Categories of CASE Tools

Tools
•
•
Support individual process tasks
Examples:
• Checking the consistency of a design
• Compiling a program
• Comparing test results
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 7
CASE Tools

Upper-CASE tools (front-end tools)
•

Lower-CASE tools (back-end tools)
•

Assist developer during requirements,
analysis, and design workflows or activities
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 8
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 9
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 10
Taxonomy of CASE Tools
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 11
Components of CASE
Design
Generator
Analysis
tool
Drawing
Tool
Code
Generator
CASE
repository
Document
Generator
Prototyping
Tool
Error-checking
tool
Security and
Version Control
©Ian Sommerville 2004
Database
Generator
Screen and
Report Generator
Software Engineering, 7th edition. Chapter 8
Slide 12
Components of CASE

CASE repository
•
•
Central component of any CASE tool
Also known as the information repository or
data dictionary
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 13
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 14
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 15
Components of CASE

Diagramming tools
•
•
•
Allow you to represent a system and its
components visually
Allows higher level processes to be
easily decomposed
Can examine processes or data models
at high or low level
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 16
Components of CASE

Screen and report generators
•
Used to
• Create, modify and test prototypes of
computer displays and reports
• Identify which data items to display or collect
for each screen or report
•
Some tools have templates
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 17
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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 18
Components of CASE

CASE documentation generator tools
•
•
•
Create standard reports based on contents of
repository
Need textual descriptions of needs, solutions, tradeoffs, 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
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 19
CASE workbenches



A coherent set of tools that is designed to
support related software process activities
such as analysis, design or testing.
Analysis and design workbenches support
system modelling during both requirements
engineering and system design.
These workbenches may support a specific
design method or may provide support for a
creating several different types of system
model.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 20
An analysis and design workbench
Data
dictio nary
Structured
diag ramming
to ols
Repo r t
gener atio n
facilities
Co de
gener ator
Cen tral
in fo rmatio n
repo sito ry
Query
lan gua ge
facilities
Fo rms
cr ea tion
to ols
Design, analy sis
and ch eck ing
to ols
Impo rt/e x po rt
facilities
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 21
Analysis workbench components








Diagram editors
Model analysis and checking tools
Repository and associated query language
Data dictionary
Report definition and generation tools
Forms definition tools
Import/export translators
Code generation tools
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 22
Computer-aided software
engineering


Computer-aided software engineering (CASE) is
software to support software development and
evolution processes.
Activity automation
•
•
•
•
•
Graphical editors for system model development;
Data dictionary to manage design entities;
Graphical UI builder for user interface construction;
Debuggers to support program fault finding;
Automated translators to generate new versions of a
program.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 23
Case technology

Case technology has led to significant
improvements in the software process.
However, these are not the order of
magnitude improvements that were once
predicted
•
•
Software engineering requires creative thought this is not readily automated;
Software engineering is a team activity and, for
large projects, much time is spent in team
interactions. CASE technology does not really
support these.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 24
CASE classification


Classification helps us understand the different
types of CASE tools and their support for process
activities.
Functional perspective
•

Process perspective
•

Tools are classified according to their specific
function.
Tools are classified according to process activities
that are supported.
Integration perspective
•
Tools are classified according to their organisation
into integrated units.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 25
Functional tool classification
Tool type
Examples
Planning tools
PERT tools, estimation tools, spreadsheets
Editing tools
Text editors, diagram editors, word processors
Change ma nagement tools
Requirements traceability tools, change control systems
Configuration management tools
Version management systems, system b uilding 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 comp arators
Debugging tools
Interactive debugging systems
Documentation tools
Page layout programs, ima ge editors
Re-engineering tools
Cross-reference systems, program re-structuring systems
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 26
Activity-based tool classification
Re-eng in eering to ols
Testin g too ls
Debugg in g too ls
Pro gram analy sis to ols
Lan guage-p rocessin g
to ols
M eth od sup po r t to ols
Pro toty ping to ols
Co nfiguratio n
management too ls
Ch ange man agement to ols
Do cumentatio n to ols
Editing to ols
Plan ning to ols
Specificatio n
©Ian Sommerville 2004
Design
Implementatio n
Verificatio n
and
Validatio n
Software Engineering, 7th edition. Chapter 8
Slide 27
CASE integration

Tools
•

Workbenches
•

Support individual process tasks such as design
consistency checking, text editing, etc.
Support a process phase such as specification
or design, Normally include a number of
integrated tools.
Environments
•
Support all or a substantial part of an entire
software process. Normally include several
integrated workbenches.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 8
Slide 28
Tools, workbenches, environments
CASE
techn olo g y
Wo rk ben ch es
To ols
Edito rs
Co mpilers
File
comp ar ato rs
An aly sis and
design
M ulti-meth od
wo rk ben ch es
©Ian Sommerville 2004
In tegrated
en v iro nments
Pro gramming
Sin gle-metho d
wo rk ben ch es
Env iro nments
Pro cess-centr ed
en v iro nments
Testin g
Gen er al-p urp ose
wo rk ben ch es
Lan gua ge-specific
wo rk ben ch es
Software Engineering, 7th edition. Chapter 8
Slide 29
Download