Section 13.2: Bullet Text Study Guide

Overview of Systems Development

Systems development refers to all the activities that go into producing an information systems solution to an organizational problem or opportunity. Systems development is a structured kind of problem solving with distinct activities consisting of:

  • Systems analysis
  • Systems design
  • Programming
  • Testing
  • Conversion
  • Production and maintenance.

Figure 13-3


FIGURE 13-3 THE SYSTEMS DEVELOPMENT PROCESS

Building a system can be broken down into six core activities.

Systems analysis involves defining the problem, identifying its causes, specifying the solution, and identifying the information requirements that must be met by a system solution. System analysis also involves a feasibility study used to determine whether the proposed solution is achievable, from a financial, technical, and organizational standpoint, given the organization's resources and constraints.

One of the most challenging task of the systems analyst is to define the specific information requirements that must be met by the system solution selected. Information requirements of a new system involve identifying who needs what information, where, when, and how.

The systems design is the overall plan or model that shows how the system will meet its information requirements. Like a blueprint of a building or house, a system design consists of all the specifications that give the system its form and structure. The system designer details the systems specifications that should address all of the managerial, organizational, and technical components of the system solution. User information requirements drive the entire system building effort, so information system design often demands a very high level of end-user participation.

During the programming stage, system specifications that were prepared during the design stage are translated into software program code.

Thorough testing must be conducted to confirm that the system produces the right results. Testing an information system involves three types of activities:

  • Unit testing tests each program separately in the system.

  • System testing checks the information system as a whole to determine if it works as intended.

  • Acceptance testing results in user and management final certification that the system is ready to be used in a production setting.

To ensure that all aspects of testing are as comprehensive as possible, the development team works with users to devise a systematic test plan.

Figure 13-4


FIGURE 13-4 A SAMPLE TEST PLAN TO TEST A RECORD CHANGE

When developing a test plan, it is imperative to include the various conditions to be tested, the requirements for each condition tested, and the expected results. Test plans require input from both end users and information systems specialists.

Conversion is the process of changing from the old system to the new one. There are four main conversion strategies:

  • Parallel strategy: Both the new and old systems are run together until everyone is assured that the new system functions correctly

  • Direct cutover: Replaces the old system with the new one on a specific date

  • Pilot study: Introduces the new system first to a limited area of the organization, and when the pilot version is working correctly, then installed throughout the rest of the organization

  • Phased approach: Introduces the new system in stages, either by functions or by organizational units

Moving from an old system to a new one requires that end users be trained to use the new system. Detailed documentation showing how the system works from both a technical and end-user standpoint is finalized during conversion time for use in training and everyday operations.

The production stage is in effect after the system is installed and conversion is complete. The system is reviewed to determine if it meets the original objectives. In some instances, a formal postimplementation audit document is prepared. Changes in hardware, software, documentation, or procedures to a production system to correct errors, meet new requirements, or improve processing efficiency are termed maintenance.

Structured methodologies and object-oriented development are the most prominent methodologies for modeling and designing systems.

Structured methodologies have been used since the 1970s to document, analyze, and design information systems. Structured development methods are process-oriented, focusing primarily on modeling the processes, or actions that capture, store, manipulate, and distribute data as the data flow through a system. These methods separate data from processes. A separate programming procedure must be written every time someone wants to take an action on a particular piece of data.

Tools used in structured development include:

  • Data flow diagrams: Offer a logical graphic model of information flow, partitioning a system into modules that show manageable levels of detail. It specifies the processes or transformations that occur within each module and the interfaces that exist between them. Leveled data flow diagrams break systems into high-level data flows and additional diagrams for subsystems at lower levels.

  • Data dictionaries: Defines the contents of data flows and data stores so that systems builders understand exactly what pieces of data they contain.

  • Process specifications: Describe the transformation occurring within the lowest level of the data flow diagrams.

  • Structure charts: Top-down charts showing each level of design, its relationship to other levels, and its place in the overall design structure.

Figure 13-5, Figure 13-6


FIGURE 13-5 DATA FLOW DIAGRAM FOR MAIL-IN UNIVERSITY REGISTRATION SYSTEM

The system has three processes: Verify availability (1.0), Enroll student (2.0), and Confirm registration (3.0). The name and content of each of the data flows appear adjacent to each arrow. There is one external entity in this system: the student. There are two data stores: the student master file and the course file.


FIGURE 13-6 HIGH-LEVEL STRUCTURE CHART FOR A PAYROLL SYSTEM

This structure chart shows the highest or most abstract level of design for a payroll system, providing an overview of the entire system.

Object-oriented development uses the object as the basic unit of systems analysis and design. An object combines data and the specific processes that operate on those data. Data encapsulated in an object can be accessed and modified only by the operations, or methods, associated with that object. Instead of passing data to procedures, programs send a message for an object to perform an operation that is already embedded in it. The system is modeled as a collection of objects and the relationships among them.

Object-oriented modeling is based on the concepts of class and inheritance. Objects belonging to a certain class, or general categories of similar objects, have the features of that class. Classes of objects in turn can inherit all the structure and behaviors of a more general class and then add variables and behaviors unique to each object.

Figure 13-7


FIGURE 13-7 CLASS AND INHERITANCE

This figure illustrates how classes inherit the common features of their superclass.

The phases of object-oriented development are similar to those of conventional systems development, consisting of analysis, design, and implementation. However, object-oriented development is more iterative and incremental than traditional structured development.

In object-oriented development, a system is implemented by translating the design into program code, reusing classes that are already available in a library of reusable software objects and adding new ones created during the object-oriented design phase. Implementation may also involve the creation of an object-oriented database. Because objects are reusable, object-oriented development could potentially reduce the time and cost of writing software because organizations can reuse software objects that have already been created as building blocks for other applications.

Computer-aided software engineering (CASE), sometimes called computer aided systems engineering, is the automation of step-by-step methodologies for software and systems development to reduce repetitive work. CASE tools attempt to increase productivity and quality by facilitating the creation and revision of design specifications and program code. CASE tools provide automated facilities for producing charts and diagrams, screen and report generators, data dictionaries, analysis and checking tools, code generators, and document generators. The best CASE tools enforce common methods and standards, improve communication between users and technical specialists, organize and correlate design elements, automate tedious and error-prone portions of analysis and design, and automate code generation, testing, and control rollout.