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

Download Report

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

CASE Tools And Their
Effect On Software Quality
Peter Geddis – pxg07u
COMPUTER ASSISTED SOFTWARE
ENGINEERING
What is CASE?
CASE is a term covering a whole range of tools and methods
that SUPPORT SOFTWARE SYSTEM DEVELOPMENT
CASE Tools and Methods
These tools and methods reduce the load on developers
allowing them to focus their skills on other goals
Usable at all stages of the Software Development Life Cycle
Example Automating tasks such as code generation and model
transformations would take a lot of time for a human
developer!
MORE ‘What Is CASE???’
CASE provides automation and aided design to
developers in almost every single developer program
for the last couple decades
CASE Tool and Method Categories Data Modelling
Model and Program Transformation
Refactoring tools
Source code generation
Unified Modelling Language
Documentation
Data Modeling
What is Data Modeling?
A method that defines data requirements as data models
representing the business processes of the system
These Data Models contain data elements, structure and
relationships of a system as well as providing the
definition and format for those parts
Models should be considered progressive ‘living’
documents that change with requirements
Basically the foundations that make the system work!
Data Modeling Process
Conceptual Data Model
Describes the semantics of an organizations
entities and represents significant attribute and
relationship concepts within the organization
Logical Data Model
Actual implementation of a conceptual data
model using a particular data management
technology - This may require multiple logical
data models to complete
Physical Data Model
Giving the logical data model real-world
implementation values
Model and program
transformation
What Is Model and Program Transformation?
Simple Description
Its takes A and produces B using models to perform the
transformation
Real Description
Object A conforms to a given meta-model A and produces as
output Object B conforming to given meta-model B
Model-Driven Engineering uses the concept of Model
Transformation to allow domain-less concepts
Example Convert a Text doc to a Word doc – (Abstract example!)
Model and Program
Transformation
Used in areas such as Compiler Construction and
Documentation Generation
Benefits software development through increased
productivity by –
Maximizing compatibility between systems
Simplifying the process of design
Promoting communication between the people working on
the system
Program Transformation is useful for generating new
programs modified for example to contain comments or
transformed based on a pattern
Refactoring
What Is It?
Description
The process of modifying a systems internal structure
without changing its external behavior and
functionality
Can be thought of as a special type of Program
Transformation
Example RENAMING A CLASS!
Refactoring
Refactoring is generally used when there’s a desire to
modify code to –
Fit a particular coding style
Improve aspects of the code such as
Readability
Performance
Coding Structure
Useful for machines to do the work of refactoring
software
Comp – ‘1 Second’ to change all class instances in a
system
Human – ‘1 Hour’ to change hopefully all instances
Source code generation
What is It……..Oh wait, That’s easy!
Simple Description
Source Code Generation is the automatic generation of code
Better Description
Method for generating code based on an ontological model
of the source language containing language concepts and
their relationships
Ontological Model = Representation of the source language
Example Model allows an IDE to automatically fill class names for you
Source code generation
This CASE tool is used in range of highly useful ways
including –
Programs that create Graphical interfaces in a drag and
drop manner, background code generation at work
Infer the direction your code is going
Auto suggestions
Add extra code to the system without needing human
approval
Doing the setup and run work for you
Source code generation
How it improves Software Quality
Human Error does not mix well with coding
Developer benefited by automatic suggestions of
variables, classes, components, etc meaning less risk
of errors
Generated code can be almost always guaranteed as
correctly written
Unified Modeling
Language
What is It?
Standardized general-purpose visualizing modeling
language
Combine multiple methods of modeling and diagrams
to form a comprehensive whole
What is it used for?
Used to construct and document objects and objectoriented systems
Equivalent to a blueprint for a building but with the
blueprint representing software
Unified Modeling
Language
UML Modeling Categories
Structural
Takes static aspects of the system such as objects,
attributes, methods and the relationships between to form
a structure representing the system
Behaviour
The systems dynamic behavior (as if the system was
running) is captured using dynamic diagrams including
activity, sequence, communication and state machines
Unified Modeling
Language
UML is widely used at all cycles of the software life cycle
due to its usefulness bringing a system together
UML Programs
Allow creation and modification of modeling diagrams much
more efficiently then modeling on paper
Depth can be added to sections
Links to other work
Electronic UML can be stored in a central repository
allowing all team members to access up-to-date
documentation and system design
Transfer of whole or sectional designs possible
Documentation
What is It?
Documentation tools allow the creation, modification,
and updating of system documentation
Compared to other CASE tools these are considerably
more basic, however this shouldn’t be taken as useless!
Documentation tools can be used to –
Generate standard forms
Auto correct spelling mistakes
Improve layout
Generate documentation automatically
Documentation
Why it benefits Software Quality?
Documentation details the system and its
development, if there’s a problem good
documentation is invaluable for finding recent
modifications or solving the error
Use of tools results in a more polished document, one
that is a higher-quality
It can create documentation from code (such as Class
Definitions) that accurately depicts the codes functions
with a depth of detail a human developer couldn’t
achieve without more time
CASE Summary
Letting a machine do work produces correct output
as long as the model the machine is using is correct
Automating tasks frees more time up that can be
spent improving the software in other ways
UML and data modeling is a great way to construct a
system from scratch and spot major quality-flaws
early on
So general purpose it could solve or aid in any system
design
CASE Summary
Overall use of CASE tools on a software system
improves software quality dramatically by –
Reducing errors
Improving designs throughout the development
Standardizing many tasks and development aspects
Providing many many well-tested automated functions
Centralizing resources
CASE is so good for software development its
extremely rare to find a program that doesn’t include
some form of it within the last 2 decades
CASE Downside
CASE has little effect on a few aspects of
development and software quality.
This is because those aspects are hard or just
impossible to automate
Example –
Requirements Gathering and Definition
Requires human input!
The End
!!!PLEASE MARK GENEROUSLY!!!
.
.
|
|_____________|
REMEMBER QAT MARKING GOES FROM 80% TO 100%
ONLY!