Definition CASE tools are software systems that are

  • Slides: 20
Download presentation
Definition CASE tools are software systems that are intended to provide automated support for

Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run.

CASE Tools Categories • The most popular classification of CASE technology and tools is

CASE Tools Categories • The most popular classification of CASE technology and tools is based on the distinction made between the early and late stages of systems development. • Upper-CASE – Tools to support the early process activities of requirements and design; • Lower-CASE – Tools to support later activities such as programming, debugging and testing. • Integrated-CASE – Tools to support the whole SDLC (system development life cycle).

Upper-CASE • upper. CASE tools assist the designer only at the early stages of

Upper-CASE • upper. CASE tools assist the designer only at the early stages of system development and ignore the actual implementation of the system. • The emphasis in upper. CASE is to describe the mission, objectives, strategies, operational plans, resources, component parts etc. of the enterprise and provide automated support for defining the logical level of the business • Upper. CASE tools support traditional diagrammatic languages like Entity Relationship Diagrams, Data Flow Diagrams, Structure Charts etc. providing mainly draw, store as well as documentation facilities.

Lower-CASE • Other CASE tools deal with the application development itself with regard to

Lower-CASE • Other CASE tools deal with the application development itself with regard to the efficient generation of code. These are termed lower. CASE tools because they assist the developer at the stage of system generation and ignore the early stages of system requirements specification. • Lower. CASE tools employ mapping algorithms to automatically transformal specifications into an executable form. • This includes, among others, transformation of specifications to relational database schemas, normalization of database relations and SQL code generation.

Integrated-CASE • The CASE market nowadays claim that provide support for both the early

Integrated-CASE • The CASE market nowadays claim that provide support for both the early stages as well as the implementation stages of information systems development. Clearly, this move towards integrated CASE (ICASE). • In this architecture, the repository plays a more active role in that all tools can interface and exchange data with it. • A repository, holds data fields and definitions and ensures that data integrity is maintained throughout the development lifecycle. As a consequence, ICASE allow tools to work together relatively seamlessly( )ﺑﺴﻼﺳﺔ.

Taxonomy( ﺗﺼﻨﻴﻒ ) of CASE tools 1. 2. 3. 4. 5. 6. 7. Project

Taxonomy( ﺗﺼﻨﻴﻒ ) of CASE tools 1. 2. 3. 4. 5. 6. 7. Project management Support Analysis and Design Programming Integration and Testing Prototyping (Maintenance)

Project Management Tools 1. Project Planning Tools ¬ Cost estimation: using lines of code

Project Management Tools 1. Project Planning Tools ¬ Cost estimation: using lines of code to be produced, problem complexity, staff experience, time available ¬ Project scheduling: define project tasks, create task network describing interdependencies and parallelism

2. Requirement Tracing Tools: making sure the contract is fulfilled and no requirements are

2. Requirement Tracing Tools: making sure the contract is fulfilled and no requirements are accidentally missed 3. Metrics Tools: Evaluating quality of software under development and its functionality

Support, Analysis & Design Tools • Documentation Tools: 20 -30% of software development effort

Support, Analysis & Design Tools • Documentation Tools: 20 -30% of software development effort is in documentation • SA/SD Tools: Structured Analysis & Structured Design, for creating more and more complex models of the system • PRO/SIM Tools: Prototyping and Simulation • Interface Design and Development Tools: Interface accounts for 50 -80% of code generated

Programming Tools • Conventional coding tools: – Editor – Assembler – Interpreter – Compiler

Programming Tools • Conventional coding tools: – Editor – Assembler – Interpreter – Compiler – Debugger • Fourth Generation Language Tools

Interpreter Compiler Scans the entire program and Translates program one statement at translates it

Interpreter Compiler Scans the entire program and Translates program one statement at translates it as a whole into machine a time. code. It takes less amount of time to analyze the source code but the overall execution time is slower. It takes large amount of time to analyze the source code but the overall execution time is comparatively faster. No intermediate object code is generated, hence are memory efficient. Generates intermediate object code which further requires linking, hence requires more memory. Continues translating the program until the first error is met, in which case it stops. Hence debugging is easy. It generates the error message only after scanning the whole program. Hence debugging is comparatively hard. Programming language like Python, Ruby use interpreters. Programming language like C, C++ use compilers.

Assembler • An assembler is a program that takes basic computer instructions and converts

Assembler • An assembler is a program that takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations. • Some people call these instructions assembler language and others use the term assembly language.

Integration and Testing Tools • Static analysis tools: – Code-based testing, generating test instances

Integration and Testing Tools • Static analysis tools: – Code-based testing, generating test instances from source code – Specialised testing languages, for writing detailed test specifications – Requirement-based testing, generating test cases based on specific user requirements

 • Dynamic analysis tools: – Interactions with an executing program – Provide information

• Dynamic analysis tools: – Interactions with an executing program – Provide information regarding number of times a loop is executed, running time of components, etc.

Prototyping Tools Three kinds of prototypes: • Paper/PC-based prototype modelling the human-computer interaction •

Prototyping Tools Three kinds of prototypes: • Paper/PC-based prototype modelling the human-computer interaction • Working prototype implementing a subset of the desired functionality • Using an existing program as an approximation

Formal Specification Languages • • Formal vs. informal specifications Problems with informal specifications: –

Formal Specification Languages • • Formal vs. informal specifications Problems with informal specifications: – – – Contradictions Ambiguities Vagueness( ﻏﻤﻮﺽ ) Incompleteness Mixed levels of abstraction

Advantages of Formality • Formal = mathematically precise, usually involving formal logics • Advantages:

Advantages of Formality • Formal = mathematically precise, usually involving formal logics • Advantages: – Contradictions can be spotted – No ambiguities possible – Vagueness dissolves – High level of validation: you can PROVE that design matches specification and that implementation correctly reflects design

Formal Specification of Remove. Block in Z

Formal Specification of Remove. Block in Z

Problems with Formality • Time consuming • Difficult to carry out for complex software,

Problems with Formality • Time consuming • Difficult to carry out for complex software, e. g. formal validation of Windows is computationally infeasible • Consequently, formal specification is mainly used in safety-critical domains

Towards fully automatic software engineering • Computers programming computers: intelligent robots or softbots •

Towards fully automatic software engineering • Computers programming computers: intelligent robots or softbots • Fourth Generation Languages, adding another layer of abstraction • Disadvantage: less control over details • Adding more Artificial Intelligence: Computer needs to make more decisions autonomously