370 likes | 392 Views
This chapter explores the traditional systems life cycle approach, which involves structured and sequential stages for developing information systems. It also discusses the alternative approach of prototyping, where interactive models are built to determine user requirements before finalizing the system design.
E N D
Approaches to Systems-Building Chapter 10
Traditional systems life cycle • The traditional "systems life cycle" is a formal methodology for managing the development of systems, and is still the principal methodology for medium and large projects. • The overall development process is partitioned into distinct stages, each of which consists of activities that must be performed to fashion and implement an information system. • The stages are usually gone through sequentially with formal "sign-off" agreements among end users and data processing specialists to validate that each stage has been completed. • Users, managers, and data processing staff have specified responsibilities in each stage. • The approach is slow, expensive and inflexible and so is inappropriate for the development of many systems.
The stages in the life cycle • Project definition: Makes a preliminary study to determine why a new system project is required and to state project objectives. Develops a project plan • System study: Analyzes problems with existing systems, determines requirements for the proposed new system. Using these findings, the study phase performs a cost-benefit analysis to determine if proposed system • Design: Produces the blueprint of specifications for the new system's inputs, outputs, processing, database, procedures and controls solutions are feasible. • Programming: Translates the design specifications into software for the computer. • Installation: Conducts software tests and conversion activities. • Post-implementation: The system is operational; users and technical specialists conduct a post-implementation audit. The system is maintained to meet new requirements or processing efficiency. • .
The advantages of using the traditional system life cycle • It is highly structured. • It has a rigorous and formal approach to requirements and specifications and tight controls over the system building process. • It is appropriate for building large transaction processing and management information systems and for building complex technical systems.
The disadvantages of using the traditional system life cycle • It is very costly and time-consuming • It is inflexible and discourages change even though requirements will change during the project due to the long time this method requires • It is ill-suited to decision-oriented applications which can be rather unstructured and for which requirements are difficult to define.
Alternative system-building approaches • Prototyping • Application software packages • End-user development • Outsourcing
Information System Prototyping • Information system prototyping is an explicitly interactive system design methodology that builds an experimental model of a system as a means of determining information requirements. • A preliminary model of a system or important parts of a system is built rapidly for users to experiment with. • The prototype is modified and refined until it conforms precisely to what users want. • Information requirements and design are determined dynamically as users interact with and evaluate the prototype.
Benefits and limitations of prototyping • Prototyping is most valuable when requirements are uncertain and can't be entirely prespecified or when the appropriate design solution is unclear. • Prototyping is especially helpful for designing end-user interfaces (screens, reports) and for determining elusive requirements of decision-support type applications. • Prototyping can help reduce implementation costs by capturing requirements more accurately at an earlier point in the implementation process. • It is not so useful for a very structured, well-understood or routine problem.
Usage of prototyping • It is best suited for smaller applications oriented toward simple data manipulation. • Large systems with complex processing may only be able to have limited features prototyped. • The prototype may be built so rapidly that design is not well thought out or must be reworked for a production environment. • The problem arises when the prototype is adopted as the production version of the system without careful analysis and validation. • Prototypes are built so rapidly that documentation and testing are glossed over. The system is so easily changed that documentation may not be kept up to date.
The Steps of the Prototyping Process • Identify the user's basic requirements -- enough to serve as the basis for an experimental design. • Develop a working prototype of the system outlined in the basic requirements. The prototype may be a small version of the system or only part of the system. • Use the prototype. Have users work with the prototype to see how well it meets their needs. • Revise and enhance the prototype based on the user's reaction. • Steps three and four are repeated until users are satisfied • with the prototype.
What is an application software package? • An application software package is a set of prewritten, precoded application software programs that are commercially available for sale or lease. • Packages range from very simple programs to very large and complex systems encompassing hundreds of programs
Packages are normally used for one of the following three reasons: • Where functions are common to many companies. For example, payroll systems typically perform the same functions for most companies. • Where data processing resources for in-house development are in short supply. • When desktop microcomputer applications are being developed for end users. This approach is often followed because so many application packages have been developed for microcomputers
Advantages of packages are: • Design: The vendor has already established most of the design which may easily consume up to 50 percent of development time. • Testing: Programs are pre-tested, cutting down testing time and technical problems. • Installation: The vendor often installs or assists in the installation of the package. • Maintenance and support: Periodic enhancement or updates are supplied by the vendor. Vendors also maintain a permanent support staff well versed in the package, reducing the need for individual organizations to maintain such expertise in-house. • Documentation: The vendor supplies documentation.
Disadvantages of packages are: • There are high conversion costs for systems that are sophisticated and already automated. • Packages may require extensive customization or reprogramming if they can't easily meet unique requirements. This can inflate development costs. • A system may not be able to perform many functions well in one package alone. For example, a human resources system may have a good compensation module but very little capacity for manpower planning or benefits administration .
What do we mean by end-user development? • End-user development refers to the development of information systems by end users with minimal or no assistance from professional systems analysts or programmers. • This is accomplished through sophisticated "user-friendly" software tools and gives end-users direct control over their own computing.
Advantages of end-user development • Improved requirements determination. • Large productivity gains have been realized when developing certain types of applications. • Enables end users to take a more active role in the systems development process. • Many can be used for prototyping. • Some have new functions such as graphics, modeling, ad hoc information retrieval.
Disadvantages of end-user development • It is not suited to large transaction-oriented applications or applications with complex updating requirements. • Standards for testing and quality assurance may not be applied. • Proliferation of uncontrolled data and "private" information systems
Usage of end-user development • End-user development is suited to solving some of the backlog problem because the end-users can develop their needed applications themselves. • It is suited to developing low-transaction systems. • End-user development is valuable for creating systems that access data for such purposes as analysis (including the use of graphics in that analysis) and reporting. • It can also be used for developing simple data-entry applications.
What is an information center? • Information centers are special facilities to provide end-users with direct access to computing tools and data. • Information centers provide hardware, software, end-user computing tools and technical specialists to help end-users create their own applications. • They offer a range of management benefits, .
Management benefits of information center • They can help end users find tools and applications that will make them more productive. • They prevent the creation of redundant applications. • They promote data sharing and minimize data integrity problems. • They ensure that the applications developed by end users meet audit, data quality, and security standards. • They help establish and enforce standards for hardware and software.
Policies and procedures for managing end-user development • The organization must establish sufficient support facilities for end-user computing: information centers or distributed end-user computing centers. • Training and support should be targeted to the specific needs of those being trained. • End-user application development should not be allowed to be undertaken randomly but should be incorporated into the organization's strategic plan. • Critical applications that supply data to other important systems should be flagged and subjected to more rigorous standards.
Policies and procedures for managing end-user development • Management should develop controls over end-user computing in the following areas: • Cost justification of end-user information system project. • Hardware and software standards for user-developed applications. • Companywide standards for microcomputers, word processing software, database management systems, graphics software, and query and reporting tools. • Quality assurance reviews that specify whether the end-user systems must be reviewed by information systems and internal audit specialists. • Control for end-user developed applications covering testing, documentation, accuracy, and completeness of input and update, backup, recovery and supervision.
Outsourcing • Outsourcing is the process of turning over an organization's computer center operations, telecommunications networks, or applications development to external vendors of these services. • Using outsourcing is an option often considered when the cost of information systems technology has risen too high. • Outsourcing is seen as a way to control costs.
What is structured analysis? What is the role of the data flow diagram in structured analysis? • Data dictionary => Controlled definitions of descriptions of all data, such as variable names & types of data • Process specifications => Describes logic of processes at module level. • Using top-down method for defining the functions or behaviors of a system through its inputs and processes, the system is partitioned into levels and modules allowing a manageable level of detail on each level. • The data flow diagram, DFD, is the primary tool to illustrate the system’s processes or functions and the flow of data between the processes
What are the principles of structured design? How is it related to structured programming? • Structured design describes a system that is designed from the top down, and decomposed into subsystems or modules and further decomposed into further levels. • The lowest level is the actual models that do the work. • Structured programming designs programs from the top-down. • The top-level modules call lower-level modules. • Each module is independent from the other, and each module should ideally do one function.
Structured Design • Structure chart • Structured programming • Module • Sequence construct • Selection construct • Iteration construct
PROCESS PAYROLL GET VALID CALCULATE WRITE INPUTS PAY OUTPUTS HIGH LEVEL STRUCTURE CHART: CALCULATE CALCULATE GROSS PAY NET PAY GET VALIDATE UPDATE WRITE INPUTS INPUTS MASTER FILE OUTPUTS (WHITE BOXES ARE MODULES) (WHITE BOXES ARE MODULES)
The use of system flowcharts • System flowcharts show the flow of data throughout the entire information system. • They are used to document physical design specifications by showing all major inputs, major files, processing, and outputs for a system, including manual processes. • The system flowchart traces the flow of information and work in a system, the sequences of processing steps, and the physical media used in the system.
STRUCTURED PROGRAMMING: • MODULE:Logical unit of program. performs specific task(s) • SEQUENCE CONSTRUCT:Sequential steps or actions in program logic; streamlines flow • SELECTION CONSTRUCT:IF Condition R is True THEN Action C ELSE Action D • ITERATION CONSTRUCT:WHILE Condition is True DO Action E
PROCESS A SEQUENCE PROCESS B R TRUE PROCESS E TRUE PROCESS D PROCESS C S SELECTION ITERATION PROGRAM FLOWCHART:
1 START 2 READ PRINT >$10,000 REPORT PROCESS A <$10,000 2 MORE? PROCESS B 1 END PROGRAM FLOWCHART:
Object-oriented software development vs. traditional structured methodologies • Traditional structured methodology focuses on what the new system is intended to do and then develops the procedures and data to do it. • Object-oriented development de-emphasizes system procedures and instead creates a model of a system composed of individual objects that combine data and procedures. • The objects are independent of any specific system. • These objects can then be placed into any system being built that needs to make use of the data and functions. • In addition, in traditional structured methodologies all work is done serially, with work on each phase begun only when the previous phase is completed. • Object-oriented development theoretically allows simultaneous work on design and programming.
What is CASE (Computer aided software engineering) ? • CASE is Computer-Aided Software Engineering. • CASE is the automation of the steps and methodologies for systems analysis and development. • They reduce the repetitive work that developers do. • Usually they have graphical tools for producing charts and diagrams. • They may have any of the following tools: screen and report generators, data dictionaries, reporting facilities, code generators, and documentation generators.
What is CASE ? • These tools can greatly increase the productivity of the systems analyst or designer by: • Enforcing a standard. • Improving communication between users and technical specialists. • Organizing and correlating design components and providing rapid access to them via a design repository or library. • Automating the tedious and error-prone portions of analysis and design. • Automating testing and version control.
What is rapid application development (RAD)? What system-building tools and methods can be used in RAD? • Combining CASE, reusable software (libraries), object-oriented tools, and usually visual programming with objects, RAD allows the creation of working software in a very short time through objects and automation of much of the code generation. • The Gulf Canada was an example of such a system. • Usually they depend on interfaces to databases.
What are software reengineering and reverse engineering? How can they help system builders? • Software reengineering is a methodology that addresses the problem of aging or legacy software. • It seeks to upgrade such software that works by extracting the logic of the system, thereby creating a new system without starting from scratch. • The techniques involved are: • Reverse engineering. • Revision of design and program specifications. • Forward engineering.
What are software reengineering and reverse engineering? How can they help system builders? • Reverse engineering extracts the business specifications from older software. • Reverse engineering tools analyze the existing program code, file, and database descriptions to produce a structured specification of the system. • This specification can be combined with new specifications to provide the basis of the new system