Tools of Software Development

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.
What is software? Computer programs and associated documentation
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
© 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.
Dr Gordon Russell, Napier University Unit Data Dictionary 1 Data Dictionary Unit 5.3.
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.
ISMT221 Information Systems Analysis and Design Project Management Tools Lab 1 Tony Tam.
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.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Galin, SQA from theory to implementation © Pearson Education Limited Chapter 13 CASE Tools and their Effect on Software Quality.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
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.
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.
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:- –
CISB113 Fundamentals of Information Systems IS Development.
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.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
©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.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Software engineering Software Processes.
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter3:Software Processes
Appendix 2 Automated Tools for Systems Development
Testing Tools & Standards
Software Prototyping.
Modern Systems Analysis and Design Third Edition
IS301 – Software Engineering V:
CASE Tools and Joint and Rapid Application Development
Computer Aided Software Engineering (CASE)
Modern Systems Analysis and Design Third Edition
Business System Development
Abstract descriptions of systems whose requirements are being analysed
Software Processes.
Chapter 4 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Chapter 2 – Software Processes
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:

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)

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

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

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)

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

3 Categories of CASE Tools Workbenches Environments

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

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

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

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

Taxonomy of CASE Tools Tool versus workbench versus environment

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

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

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 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)

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

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

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.

An analysis and design workbench

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.

Functional tool classification

Activity-based tool 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