8/18/2019 CASETools.ppt
1/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
– Costbenefit analysis
– Software metrics
2. CAS! tools
8/18/2019 CASETools.ppt
2/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 2
CAS! "ComputerAided Software
!ngineering# Tools
Software t$at is used to support software
process activities
%rovides software process support by& automating some process activities
& providing information about t$e software
being developed Currently used in every p$ase'wor(flow of
life cycle
8/18/2019 CASETools.ppt
3/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 3
CAS! Tools
)enefits& *mprove software +uality
& !nforce discipline
& ,elp communication between developmentteam members
& *nformation is illustrated t$roug$ diagrams t$at
are typically easier to understand
& Development information is centrali-ed
8/18/2019 CASETools.ppt
4/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 4
CAS! Tools
)enefits& eduction of time and effort
& Tas(s are muc$ faster to complete and alter
& !n$ance reuse of models or models/
components
& Can reduce maintenance costs
8/18/2019 CASETools.ppt
5/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 5
CAS! Tools
%roblems& 0imitations in fleibility of documentation
& a3or danger: completeness and syntactic
correctness does 45T mean compliancewit$ re+uirements
& Costs associated wit$ t$e use of t$e tool
& %urc$ase price
& Training
8/18/2019 CASETools.ppt
6/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 6
6 Categories of CAS! Tools
Tools
7or(benc$es
!nvironments
8/18/2019 CASETools.ppt
7/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 7
6 Categories of CAS! Tools
Tools
& Support individual process tas(s
& !amples:& C$ec(ing t$e consistency of a design
& Compiling a program
& Comparing test results
8/18/2019 CASETools.ppt
8/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 8
CAS! Tools
8pperCAS! tools "frontend tools#& Assist developer during re+uirements9
analysis9 and design wor(flows or activities
0owerCAS! tools "bac(end tools#& Assist wit$ implementation9 testing9 and
maintenance wor(flows or activities
*ntegrated CAS! tools "*CAS!#
& provide support for t$e full life cycle
8/18/2019 CASETools.ppt
9/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 9
6 Categories of CAS! Tools
7or(benc$es& Collection of tools t$at toget$er support:
& %rocess wor(flows "re+uirements9 design9 etc.#
& 5ne or two activities w$ere an activity is a relatedcollection of tas(s.
& Commercial eamples:
& %ower)uilder & Software T$roug$ %ictures
& Software Arc$itect
8/18/2019 CASETools.ppt
10/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 10
6 Categories of CAS! Tools
!nvironments
& Support t$e complete software process or9 at
least9 a large portion of t$e software process
& 4ormally include several different
wor(benc$es w$ic$ are integrated in some
way
8/18/2019 CASETools.ppt
11/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 11
Taonomy of CAS! Tools
8/18/2019 CASETools.ppt
12/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 12
Components of CAS!
CAS!
repositoryDocument
enerator
Designenerator
Analysistool
Code
enerator
Drawing
Tool
!rrorc$ec(ing
tool
Security and
;ersion Control
Screen and
eport enerator
%rototyping
Tool
Database
enerator
8/18/2019 CASETools.ppt
13/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 13
Components of CAS!
CAS! repository
& Central component of any CAS! tool
& Also (nown as t$e information repository or
data dictionary
8/18/2019 CASETools.ppt
14/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 14
Components of CAS!
CAS! repository& Centrali-ed database
& Allows easy s$aring of information between
tools and SD0C activities& 8sed to store grap$ical diagrams andprototype forms and reports during analysisand design wor(flows
& %rovides wealt$ of information to pro3ectmanager and allows control over pro3ect
&
8/18/2019 CASETools.ppt
15/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 15
Components of CAS! CAS! repository acts as:
& *nformation repository& Combines information about organi-ation/s
business information and application portfolio
& %rovides automated tools to manage and controlaccess
& Data dictionary& 8sed to manage and control access to information
repository
&
8/18/2019 CASETools.ppt
16/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 16
Components of CAS!
Diagramming tools
& Allow you to represent a system and its
components visually
& Allows $ig$er level processes to be
easily decomposed
& Can eamine processes or data models
at $ig$ or low level
8/18/2019 CASETools.ppt
17/29©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 17
Components of CAS!
Screen and report generators
& 8sed to
& Create9 modify and test prototypes of
computer displays and reports
& *dentify w$ic$ data items to display or collect
for eac$ screen or report
& Some tools $ave templates
8/18/2019 CASETools.ppt
18/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 18
Components of CAS!
Analysis tools& enerate reports t$at $elp identify possible
inconsistencies9 redundancies and
omissions& enerally focus on
& diagram completeness and consistency
& data structures and usage
8/18/2019 CASETools.ppt
19/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 19
Components of CAS!
CAS! documentation generator tools& Create standard reports based on contents of
repository
& 4eed tetual descriptions of needs9 solutions9 trade
offs9 diagrams of data and processes9 prototypeforms and reports9 program specifications and user
documentation
& ,ig$+uality documentation leads to =>? reduction
in system maintenance effort in comparison toaverage +uality documentation
8/18/2019 CASETools.ppt
20/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 20
CAS! wor(benc$es
A co$erent set of tools t$at is designed tosupport related software process activitiessuc$ as analysis9 design or testing.
Analysis and design wor(benc$es supportsystem modelling during bot$ re+uirementsengineering and system design.
T$ese wor(benc$es may support a specific
design met$od or may provide support for acreating several different types of systemmodel.
8/18/2019 CASETools.ppt
21/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 21
An analysis and design wor(benc$
Central
information
repository
Code
generator
Query
language
facilities
Structured
diagramming
tools
Data
dictionary
Report
generation
facilities
Design, analysis
and checking
tools
Forms
creation
tools
Import/export
facilities
8/18/2019 CASETools.ppt
22/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 22
Analysis wor(benc$ components
Diagram editors
odel analysis and c$ec(ing tools
epository and associated +uery language
Data dictionary
eport definition and generation tools
8/18/2019 CASETools.ppt
23/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 23
Computeraided software
engineering
Computeraided software engineering "CAS!# is
software to support software development and
evolution processes.
Activity automation& rap$ical editors for system model development@
& Data dictionary to manage design entities@
& rap$ical 8* builder for user interface construction@
& Debuggers to support program fault finding@& Automated translators to generate new versions of a
program.
8/18/2019 CASETools.ppt
24/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 24
Case tec$nology
Case tec$nology $as led to significant
improvements in t$e software process.
,owever9 t$ese are not t$e order of magnitude
improvements t$at were once predicted& Software engineering re+uires creative t$oug$t
t$is is not readily automated@
& Software engineering is a team activity and9 for
large pro3ects9 muc$ time is spent in teaminteractions. CAS! tec$nology does not really
support t$ese.
8/18/2019 CASETools.ppt
25/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 25
CAS! classification
Classification $elps us understand t$e different types
of CAS! tools and t$eir support for process activities.
8/18/2019 CASETools.ppt
26/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 26
8/18/2019 CASETools.ppt
27/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 27
Activitybased tool classification
Specifcation Design Implementation erifcation
and
alidation
Re!engineering tools
"esting tools
De#ugging tools
$rogram analysis tools
%anguage!processing
tools
ðod support tools
$rototyping tools
Confguration
management tools
Change management tools
Documentation tools
'diting tools
$lanning tools
8/18/2019 CASETools.ppt
28/29
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 28
CAS! integration
Tools& Support individual process tas(s suc$ as design
consistency c$ec(ing9 tet editing9 etc.
7or(benc$es& Support a process p$ase suc$ as specification ordesign9 4ormally include a number of integratedtools.
!nvironments
& Support all or a substantial part of an entiresoftware process. 4ormally include severalintegrated wor(benc$es.
8/18/2019 CASETools.ppt
29/29
Tools9 wor(benc$es9 environments
Single!method
(ork#enches
)eneral!purpose
(ork#enches
&ulti!method
(ork#enches
%anguage!specic
(ork#enches
$rogramming "esting*nalysis anddesign
Integrated
en+ironments
$rocess!centred
en+ironments
File
comparatorsCompilers'ditors
'n+ironmentsork#enches "ools
C*S'
technology
Recommended