500 likes | 556 Views
Learn how software development impacts organizational productivity, decision-making, and success. Explore the Systems Development Life Cycle (SDLC) phases, methodologies like Waterfall, RAD, XP, and Agile, and principles for successful software development.
E N D
CHAPTER 11 SYSTEMS DEVELOPMENT
SECTION 11.1 DEVELOPING ENTERPRISE APPLICATIONS
DEVLOPING SOFTWARE • Software that is built correctly can transform 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
DEVELOPING SOFTWARE • As organizations’ reliance on software grows, so do the business-related consequences of software successes and failures including: • Increase or decrease revenue • Repair or damage to brand reputation • Prevent or incur liabilities • Increase or decrease productivity
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC) • Systems development life cycle (SDLC) – the overall process for developing information systems from planning and analysis through implementation and maintenance
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC) • Planning phase – involves establishing a high-level plan of the intended project and determining project goals • Analysis phase – involves analyzing end-user business requirements and refining project goals into defined functions and operations of the intended system • Business requirement – detailed set of business requests that the system must meet in order to be successful
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)) • Design phase – involves describing the desired features and operations of the system including screen layouts, business rules, process diagrams, pseudo code, and other documentation • Development phase – involves taking all of the detailed design documents from the design phase and transforming them into the actual system
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC) • Testing phase – involves bringing all the project pieces together into a special testing environment to test for errors, bugs, and interoperability and verify that the system meets all of the business requirements defined in the analysis phase • Implementation phase – involves placing the system into production so users can begin to perform actual business operations with the system
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC) • Maintenance phase – involves performing changes, corrections, additions, and upgrades to ensure the system continues to meet the business goals
SOFTWARE DEVELOPMENT METHODOLOGIES • There are a number of different software development methodologies including: • Waterfall • Rapid application development (RAD) • Extreme programming • Agile
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
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
Extreme Programming Methodology • Extreme programming (XP) methodology – breaks a project into tiny phases, and developers cannot continue on to the next phase until the first phase is complete
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
DEVELOPING SUCCESSFUL SOFTWARE • Primary principles for successful agile software development include: • Slash the budget • If it doesn’t work, kill it • Keep requirements to a minimum • Test and deliver frequently • Assign non-IT executives to software projects
SECTION 11.2 THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
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 such as RAD and agile • Systems development life cycle – the overall process for developing information systems from planning and analysis through implementation and maintenance
PHASE 1: PLANNING • Planning phase – involves establishing a high-level plan of the intended project and determining project goals • Primary planning activities include • Identify and select the system for development • Assess project feasibility • Develop the project plan
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
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
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
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: • Gather business requirements • Create process diagrams • Perform a buy vs. build analysis
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
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
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 diagram (DFD) – illustrates 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
Create Process Diagrams • Sample data flow diagram
Perform a Buy vs. Build Analysis • An organization faces two primary choices when deciding to develop an information system • 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 • Build the information system itself
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?
Perform a Buy vs. Build Analysis • Three key factors an organization should also consider when contemplating the buy vs. build decision • Time to market • Availability of corporate resources • Corporate core competencies
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: • Design the IT infrastructure • Design system models
Design the IT Infrastructure • Sample IT infrastructure
Design System Models • Modeling – the activity of drawing a graphical representation of a design • Different modeling types include: • Graphical user interface (GUI) • GUI screen design • Data model • Entity relationship diagram (ERD)
Design System Models • Sample entity relationship diagram (ERD)
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: • Develop the IT infrastructure • Develop the database and programs
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: • Write the test conditions • Perform the system testing
Write the Test Conditions • Test condition – the detailed steps the system must perform along with the expected results of each step
Perform the System Testing • Different types of testing • Unit testing – tests each unit of code upon completion • Application (or system) testing – verifies that all units of code work together • Integration testing – exposes faults in the integration of software components or units • Backup and recovery testing – tests the ability of an application to be restarted after failure • Documentation testing – verifies instruction guides are helpful and accurate • User acceptance testing (UAT) – tests if a system satisfies its acceptance criteria
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: • Write detailed user documentation • Determine implementation method • Provide training for the system users
Write Detailed User Documentation • System users require user documentation that highlights how to use the system • User documentation – highlights how to use the system
Determine Implementation Method • Four primary implementation methods • Parallel implementation • Plunge implementation • Pilot implementation • Phased implementation
Provide Training for the System Users • Organizations must provide training for system users • Two most popular types of training include: • Online training – runs over the Internet or off a CD-ROM • Workshop training – set in a classroom-type environment and led by an instructor
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: • Build a help desk to support the system users • Perform system maintenance • Provide an environment to support system changes
Build a Help Desk to Support the 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
Perform System Maintenance • Maintenance – fixing or enhancing an information system • Different types of maintenance include: • Adaptive maintenance • Corrective maintenance • Perfective maintenance • Preventative maintenance
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
SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS • Primary reasons for project failure include • Unclear or missing business requirements • Skipping SDLC phases • Failure to manage project scope • Scope creep – occurs when the scope increases • Feature creep – occurs when extra features are added • Failure to manage project plan • Changing technology
SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS • Find errors early: the later in the SDLC an error is found - the more expensive it is to fix