CASE tools can significantly improve software quality by automating tasks, reducing errors, and standardizing development processes. They provide functionality for data modeling, code generation, refactoring, documentation and more. While some aspects like requirements gathering require human input, overall CASE tools improve design, catch issues early, and allow developers to focus on other important work. Proper use of modeling languages and automation can dramatically enhance software quality across all stages of development.
1. CASE Tools And Their EffectCASE Tools And Their Effect
On Software QualityOn Software Quality
2. COMPUTER ASSISTED SOFTWARECOMPUTER ASSISTED SOFTWARE
ENGINEERINGENGINEERING
What is CASE?What is CASE?
CASE is a term covering a whole range of tools and methodsCASE is a term covering a whole range of tools and methods
that SUPPORT SOFTWARE SYSTEM DEVELOPMENTthat SUPPORT SOFTWARE SYSTEM DEVELOPMENT
CASE Tools and MethodsCASE Tools and Methods
These tools and methods reduce the load on developersThese tools and methods reduce the load on developers
allowing them to focus their skills on other goalsallowing them to focus their skills on other goals
Usable at all stages of the Software Development Life CycleUsable at all stages of the Software Development Life Cycle
Example -Example -
Automating tasks such as code generation and modelAutomating tasks such as code generation and model
transformations would take a lot of time for a humantransformations would take a lot of time for a human
developer!developer!
3. MORE ‘What Is CASE???’MORE ‘What Is CASE???’
CASE provides automation and aided design toCASE provides automation and aided design to
developers in almost every single developer programdevelopers in almost every single developer program
for the last couple decadesfor the last couple decades
CASE Tool and Method Categories -CASE Tool and Method Categories -
Data ModellingData Modelling
Model andModel and Program TransformationProgram Transformation
Refactoring toolsRefactoring tools
Source code generationSource code generation
Unified Modelling LanguageUnified Modelling Language
DocumentationDocumentation
4. Data ModelingData Modeling
What is Data Modeling?What is Data Modeling?
A method that defines data requirements as data modelsA method that defines data requirements as data models
representing the business processes of the systemrepresenting the business processes of the system
These Data Models contain data elements, structure andThese Data Models contain data elements, structure and
relationships of a system as well as providing therelationships of a system as well as providing the
definition and format for those partsdefinition and format for those parts
Models should be considered progressive ‘living’Models should be considered progressive ‘living’
documents that change with requirementsdocuments that change with requirements
Basically the foundations that make the system work!Basically the foundations that make the system work!
5. Data Modeling ProcessData Modeling Process
Conceptual Data ModelConceptual Data Model
Describes the semantics of an organizationsDescribes the semantics of an organizations
entities and represents significant attribute andentities and represents significant attribute and
relationship concepts within the organizationrelationship concepts within the organization
Logical Data ModelLogical Data Model
Actual implementation of a conceptual dataActual implementation of a conceptual data
model using a particular data managementmodel using a particular data management
technology - This may require multiple logicaltechnology - This may require multiple logical
data models to completedata models to complete
Physical Data ModelPhysical Data Model
Giving the logical data model real-worldGiving the logical data model real-world
implementation valuesimplementation values
6. Model and programModel and program
transformationtransformation
What Is Model and Program Transformation?What Is Model and Program Transformation?
Simple DescriptionSimple Description
Its takes A and produces B using models to perform theIts takes A and produces B using models to perform the
transformationtransformation
Real DescriptionReal Description
Object A conforms to a given meta-model A and produces asObject A conforms to a given meta-model A and produces as
output Object B conforming to given meta-model Boutput Object B conforming to given meta-model B
Model-Driven Engineering uses the concept of ModelModel-Driven Engineering uses the concept of Model
Transformation to allow domain-less conceptsTransformation to allow domain-less concepts
Example -Example -
Convert a Text doc to a Word doc – (Abstract example!)Convert a Text doc to a Word doc – (Abstract example!)
7. Model and ProgramModel and Program
TransformationTransformation
Used in areas such as Compiler Construction andUsed in areas such as Compiler Construction and
Documentation GenerationDocumentation Generation
Benefits software development through increasedBenefits software development through increased
productivity by –productivity by –
Maximizing compatibility between systemsMaximizing compatibility between systems
Simplifying the process of designSimplifying the process of design
Promoting communication between the people working onPromoting communication between the people working on
the systemthe system
Program Transformation is useful for generating newProgram Transformation is useful for generating new
programs modified for example to contain comments orprograms modified for example to contain comments or
transformed based on a patterntransformed based on a pattern
8. RefactoringRefactoring
What Is It?What Is It?
DescriptionDescription
The process of modifying a systems internal structureThe process of modifying a systems internal structure
without changing its external behavior andwithout changing its external behavior and
functionalityfunctionality
Can be thought of as a special type of ProgramCan be thought of as a special type of Program
TransformationTransformation
Example -Example -
RENAMING A CLASS!RENAMING A CLASS!
9. RefactoringRefactoring
Refactoring is generally used when there’s a desire toRefactoring is generally used when there’s a desire to
modify code to –modify code to –
Fit a particular coding styleFit a particular coding style
Improve aspects of the code such asImprove aspects of the code such as
ReadabilityReadability
PerformancePerformance
Coding StructureCoding Structure
Useful for machines to do the work of refactoringUseful for machines to do the work of refactoring
softwaresoftware
Comp – ‘1 Second’ to change all class instances in aComp – ‘1 Second’ to change all class instances in a
systemsystem
Human – ‘1 Hour’ to change hopefully all instancesHuman – ‘1 Hour’ to change hopefully all instances
10. Source code generationSource code generation
What is It……..Oh wait, That’s easy!What is It……..Oh wait, That’s easy!
Simple DescriptionSimple Description
Source Code Generation is the automatic generation of codeSource Code Generation is the automatic generation of code
Better DescriptionBetter Description
Method for generating code based on an ontological modelMethod for generating code based on an ontological model
of the source language containing language concepts andof the source language containing language concepts and
their relationshipstheir relationships
Ontological Model = Representation of the source languageOntological Model = Representation of the source language
Example -Example -
Model allows an IDE to automatically fill class names for youModel allows an IDE to automatically fill class names for you
11. Source code generationSource code generation
This CASE tool is used in range of highly useful waysThis CASE tool is used in range of highly useful ways
including –including –
Programs that create Graphical interfaces in a dragPrograms that create Graphical interfaces in a drag
and drop manner, background code generation atand drop manner, background code generation at
workwork
Infer the direction your code is goingInfer the direction your code is going
Auto suggestionsAuto suggestions
Add extra code to the system without needing humanAdd extra code to the system without needing human
approvalapproval
Doing the setup and run work for youDoing the setup and run work for you
12. Source code generationSource code generation
How it improves Software QualityHow it improves Software Quality
Human Error does not mix well with codingHuman Error does not mix well with coding
Developer benefited by automatic suggestions ofDeveloper benefited by automatic suggestions of
variables, classes, components, etc meaning less riskvariables, classes, components, etc meaning less risk
of errorsof errors
Generated code can be almost always guaranteed asGenerated code can be almost always guaranteed as
correctly writtencorrectly written
13. Unified ModelingUnified Modeling
LanguageLanguage
What is It?What is It?
Standardized general-purpose visualizing modelingStandardized general-purpose visualizing modeling
languagelanguage
Combine multiple methods of modeling and diagramsCombine multiple methods of modeling and diagrams
to form a comprehensive wholeto form a comprehensive whole
What is it used for?What is it used for?
Used to construct and document objects and object-Used to construct and document objects and object-
oriented systemsoriented systems
Equivalent to a blueprint for a building but with theEquivalent to a blueprint for a building but with the
blueprint representing softwareblueprint representing software
14. Unified ModelingUnified Modeling
LanguageLanguage
UML Modeling CategoriesUML Modeling Categories
StructuralStructural
Takes static aspects of the system such as objects,Takes static aspects of the system such as objects,
attributes, methods and the relationships between to formattributes, methods and the relationships between to form
a structure representing the systema structure representing the system
BehaviourBehaviour
The systems dynamic behavior (as if the system wasThe systems dynamic behavior (as if the system was
running) is captured using dynamic diagrams includingrunning) is captured using dynamic diagrams including
activity, sequence, communication and state machinesactivity, sequence, communication and state machines
15. Unified ModelingUnified Modeling
LanguageLanguage
UML is widely used at all cycles of the software life cycleUML is widely used at all cycles of the software life cycle
due to its usefulness bringing a system togetherdue to its usefulness bringing a system together
UML ProgramsUML Programs
Allow creation and modification of modeling diagramsAllow creation and modification of modeling diagrams
much more efficiently then modeling on papermuch more efficiently then modeling on paper
Depth can be added to sectionsDepth can be added to sections
Links to other workLinks to other work
Electronic UML can be stored in a central repositoryElectronic UML can be stored in a central repository
allowing all team members to access up-to-dateallowing all team members to access up-to-date
documentation and system designdocumentation and system design
Transfer of whole or sectional designs possibleTransfer of whole or sectional designs possible
16. DocumentationDocumentation
What is It?What is It?
Documentation tools allow the creation, modification,Documentation tools allow the creation, modification,
and updating of system documentationand updating of system documentation
Compared to other CASE tools these are considerablyCompared to other CASE tools these are considerably
more basic, however this shouldn’t be taken as useless!more basic, however this shouldn’t be taken as useless!
Documentation tools can be used to –Documentation tools can be used to –
Generate standard formsGenerate standard forms
Auto correct spelling mistakesAuto correct spelling mistakes
Improve layoutImprove layout
Generate documentation automaticallyGenerate documentation automatically
17. DocumentationDocumentation
Why it benefits Software Quality?Why it benefits Software Quality?
Documentation details the system and itsDocumentation details the system and its
development, if there’s a problem gooddevelopment, if there’s a problem good
documentation is invaluable for finding recentdocumentation is invaluable for finding recent
modifications or solving the errormodifications or solving the error
Use of tools results in a more polished document, oneUse of tools results in a more polished document, one
that is a higher-qualitythat is a higher-quality
It can create documentation from code (such as ClassIt can create documentation from code (such as Class
Definitions) that accurately depicts the codesDefinitions) that accurately depicts the codes
functions with a depth of detail a human developerfunctions with a depth of detail a human developer
couldn’t achieve without more timecouldn’t achieve without more time
18. CASE SummaryCASE Summary
Letting a machine do work produces correct outputLetting a machine do work produces correct output
as long as the model the machine is using is correctas long as the model the machine is using is correct
Automating tasks frees more time up that can beAutomating tasks frees more time up that can be
spent improving the software in other waysspent improving the software in other ways
UML and data modeling is a great way to construct aUML and data modeling is a great way to construct a
system from scratch and spot major quality-flawssystem from scratch and spot major quality-flaws
early onearly on
So general purpose it could solve or aid in any systemSo general purpose it could solve or aid in any system
designdesign
19. CASE SummaryCASE Summary
Overall use of CASE tools on a software systemOverall use of CASE tools on a software system
improves software quality dramatically by –improves software quality dramatically by –
Reducing errorsReducing errors
Improving designs throughout the developmentImproving designs throughout the development
Standardizing many tasks and development aspectsStandardizing many tasks and development aspects
Providing many many well-tested automated functionsProviding many many well-tested automated functions
Centralizing resourcesCentralizing resources
CASE is so good for software development itsCASE is so good for software development its
extremely rare to find a program that doesn’t includeextremely rare to find a program that doesn’t include
some form of it within the last 2 decadessome form of it within the last 2 decades
20. CASE DownsideCASE Downside
CASE has little effect on a few aspects ofCASE has little effect on a few aspects of
development and software quality.development and software quality.
This is because those aspects are hard or justThis is because those aspects are hard or just
impossible to automateimpossible to automate
Example –Example –
Requirements Gathering and DefinitionRequirements Gathering and Definition
Requires human input!Requires human input!
21. The EndThe End
!!!PLEASE MARK GENEROUSLY!!!!!!PLEASE MARK GENEROUSLY!!!
.. ..
||
|_____________||_____________|
REMEMBER QAT MARKING GOES FROM 80% TO 100%REMEMBER QAT MARKING GOES FROM 80% TO 100%
ONLY!ONLY!