21
CASE Tools And CASE Tools And Their Effect On Their Effect On Software Quality Software Quality Peter Geddis – pxg07u Peter Geddis – pxg07u

CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Embed Size (px)

Citation preview

Page 1: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

CASE Tools And CASE Tools And Their Effect On Their Effect On

Software QualitySoftware QualityPeter Geddis – pxg07uPeter Geddis – pxg07u

Page 2: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

COMPUTER ASSISTED COMPUTER ASSISTED SOFTWARE ENGINEERINGSOFTWARE ENGINEERING

What is CASE?What is CASE?

CASE is a term covering a whole range of tools and CASE is a term covering a whole range of tools and methods that SUPPORT SOFTWARE SYSTEM methods that SUPPORT SOFTWARE SYSTEM DEVELOPMENTDEVELOPMENT

CASE Tools and MethodsCASE Tools and Methods

These tools and methods reduce the load on These tools and methods reduce the load on developers allowing them to focus their skills on developers allowing them to focus their skills on other goalsother goals

Usable at all stages of the Software Development Usable at all stages of the Software Development Life CycleLife Cycle

Example - Example - Automating tasks such as code generation and model Automating tasks such as code generation and model transformations would take a lot of time for a human transformations would take a lot of time for a human developer!developer!

Page 3: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

MORE ‘What Is MORE ‘What Is CASE???’CASE???’

CASE provides automation and aided CASE provides automation and aided design to developers in almost every design to developers in almost every single developer program for the last single developer program for the last couple decadescouple 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

Page 4: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Data ModelingData ModelingWhat is Data Modeling?What is Data Modeling?

A method that defines data requirements as data A method that defines data requirements as data models representing the business processes of models representing the business processes of the systemthe system

These Data Models contain data elements, These Data Models contain data elements, structure and relationships of a system as well as structure and relationships of a system as well as providing the definition and format for those partsproviding the definition 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 Basically the foundations that make the system work!work!

Page 5: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Data Modeling Data Modeling ProcessProcess

Conceptual Data ModelConceptual Data ModelDescribes the semantics of an Describes the semantics of an organizations entities and represents organizations entities and represents significant attribute and relationship significant attribute and relationship concepts within the organizationconcepts within the organization

Logical Data ModelLogical Data ModelActual implementation of a conceptual Actual implementation of a conceptual data model using a particular data data model using a particular data management technology - This may management technology - This may require multiple logical data models to require multiple logical data models to completecomplete

Physical Data ModelPhysical Data ModelGiving the logical data model real-world Giving the logical data model real-world implementation valuesimplementation values

Page 6: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Model and program Model and program transformationtransformation

What Is Model and Program Transformation?What Is Model and Program Transformation?

Simple Description Simple Description Its takes A and produces B using models to Its takes A and produces B using models to perform the transformationperform the transformation

Real DescriptionReal DescriptionObject A conforms to a given meta-model A and Object A conforms to a given meta-model A and produces as output Object B conforming to given produces as output Object B conforming to given meta-model Bmeta-model B

Model-Driven Engineering uses the concept of Model-Driven Engineering uses the concept of Model Transformation to allow domain-less Model Transformation to allow domain-less conceptsconcepts

Example -Example -Convert a Text doc to a Word doc – (Abstract Convert a Text doc to a Word doc – (Abstract example!)example!)

Page 7: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Model and Program Model and Program TransformationTransformation

Used in areas such as Compiler Construction Used in areas such as Compiler Construction and Documentation Generationand Documentation Generation

Benefits software development through Benefits software development through increased productivity by –increased productivity by –

Maximizing compatibility between systemsMaximizing compatibility between systemsSimplifying the process of designSimplifying the process of designPromoting communication between the Promoting communication between the people working on the systempeople working on the system

Program Transformation is useful for Program Transformation is useful for generating new programs modified for generating new programs modified for example to contain comments or example to contain comments or transformed based on a patterntransformed based on a pattern

