470 likes | 1.2k Views
Tools of Software Development. 2 types of tools used by software engineers: Analytical tools Stepwise refinement Cost-benefit analysis Software metrics CASE tools. CASE (Computer-Aided Software Engineering) Tools. Software that is used to support software process activities
E N D
Tools of Software Development • 2 types of tools used by software engineers: • Analytical tools • Stepwise refinement • Cost-benefit analysis • Software metrics • CASE tools
CASE (Computer-Aided Software Engineering) Tools • Software that is used to support software process activities • Provides software process support by • automating some process activities • providing information about the software being developed • Currently used in every phase/workflow of life cycle
CASE Tools • Benefits • Improve software quality • Enforce discipline • Help communication between development team members • Information is illustrated through diagrams that are typically easier to understand • Development information is centralized
CASE Tools • Benefits • Reduction of time and effort • Tasks are much faster to complete and alter • Enhance reuse of models or models’ components • Can reduce maintenance costs
CASE Tools • Problems • Limitations in flexibility of documentation • Major danger: completeness and syntactic correctness does NOT mean compliance with requirements • Costs associated with the use of the tool • Purchase price • Training
3 Categories of CASE Tools • Tools • Workbenches • Environments
3 Categories of CASE Tools • Tools • Support individual process tasks • Examples: • Checking the consistency of a design • Compiling a program • Comparing test results
CASE Tools • Upper-CASE tools (front-end tools) • Assist developer during requirements, analysis, and design workflows or activities • Lower-CASE tools (back-end tools) • Assist with implementation, testing, and maintenance workflows or activities • Integrated CASE tools (I-CASE) • provide support for the full life cycle • REVIEW THE UNIFIED PROCESS to SEE WHERE EACH OF THESE TOOLS ARE USED
3 Categories of CASE Tools • Workbenches • Collection of tools that together support: • Process workflows (requirements, design, etc.) • One or two activities where an activity is a related collection of tasks • Commercial examples: • PowerBuilder • Software Through Pictures • Software Architect
3 Categories of CASE Tools • Environments • Support the complete software process or, at least, a large portion of the software process • Normally include several different workbenches which are integrated in some way
Design Generator Analysis tool Drawing Tool Code Generator CASE repository Document Generator Database Generator Error-checking tool Prototyping Tool Security and Version Control Screen and Report Generator Components of CASE
Components of CASE • CASE repository • Central component of any CASE tool • Also known as the information repository or data dictionary
Components of CASE • CASE repository • Centralized database • Allows easy sharing of information between tools and SDLC activities • Used to store graphical diagrams and prototype forms and reports during analysis and design workflows • Provides wealth of information to project manager and allows control over project • Facilitates reusability
Components of CASE • CASE repository acts as: • Information repository • Combines information about organization’s business information and application portfolio • Provides automated tools to manage and control access • Data dictionary • Used to manage and control access to information repository • Facilities for recording, storing and processing resources • Useful for cross-referencing
Components of CASE • Diagramming tools • Allow you to represent a system and its components visually • Allows higher level processes to be easily decomposed • Can examine processes or data models at high or low level
Components of CASE • Screen and report generators • Used to • Create, modify and test prototypes of computer displays and reports • Identify which data items to display or collect for each screen or report • Some tools have templates
Components of CASE • Analysis tools • Generate reports that help identify possible inconsistencies, redundancies and omissions • Generally focus on • diagram completeness and consistency • data structures and usage
Components of CASE • CASE documentation generator tools • Create standard reports based on contents of repository • Need textual descriptions of needs, solutions, trade-offs, diagrams of data and processes, prototype forms and reports, program specifications and user documentation • High-quality documentation leads to 80% reduction in system maintenance effort in comparison to average quality documentation
CASE workbenches • A coherent set of tools that is designed to support related software process activities such as analysis, design or testing. • Analysis and design workbenches support system modelling during both requirements engineering and system design. • These workbenches may support a specific design method or may provide support for a creating several different types of system model.
Analysis workbench components • Diagram editors • Model analysis and checking tools • Repository and associated query language • Data dictionary • Report definition and generation tools • Forms definition tools • Import/export translators • Code generation tools
Computer-aided software engineering • 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. However, these are not the order of magnitude improvements that were once predicted • Software engineering requires creative thought - this is not readily automated; • 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.
CASE integration • Tools • 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.