1 / 24

Definition

Definition. CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run. What is CASE (Computer Aided Software Engineering ) ?.

saskia
Télécharger la présentation

Definition

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. Definition CASE tools are software systems which are designed to support 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. What is CASE (Computer Aided Software Engineering ) ? • Software systems that are intended to provide automated support for software process activities. • CASE systems are often used for method support.

  3. CASE Tools Categories • 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).

  4. Software Engineering (part 2) -The Role of Automation Computer Aided Software Engineering (CASE) • Tools for various stages of the process (analysis and design, programming, testing, maintenance, etc.) • Formal specification languages, e.g. Z • AI: Computers programming computers

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

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

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

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

  9. Programming Tools • Conventional coding tools: • Editor • Interpreter • Compiler • Debugger • Fourth Generation Language Tools

  10. 4GL • A fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software. • In the history of computer science, the 4GL followed the 3GL in an upward trend toward higher abstraction and statement power. The 4GL was followed by efforts to define and use a 5GL.

  11. 4GL (cont.) • All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. • They are not always successful in this task, sometimes resulting in inelegant and unmaintainable code. • However, given the right problem, the use of an appropriate 4GL can be successful.

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

  13. Dynamic analysis tools: • Interactions with an executing program • Provide information regarding number of times a loop is executed, running time of components, etc. • Intrusive(تطفل) (inserting probes(تحقيقات)) vs. nonintrusive

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

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

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

  17. Example: A Block Handler • Files are made up of blocks of storage • The computer system keeps tracks of unused and used blocks • 3 25 • 17 6 • 14 • 5 7 8 Used Unused 2 8 14 5 Queue

  18. Informal Specification of BlockHandler • No block is both used and unused • Every block is either used or unused • All blocks in the queue are used • The queue does not contain duplicates (note vagueness)

  19. Formal Specification of BlockHandler in Z State variables and data invariants BlockHandler

  20. Informal Specification of RemoveBlock • Precondition: the queue must not be empty in order for operation to succeed • Postconditions: • The new set of used blocks must be the old set without the blocks specified in the first queue element • The new set of free blocks must be the old set plus the blocks specified in the first queue element • The new queue must be the old queue without the first element

  21. Formal Specification of RemoveBlock in Z RemoveBlock

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

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

  24. Need: knowledge of user and domain • Advantage: restricted domain, e.g. database for E-commerce • But: Some kind of programming will remain necessary; the computer needs to know what you want it to do • Hence, some kind of software engineering methodology will always be needed

More Related