Page 8: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

RefactoringRefactoringWhat Is It?What Is It?

DescriptionDescriptionThe process of modifying a systems The process of modifying a systems internal structure without changing its internal structure without changing its external behavior and functionalityexternal behavior and functionality

Can be thought of as a special type of Can be thought of as a special type of Program TransformationProgram Transformation

Example - Example - RENAMING A CLASS!RENAMING A CLASS!

Page 9: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

RefactoringRefactoringRefactoring is generally used when Refactoring is generally used when there’s a desire to modify code to –there’s a desire to modify code to –

Fit a particular coding style Fit a particular coding style Improve aspects of the code such as Improve aspects of the code such as

ReadabilityReadabilityPerformancePerformanceCoding StructureCoding Structure

Useful for machines to do the work of Useful for machines to do the work of refactoring softwarerefactoring software

Comp – ‘1 Second’ to change all class Comp – ‘1 Second’ to change all class instances in a systeminstances in a systemHuman – ‘1 Hour’ to change hopefully all Human – ‘1 Hour’ to change hopefully all instancesinstances

Page 10: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Source code Source code generationgeneration

What is It……..Oh wait, That’s easy!What is It……..Oh wait, That’s easy!

Simple DescriptionSimple DescriptionSource Code Generation is the automatic generation Source Code Generation is the automatic generation of codeof code

Better DescriptionBetter DescriptionMethod for generating code based on an ontological Method for generating code based on an ontological model of the source language containing language model of the source language containing language concepts and their relationshipsconcepts and their relationshipsOntological Model = Representation of the source Ontological Model = Representation of the source languagelanguage

Example - Example - Model allows an IDE to automatically fill class names Model allows an IDE to automatically fill class names for youfor you

Page 11: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Source code Source code generationgeneration

This CASE tool is used in range of highly This CASE tool is used in range of highly useful ways including –useful ways including –

Programs that create Graphical Programs that create Graphical interfaces in a drag and drop manner, interfaces in a drag and drop manner, background code generation at work background code generation at work

Infer the direction your code is goingInfer the direction your code is goingAuto suggestionsAuto suggestions

Add extra code to the system without Add extra code to the system without needing human approvalneeding human approval

Doing the setup and run work for youDoing the setup and run work for you

Page 12: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Source code Source code generationgeneration

How it improves Software QualityHow it improves Software Quality

Human Error does not mix well with Human Error does not mix well with codingcoding

Developer benefited by automatic Developer benefited by automatic suggestions of variables, classes, suggestions of variables, classes, components, etc meaning less risk of components, etc meaning less risk of errorserrors

Generated code can be almost always Generated code can be almost always guaranteed as correctly writtenguaranteed as correctly written

Page 13: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Unified Modeling Unified Modeling LanguageLanguage

What is It?What is It?Standardized general-purpose visualizing Standardized general-purpose visualizing modeling languagemodeling languageCombine multiple methods of modeling and Combine multiple methods of modeling and diagrams to form a comprehensive wholediagrams to form a comprehensive whole

What is it used for?What is it used for?Used to construct and document objects Used to construct and document objects and object-oriented systemsand object-oriented systemsEquivalent to a blueprint for a building but Equivalent to a blueprint for a building but with the blueprint representing softwarewith the blueprint representing software

Page 14: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Unified Modeling Unified Modeling LanguageLanguage

UML Modeling CategoriesUML Modeling Categories

StructuralStructuralTakes static aspects of the system such as Takes static aspects of the system such as objects, attributes, methods and the objects, attributes, methods and the relationships between to form a structure relationships between to form a structure representing the systemrepresenting the system

BehaviourBehaviourThe systems dynamic behavior (as if the system The systems dynamic behavior (as if the system was running) is captured using dynamic was running) is captured using dynamic diagrams including activity, sequence, diagrams including activity, sequence, communication and state machinescommunication and state machines

Page 15: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

