We use an example template for a RAD introduced in the book. Introduction 1. Its purpose is to provide a brief overview of the function of the system and the reasons for its development, its scope, and references to the development context e. The introduction also includes the objectives and success criteria of the project.
Current system The second section, Current system, describes the current state of affairs. If the new system will replace an existing system, this section describes the functionality and the problems of the current system. Otherwise, this section describes how the tasks supported by the new system are accomplished now. Proposed system The third section documents the requirements elicitation and the analysis model of the new system.
This includes usability, reliability, performance, supportability, implementation, interface, operational, packaging, and legal requirements. This section contains the complete functional specification, including mock-ups illustrating the user interface of the system and navigational paths representing the sequence of screens. The subsections Object model and Dynamic model are written during the Analysis activity.
A precurser to the Data Dictionary. But if shortcuts are taken and bias is introduced in conducting the investigation, then requirement Anticipation can be half-baked. It is at the heart of system analysis where analyst documenting and describing system features using fact-finding techniques, prototyping, and computer assisted tools.
It includes the analysis of data which determine the requirement specification, description of features for new system, and specifying what information requirements will be provided. It includes analysis of factual data, identification of essential requirements, and selection of Requirement-fulfillment strategies. The main aim of fact finding techniques is to determine the information requirements of an organization used by analysts to prepare a precise SRS understood by user.
Systems analyst collects information from individuals or groups by interviewing. The analyst can be formal, legalistic, play politics, or be informal; as the success of an interview depends on the skill of analyst as interviewer. It is useful for them, who do not communicate effectively in writing or who may not have the time to complete questionnaire. This method is used by analyst to gather information about various issues of system from large number of persons.
They can explore a problem and lead to a specific direction of answer. It is very effective in surveying interests, attitudes, feelings, and beliefs of users which are not co-located. It is useful in situation to know what proportion of a given group approves or disapproves of a particular feature of the proposed system. It is useful to determine the overall opinion before giving any specific direction to the system project. It is appropriate for electing factual information and for statistical data collection which can be emailed and sent by post.
Review of existing records, procedures, and forms helps to seek insight into a system which describes the current system capabilities, its operations, or activities. It helps user to gain some knowledge about the organization or operations by themselves before they impose upon others. It helps in documenting current operations within short span of time as the procedure manuals and forms describe the format and functions of present system.
It can provide a clear understanding about the transactions that are handled in the organization, identifying input for processing, and evaluating performance. It can help an analyst to understand the system in terms of the operations that must be supported. This is a method of gathering information by noticing and observing the people, events, and objects. The analyst visits the organization to observe the working of current system and understands the requirements of the system.
It is useful in situation where authenticity of data collected is in question or when complexity of certain aspects of system prevents clear explanation by end-users. It is a new technique developed by IBM which brings owners, users, analysts, designers, and builders to define and design the system using organized and intensive workshops. JAD trained analyst act as facilitator for workshop who has some specialized skills. This method is widely used for information gathering by accessing the gleaned information.
It includes any previously gathered information used by the marketer from any internal or external source. It is used by the researcher to conclude if the research is worth it as it is available with procedures used and issues in collecting them. Feasibility Study can be considered as preliminary investigation that helps the management to take decision about whether study of system should be feasible for development or not.
It identifies the possibility of improving an existing system, developing a new system, and produce refined estimates for further development of system. It is used to obtain the outline of the problem and decide whether feasible or appropriate solution exists or not. The main objective of a feasibility study is to acquire problem scope instead of solving the problem.
The output of a feasibility study is a formal system proposal act as decision document which includes the complete nature and scope of the proposed system. Determine the feasibility of each alternative such as technical feasibility, operational feasibility, etc. It demonstrates the net benefit from the candidate system in terms of benefits and costs to the organization. The main aim of Economic Feasibility Analysis EFS is to estimate the economic requirements of candidate system before investments funds are committed to proposal.
It prefers the alternative which will maximize the net worth of organization by earliest and highest return of funds along with lowest level of risk involved in developing the candidate system. The analyst determines whether current technical resources be upgraded or added it that fulfill the new requirements. It ensures that the candidate system provides appropriate responses to what extent it can support the technical enhancement.
It ensures that the management should support the proposed system and its working feasible in the current organizational environment. It analyzes whether the users will be affected and they accept the modified or new business methods that affect the possible system benefits. It also ensures that the computer resources and network architecture of candidate system are workable. Analysts use various tools to understand and describe the information system. One of the ways is using structured analysis.
Structured Analysis is a development method that allows the analyst to understand the system and its activities in a logical way. It is a systematic approach, which uses graphical tools that analyze and refine the objectives of an existing system and develop a new system specification which can be easily understandable by user.
It is logical rather than physical i. During Structured Analysis, various tools and techniques are used for system development. It is a technique developed by Larry Constantine to express the requirements of system in a graphical form. It shows the flow of data between various functions of system and specifies how the current system is implemented. It is an initial stage of design phase that functionally divides the requirement specifications down to the lowest level of detail.
Its graphical nature makes it a good communication tool between user and analyst or analyst and system designer. It gives an overview of what data a system processes, what transformations are performed, what data are stored, what results are produced and where they flow. DFD is easy to understand and quite effective when the required design is not clear and the user wants a notational language for communication.
However, it requires a large number of iterations for obtaining the most accurate and complete solution. A context diagram helps in understanding the entire system by one DFD which gives the overview of a system. It starts with mentioning major processes with little details and then goes onto giving more details of the processes with the top-down approach.
A data dictionary is a structured repository of data elements in the system. It stores the descriptions of all DFD data elements that is, details and definitions of data flows, data stores, data stored in data stores, and the processes. A data dictionary improves the communication between the analyst and the user. It plays an important role in building a database. Most DBMSs have a data dictionary as a standard feature. Decision trees are a method for defining complex relationships by describing decisions and avoiding the problems in communication.
A decision tree is a diagram that shows alternative actions and conditions within horizontal tree framework. Thus, it depicts which conditions to consider first, second, and so on. Decision trees depict the relationship of each condition and their permissible actions. A square node indicates an action and a circle indicates a condition. It forces analysts to consider the sequence of decisions and identifies the actual decision that must be made.
The major limitation of a decision tree is that it lacks information in its format to describe what other combinations of conditions you can take for testing. It is a single representation of the relationships between conditions and actions. Decision tables are a method of describing the complex logical relationship in a precise manner which is easily understandable.
It is useful in situations where the resulting actions depend on the occurrence of one or several combinations of independent conditions. The entries in decision table are given by Decision Rules which define the relationships between combinations of conditions and courses of action. In rules section,. Structure English is derived from structured programming language which gives more understandable and precise description of process. It is based on procedural logic that uses construction and imperative sentences designed to perform operation for action.
It is best used when sequences and loops in a program must be considered and the problem needs sequences of actions with decisions. It does not have strict syntax rule. It expresses all logic in terms of sequential decision structures and iterations. It may specify the physical programming logic without actual coding during and after the physical design. Use decision trees when sequencing of conditions is important and if there are few conditions to be tested.
System design is the phase that bridges the gap between problem domain and the existing system in a manageable way. This phase focuses on the solution domain, i. It is the phase where the SRS document is converted into a format that can be implemented and decides how the system will operate.
In this phase, the complex activity of system development is divided into several smaller sub-activities, which coordinate with each other to achieve the main objective of system development. Proposed system requirements including a conceptual data model, modified DFDs, and Metadata data about data. Logical design pertains to an abstract representation of the data flow, inputs, and outputs of the system.
It describes the inputs sources , outputs destinations , databases data stores , procedures data flows all in a format that meets the user requirements. While preparing the logical design of a system, the system analyst specifies the user needs at level of detail that virtually determines the information flow into and out of the system and the required data sources.
Data flow diagram, E-R diagram modeling are used. Physical design relates to the actual input and output processes of the system. It focuses on how data is entered into a system, verified, processed, and displayed as output. It produces the working system by defining the design specification that specifies exactly what the candidate system does.
It is concerned with user interface design, process design, and data design. It is also known as high level design that focuses on the design of system architecture. It describes the structure and behavior of the system.
It defines the structure and relationship between various modules of system development process. It is representation of organizational data which includes all the major entities and relationship. System analysts develop a conceptual data model for the current system that supports the scope and requirement for the proposed system.
The main aim of conceptual data modeling is to capture as much meaning of data as possible. Most organization today use conceptual data modeling using E-R model which uses special notation to represent as much meaning about data as possible.
It is a technique used in database design that helps describe the relationship between various entities of an organization. For example: vendor, item, student, course, teachers, etc. For example, vendor supplies items, teacher teaches courses, then supplies and course are relationship. For example, vendor code, student name. Three types of relationships can exist between two sets of data: one-to-one, one-to-many, and many-to-many. Randomizing routine or hashing algorithm does the conversion.
One can access a file using either Sequential Access or Random Access. File Access methods allow computer programs read or write records in a file. Every record on the file is processed starting with the first record until End of File EOF is reached. It is efficient when a large number of the records on the file need to be accessed at any given time.
Data stored on a tape sequential access can be accessed only sequentially. Records are located by knowing their physical locations or addresses on the device rather than their positions relative to other records. Data stored on a CD device direct-access can be accessed either sequentially or randomly. For example, customer file, student file, telephone directory. For example, storing Zipcode.
It is used to update or process the master file. For example, Addresses of the employees. Help minimize the risk of downtime in cases when the original becomes unusable. They must be modified each time the original file is changed. It facilitates auditing and provides mechanism for recovery in case of system failure. Documentation is a process of recording the information for any reference or operational purpose.
It helps users, managers, and IT staff, who require it. It is important that prepared document must be updated on regular basis to trace the progress of the system easily. After the implementation of system if the system is working improperly, then documentation helps the administrator to understand the flow of data in the system to correct the flaws and get the system working.
Programmers or systems analysts usually create program and system documentation. Systems analysts usually are responsible for preparing documentation to help users learn the system. In large companies, a technical support team that includes technical writers might assist in the preparation of user documentation and training materials.
It provides the clear description of formal flow of present system and helps to understand the type of input data and how the output can be produced. It provides effective and efficient way of communication between technical and nontechnical users about system. It helps the user to solve the problems such as troubleshooting and helps the manager to take better final decisions of the organization system.
The program documentation process starts in the system analysis phase and continues during implementation. This documentation guides programmers, who construct modules that are well supported by internal and external comments and descriptions that can be understood and maintained easily. Operations documentation contains all the information needed for processing and distributing online and printed output.
Operations documentation should be clear, concise, and available online if possible. It includes instructions and information to the users who will interact with the system. For example, user manuals, help guides, and tutorials. User documentation is valuable in training users and for reference purpose.
It must be clear, understandable, and readily accessible to users at all levels. A system overview that clearly describes all major system features, capabilities, and limitations. System documentation serves as the technical specifications for the IS and how the objectives of the IS are accomplished. Users, managers and IS owners need never reference system documentation. System documentation provides the basis for understanding the technical aspects of the IS when modifications are made.
It includes data dictionary entries, data flow diagrams, object models, screen layouts, source documents, and the systems request that initiated the project. Most of the system documentation is prepared during the system analysis and system design phases. During systems implementation, an analyst must review system documentation to verify that it is complete, accurate, and up-to-date, and including any changes made during the implementation process.
The top-down strategy uses the modular approach to develop the design of a system. It is called so because it starts from the top or the highest-level module and moves towards the lowest level modules. In this technique, the highest-level module or main module for developing the software is identified.
The main module is divided into several smaller and simpler submodules or segments based on the task performed by each module. Then, each submodule is further subdivided into several submodules of next lower level. This process of dividing each module into several submodules continues until the lowest level modules, which cannot be further subdivided, are not identified.
Bottom-Up Strategy follows the modular approach to develop the design of the system. It is called so because it starts from the bottom or the most basic level modules and moves towards the highest level modules. These modules are then grouped together based on the function performed by each module to form the next higher-level modules.
This process of grouping several simpler modules to form higher level modules continues until the main module of system development process is achieved. Structured design is a data-flow based methodology that helps in identifying the input and output of the developing system.
The main objective of structured design is to minimize the complexity and increase the modularity of a program. Structured design also helps in describing the functional aspects of the system. In structured designing, the system specifications act as a basis for graphically representing the flow of data and sequence of processes involved in a software development with the help of DFDs. After developing the DFDs for the software system, the next step is to develop the structure chart.
Structured design partitions the program into small and independent modules. These are organized in top down manner with the details shown in bottom. Thus, structured design uses an approach called Modularization or decomposition to minimize the complexity and to manage the problem by subdividing it into smaller segments. Structured charts are a recommended tool for designing a modular, top down systems which define the various modules of system development and the relationship between each module.
It shows the system module and their relationship between them. It consists of diagram consisting of rectangular boxes that represent the modules, connecting arrows, or lines. To depict whether each identifiable function is a manageable entity or should be broken down into smaller components. To develop good quality of system software, it is necessary to develop a good design.
Therefore, the main focus on while developing the design of the system is the quality of the software design. A good quality software design is the one, which minimizes the complexity and cost expenditure in software development. The two important concepts related to the system development that help in determining the complexity of a system are coupling and cohesion.
Coupling is the measure of the independence of components. It defines the degree of dependency of each module of system development on the other. In practice, this means the stronger the coupling between the modules in a system, the more difficult it is to implement and maintain the system.
Each module should have simple, clean interface with other modules, and that the minimum number of data elements should be shared between modules. These type of systems have interconnections with program units dependent on each other. Changes to one subsystem leads to high impact on the other subsystem. These type of systems are made up of components which are independent or almost independent. A change in one subsystem does not affect any other subsystem.
Cohesion is the measure of closeness of the relationship between its components. It defines the amount of dependency of the components of a module on one another. They do not gather together unrelated processes represented as processes on the DFD into meaningless modules. The best modules are those that are functionally cohesive. The worst modules are those that are coincidentally cohesive.
In an information system, input is the raw data that is processed to produce output. Therefore, the quality of system input determines the quality of system output. It should serve specific purpose effectively such as storing, recording, and retrieving the information.
It is important to design appropriate data input methods to prevent errors while entering data. These methods depend on whether the data is entered by customers in forms manually and later entered by data entry operators, or data is directly entered by users on the PCs. Input integrity controls include a number of methods to eliminate common input errors by end-users.
They also include checks on the value of individual fields; both for format and the completeness of all inputs. Audit trails for data entry and other system operations are created using transaction logs which gives a record of all changes introduced in the database to provide security and means of recovery in case of any failure.
The design of output is the most important task of any system. During output design, developers identify the type of outputs needed, and consider the necessary output controls and prototype report layouts. To develop output design that serves the intended purpose and eliminates the production of unwanted output. Manufacturers create and design external outputs for printers.
External outputs enable the system to leave the trigger actions on the part of their recipients or confirm actions to their recipients. Some of the external outputs are designed as turnaround outputs, which are implemented as a form and re-enter the system as an input. Internal outputs are present inside the system, and used by end-users and managers. They support the management in decision making and reporting. Output integrity controls include routing codes to identify the receiving system, and verification messages to confirm successful receipt of messages that are handled by network protocol.
Multipage reports contain report title or description, and pagination. Pre-printed forms usually include a version number and effective date. Both forms and reports are the product of input and output design and are business document consisting of specified data. The main difference is that forms provide fields for data input but reports are purely used for reading. For example, order forms, employment and credit application, etc. It is a single copy form prepared manually or by a machine and printed on a paper.
For additional copies of the original, carbon papers are inserted between copies. These are papers with one-time carbons interleaved into unit sets for either handwritten or machine use. Carbons may be either blue or black, standard grade medium intensity. Generally, blue carbons are best for handwritten forms while black carbons are best for machine use. These are multiple unit forms joined in a continuous strip with perforations between each pair of forms. They use carbonless papers which have two chemical coatings capsules , one on the face and the other on the back of a sheet of paper.
The software system needs to be checked for its intended behavior and direction of progress at each development stage to avoid duplication of efforts, time and cost overruns, and to assure completion of the system within stipulated time. Testing is the process or activity that checks the functionality and correctness of software according to specified user requirements in order to improve the quality and reliability of system.
It is an expensive, time consuming, and critical approach in system development which requires proper planning of overall testing process. A successful test is one that finds the errors. It executes the program with explicit intention of finding error, i. It is a process of evaluating system with an intention of creating a strong system and mainly focuses on the weak areas of the system or software.
System testing begins at the module level and proceeds towards the integration of the entire software system. Different testing techniques are used at different times while testing the system. It is conducted by the developer for small projects and by independent testing groups for large projects. It is a statement that provides information about the various levels, methods, tools, and techniques used for testing the system.
It should satisfy all the needs of an organization. It provides a plan for testing the system and verifies that the system under testing fulfils all the design and functional specifications. Each test case will specify how the implementation of a particular requirement or design decision is to be tested and the criteria for the success of the test. The test cases along with the test plan are documented as a part of a system specification document or in a separate document called test specification or test description.
It consists of the steps that should be followed to execute each of the test cases. These procedures are specified in a separate document called test procedure specification. This document also specifies any special requirements and formats for reporting the result of testing. Test result file contains brief information about the total number of test cases executed, the number of errors, and nature of errors. These results are then assessed against criteria in the test specification to determine the overall outcome of the test.
Also known as Program Testing, it is a type of testing where the analyst tests or focuses on each program or module independently. It is carried out with the intention of executing each statement of the module at least once. In unit testing, accuracy of program cannot be assured and it is difficult to conduct testing of various input combination in detail. In Integration Testing, the analyst tests multiple module working together. It is used to find discrepancies between the system and its original objective, current specifications, and systems documentation.
Here the analysts are try to find areas where modules have been designed with different specifications for data length, type, and data element name. Function testing determines whether the system is functioning correctly according to its specifications and relevant standards documentation.
Functional testing typically starts with the implementation of the system, which is very critical for the success of the system. It is the review of system or software products and its documentation for assurance that system meets the requirements and specifications.
Purpose of QA is to provide confidence to the customers by constant delivery of product according to specification.