Anda di halaman 1dari 29

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide1

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
IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide2

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide3

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide4

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide5

3 Categories of CASE Tools

Tools
Workbenches
Environments

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide6

3 Categories of CASE Tools

Tools

Support individual process tasks


Examples:
Checking the consistency of a design
Compiling a program
Comparing test results

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide7

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide8

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide9

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide10

Taxonomy of CASE Tools

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide11

Components of CASE
Design
Generator

Analysis
tool

Drawing
Tool

Code
Generator

CASE
repository

Document
Generator

Prototyping
Tool

Error-checking
tool
Security and
Version Control
IanSommerville2004

Database
Generator

Screen and
Report Generator

SoftwareEngineering,7thedition.Chapter8Slide12

Components of CASE

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide13

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide14

Components of CASE

CASE repository acts as:


Information repository
Combines information about organizations
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
IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide15

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide16

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide17

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide18

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide19

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide20

An analysis and design workbench


Data
dictionary

Structur
ed
diagramming
tools

Report
generation
facilities

Code
generator

Central
information
repository

Query
language
facilities

Forms
creation
tools

Design, anal
ysis
and checking
tools

Import/export
facilities

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide21

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide22

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide23

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide24

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide25

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide26

Activity-based tool classification


Re-engineering tools
Testing tools
Debugging tools
Prog ram analysis tools
Language-processing
tools
Method suppor
t tools
Prototyping tools
Confi guration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools

Specifi cation

IanSommerville2004

Design

Implementation

Verifi cation
and
Validation

SoftwareEngineering,7thedition.Chapter8Slide27

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter8Slide28

Tools, workbenches, environments


CASE
technology

Workbenches

Tools

Editors

Compilers

File
comparators

Analysis and
design

Multi-method
workbenches

IanSommerville2004

Integrated
environments

Programming

Single-method
workbenches

Environments

Process-centr
ed
environments

Testing

General-purpose
workbenches

Language-specifi c
workbenches

SoftwareEngineering,7thedition.Chapter8Slide29

Anda mungkin juga menyukai