Unified Modeling Unified Modeling LanguageLanguage

UML is widely used at all cycles of the software UML is widely used at all cycles of the software life cycle due to its usefulness bringing a system life cycle due to its usefulness bringing a system togethertogether

UML Programs UML Programs Allow creation and modification of modeling Allow creation and modification of modeling diagrams much more efficiently then modeling on diagrams much more efficiently then modeling on paperpaperDepth 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 Electronic UML can be stored in a central repository allowing all team members to access up-repository allowing all team members to access up-to-date documentation and system designto-date documentation and system designTransfer of whole or sectional designs possibleTransfer of whole or sectional designs possible

Page 16: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

DocumentationDocumentationWhat is It?What is It?

Documentation tools allow the creation, Documentation tools allow the creation, modification, and updating of system modification, and updating of system documentationdocumentationCompared to other CASE tools these are Compared to other CASE tools these are considerably more basic, however this considerably more basic, however this shouldn’t be taken as useless!shouldn’t be taken as useless!

Documentation tools can be used to –Documentation tools can be used to –Generate standard formsGenerate standard formsAuto correct spelling mistakesAuto correct spelling mistakesImprove layoutImprove layoutGenerate documentation automaticallyGenerate documentation automatically

Page 17: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

DocumentationDocumentationWhy it benefits Software Quality?Why it benefits Software Quality?

Documentation details the system and its Documentation details the system and its development, if there’s a problem good development, if there’s a problem good documentation is invaluable for finding documentation is invaluable for finding recent modifications or solving the errorrecent modifications or solving the errorUse of tools results in a more polished Use of tools results in a more polished document, one that is a higher-qualitydocument, one that is a higher-qualityIt can create documentation from code It can create documentation from code (such as Class Definitions) that (such as Class Definitions) that accurately depicts the codes functions accurately depicts the codes functions with a depth of detail a human developer with a depth of detail a human developer couldn’t achieve without more timecouldn’t achieve without more time

Page 18: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

CASE SummaryCASE SummaryLetting a machine do work produces correct Letting a machine do work produces correct output as long as the model the machine is output as long as the model the machine is using is correctusing is correct

Automating tasks frees more time up that Automating tasks frees more time up that can be spent improving the software in other can be spent improving the software in other waysways

UML and data modeling is a great way to UML and data modeling is a great way to construct a system from scratch and spot construct a system from scratch and spot major quality-flaws early onmajor quality-flaws early on

So general purpose it could solve or aid in any So general purpose it could solve or aid in any system designsystem design

Page 19: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

CASE SummaryCASE SummaryOverall use of CASE tools on a software system Overall use of CASE tools on a software system improves software quality dramatically by –improves software quality dramatically by –

Reducing errorsReducing errorsImproving designs throughout the developmentImproving designs throughout the developmentStandardizing many tasks and development Standardizing many tasks and development aspectsaspectsProviding many many well-tested automated Providing many many well-tested automated functionsfunctionsCentralizing resourcesCentralizing resources

• CASE is so good for software development its CASE is so good for software development its extremely rare to find a program that doesn’t extremely rare to find a program that doesn’t include some form of it within the last 2 include some form of it within the last 2 decadesdecades

Page 20: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

CASE DownsideCASE Downside• CASE has little effect on a few aspects CASE has little effect on a few aspects

of development and software quality.of development and software quality.

• This is because those aspects are hard This is because those aspects are hard or just impossible to automateor just impossible to automate

• Example –Example –– Requirements Gathering and DefinitionRequirements Gathering and Definition– Requires human input!Requires human input!

Page 21: CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u

The EndThe End!!!PLEASE MARK GENEROUSLY!!!!!!PLEASE MARK GENEROUSLY!!!

.. ..

||

|_____________||_____________|

REMEMBER QAT MARKING GOES FROM REMEMBER QAT MARKING GOES FROM 80% TO 100% ONLY!80% TO 100% ONLY!