220 likes | 477 Views
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
E N D
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 andProgram 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 object-oriented 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!