System Development © Holmes Miller 1999 Why Learn About Systems Development? Important to learn how to: Initiate systems development process Analyze your needs with help of IS personnel Learn how a project can be: Planned Aligned with corporate goals Rapidly developed An Overview of Systems Development Managers and employees in all functional areas work together in a business information system Users help and often lead the way with development process Participants in systems development: Determine when a project fails Are critical to systems development success Participants in Systems Development Development team consists of the following: Project managers: coordinate system development effort Stakeholders: directly or indirectly benefit from the project Users: interact with the system regularly Systems analysts: analyze and design business systems Programmers: modify or develop programs to satisfy user requirements Various support personnel: specialists, vendors Information Systems Planning and Aligning Corporate and IS Goals Information systems planning: translating strategic and organizational goals into systems development initiatives Aligning organizational goals and IS goals is critical for any successful systems development effort Determining whether organizational and IS goals are aligned can be difficult Systems Development Life Cycles The systems development process is also called a systems development life cycle (SDLC) Common SDLCs Traditional systems development life cycle Prototyping Rapid application development (RAD) End-user development The Traditional Systems Development Life Cycle Figure 8.3: The Traditional Systems Development Life Cycle Prototyping An iterative approach to systems development Figure 8.4: Prototyping Rapid Application Development, Agile Development, Joint Application Development, and Other Systems Development Approaches Rapid application development (RAD) Systems development approach that employs tools, techniques, and methodologies designed to speed application development Some iterative development approaches allow the system to change as it is being developed Agile development: frequent face-to-face meetings between systems developers and users XP programming: pairs of programmers work together to develop robust systems quickly Joint application development (JAD) Process for data collection and requirements analysis in which users, stakeholders, and IS professionals work together to analyze existing systems, propose possible solutions, and define the requirements of a new or modified system Used extensively by RAD Often utilizes group support systems (GSS) software to foster positive group interactions The End-User Systems Development Life Cycle End-user systems development: any systems development project in which the primary effort is undertaken by a combination of business managers and users End-user-developed systems can be structured as complementary to, rather than in conflict with, existing and emerging information systems Outsourcing and On Demand Computing An outside consulting firm or computer company that specializes in systems development can take over some or all of the development and operations activities Reasons for using outsourcing and on demand computing Reducing costs, obtaining state-of-the-art technology, eliminating staffing and personnel problems, and increasing technological flexibility Use of Computer-Aided Software Engineering (CASE) Tools Computer-aided software engineering (CASE): tools that automate many of the tasks required in a systems development effort and encourage adherence to the SDLC Instill a high degree of rigor and standardization to the entire systems development process Upper-CASE tools focus on investigation, analysis, and design Lower-CASE tools focus on implementation Use of Computer-Aided Software Engineering (CASE) Tools (continued) Table 8.2: Advantages and Disadvantages of CASE Tools Object-Oriented Systems Development Object-oriented systems development (OOSD) Approach to systems development that combines the logic of the systems development life cycle with the power of object-oriented modeling and programming Object-oriented systems development typically involves: Identifying potential problems and opportunities within the organization that would be appropriate for the OO approach Defining the kind of system users require Designing the system Programming or modifying modules Evaluation by users Periodic review and modification Systems Investigation What primary problems might a new or enhanced system solve? What opportunities might a new or enhanced system provide? What new hardware, software, databases, telecommunications, personnel, or procedures will improve an existing system or are required in a new system? What are the potential costs (variable and fixed)? What are the associated risks? Initiating Systems Investigation Systems request form: document filled out by someone who wants the IS department to initiate systems investigation Helps rationalize and prioritize the activities of the IS department Includes the following information: Problems in and opportunities for system Objectives in investigation Overview, costs, and benefits of proposed system Feasibility Analysis Technical feasibility: hardware, software, and other system components Economic feasibility: predicted benefits vs. cost and time Legal feasibility: limitations of laws and regulations on project Operational feasibility: logistical and motivational considerations Schedule feasibility: completion of project in reasonable amount of time The Systems Investigation Report Systems investigation report Summary of the results of the systems investigation and the process of feasibility analysis Recommendation of a course of action Continue systems analysis Modify the project Abandon the project Reviewed by steering committee of senior management and users Systems Analysis Answers the question “What must the information system do to solve the problem?” Overall emphasis of systems analysis is: Gathering data on the existing system Determining the requirements for the new system Considering alternatives within these constraints Investigating the feasibility of the solutions Primary outcome: prioritized list of systems requirements Data Collection Identifying sources of data Internal sources External sources Collecting data Interviews: structured and unstructured Direct observation Questionnaires: structured or unstructured Used when data sources are spread over a wide geographic area Data Analysis Data analysis Manipulation of collected data so that systems development team can use the data Data modeling Entity-relationship (ER) diagrams: objects, attributes, and associations Activity modeling Data-flow diagrams (DFDs): objects, associations, and activities Data Analysis (continued) Figure 8.12: Data and Activity Modeling (a) An entityrelationship diagram Data Analysis (continued) Figure 8.12: Data and Activity Modeling (b) A data-flow diagram Requirements Analysis Determines user, stakeholder, and organizational needs through the following techniques: Asking directly: best for stable systems Critical success factors: asks for critical factors in interviewee’s area IS plan: translates strategic plan into initiatives Requirements analysis tools: CASE tools Object-Oriented Systems Analysis Identifying problems or potential opportunities Identifying key participants and collecting data Uses classes and generalization/specialization hierarchies instead of data-flow diagrams and flowcharts The Systems Analysis Report Systems analysis report should cover: Strengths and weaknesses of the existing system from a stakeholder’s perspective User/stakeholder requirements for the new system (also called the functional requirements) Organizational requirements for the new system Description of what the new information system should do to solve the problem Systems Design Answers the question “How will the information system solve a problem?” Has two dimensions: logical and physical Logical design: description of the functional requirements of a system Physical design: specification of the characteristics of the system components necessary to put the logical design into action Object-Oriented Design Design key objects and classes of objects in the new or updated system Consideration of the problem domain, the operating environment, and the user interface Consideration of the sequence of events that must happen for the system to function correctly Scenario: sequence of events Can be diagrammed in a sequence diagram Generating Systems Design Alternatives Request for proposal (RFP): document that specifies in detail required resources such as hardware and software Financial options Purchasing Leasing Renting Evaluating and Selecting a Systems Design Preliminary evaluation To dismiss unwanted proposals Begins after all proposals have been submitted Final evaluation Detailed investigation of the proposals offered by the vendors remaining after the preliminary evaluation The Design Report Design report: primary result of systems design, reflecting the decisions made and preparing the way for systems implementation System specifications include technical description of the following: System outputs, inputs, and user interfaces Hardware, software, databases, telecommunications, personnel, and procedure components and the way these components are related Systems Implementation Figure 8.19: Typical Steps in Systems Implementation Acquiring Hardware from an IS Vendor IS vendor: company that offers hardware, software, telecommunications systems, databases, IS personnel, and/or other computer-related resources Buying computer hardware Leasing computer hardware Renting computer hardware “Pay-as-you-go,” “on-demand,” or “utility” computing Acquiring Software: Make or Buy? Make-or-buy decision: decision regarding whether to obtain software from external or internal sources Choices include: Purchase software externally Develop software in-house Used a blend of external and internal software development Rent software Acquiring Database and Telecommunications Systems Databases and telecommunications systems require a blend of hardware and software New hardware is acquired from an IS vendor New or upgraded software might be purchased or developed in-house User Preparation Process of readying managers, decision makers, employees, other users, and stakeholders for new systems Provide users with proper training IS Personnel: Hiring and Training Personnel that might be needed for the new system IS manager Systems analysts Computer programmers Data-entry operators Training programs should be conducted for the IS personnel who will be using the computer system Site Preparation Preparation of the location of a new system Making room for equipment Special wiring and air conditioning Special floor Security system Additional power circuits Data Preparation Also called data conversion Ensures all files and databases are ready to be used with new computer software and systems Installation Physically placing the computer equipment on the site and making it operational Normally the manufacturer is responsible for installing computer equipment Someone from the organization (usually the IS manager) should oversee the process Testing Unit testing: testing of individual programs System testing: testing the entire system of programs Volume testing: testing the application with a large amount of data Integration testing: testing all related systems together Acceptance testing: conducting any tests required by the user Start-Up Process of making the final tested information system fully operational Approaches Direct conversion (plunge, direct cutover): stopping the old system and starting the new one on a given date Phase-in approach (piecemeal): slowly replacing old system components with new system components Pilot start-up: run new system with one group of users Parallel start-up: running old and new systems together for a period of time User Acceptance User acceptance document: formal agreement signed by the user that states that a phase of the installation or the complete system is approved Legal document that removes or reduces IS vendor’s liability Systems Operation and Maintenance Systems operation: use of a new or modified system Help desk provides support Systems maintenance: checking, changing, and enhancing the system to make it more useful in achieving user and organizational goals Difficult and costly for legacy systems Systems Review Process of analyzing systems to make sure that they are operating as intended Often compares the performance and benefits of the system as it was designed with the actual performance and benefits of the system in operation Event-driven review: triggered by a problem or opportunity such as an error, a corporate merger, or a new market for products Time-driven review: performed after a specified amount of time