400 likes | 1.15k Views
Chapter 12. APPROACHES TO SYSTEMS-BUILDING. Approaches to Systems-Building, Challenges . Controlling information systems development outside the information system department. Enforcing a standard methodology. The life cycle methodology for system development (Figure 12-1).
E N D
Chapter 12 APPROACHES TO SYSTEMS-BUILDING
Approaches to Systems-Building, Challenges • Controlling information systems development outside the information system department. • Enforcing a standard methodology
The life cycle methodology for system development (Figure 12-1)
The Traditional System Lifecycle • Systems Lifecycle: A traditional methodology for developing an information system that partitions the system development process into formal stages that must be completed sequentially with a very formal division of labor between end users and information system specialists. • Project Definition: A stage in the systems lifecycle that determines whether the organization has a problem and whether the problem can be solved by launching a system project. • Systems Study:A stage in the systems lifecycle that analyzes the problems of existing systems, defines the objectives to be attained by a solution, and evaluates various solution alternatives.
The Traditional System Lifecycle • Design: A stage in the systems lifecycle that produces the logical and physical design specifications for the system solution. • Programming: A stage in the systems lifecycle that translates the design specifications produced during the design stage into software program code. • Installation: A stage in the systems lifecycle consisting of testing training, and conversion; the final steps required to put a system into operation. • Post-implementation: The final stage of the systems lifecycle in which the system is used and evaluated while in production and is modified to make improvements or meet new requirements.
Limitations of SDLC • Costly and time consuming • Inflexible and discourage change • Ill-suited to decision oriented applications
Alternative System-Building Approaches • Prototyping: The process of building an experimental system quickly and inexpensively for demonstration and evaluation • Application software packages: A set of prewritten, precoded application software programs that are commercially available for sale or lease • End-user development: The development of information systems by end users with little or no formal assistance from technical specialists. • Outsourcing: The practice of contracting computer center operations, telecommunication networks, or applications development to external vendors
Prototype: The preliminary working version of an information system for demonstration and evaluation purposes • Prototyping: The process of building an experimental system quickly and inexpensively for demonstration and evaluation • End-user interface: The part of information system through which the end user interacts with the system • Advantages of prototyping • Uncertainty about requirements or design solutions • Valuable for designing end user interface • Technical features can be tested • User involvement • Disadvantages of prototyping • Not for all applications • Rapid prototyping may gloss over essential steps in system development • Prototype may be used as is instead of redeveloping it
Application Software Packages • A set of prewritten, precoded application software programs that are commercially available for sale or lease • Fast, less costly, easy to install and test disadvantages • Low level of sophistication • Customization: Modifications to most organizational needs may be costly, in general it is exponential • Initial price may be deceptive
Selecting Software Packages • Request for Proposal: A detailed list of questions submitted to vendors of software to determine how well the vendor’s product can meet the organization’s specific requirements • Installation effort • Maintenance • Documentation • Vendor quality • Cost • Functionality • Flexibility • User friendliness • Hardware / software requirements • Database characteristics
End User Development • End-user development: The development of information systems by end users with little or no formal assistance from technical specialists. • Information center: A special facility to provide training and support for end user development • 4GL tools: enhanced productivity, can not replace conventional tools, non procedural, may not be appropriate for detailed logic. • Advantages • Improved required determination • User involvement & satisfaction • Reduced application backlog • Disadvantages • Insufficient reviews • Lack of proper quality assurance • Uncontrolled data • Proliferation of private IS applications
Outsourcing: Contracting computer center operations, telecommunications, networks or application development to external vendors. • Solution Center: Facility operated by a commercial information technology vendor which provides clients with repeatable or reusable processes, models, and architectures for solving common information system problems • Advantages of Outsourcing • Economies of scale • Service quality • Predictability • Flexibility • Making fixed costs variable • Freeing up human resources for other projects • Freeing up financial capitals • Disadvantages of Outs. • Loss of control • Vulnerability of strategic information • Dependency
When to Use Outsourcing • Limited competitive advantage from IS • Uninterrupted service is not important • Technical know-how for future innovation is not essential • Existing IS is inferior, limited or ineffective
System Building Methodologies & Tools • Development Methodology: A collection of methods, one or more for every activity within every phase of a development project • Structured methodologies • Flowcharting • Object oriented software development • Computer-aided software engineering • Software reengineering • Decision tables and Decision trees • Pseudocode
Structured methodologies have been used to document, analyze, and design information systems since the 1970s and remain an important methodological approach • Structured analysis: A method for defining system inputs, processes, and outputs and for partitioning systems into subsystems or modules that show a logical graphic model of information flow. • Structured Design: Software design discipline, encompassing a set of design rules and techniques for designing a system from the top down in a hierarchical fashion. • Data Flow Diagram (DFD): A primary tool in structured analysis that graphically illustrates the system’s components processes and the flow of data between them.
Data Flow Diagram (DFD) • External entity • Process • Data store • Dataflow
Data Flow Diagram for mail-in university registration system
Level 2 • Process Logic to Prepare Invoice • Compute total credit • Compute total fee • Add student fee
High Level Structure (Hierarchy) Chart • Structured Chart: Systems documentation showing each level of design, the relationship among the levels, and the overall place in the design structure; can document one program, one system, or part o one program.
Structured Programming • Structured programming: A discipline for organizing and coding programs that simplifies the control paths so that the programs can be easily understood and modified. Uses the basic control structures and modules that have only one entry point and one exit point. • Module: A logical unit of a program that performs one or several functions. • Sequence construct: The sequential single steps or actions in the logic of a program that do not depend on the existence of any condition. • Selection construct: The logic pattern in programming where a stated condition determines which of two or more actions can be taken. • System flowchart: A graphic design tool that depicts the physical media and sequence of processing steps used in an entire information system
Object Oriented Software Development • An approach to software development that deemphasizes procedures and shifts the focus from modeling business processes and data to combining data and procedures to create objects • Reusable components • Ease of maintainability
Joint application design: Programmers, IS professionals, and users participate for interactive design of systems.
Rapid application development (RAD): Process for developing systems in a very short time period by using prototyping, fourth-generation tools, and close teamwork among users and systems specialists. • Software reengineering: A methodology that addresses the problem of aging software by savaging and upgrading it so that the users can avoid a long and expensive replacement project. • Reverse engineering: The process of converting existing programs, files, and database descriptions into corresponding design-level components that can then be used to create new applications. • Forward engineering: The final step in reengineering when the revised specifications are used to generate new, structured program code for a structured and maintainable system.
Pseudo Code for each account do: if balance >= 500 then stat else if there is account activity send stat else send statment + warning