Presentation is loading. Please wait.

Presentation is loading. Please wait.

Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.

Similar presentations


Presentation on theme: "Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing."— Presentation transcript:

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

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

3 Upper-CASE upperCASE tools assist the designer only at the early stages of system development and ignore the actual implementation of the system. The emphasis in upperCASE 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 UpperCASE tools support traditional diagrammatic languages like Entity Relationship Diagrams, Data Flow Diagrams, Structure Charts etc. providing mainly draw, store as well as documentation facilities.

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

5 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(بسلاسة).

6 Taxonomy(تصنيف ) of CASE tools
Project management Support Analysis and Design Programming Integration and Testing Prototyping (Maintenance)

7 Project Management Tools
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 inter-dependencies and parallelism

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

9 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

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

11 Interpreter Compiler Translates program one statement at a time. Scans the entire program and translates it as a whole into machine 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.

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

13 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

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

15 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

16 Formal Specification Languages
Formal vs. informal specifications Problems with informal specifications: Contradictions Ambiguities Vagueness(غموض ) Incompleteness Mixed levels of abstraction

17 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

18 Formal Specification of RemoveBlock in Z

19 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

20 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


Download ppt "Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing."

Similar presentations


Ads by Google