Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Advertisements

CASE tools Upper CASE tools: support for the analysis and design Lower CASE tools: support for construction and maintenance 1980s… Nowadays… Integrated.
Ch 3 System Development Environment
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
ITEC 2010A Lecture 4 CASE tools and the Life Cycle continued (end of chapter 3)
© 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
11.1 Lecture 11 CASE tools IMS Systems Design and Implementation.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Requirements Analysis 5. 1 CASE b505.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis CASE Computer.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Fundamentals of Information Systems, Second Edition
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
Introduction to Systems Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Reginald Wesley CSC 432.  What is CASE?  Background  Why is CASE important?  Drawbacks  Tools.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Introduction to Information System Development.
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 CASE Computer-aided software engineering Excerpted from Ian Sommerville’s.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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,
Lecture 3 Software Engineering Models (Cont.)
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Systems Analysis and Design in a Changing World, Fourth Edition
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
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.
CASE Tools and their Effect on Software Quality
CASE (Computer-Aided Software Engineering) Tools
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Software engineering Software Processes.
Appendix 2 Automated Tools for Systems Development
Testing Tools & Standards
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Modern Systems Analysis and Design Third Edition
Computer Aided Software Engineering (CASE)
Modern Systems Analysis and Design Third Edition
Business System Development
Software Processes.
Tools of Software Development
Chapter 4 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
©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:

Everyone has heard the old saying about the shoemaker's children: The shoemaker is so busy making shoes for others that his children don't have shoes of their own. Prior to the 1990s, many software developers were the "shoemaker's children." Although these technical professionals built complex systems and products that automated the work of others, they used very little automation themselves. Today, software engineers have their first new pair of shoes—computer-aided software engineering (CASE).

Computer Aided Systems Engineering (CASE) CASE is the application of computer technology to systems development activities, techniques, and methods. COMPUTER-AIDED SOFTWARE ENGINEERING (CASE) The automation of step-by -step methodologies for software and systems development CASE tools automate or support one or more phases of the SDLC to speed up development and improve quality.

What Is a CASE Tool? Since the early days of writing software, there has been an awareness of the need for automated tools to help the software developer. Initially the concentration was on program support tools such as translators, compilers, assemblers, macro processors, and linkers and loaders. However, as computers became more powerful and the software that ran on them grew larger and more complex, the range of support tools began to expand. In particular, the use of interactive time-sharing systems for software development encouraged the development of program editors, debuggers, code analyzers.

A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.

Computer-aided software engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools. Some typical CASE tools are: Code generation tools Data modeling tools UML Refactoring tools QVT or Model transformation Tools Configuration management tools including revision control

All aspects of the software development lifecycle can be supported by software tools, and so the use of tools from across the spectrum can, arguably, be described as CASE; from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on.

Computer Aided Systems Engineering (CASE) aims to improve quality of systems focuses on automating structured techniques upper CASE tools lower CASE tools relies on rigorous development methods

CASE Framework Planning Support Implementation Design Analysis

CASE Tools upper-CASE lower-CASE cross life cycle CASE

Upper CASE Tools systems planning systems analysis goals, objectives business models systems analysis scope, boundaries detailed modeling prototyping

Lower CASE Tools systems design systems implementation systems support technology models systems implementation programmer workbench code generation systems support reverse engineering REVERSE ENGINEERING The process of examining an existing application that has characteristics that are similar to a desired application. Using the existing application as a guide, the requirements for the new application are defined, analyzed, and extracted all the way back to specifications. From this point, the specifications are altered to comply with any new customer requirements and the new application is developed.

Cross Life Cycle CASE Tools Production System Technical Design Requirements Business Existing System Planned Project Planning Support Implementation Analysis project management process management estimation documentation

Automated process support (CASE) Computer-aided software engineering (CASE) is software to support software development and evolution processes Activity automation Graphical editors for system model development Data dictionary to manage design entities Graphical UI builder for user interface construction Debuggers to support program fault finding Automated translators to generate new versions of a program

Case technology Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were once predicted Software engineering requires creative thought - this is not readily automatable Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these

CASE classification Classification helps us understand the different types of CASE tools and their support for process activities Functional perspective Tools are classified according to their specific function Process perspective Tools are classified according to process activities that are supported Integration perspective Tools are classified according to their organisation into integrated units

Functional tool classification

Activity-based classification

CASE integration Tools Workbenches Environments Support individual process tasks such as design consistency checking, text editing, etc. Workbenches Support a process phase such as specification or design, Normally include a number of integrated tools Environments Support all or a substantial part of an entire software process. Normally include several integrated workbenches

Tools, workbenches, environments

CASE Repository a developers database stored stores diagrams, specifications, code ensures standardization, consistency tracks people, data, process, network, technology stored locally in work groups centrally

Computer-Aided System Engineering (CASE) CASE tools: Software tools designed to help system analyst complete development tasks The CASE tool contains a database of information called a repository Information about models Descriptions Data definitions References that link models together Case tools can check the models to make sure they are complete and follow diagramming rules Also can check if the models are consistent Adds a number of capabilities around the repository

CASE Approach (cont.) A CASE tool repository contains all information about the system.

