Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tools of Software Development

Similar presentations


Presentation on theme: "Tools of Software Development"— Presentation transcript:

1 Tools of Software Development
2 types of tools used by software engineers: Analytical tools Stepwise refinement Cost-benefit analysis Software metrics CASE tools The Tools of the Trade Software engineers need two types of tools 1) Analytical tools used in software development such as stepwise refinement and cost-benefit analysis theoretical tools 2) Products that assist the teams of software engineers in developing and maintaining software usually termed CASE tools (computer-aided software engineering tools)

2 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 Computer AIDED Software Engineering Not automated; still takes human intervention; ASSISTS the human Software that automates all or part of the development process Software tool that assists in some aspect of the production of software Software that helps carry out much of the dredge work associated with software development (e.g., documentation creation and organization) Organizations use CASE tools to: Improve the quality of the system Increase speed of design and development Ease and improve the testing process Improve integration of development activities Improve quality and completeness of documentation Improve management of the project Simplify program maintenance Promote reusability

3 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 Should not be considered a silver bullet for project development Advanced CASE tools are complex applications that require significant training and experience to achieve real benefits Often CASE serves only as a glorified diagramming tool that supports the practices of behavioral and structural modeling Has been shown to be a helpful way to support the communication and sharing of project diagrams and technical specifications (as long as it is used by trained developers who have applied CASE on past projects) 2) Enforce discipline By helping with the standardization of notations and diagrams

4 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 Should not be considered a silver bullet for project development Advanced CASE tools are complex applications that require significant training and experience to achieve real benefits Often CASE serves only as a glorified diagramming tool that supports the practices of behavioral and structural modeling Has been shown to be a helpful way to support the communication and sharing of project diagrams and technical specifications (as long as it is used by trained developers who have applied CASE on past projects)

5 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 Limitations in flexibility of documentation Documentation templates provided may not match organization’s templates 3) Costs Purchase price is between $5,000 and $15,000 per year to provide CASE tools to one systems analyst Training => Very complex tools

6 3 Categories of CASE Tools
Workbenches Environments

7 3 Categories of CASE Tools
Support individual process tasks Examples: Checking the consistency of a design Compiling a program Comparing test results Software Tool A product that assists in just one aspect of the production of software

8 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 Upper Case has to do with those things done early in development Once You have decided on your environment, database, communications, etc, you can use the lower case tools. Database generation and compilers are considered Lower case tools (back end tools). They also may be provided in integrated CASE tools REVIEW THE UNIFIED PROCESS to SEE WHERE EACH OF THESE TOOLS ARE USED

9 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 Workbenches The activities may cross phase boundaries (e.g., support analysis and design tasks) Generally support some development method Commercial examples given support: Data dictionary Consistency checker Screen generator Report generator

10 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

11 Taxonomy of CASE Tools Tool versus workbench versus environment

12 Components of CASE CASE repository Document Generator Design Analysis
tool Code Drawing Tool Error-checking tool Security and Version Control Screen and Report Generator Prototyping Database Generator

13 Components of CASE CASE repository Central component of any CASE tool
Also known as the information repository or data dictionary CASE repository Stores the diagrams and other project information Keeps track of how the diagrams fit together

14 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

15 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

16 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 Diagramming tools Allow you to draw DFDs, ERDs, use case diagrams, case diagrams Allows you to use stepwise refinement in building models (work from high level to low level)

17 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

18 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 Analysis tools Types of analyses depend on methodology used and features of CASE environment

19 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 documentation generator tools Provide a method of managing documentation Allow creation of master templates

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

21 An analysis and design workbench

22 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

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

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

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

26 Functional tool classification

27 Activity-based tool classification

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

29 Tools, workbenches, environments


Download ppt "Tools of Software Development"

Similar presentations


Ads by Google