CASE Tool Resources

Provided by http://www.processimprovement.com

The following table organizes CASE tools by CATEGORY and function (described below).

REQUIREMENTS ANALYSIS
  & DESIGN
  • Behavioral / Data / Object /
    Functional Modeling
  • Requirements Elicitation /
    Validation
  • Requirements Tracking
  • CONSTRUCTION
  • Application Generation
  • Code Frame Generation
  • GUI/UI Development
  • Expert System Development
  • Programming
  • TESTING
  • Performance Analysis
  • Regression Testing
  • System Integration Testing
  • Test and Debug
  • PROJECT PLANNING & TRACKING
  • Portfolio Analysis
  • Change Impact Analysis
  • Business Planning & Modeling
  • Enterprise Modeling
  • Process Modeling
  • Cost and Size Estimation
  • Project Management
  • Workflow Control
  • Workgroup Support
  • DOCUMENTATION
  • Documentation
  • QUALITY ASSURANCE, CODE ANALYSIS & METRICS
  • Quality Assurance
  • Defect Tracking
  • Reverse Engineering
  • Language Translation
  • Metrics Collection/Analysis
  • CONFIGURATION MANAGEMENT
  • Configuration Management
  • INTEGRATED SOFTWARE DEVELOPMENT ENVIRONMENTS
  • Metamodel Definition
  • Model Translation
  • Repository Administration
  • Repository Export/Import
  • Tool Building/Integration
  • Requirements Analysis & Design Tools

  • Behavioral / Data / Object /Functional Modeling. An abstract representation of the desired and permissible states and state transitions for an application, typically in response to external stimuli such as physical events, process sensors or human actions; often based on finite state machine or petri net theory. Identifying the logical structure of data elements and their relationships to each other for a specific application, independent of the implementation medium; creating an abstract representation of the application's data; usually includes entities, attributes, relationships, domains, valid ranges, edit rules, referential integrity rules, expected data volumes and access rates. Creating an abstract representation of an application in terms of its relevant objects, object relationships, object attributes, object services, inter-object Creating an abstract representation of an application in terms of its functional requirements, often as a textual requirements document and one or more derivatives (e.g., a functional decomposition diagram).
  • Requirements Elicitation/Validation. Gathering functional, operational and performance requirements from the users and approvers of an application in a manner that ensures their satisfaction with the end product. Making sure that the stated requirements fully meet the needs of the target user; often this is done through application prototyping or operational simulations.
  • Requirements Tracking. Establishing the correspondence between functional and other external requirements and the work products of the development process, including final deliverables and all intermediate products; both forward and reverse tracking are needed to ensure that all requirements are satisfied and that no superfluous features have been introduced; also useful in establishing testing and QA strategies for a project.
  • Construction Tools

  • Application Generation. Automatic generation of compilable source code (or executable code) and associated components (database schemas, job control commands, TP commands, I/O interfaces, task scheduler/dispatcher, etc.) required to form a complete application.
  • Code Frame Generation. Automatic generation of source code "frames" that establish the architecture of the system but not the procedural detail; typically includes module definitions, calling parameter and data declarations, and in some cases, basic control flow logic based on a behavioral specification (e.g., a state transition diagram); process details are then inserted into the code frames by the programmer.
  • GUI/UI Development. Design and implementation of a window-oriented, point-and-click graphics interface that presents information and options, and interprets user commands, in a manner that does not require detailed knowledge of the application's internal structure. Specifying, prototyping and implementing the portion of an application with which a human user directly interacts; may involve a command line or forms-based interface.
  • Expert System Development. Specification, design, construction, testing and delivery of applications that imitate the knowledge of human experts; typically employ advanced programming and computing concepts from AI research such as rule-based programming, frame-based knowledge representation, inferencing (forward and backward chaining), hypothetical reasoning, truth maintenance, data-driven architectures, etc.
  • Programming . Assistance with the task of implementing a detailed application design specification using a third or fourth generation programming language; includes editing source code, compiling, linking, and executing the target application.
  • Testing Tools

  • Performance Analysis. Assessing the characteristics of an application in terms of throughput, response time, resource consumption, resource efficiency or other execution-related parameters.
  • Regression Testing. The process of repeating an identical set of tests that (ostensibly) verify that an application meets all requirements; performed each time a change is made to the application in an effort to verify conformance and to detect unwanted side effects introduced during the development, enhancement or maintenance process; a rigorous procedure for applying a well-defined series of tests to a software system each time its revision status is changed to ensure that no unintended side effects (defects) have been introduced in the process of making a modification.
  • System Integration Testing. Verifying that the components of an application, and the system as a whole, perform properly, meet all requirements, and are defect free when assembled as a composite system.
  • Test and Debug. Verifying that a component implementation conforms to its full set of functional, performance and other requirements, detecting and removing all defects, omissions and superfluous content associated with the component.
  • Test Management. Planning and controlling the testing process, test harnesses, and test results during unit testing, integration testing, acceptance testing and regression testing activities.
  • Project Planning & Tracking Tools

  • Portfolio Analysis. Assessing a set of existing applications to determine priorities for maintenance, reengineering or replacement activities; common approaches involve multidimensional metrics that attempt to quantify both the value of each application to the firm, and its relative operational cost in terms of downtime, frequency of repair, cost of rebuilding or replacement, etc.
  • Change Impact Analysis. Determining in detail all aspects of an application implementation that will be affected by a proposed change in functionality, performance, environment or some other system parameter; used to assess the cost, schedule and affect on availability of the proposed change.
  • Business Planning & Modeling . Identifying the informational and procedural relationships among business units; assessing information system requirements based on the goals and objectives of the business; modeling the information entities and business rules applied across the enterprise (enterprise modeling); assessing priorities for information system development; mapping business unit needs to functions and subject areas, etc.
  • Enterprise Modeling. Creating an abstract representation of an enterprise and its operation in terms of its component entities and their relationships, organizational structure, available resources, approved (and ad hoc) procedures, business rules, and information requirements and usage.
  • Process Modeling. Creating an abstract specification of the data transformations required by an application; typically shows as dataflow diagrams and associated transformation rules (minispecs, formulas, pseudocode, etc.).
  • Cost and Size Estimation . Determining an expected level of effort for a proposed software development project in order to estimate cost, staffing, schedule and other project management parameters; usually accomplished by using a set of independent variables (functional specification, comparison to similar applications, estimates of complexity, etc.) to generate expected values of dependent variables (costs, resources, etc.) using formulas derived from statistical regression on prior project data.
  • Project Management. Planning, monitoring and controlling a software development project in terms of task structure and assignment, task sequencing and dependencies, deliverables, cost, schedule, and resource allocation.
  • Workflow Control. Defining and enforcing a process by which applications are specified, constructed, tested and delivered; includes process modeling, process guidance, activity assignment and monitoring, work product promotion control; and controlling access to tools, work products and deliverables; automated support for a team of developers to help them conform to a standard development process.
  • Workgroup Support . Aiding the communication and coordination of activities of groups of individuals working cooperatively to accomplish a goal; typical subtasks include sending and receiving memos, teleconferencing, scheduling tasks, activities and meetings, assigning responsibilities, notifying group members of significant events and status changes.
  • Documentation Tools

    Creating user- and developer-oriented descriptions of the application for the purpose of instructing the user in proper operation, supporting future maintenance and enhancement efforts, verifying conformance to specifications, etc.; modern software documentation consists of combined textual, tabular and diagrammatic representations with appropriate cross referencing; may be generated in human and machine-readable form on paper as well as electronic media; documentation standards are also emerging, e.g., DOD-STD-2167A and CALS.

    Quality Assurance, Code Analysis & Metrics Tools

  • Quality Assurance. Planning, monitoring and controlling a software development project in terms of conformance to requirements, conformance to the approved development process, and levels of approved quality metrics; collecting data on the development process itself, identifying opportunities for process improvement, and implementing changes to realize those opportunities.
  • Defect Tracking . Managing the process of identifying and recording software defects; may include context and symptom recording, defect categorization by module, defect type or seriousness, and statistical analysis of defect metrics such as volume or frequency of occurrence, Mean-Time-To-Failure (MTTF), Mean-Time-To-Repair (MTTR), percentage of code rework, etc.; may include assigning and monitoring repair activities.
  • Reverse Engineering. The process of analyzing a subject system to identify the system's components and their interrelationships, and to create representations of the system in another form at a higher level of abstraction (CHI).
  • Language Translation . Re-implementing an application in a different programming language or a different dialect of a language without changing its functional or operational characteristics or introducing side effects.
  • Metrics Collection/Analysis . Assistance in defining and collecting data to measure and assess the effectiveness of a software development process and its products; usually involves data sampling and statistical data analysis; may involve automatic collection based on developer activity or analysis of work products, or computerized assistance for manual data entry.
  • Configuration Management Tools

    The management, often with the aid of automated tools, of the set of related modules that make up a complete software system. Configuration management (CM) is typically done at the file level, acting as a counterpart to change control. It also enforces change authorization and check-in / check-out procedures. In addition, a configuration control system often automates the process of converting the set of modules into one, linked executable image (i.e., the "Build" process) and maintains the list of included modules and parameters relevant to the configuration process.

    Integrated Software Development Environments

  • Metamodel Definition. Describing the metamodel which specifies the rules and representations for a given method and its associated tools and work products; typically a metamodel is associated with a design repository that provides data management services for a group of tools; however, metamodels may also be associated with individual tools or tool suites.
  • Model Translation . Automatic (or semi-automatic) translation between one form of application representation and another, e.g., between different dataflow diagram styles, or between different repository metamodels; may occur at any level of abstraction, however, source level transformations are usually described as "language translation," and lower to higher model translations are usually called "reverse engineering."
  • Repository Administration. A variety of tasks associated with maintaining the effectiveness of a CASE repository, e.g., checking in reusable models and components; creating a repository subset for a new project; extending the repository metamodel; creating repository reports; integrating new tools with the repository, etc.
  • Repository Export/Import . Moving information into and out of a repository to support downloading / uploading to other projects or business areas, capturing design information from non-integrated tools or foreign repositories, archiving models and other work products, etc.
  • Tool Building/Integration . Creating computer-based tools to assist in some aspect of the software development process. Interconnecting one or more software tools in such a way that the integrated result enables the developer to be more effective than with the isolated tools.
  • www.processimprovement.com -- your source for low cost training and assessment