everyone has heard the old saying about the shoemaker's children: the shoemaker is so busy...
TRANSCRIPT
![Page 1: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/1.jpg)
Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't
have shoes of their own. Prior to the 1990s, many software developers were the "shoemaker's
children." Although these technical professionals built complex systems and products that
automated the work of others, they used very little automation themselves.
Today, software engineers have their first new pair of shoes—computer-aided software
engineering (CASE).
![Page 2: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/2.jpg)
Computer Aided Systems Computer Aided Systems Engineering (CASE)Engineering (CASE)
CASE is the application of computer technology to systems development activities, techniques, and methods.
COMPUTER-AIDED SOFTWARE ENGINEERING (CASE)
The automation of step-by -step methodologies for software and systems development
CASE tools automate or support one or more phases of the SDLC to speed up development and improve quality.
![Page 3: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/3.jpg)
What Is a CASE Tool? Since the early days of writing software, there has been an awareness of the need for automated tools to help the software developer. Initially the concentration was on program support tools such as translators, compilers, assemblers, macro processors, and linkers and loaders. However, as computers became more powerful and the software that ran on them grew larger and more complex, the range of support tools began to expand. In particular, the use of interactive time-sharing systems for software development encouraged the development of program editors, debuggers, code analyzers.
![Page 4: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/4.jpg)
A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.
![Page 5: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/5.jpg)
Computer-aided software engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools.
Some typical CASE tools are: Code generation tools Data modeling tools UML Refactoring tools QVT or Model transformation Tools Configuration management tools including
revision control
![Page 6: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/6.jpg)
All aspects of the software development lifecycle can be supported by software tools, and so the use of tools from across the spectrum can, arguably, be described as CASE; from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on.
![Page 7: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/7.jpg)
Computer AidedComputer AidedSystems EngineeringSystems Engineering
(CASE)(CASE)
aims to improve quality of systems focuses on automating structured techniques
– upper CASE tools– lower CASE tools
relies on rigorous development methods
![Page 8: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/8.jpg)
CASE FrameworkCASE Framework
Planning SupportImplementationDesignAnalysis
![Page 9: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/9.jpg)
CASE ToolsCASE Tools
upper-CASE lower-CASE cross life cycle CASE
![Page 10: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/10.jpg)
Upper CASE ToolsUpper CASE Tools
systems planning– goals, objectives– business models
systems analysis– scope, boundaries– detailed modeling– prototyping
![Page 11: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/11.jpg)
Lower CASE ToolsLower CASE Tools
systems design– technology models
systems implementation– programmer workbench– code generation
systems support– reverse engineering– REVERSE ENGINEERING– The process of examining an existing application that has
characteristics that are similar to a desired application. Using the existing application as a guide, the requirements for the new application are defined, analyzed, and extracted all the way back tospecifications. From this point, the specifications are altered to comply with any new customer requirements and the new application is developed.
![Page 12: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/12.jpg)
Cross Life Cycle Cross Life Cycle CASE ToolsCASE Tools
project management process management estimation documentation
ProductionSystem
TechnicalDesign
BusinessRequirements
Existing System Planned ProjectPlanning
Support
Implementation Design
Analysis
![Page 13: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/13.jpg)
Automated process support (CASE)Automated process support (CASE)
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
![Page 14: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/14.jpg)
Case technologyCase technology
Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were once predicted– Software engineering requires creative thought -
this is not readily automatable– Software engineering is a team activity and, for
large projects, much time is spent in team interactions. CASE technology does not really support these
![Page 15: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/15.jpg)
CASE classificationCASE 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
![Page 16: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/16.jpg)
Functional tool classificationFunctional tool classification
![Page 17: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/17.jpg)
Activity-based classificationActivity-based classification
Reengineering 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
Specification Design Implementation Verificationand
Validation
![Page 18: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/18.jpg)
CASE integrationCASE 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
![Page 19: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/19.jpg)
Tools, workbenches, environmentsTools, workbenches, environments
Single-methodworkbenches
General-purposeworkbenches
Multi-methodworkbenches
Language-specificworkbenches
Programming TestingAnalysis and
design
Integratedenvironments
Process-centredenvironments
Filecomparators
CompilersEditors
EnvironmentsWorkbenchesTools
CASEtechnology
![Page 20: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/20.jpg)
CASE RepositoryCASE Repository
a developers database– stores diagrams, specifications, code– ensures standardization, consistency– tracks people, data, process, network, technology
stored– locally– in work groups– centrally
![Page 21: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/21.jpg)
Computer-Aided System Engineering (CASE)Computer-Aided System Engineering (CASE)
CASE tools: Software tools designed to help system analyst complete development tasks
The CASE tool contains a database of information called a repository
Information about models
Descriptions
Data definitions
References that link models together
Case tools can check the models to make sure they are complete and follow diagramming rules
Also can check if the models are consistent
Adds a number of capabilities around the repository
![Page 22: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/22.jpg)
CASE Approach (cont.)CASE Approach (cont.)
A CASE tool repository contains all information about the system.
![Page 23: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/23.jpg)
Types of CASE toolsTypes of CASE tools
Upper CASE toolsSupport analyst during the analysis and design phases
Lower CASE toolsSupport for implementation – e.g. generating programs
Tools may be general, or designed for specific methodology (like for information engineering – TIs’ IEF, CoolTools)Examples of CASE tools
Visual Analyst for creating traditional modelsCalled “integrated application development tool”
Rational Rose for object-oriented modelingBased on UML standard for object orientationAllows for reverse-engineering and code generation (can be integrated with other tools like Visual C++ etc.)
“Round trip engineering” – synchronized updating
![Page 24: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/24.jpg)
Types of CASE tools (cont.)Types of CASE tools (cont.)
The CASE tool Visual Analyst showing a data flow diagram.
![Page 25: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/25.jpg)
Types of CASE tools (cont.)Types of CASE tools (cont.)
The visual modeling tool Rational Rose showing diagrams from the object-oriented approach
![Page 26: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/26.jpg)
Types of CASE tools (cont.)Types of CASE tools (cont.)
he round-trip engineering tool Together J showing a class diagram with synchronized Java source code.
![Page 27: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/27.jpg)
What CASE can do to helpWhat CASE can do to help
Help to make analysis and design process more rigorous and complete, to reduce bugs later
Examples of functions in tools:Provide support for diagramming (for analysis and design)
Provide support for checking consistency of design
Provide graphing support to help users visualize an existing or proposed information system (e.g. Data flow diagrams)
Detail the processes of your system in a hierarchical structure
Produce executable applications based on your data flow diagrams (which can be made from point and click placements of icons)
Integrate specific methodologies into windowing environments
![Page 28: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/28.jpg)
Evolution of Software ToolsEvolution of Software Tools
Assemblers
Compilers
Debuggers
CASE-Analysis +Design
CASE-Code generators
soph
isti
cati
on
![Page 29: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/29.jpg)
Current Status of CASECurrent Status of CASE
A number of commercial productsSome aspects (e.g. diagramming support) are widely applicable and usefulOther features such as code generation are more specific
CASE tools not so successful for generic code generationHowever, specific code generation is now being used for things such as user interface design (e.g. Visual C++ allows you to “draw” the interface and it generates the code)
As ideas become successful often no longer called CASE
![Page 30: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/30.jpg)
Causes of failure (and symptoms) in software developmentCauses of failure (and symptoms) in software development
Requirements AnalysisNo written requirementsIncompletely specified requirementsNo user interface mock-upNo end –user involvement (can happen – may have talked to clients BUT not users!)
DesignLack of, or insufficient, design documentsPoorly specified data structures and file formatsInfrequent or no design reviews
![Page 31: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/31.jpg)
Causes of failure (and symptoms) in software development Causes of failure (and symptoms) in software development (cont.)(cont.)
ImplementationLack of, or insufficient coding standards
Infrequent or no code reviews
Poor in-line code documentation
Unit test and IntegrationInsufficient module testing
Lack of proper or complete testing
Lack of an independent quality assurance group
![Page 32: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/32.jpg)
Causes of failure (and symptoms) in software development Causes of failure (and symptoms) in software development (cont.)(cont.)
Beta Test ReleaseComplete lack of a beta test
Insufficient duration for beta test
Insufficient number of beta testers
Wrong beta testers selected
MaintenanceToo many bug reports
Fixing one bug introduces new bugs
![Page 33: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/33.jpg)
Stats on Software Errors (large systems)Stats on Software Errors (large systems)
Most software errors originate in the Analysis and Design phases (65%)
Unfortunately, less than one-third of these errors are caught before acceptance testing begins
About 35% of errors occur during coding Cost of fixing an error goes up the later it is caught! This is basis for emphasis in CASE on Analysis and
Design
![Page 34: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/34.jpg)
CASE Facilities and FunctionsCASE Facilities and Functions
graphics facilities description facilities prototyping inquiry and reporting quality assurance decision support
documentation transform
generators data sharing security, version control housekeeping
![Page 35: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/35.jpg)
CASE Tool IntegrationCASE Tool Integration
data integration– file transfer, linkage, or central interface
presentation integration– Windows, Motif, etc.
tool integration– interoperation
ProductionSystem
TechnicalDesign
BusinessRequirements
Existing System Planned ProjectPlanning
Support
Implementation Design
Analysis
![Page 36: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/36.jpg)
CASE WorkbenchCASE Workbench
Planning SupportImplementationDesignAnalysis
![Page 37: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/37.jpg)
Benefits of CASEBenefits of CASE
Increased Productivity Improved Quality Better Documentation Reduced Lifetime Maintenance Methods that really work
![Page 38: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/38.jpg)
Costs of CASECosts of CASE
hardware and systems software training and consulting justification for CASE
![Page 39: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/39.jpg)
Implementation Implementation RecommendationsRecommendations
get your methods in order select right people develop reasonable expectations choose appropriate pilot create support mechanism learn from others continually improve
![Page 40: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/40.jpg)
CASE toolsCASE tools
Upper CASE tools: support for the analysis and design
Lower CASE tools: support for construction and maintenance
1980s…
Nowadays…
Integrated CASE tools: Offer extensive life cycle coverage
![Page 41: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/41.jpg)
CASE tools: Automated Diagram CASE tools: Automated Diagram Support Support
Checks for syntactic correctness Data dictionary support Checks for consistency and completeness Navigation to linked diagrams Layering Requirements traceability Automatic report generation System simulation Performance analysis
![Page 42: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/42.jpg)
CASE tools: Software construction CASE tools: Software construction and maintenanceand maintenance
Code generators…Generate code from the design model…Think of the advantages!…may also generate database schemata…
Maintenance tools Reverse Engineering Analysis of program code
![Page 43: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/43.jpg)
CASE tools: AdvantagesCASE tools: Advantages
Help standardization of notations and diagrams Help communication between development team members Automatically check the quality of the A&D models Reduction of time and effort Enhance reuse of models or models’ components
![Page 44: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/44.jpg)
CASE tools: DisadvantagesCASE tools: Disadvantages
• Limitations in flexibility of documentation• May lead to restriction to the tool’s capabilities• Major danger: completeness and syntactic correctness does NOT mean compliance with requirements• Costs associated with the use of the tool: purchase + training
![Page 45: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/45.jpg)
UML: History and UML: History and Brief Summary Brief Summary
Adoption of the OO paradigm … problematic
Emergence of UML as a methods’ unification approach
UML notation: a melding of graphical notationsfrom various sources.
+ other concepts…
UML: An OMG standard since 1997…Under way to become an ISO standard!
![Page 46: Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of](https://reader035.vdocuments.site/reader035/viewer/2022062516/56649e615503460f94b5bda3/html5/thumbnails/46.jpg)
UML: History and UML: History and Brief Summary Brief Summary
UML: A method or a notation?
Primarily a notation
Modeling method: techniques + guidelines + notations roadmap for the development of a model
However, there are attempts to describe OO methods or methodological frameworks that would be able to employ UML.
• The Rational Unified Process• The Object-oriented Process, Environment and Notation (OPEN)