Unit – 2

What is CASE Tools?

What is CASE?

Computer-Aided Software Engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools.

What is CASE Tool?

A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.

Computer-Aided Software Engineering tools are those software which are used in any and all phases of developing an information system, including analysis, design and programming. For example, data dictionaries and diagramming tools aid in the analysis and design phases, while application generators speed up the programming phase.

CASE tools provide automated methods for designing and documenting traditional structured programming techniques. The ultimate goal of CASE is to provide a language for describing the overall system that is sufficient to generate all the necessary programs needed.

Components of CASE Tools

CASE Tool are used to support a wide variety of SDLC. CASE Tools are used to help in the project identification and selection, project initiation and planning, and design phases, and in the implementation and maintenance phases. The components of CASE Tools are categorized into 3 mainly;

  • Upper CASE Tool

UpperCASE Tool is a Computer-Aided Software Engineering (CASE) software tool that supports the software development activities upstream from implementation. Uppercase tool focus on the analysis phase (but sometimes also the design phase) of the software development lifecycle (diagramming tools, report and form generators, and analysis tools)

  • Lower CASE Tool

LowerCASE Tool Computer-Aided Software Engineering (CASE) software tool that directly supports the implementation (programming) and integration tasks. LowerCASE tools support database schema generation, program generation, implementation, testing, and configuration management.

  • I CASE

Tools that integrate both upper and lower CASE, for example making it possible to design a form and build the database to support it at the same time. An automated system development environment that provides numerous tools to create diagrams, forms and reports. It also offers analysis, reporting, and code generation facilities and seamlessly shares and integrates data across and between tools.

Types of CASE Tools

The general types of CASE tools are listed below:

Diagramming tools: enable system process, data and control structures to be represented graphically.

Computer display and report generators: help prototype how systems look and feel. It makes it easier for the systems analyst to identify data requirements and relationship.

Analysis tools: automatically check for importance, inconsistent, or incorrect specifications in diagrams, forms, and reports.

Central repository: enables the integrated storage of specifications, diagrams, reports and project management information.

Documentation Generators: produce technical and user documentation in standard formats.

Code generators: enable the automatic generation of program and data base definition code directly from the design documents, diagrams, forms, and reports.

What is Quality to CASE Tool?

The reason for using case may be very straight forward and practical decision such as being easier to use and makes life better. However from a broader perspective, Quality to using case implies how Case tools have improved the quality of software development. Case tool has improved software development in the following;

  • Improve the quality of the system developed.
  • Increase the speed with which systems are designed and developed.
  • Ease and improve the testing process through the use of automated checking.
  • Improve the integration of development activities via common methodologies.
  • Improve the quality and completeness to documentation.
  • Help standardize the development process.
  • Improve the management of the project.
  • Simplify program maintenance.
  • Promote reusability of modules and documentation.
  • Improve software portability across environments.

What is productivity to CASE Tool? And how it helps Software Development?

Productivity can be said to be the state or quality of producing something. Or the effectiveness of the productive efforts. Therefore productivity to case can be the achievements gained or the effectiveness of using the CASE technology. Productivity has helped in the development of software in the following ways;

  • Provide new systems with shorter development time.
  • Improve the productivity of the systems development process.
  • Improve the quality of the systems development process.
  • Improve worker skills.
  • Improve portability of new systems.
  • Improve the management of the systems development process.

Functions of a CASE Tool

  • Analysis
    CASE analysis tools automatically check for incomplete, inconsistent, or in correct specifications in diagrams, forms and reports.
  • Design
    This is where the technical blueprint of the system is created by designing the technical architecture – choosing amongst the architectural designs of telecommunications, hardware and software that will best suit the organization’s system and future needs. Also designing the systems model – graphically creating a model from graphical user interface, screen design, and databases, to placement of objects on screen
  • Code generation

CASE Tool has code generators which enable the automatic generation of program and data base definition code directly from the documents, diagrams, forms, and reports.

  • Documentation
    CASE Tool has documentation generators to produce technical and user documentation in standard forms. Each phase of the SDLC produces documentation. The types of documentation that flow from one face to the next vary depending upon the organization, methodologies employed and type of system being built.

FLOW CHART

A flow chart, or flow diagram, is a graphical representation of a process or system that details the sequencing of steps required to create output.

An Algorithm is just a detailed sequence of simple steps that are needed to solve a problem.

A Flowchart is a graphical representation of an algorithm.