Types of CASE tools Upper CASE tools Lower CASE tools Support analyst during the analysis and design phases Lower CASE tools Support for implementation – e.g. generating programs Tools may be general, or designed for specific methodology (like for information engineering – TIs’ IEF, CoolTools) Examples of CASE tools Visual Analyst for creating traditional models Called “integrated application development tool” Rational Rose for object-oriented modeling Based on UML standard for object orientation Allows for reverse-engineering and code generation (can be integrated with other tools like Visual C++ etc.) “Round trip engineering” – synchronized updating

Types of CASE tools (cont.) The CASE tool Visual Analyst showing a data flow diagram.

Types of CASE tools (cont.) The visual modeling tool Rational Rose showing diagrams from the object-oriented approach

Types of CASE tools (cont.) he round-trip engineering tool Together J showing a class diagram with synchronized Java source code.

What CASE can do to help Help to make analysis and design process more rigorous and complete, to reduce bugs later Examples of functions in tools: Provide support for diagramming (for analysis and design) Provide support for checking consistency of design Provide graphing support to help users visualize an existing or proposed information system (e.g. Data flow diagrams) Detail the processes of your system in a hierarchical structure Produce executable applications based on your data flow diagrams (which can be made from point and click placements of icons) Integrate specific methodologies into windowing environments

Evolution of Software Tools CASE- Code generators sophistication CASE- Analysis + Design Debuggers Compilers Assemblers

Current Status of CASE A number of commercial products Some aspects (e.g. diagramming support) are widely applicable and useful Other features such as code generation are more specific CASE tools not so successful for generic code generation However, specific code generation is now being used for things such as user interface design (e.g. Visual C++ allows you to “draw” the interface and it generates the code) As ideas become successful often no longer called CASE

Causes of failure (and symptoms) in software development Requirements Analysis No written requirements Incompletely specified requirements No user interface mock-up No end –user involvement (can happen – may have talked to clients BUT not users!) Design Lack of, or insufficient, design documents Poorly specified data structures and file formats Infrequent or no design reviews

Causes of failure (and symptoms) in software development (cont.) Implementation Lack of, or insufficient coding standards Infrequent or no code reviews Poor in-line code documentation Unit test and Integration Insufficient module testing Lack of proper or complete testing Lack of an independent quality assurance group

Causes of failure (and symptoms) in software development (cont.) Beta Test Release Complete lack of a beta test Insufficient duration for beta test Insufficient number of beta testers Wrong beta testers selected Maintenance Too many bug reports Fixing one bug introduces new bugs

Stats on Software Errors (large systems) Most software errors originate in the Analysis and Design phases (65%) Unfortunately, less than one-third of these errors are caught before acceptance testing begins About 35% of errors occur during coding Cost of fixing an error goes up the later it is caught! This is basis for emphasis in CASE on Analysis and Design

CASE Facilities and Functions graphics facilities description facilities prototyping inquiry and reporting quality assurance decision support documentation transform generators data sharing security, version control housekeeping

CASE Tool Integration data integration presentation integration Production System Technical Design Requirements Business Existing System Planned Project Planning Support Implementation Analysis CASE Tool Integration data integration file transfer, linkage, or central interface presentation integration Windows, Motif, etc. tool integration interoperation

CASE Workbench Planning Support Implementation Design Analysis

Benefits of CASE Increased Productivity Improved Quality Better Documentation Reduced Lifetime Maintenance Methods that really work

Costs of CASE hardware and systems software training and consulting justification for CASE

Implementation Recommendations get your methods in order select right people develop reasonable expectations choose appropriate pilot create support mechanism learn from others continually improve

CASE tools 1980s… Upper CASE tools: support for the analysis and design Lower CASE tools: support for construction and maintenance Nowadays… Integrated CASE tools: Offer extensive life cycle coverage

CASE tools: Automated Diagram Support Checks for syntactic correctness Data dictionary support Checks for consistency and completeness Navigation to linked diagrams Layering Requirements traceability Automatic report generation System simulation Performance analysis

CASE tools: Software construction and maintenance Code generators …Generate code from the design model… Think of the advantages! …may also generate database schemata… Maintenance tools Reverse Engineering Analysis of program code

CASE tools: Advantages Help standardization of notations and diagrams Help communication between development team members Automatically check the quality of the A&D models Reduction of time and effort Enhance reuse of models or models’ components

CASE tools: Disadvantages Limitations in flexibility of documentation May lead to restriction to the tool’s capabilities Major danger: completeness and syntactic correctness does NOT mean compliance with requirements Costs associated with the use of the tool: purchase + training

UML: History and Brief Summary Adoption of the OO paradigm … problematic Emergence of UML as a methods’ unification approach UML: An OMG standard since 1997… Under way to become an ISO standard! UML notation: a melding of graphical notations from various sources. + other concepts…

UML: History and Brief Summary UML: A method or a notation? Modeling method: techniques + guidelines + notations è roadmap for the development of a model Primarily a notation However, there are attempts to describe OO methods or methodological frameworks that would be able to employ UML. The Rational Unified Process The Object-oriented Process, Environment and Notation (OPEN)