McGraw-Hill/Irwin ©2008 The McGraw-Hill Companies, All Rights Reserved
CHAPTER 11CHAPTER 11
SYSTEMS DEVELOPMENT
SYSTEMS DEVELOPMENT
11-2
DEVLOPING SOFTWARE
• Software that is built correctly can transform/be adapted as the organization and its business transforms
• Software that effectively meets employee needs will help an organization become more productive and enhance decision making
• Software that does not meet employee needs may have a damaging effect on productivity and can even cause a business to fail
11-3
DEVELOPING SOFTWARE
• As organizations’ reliance on software grows, so do the business-related consequences of software successes and failures including:– Increase or decrease in revenue– Repair or damage to brand reputation– Prevent or incur liabilities– Increase or decrease productivity
11-4
The Systems Development Life Cycle (SDLC)
• Large, complex IT systems take teams of architects, analysts, developers, testers, and users many years to create
• The systems development life cycle is the foundation for many systems development methodologies
– Systems development life cycle – the overall process for developing information systems from planning and analysis through implementation and maintenance
11-5
SDLC
11-6
PHASE 1: PLANNING
• Planning phase – involves establishing a high-level plan of the intended project and determining project goals
• Primary planning activities include1. Identify and select the system for
development2. Assess project feasibility3. Develop the project plan
11-7
Planning 1: Identify and Select the System for Development
• Organizations use different forms of evaluation criteria to determine which
systems to develop – Critical success factor (CSF) – a factor that
is critical to an organization’s success
11-8
Planning 1: Identify and Select the System for Development
11-9
Planning 2: Assess Project Feasibility
• Feasibility study – determines if the proposed solution is feasible and achievable from a financial, technical, and organizational standpoint
• Different types of feasibility studies– Economic feasibility study– Operational feasibility study– Technical feasibility study– Schedule feasibility study– Legal and contractual feasibility study
11-10
Planning 3:Develop the Project Plan
• Developing the project plan is a difficult and important activity
• The project plan is the guiding force behind on-time delivery of a complete and successful system
• Continuous updating of the project plan must be performed during every subsequent phase during the SDLC
11-11
PHASE 2: ANALYSIS
• Analysis phase – involves analyzing end-user business requirements and refining project goals into defined functions and operations of the intended system
• Primary analysis activities include:1. Gather business requirements
2. Create process diagrams
3. Perform a buy vs. build analysis
11-12
Analysis 1: Gather Business Requirements
• Business requirements – the detailed set of business requests that the system must meet in order to be successful
• Different ways to gather business requirements– Joint application development (JAD) session –
where employees meet to define or review the business requirements for the system
– Interviews– Questionnaires– Observations– Review business documents
11-13
Analysis 1: Gather Business Requirements
• The system users review the requirements definition document and determine if they will sign-off on the business requirements
– Requirements definition document – contains the final set of business requirements, prioritized in order of business importance
– Sign-off – the system users’ actual signatures indicating they approve all of the business requirements
11-14
Analysis 2: Create Process Diagrams
• Process modeling – graphically representing the processes that capture, manipulate, store, and distribute information between a system and its environment
• Common process modeling diagrams include– Data flow diagrams (DFD) – illustrate the
movement of information between external entities and the processes and data stores within the system
– Computer-aided software engineering (CASE) tools –automate systems analysis, design, and development
11-15
Analysis 2: Create Process Diagrams
• Sample data flow diagram
11-16
Analysis 3: Perform a Buy vs. Build Analysis
• An organization faces two primary choices when deciding to develop an information system
1. Buy the information system from a vendor– Commercial off-the shelf (COTS) – software
package or solution that is purchased to support one or more business functions and information systems
– SCM, CRM, and ERP solutions are typically COTS
2. Build the information system itself
11-17
Analysis 3: Perform a Buy vs. Build Analysis
• Organizations must consider the following when making a buy vs. build decision:
– Are there any currently available products that fit the needs?
– Are there features that are not available and important enough to warrant the expense of in-house development?
– Can the organization customize or modify an existing COTS to fit its needs?
– Is there a justification to purchase or develop based on the acquisition cost?
11-18
Analysis 3: Perform a Buy vs. Build Analysis
• Three key factors an organization should also consider when contemplating the buy vs. build decision
1. Time to market
2. Availability of corporate resources
3. Corporate core competencies
11-19
PHASE 3: DESIGN
• Design phase – involves describing the desired features and operations of the system including screen layouts, business rules, process diagrams, pseudo code, and other documentation
• Primary design activities include:1. Design the IT infrastructure
2. Design system models
11-20
Design 1: Design the IT Infrastructure
• Sample IT infrastructure
11-21
Design 2: Design System Models
• Modeling – the activity of drawing a graphical representation of a design
• Different modeling types include:– Graphical user interface (GUI) screen
design– Data models
• Entity relationship diagram (ERD)
11-22
Design 2: Design System Models
• Sample entity relationship diagram (ERD)
11-23
PHASE 4: DEVELOPMENT
• Development phase – involves taking all of the detailed design documents from the design phase and transforming them into the actual system
• Primary development activities include:1. Develop the IT infrastructure
2. Develop the database and programs
11-24
Development 1: Develop the IT Infrastructure based on the design
11-25
Development 2: Develop the database & programs based on the Models from the
Design Phase
11-26
PHASE 5: TESTING
• Testing phase – involves bringing all the project pieces together into a special testing environment to test for errors, bugs, and interoperability, in order to verify that the system meets all the business requirements defined in the analysis phase
• Primary testing activities include:1. Write the test conditions2. Perform the system testing
11-27
Testing 1: Write the Test Conditions
• Test conditions – the detailed steps the system must perform along with the expected results of each step
11-28
Testing 2: Perform the System Testing
• Types of testing:– Unit testing – tests each unit of code upon
completion to determine errors in that unit– Application (or system) testing – verifies
that all units of code work together and that the total system satisfies all functional and operational requirements
– Integration testing – exposes faults in the integration of software components or units with other systems
11-29
Testing 2: Perform the System Testing
• Different types of testing, cont.– Regression testing – determines if a functional
improvement or repair to the system has affected the other functional aspects of the SW
– User acceptance testing (UAT) – determines whether a system satisfies its acceptance criteria, enabling the customer to decide whether or not to accept the system
– Documentation testing – verifies instruction guides are helpful and accurate
– Backup and recovery testing – tests the ability of an application to be restarted after failure
11-30
PHASE 6: IMPLEMENTATION
• Implementation phase – involves placing the system into production so users can begin to perform actual business operations with the system
• Primary implementation activities include:1. Write detailed user documentation
2. Provide training for the system users
3. Determine implementation method
11-31
Implementation 1: Write Detailed User Documentation
• System users require User documentation – highlights how to use the system
11-32
Implementation 2: Provide Training for the System Users
• Organizations must provide training for system users
• Two popular types include:– Online training – conducted over the
Internet or from a CD-ROM– Workshop training – set in a classroom-
type environment and led by an instructor
11-33
Implementation 3: Determine Implementation Method
• Four primary implementation methods 1. Parallel implementation
2. Plunge implementation
3. Pilot implementation
4. Phased implementation
11-34
PHASE 7: MAINTENANCE
• Maintenance phase – involves performing changes, corrections, additions, and upgrades to ensure the system continues to meet the business goals
• Primary maintenance activities include:1. Provide a help desk to support the system users
2. Perform system maintenance
3. Provide an environment to support system changes
11-35
Maintenance 1: Provide a Help Desk to Support System Users
• Internal system users have a phone number for the help desk they call whenever they have issues or questions about the system
– Help desk – a group of people who respond to internal system user questions
• Providing a help desk is an excellent way to provide comprehensive support for new system users
11-36
Maintenance 2: Perform System Maintenance/Changes
• Maintenance – fixing or enhancing an information system
• Different types of maintenance include:– Corrective maintenance – Adaptive maintenance – Perfective maintenance – Preventative maintenance
11-37
Maintenance 3: Support System Changes
• An organization must modify its systems to support the business environment
• It typically accomplishes this through change management systems and change control boards
– Change management system – a collection of procedures to document a change request and define the steps necessary to consider the change based on the expected impact of the change
– Change control board (CCB) – responsible for approving or rejecting all change requests
11-38
Alternative Software Development Methodologies
• There are a number of different software development methodologies including:
– Waterfall– Rapid application development (RAD)– Extreme programming– Agile
11-39
Waterfall Methodology
• Waterfall methodology – a sequential, activity-based process in which each phase in the SDLC is performed sequentially from planning through implementation and maintenance
11-40
11-41
Rapid Application Development Methodology (RAD)
• Rapid application development methodology (RAD) – emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process
• The prototype is an essential part of the analysis phase when using a RAD methodology
– Prototype – a smaller-scale representation or working model of the users’ requirements or a proposed design for an information system
11-42
Rapid Application Development Methodology (RAD)
11-43
Extreme Programming Methodology (XP)
• Extreme programming (XP) methodology – breaks a project into tiny phases; developers cannot continue on to the next phase until the first phase is complete
11-44
Agile Methodology
• Agile methodology – a form of XP, aims for customer satisfaction through early and continuous delivery of useful software components
– Agile is similar to XP but with less focus on team coding and more on limiting project scope
– An agile project sets a minimum number of requirements and turns them into a deliverable product
11-45
DEVELOPING SUCCESSFUL SOFTWARE
• Primary principles for successful software development include:
– Slash the budget– If it doesn’t work, kill it– Keep requirements to a minimum – watch out for:
• Scope creep- the scope of the project increases• Feature creep – extra features are added
– Test and deliver frequently– Assign non-IT executives to software projects
11-46
SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS
• Primary reasons for project failure include
– Unclear or missing business requirements– Skipping SDLC phases– Failure to manage project scope –allowing:
• Scope creep – occurs when the scope increases
• Feature creep – occurs when extra features are added
– Failure to manage project plan– Changing technology
11-47
SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS
• Find errors early: the later in the SDLC an error is found - the more expensive it is to fix
11-48
• http://www.updatexp.com/we-share-your-pain.html