A typical flow chart uses a set of basic symbols to represent various functions, and shows the sequence and interconnection of functions with lines and arrows. Flow charts are easy-to-understand diagrams showing how steps in a process fit together. This makes them useful tools for communicating how processes work, and for clearly documenting how a particular job is done.

A flow chart can therefore be used to:

Define and analyze processes;

Build a step-by-step picture of the process for analysis, discussion, or communication; and

Define, standardize or find areas for improvement in a process

There are four general types of flow charts, namely:

Document flowcharts – showing a document flow through system

Data flowcharts – showing data flows in a system

System flowcharts – showing controls at a physical or resource level

Program flowchart – showing the controls in a program within a system.

Document Flowchart is commonly used to trace the movement of a document, such as internal memos, payroll information and interoffice mail through a system.

Program Flowchart is a graphic representation of an algorithm, often used in the design phase of programming to work out the logical flow of a program. It demonstrates how a program works within a system.

System Flowcharthelps to understand how complex systems work. Systems analyzed may be anything from businesses, through biological population models, to the impact of social policy, etc.

Advantages of using flowcharts

  • Communication: Flowcharts are better way of communicating the logic of a system to all concerned.
  • Effective analysis: With the help of flowchart, problem can be analysed in more effective way.
  • Proper documentation: Program flowcharts serve as a good program documentation, which is needed for various purposes.
  • Efficient Coding: The flowcharts act as a guide or blueprint during the systems analysis and program development phase.
  • Proper Debugging: The flowchart helps in debugging process.
  • Efficient Program Maintenance: The maintenance of operating program becomes easy with the help of flowchart. It helps the programmer to put efforts more efficiently on that part

Limitations of using flowcharts

  • Complex logic: Sometimes, the program logic is quite complicated. In that case, flowchart becomes complex and clumsy.
  • Alterations and Modifications: If alterations are required the flowchart may require re-drawing completely.
  • Reproduction: As the flowchart symbols cannot be typed, reproduction of flowchart becomes a problem.
  • The essentials of what is done can easily be lost in the technical details of how it is done.

Basic Flowchart Symbols

To start and End the program

/ The Process Symbol represents any process, function, or action and is the most frequently used symbol in flowcharting.
/ The Document Symbol is used to represent any type of hard copy input or output (i.e. reports).
/ Off page Connector Symbols are used to indicate the flowchart continues on another page.
/ The Input/ Output Symbol represents data that is available for input or resulting from processing (i.e. customer database records).
/ Comment Symbols are used when additional explanation or comment is required. This symbol is usually connected to the symbol it is explaining by a dashed line.
/ The Decision Symbol is a junction where a decision must be made.
/ The Connector Symbol represents the exit to, or entry from, another part of the same flowchart. It is usually used to break a flow line that will be continued elsewhere.

Data flow diagrams (DFD)

Data flow diagrams are a graphical representation that illustrates how data is processed by a system in terms of inputs and outputs.

A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system. A data flow diagram can also be used for the visualization of data processing (structured design). It is common practice for a designer to draw a context-level DFD first which shows the interaction between the system and outside entities.

Context Diagram

A diagram giving an entire system’s data flows and processing with a single Process (circle) is called a context diagram.

Two Types of DFD’s ------Physical and Logical DFDs

There are two types of data flow diagrams, namely physical data flow diagramsand logical data flow diagramsand it is important to distinguish clearly between the two:

Physical Data Flow Diagrams

An implementation-dependent view of the current system, showing what tasks are carried out and how they are performed.A physical DFD specifies from where data flows and who processes the data and to whom the processed data is sent.

Physical characteristics can include:

  • Names of people
  • Form and document names or numbers
  • Names of departments
  • Master and transaction files
  • Equipment and devices used
  • Locations
  • Names of procedures

Logical Data Flow Diagrams

An implementation-independent view of the a system, focusing on the flow of data between processes without regard for the specific devices, storage locations or people in the system. The physical characteristics listed above for physical data flow diagrams will not be specified.

Symbols in data flow diagram

  • Function or Process is a process or activity in which data is used or generated
  • Externalor Rectangle represents an external source, user or depository of the data
  • Data Storeor database represents an internal physical or electronic repository of data, into and out of which data is stored and retrieved
  • Data Flow (connector) represents how data flows through the system, in physical or electronic form
  • Gate represents the termination point of incoming and outgoing messages on a lower level diagram (that is, messages to and from processes depicted elsewhere).

Data Flow Diagram Principles

1. A system can be decomposed into subsystems, and subsystems can be further decomposed into lower level subsystems.

