1 / 21

CASE Tools And Their Effect On Software Quality

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

tambre
Download Presentation

CASE Tools And Their Effect On Software Quality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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!

  3. 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

  4. 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!

  5. 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

  6. 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!)

  7. 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

  8. 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!

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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!

  21. The End !!!PLEASE MARK GENEROUSLY!!! . . | |_____________| REMEMBER QAT MARKING GOES FROM 80% TO 100% ONLY!

More Related