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

Slides:



Advertisements
Similar presentations
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Advertisements

© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Software Engineering COMP 201
Introduction To System Analysis and Design
Requirements Analysis 5. 1 CASE b505.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis CASE Computer.
Fundamentals of Information Systems, Second Edition
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Lecture Nine Database Planning, Design, and Administration
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Types of software. Sonam Dema..
Your Interactive Guide to the Digital World Discovering Computers 2012.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
ITEC224 Database Programming
HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Lecture 3 Software Engineering Models (Cont.)
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Content The system development life cycle
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
K. Ingram 1 Oct 2001 Software Development Tools. K. Ingram 2 Oct 2001 Contents l Tools – what are they, why are they needed? l Software Development Tools.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
NURHALIMA 1. Identify the trade-offs when using CASE Describe organizational forces for and against adoption of CASE tools Describe the role of CASE tools.
Chapter – 8 Software Tools.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Information Systems Development
CIS 375 Bruce R. Maxim UM-Dearborn
Component 1.6.
ICS 3UI - Introduction to Computer Science
Appendix 2 Automated Tools for Systems Development
Prototyping in the software process
Testing Tools & Standards
Software Prototyping.
Unit 2 Technology Systems
Chapter 1 The Systems Development Environment
Modern Systems Analysis and Design Third Edition
CSCI-235 Micro-Computer Applications
CASE Tools and Joint and Rapid Application Development
CGS 2545: Database Concepts Fall 2010
Computer Aided Software Engineering (CASE)
Modern Systems Analysis and Design Third Edition
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
SDC – SDLC integration.
A451 Theory – 7 Programming 7A, B - Algorithms.
Life Cycle Models PPT By :Dr. R. Mall.
Chapter 1 The Systems Development Environment
Tools of Software Development
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Chapter 1 Introduction(1.1)
CS310 Software Engineering Lecturer Dr.Doaa Sami
PROGRAMMING FUNDAMENTALS Lecture # 03. Programming Language A Programming language used to write computer programs. Its mean of communication between.
SOFTWARE DEVELOPMENT LIFE CYCLE
Chapter 1 The Systems Development Environment
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Modern Systems Analysis and Design Third Edition
Presentation transcript:

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

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.

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 Project management Support Analysis and Design Programming Integration and Testing Prototyping (Maintenance)

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

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

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 Debugger Fourth Generation Language Tools

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.

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 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 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 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: Contradictions Ambiguities Vagueness(غموض ) Incompleteness Mixed levels of abstraction

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 RemoveBlock in Z

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 Fourth Generation Languages, adding another layer of abstraction Disadvantage: less control over details Adding more Artificial Intelligence: Computer needs to make more decisions autonomously