2. Each subsystem represents a process or activity in which data is processed.

3. At the lowest level, processes can no longer be decomposed.

4. Each 'process' has the characteristics of a system. A process must have input and output.

5. Data enters the system from the environment, data flows between processes within the system and data is produced as output from the system.

Why DFDs are useful?

The main merit of DFD is that it provides an overview of what data flows in a system, what transformations are done on the data, what files are used and where results flow.

When it comes to conveying how information data flows through system and how that data is transformed in the process, DFDs are the method of choice over technical descriptions for three principle reasons.

  1. DFDs are easier to understand by technical and non-technical audiences
  2. DFDs can provide a high level system overview, complete with boundaries and connections to other systems
  3. DFDs can provide a detailed representation of system components.

Advantages of DFD

  1. Early Implementation
  2. Study Independence
  3. Analysis
  4. Tools for communication
  5. Reduces Costs

Disadvantages of DFD

1. Absemce of control aspects

2. Highly subjective

A data flow diagram represents the following:

  1. External devices sending and receiving data
  2. Processes that change that data
  3. Data flows themselves
  4. Data storage locations

The E-R Model

The E-R diagrams use basic graphical symbols to show the organization of and relationship between data.

Definition: An entity-relationship (ER) diagram is a specialized graphic that illustrates the relationships between entities in a database.

ER diagrams often use symbols to represent three different types of information. Boxes are commonly used to represent entities. Diamonds are normally used to represent relationships and ovals are used to represent attributes.

Also Known As: ER Diagram, E-R Diagram, entity-relationship model

There are three basic elements in ER models:

Entities are the "things" about which we seek information.

Attributes are the data we collect about the entities.

Relationships provide the structure needed to draw information from multiple entities.

The overall logical structure of a database can be expressed graphically by an E-R diagram:

  • Rectangles: represent entity sets.
  • Ellipses: represent attributes.
  • Diamonds: represent relationships among entity sets.
  • Lines: link attributes to entity sets and entity sets to relationships.

A sample E-R diagram:

Examples:

Consider the example of a database that contains information on the residents of a city. The ER diagram shown in the image above contains two entities -- people and cities. There is a single "Lives In" relationship. In our example, due to space constraints, there is only one attribute associated with each entity. People have names and cities have populations. In a real-world example, each one of these would likely have many different attributes.

Relationships & Relationship Sets

A relationship is an association between several entities.

A relationship set is a set of relationships of the same type. For example, consider the two entity sets customer and account.

We define the relationship Cust Acct to denote the association between customers and their accounts. This is a binary relationship set. Going back to our formal definition, the relationship set Cust Acct is a subset of all the possible customer and account pairings. This is a binary relationship. Occasionally there are relationships involving more than two entity sets.

Types of Relationships

There are three different types of database relationships, each named according to the number of table rows that may be involved in the relationship. Each of these three relationship types exists between two tables.

One-to-one relationships occur when each entry in the first table has one, and only one, counterpart in the second table. One-to-one relationships are rarely used because it is often more efficient to simply put all of the information in a single table.

One-to-many relationships are the most common type of database relationship. They occur when each record in the first table corresponds to one or more records in the second table but each record in the second table corresponds to only one record in the first table.

For example, the relationship between a Teachers table and a Students table in an elementary school database would likely be a one-to-many relationship, because each student has only one teacher, but each teacher may have multiple students.

Many-to-many relationships occur when each record in the first table corresponds to one or more records in the second table and each record in the second table corresponds to one or more records in the first table.

For example, the relationship between a Teachers and a Courses table would likely be many-to-many because each teacher may instruct more than one course and each course may have more than one instructor.

Mapping Constraints

An E-R scheme may define certain constraints to which the contents of a database must conform.

Mapping Cardinalities: express the number of entities to which another entity can be associated via a relationship. For binary relationship sets between entity sets A and B, the mapping cardinality must be one of:

1. One-to-one: An entity in A is associated with at most one entity in B, and an entity in B is associated with at most one entity in A.

(Employee-PAN number)

2. One-to-many: An entity in A is associated with any number in B. Anentity in B is associated with at most one entity in A. (Single man manyphone numbers)

3. Many-to-one: An entity in A is associated with at most one entity in B. An entity in B is associated with any number in A. (Subject incharge- Students)

4. Many-to-many: Entities in A and B are associated with any number from each other.( Family –Many phone numbers)

Decision Table

A decision table is a tabular representation that defines a logical procedure by means of a set of conditions and related actions