CSIS3600 Systems Analysis and Design Class 6 - CASE Tools CASE Tools The term Computer Aided Software Engineering (CASE) was born as a result of the need to provide structure to systems development efforts. (Many IS professionals thought that the software development process needed an engineering ‘flavor’ that would help to establish the use of common techniques, standard methodologies and automated tools). CASE Tools The earliest commercial CASE tools date back to 1982. These tools were heavily focused on supporting diagramming. By 1985, CASE became big in software engineering circles. By 1990, it was reported that there were over 470 CASE tool vendors with an estimated market of $4.8 billion with growth expected to exceed $13 billion by the end of the decade. Need for CASE Computer technology is expanding rapidly. Software applications are proliferating. New applications are emerging and there exists a need to maintain what is already in place. (More efficient ways to develop software applications are required.) • Software development methodologies began to appear and formalized training and education was initiated for following a methodology for software development. Some Trivia Software Trivia: It is estimated that there are, today, almost 500 programming languages in active use representing billions and billions of lines of code. Conservative estimates put the number of lines of COBOL in use at over 200 billion. Languages such as C, Basic, Pascal, Ada, Fortran, PL/1 and Jovial add another 200 billion lines to the COBOL total. A host of other languages including Algol, APL, CHILL, CMS2, CORAL, Forth, Lisp, Modula, Mumps, Prolog, Ratfor, and RPG, to name a few, account for the remainder. Even niche programming languages such as Natural account for over 10 billion lines of code in support of enterprise computing. This estimate doesn't even account for new programming environments such as Java. Sample Lines of Code What about Linux? Why CASE The purpose of CASE is: to make it simpler to enact a single design philosophy with the goal to speed up the development process. to automate mundane tasks. • to promote a central location for referencing system development activities and documents. What is CASE • CASE is a collection of tools used to support the software development process. • CASE tools support a wide variety of activities as identified in the SDLC. • Cross life cycle tools support those activities that occur across multiple phases of the SDLC. Examples are project management, time estimates and creating documentation. Components of CASE A CASE environment contains a collection of tools. Not all environments provide all tools. CASE tools are divided into • Upper CASE • Lower CASE • Cross Life Cycle CASE Components of CASE Upper CASE is focused in supporting project identification and selection, project initiation, project planning, analysis and design. Lower CASE provides support for the implementation and maintenance phases. Cross Life Cycle CASE supports activities that occur across multiple phases of the SDLC. Diagramming Tools • Diagramming Tools provide the means for representing the system visually. They are used to show data flow, process flows, entity-relationships, etc. • The diagramming tool provides a graphical tool set that can be used to draw the diagrams and most CASE tools even generate the database schema (separate tables defined in the database to store data) directly from the relationship diagrams. • Diagramming capabilities are considered the most fundamental and indispensable component of a CASE environment. Sample Diagramming Tool - DataFlow Sample Diagramming Tool – Entity Relationship Form and Report Generator Tools • Form and Report Generator Tools provide automated tools for designing forms and developing report formats. • These help to provide end users with prototypes of how the system will ‘look and feel.’ Sample Form and Report Generator Tool Analysis Tools • Analysis Tools generate reports that help to identify possible inconsistencies, redundancies and omissions in diagrams, forms and reports previously created. • They help to insure that the data needed is entered into the system, flows through the system and can be reported out when needed. • These tools also check for such things as redundancy, missing elements, incorrect flow of data, etc. Repository • The Repository provides a centralized database that contains all diagrams, reports, forms, data structures and other definitions of the system. • It serves as the nucleus of the system development environment and is paramount to the integration of the tools used at various stages of the SDLC. • The repository can serve as the ‘library of all information’ related to the system development project thereby providing means for facilitating project management and project sharing. Repository • Further, repositories provide a vehicle for reusability because known development work is located in a common place facilitating reuse of resources for similar project. Sample Repository Reports Screen Documentation Generator Tools • Documentation Generator Tools provide support for the generation of standard reports that can be maintained and shared throughout the development process. • Enough said about documentation … we all know how important it is but how it often slips through without being completed. Code Generators • Code Generators automated systems that produce high-level program source code from diagrams and forms. (CASE generated source code often has to be edited by programmers.) CASE Usage Within the SDLC SDLC Phase Key Activities CASE Tool Usage Project identification and selection Display and structure high-level organizational information Diagramming and matrix tools to create and structure information Project initiation and planning Develop project scope and feasibility Repository and documentation generators to develop project plans CASE Usage Within the SDLC SDLC Phase Key Activities CASE Tool Usage Analysis Determine and structure system requirements Diagramming to create process, logic and data models Design Create new system designs Form and report generators to prototype designs; analysis and documentation generators to define specifications CASE Usage Within the SDLC SDLC Phase Implementation Maintenance Key Activities CASE Tool Usage Translate designs Code generators into an information and analyzers, system form and report generators; documentation generators to develop system and user documentation Evolve information All tools are used systems (repeat life cycle) CASE and the SDLC Greatest Benefits of CASE The big benefits to using CASE come in the late stages of the SDLC – system construction, testing, maintenance. CASE often lengths the time to completion of the early stages of the SDLC by 40% according to some estimates. This is because the design must be fully completed before using such automated tools as code generators, etc. Neat Features of CASE Reverse Engineering – automated tools that read program source code as input and create graphical and textual representations of program designlevel information. • Reengineering – Automated tools that read program source code as input, perform an analysis of the program’s data and logic, and then automatically or interactively alter an existing system. Constraining Factors of CASE Start-up costs can be high – prices range from $5000 per analyst to $50,000 Year cost estimate - $5,000-$15,000 per year per analyst Learning curve is high – Many CASE applications are complex, with many sophisticated tools CASE software dictates a way of doing things • CASE tools cannot easily share information between tools What is the use of CASE? Many organizations use varying tools or aspects of CASE. Most widely used features are the diagramming tools Next commonly used is the repository Provides integration of documentation – Promotes consistency when changes are made Emerging Tools for Object Oriented Design Object Oriented Design is an extremely important area of development and CASE tools for Object Oriented Design are emerging and maturing. Tools for OOAD • You are probably familiar with visual development tools. These tools are extremely powerful. They allow users to create new user interfaces, reports and other features in a fraction of the time previously required. Common visual development tools include PowerBuilder by Powersoft, Delphi by Borland International, Visio (now owned by Microsoft) and Visual Basic by Microsoft. CASE Tool Resources • On-line resources for CASE tools: • Directory of CASE TOOLS: http://www.qucis.queensu.ca/SoftwareEngineering/tools.html • CASE Tools Listing and other CASE References: http://www.itmweb.com/case.htm • These sites will allow you to download an evaluation (beware Rational is 51MB!! – you might prefer to try the demos!) http://www.rational.com/products/rose/index.jtmpl • http://www.visible.com Unified Modeling Language • Unified Modeling Language (UML) is an object oriented modeling language. • UML is the culmination of the work of the three leading experts in the field - Grady Booch, Ivar Jacobson and James Rumbaugh. UML combined the best from ER diagrams, business modeling (workflow), object modeling and component modeling. • Will be used in group projects UML Notation UML notation is useful for graphically depicting object oriented analysis and design models. Models system requirements Facilitates design decisions Promotes communications among key players involved in the development effort Integrates system views in a complete and consistent fashion Employs a simple notation set UML Example U M L S Y M B O L S Helpful tools for Diagramming • RFFLow – easy to use – no limit time but number of symbols you can use is limited • RFFLow - demo copy available at www.rff.com – Tutorial is available at http://www.rff.com/tutorial.htm – Samples are available at http://www.rff.com/samples.htm – Limited version available for demo (disallows new objects on a model after about 20 have been used) • Smartdraw – easy to use – great collection of symbols – 30 day free trial – available at www.smartdraw.com Diagramming CASE Tool for OOAD • Poseidon • http://www.gentleware.com/ • http://www.gentleware.com/products/downl oad.php3 – You must have the Java sdk installed on your machine • http://java.sun.com/j2se/1.4.1/download.html • Download the install anywhere version Poseidon • Great tool to experiment with • Community edition (the free one!) automatically generates C++ and HTML code • Beware of its quirks! Quote of the Week "…despite 50 years of progress, the software industry remains years – perhaps decades – short of the mature engineering discipline needed to meet the demands of an information age society." Scientific American, Sept 94