tools of software development

29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 1 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

Upload: rae-bolton

Post on 31-Dec-2015

98 views

Category:

Documents


0 download

DESCRIPTION

Tools of Software Development. 2 types of tools used by software engineers: Analytical tools Stepwise refinement Cost-benefit analysis Software metrics CASE tools. CASE (Computer-Aided Software Engineering) Tools. Software that is used to support software process activities - PowerPoint PPT Presentation

TRANSCRIPT

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 1

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 2

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 3

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 4

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 5

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 6

3 Categories of CASE Tools

Tools Workbenches Environments

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 7

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 8

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

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 9

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 10

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 11

Taxonomy of CASE Tools

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 12

Components of CASE

CASErepository

Document Generator

Design Generator

Analysistool

Code Generator

DrawingTool

Error-checkingtool

Security and Version Control

Screen andReport Generator

PrototypingTool

DatabaseGenerator

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 13

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 14

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 15

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 16

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 17

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 18

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 19

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

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 20

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 21

An analysis and design workbench

Centralinformationrepository

Codegenerator

Querylanguagefacilities

Structureddiagramming

tools

Datadictionary

Reportgenerationfacilities

Design, analysisand checking

tools

Formscreation

tools

Import/exportfacilities

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 22

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 23

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 24

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 25

CASE classification

Classification helps us understand the different types of CASE tools and their support for process activities.

Functional perspective• Tools are classified according to their specific function.

Process perspective• 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 26

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

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 27

Activity-based tool classification

Specification Design Implementation Verificationand

Validation

Re-engineering tools

Testing tools

Debugging tools

Program analysis tools

Language-processingtools

Method support tools

Prototyping tools

Configurationmanagement tools

Change management tools

Documentation tools

Editing tools

Planning tools

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 28

CASE integration

Tools• Support individual process tasks such as design

consistency checking, text editing, etc. Workbenches

• 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 29

Tools, workbenches, environments

Single-methodworkbenches

General-purposeworkbenches

Multi-methodworkbenches

Language-specificworkbenches

Programming TestingAnalysis and

design

Integratedenvironments

Process-centredenvironments

Filecomparators

CompilersEditors

EnvironmentsWorkbenchesTools

CASEtechnology