4 SDLC Introduction Systems Development Life Cycle is a process involving multiple stages (phases) to develop information systems Each stage has specific goals, tasks and outputs Good for task specialization
5 SDLC Models There are many models based on SDLC Different in the number of stages, stage names and sequence The original model, and the classic one, is the waterfall model (see the figure on the previous slide) Linear and sequential Each stage has clear goals and tasks
6 Stage 1: Plan (Preliminary Investigation) Goal To evaluate the need and feasibility of the system Tasks Selecting and defining system Identifying the need Setting system scope High level definition of the system Be careful of scope creep – unable to control the boundary of the system Developing project plan
7 Stage 1: Plan (cont.) Tasks (cont.) Developing project plan Who: project manager develops and tracks the plan What: tasks, people, resources, and timeframes Project milestones describe date, activities and goals for each stage Output Whether or not to proceed
8 Stage 2: Analysis Goal To specify business requirements: detailed set of user (organization) requests and needs Tasks Gathering and documenting all business requirements Who: business/system analysts How: Interview, observation, meeting *Comparing initial solutions and choosing the best Output Requirements definition document *Description of the recommended solution and basic model (business model) Difficult job
9 Stage 3: Design (1) Goal To build technical specifications and solutions for the system Tasks Designing technical architecture Broad and basic technical framework including hardware, software, network and how they are integrated into a complete system Designing system models
10 Stage 3: Design (cont.) Tasks (cont.) Designing system models (system/functional modeling) System modeling is the process to transform business requirements into technical models Interface design (GUI) Data modeling Business logic modeling Output Detailed technical specifications and models of the system
11 Stage 4: Development Goal To build the complete system Tasks Building the platform/architecture Setting up and configuring hardware and software for development Building all parts of the system: GUI, database, business objects … Actual coding by programmers Output Beta version system
12 Stage 5: Testing Goal To verify the system meets all requirements and works correctly and reliably (quality assurance) Tasks Writing test conditions (test cases) *Black-box testing By comparing the actual results and expected results *White-box testing By analyzing the internal structure of the system Performing testing System/functional testing: to verify the correctness and reliability User acceptance testing: to get users acceptance and satisfaction Output Release version system
13 Stage 6: Implementation (Deployment) Goal To put the system in actual use Tasks Deployment (h ow?) One-time implementation Phased-in Parallel Writing user documentation How-to manual for users (knowledge workers) Training How: online (self-training); workshop Output In-production system
14 Stage 7: Maintenance Goal To monitor, support and improve the system Tasks Creating help desk (user support) Fixing errors and responding to changes Configuring and modifying the system to meet changing needs Identifying the need for better and newer system (back to stage 1) Output Better systems or the need for new systems
16 An Exercise Scenario Professor Nickerson wanted to setup a website for his E-Commerce Center. He asked John and Jenny to help him do the job. After 3 month work, the site is now established and is running well. Task A set of related activities had happened for those 3 months (see the handout). These activities are in random order. Please link them correctly to each SDLC stage.
19 Prototyping Prototyping is the process of developing systems using prototypes Prototype A scaled-down but working version of a desired system (or part of a system) It demonstrates major features, functions and feel of the system But it does not have all the functions and it is buggy
20 Prototyping Process A rapid but iterative process Figure 6.6 on page 292
21 What Are Prototypes Used For? Gathering and determining requirements It is easier for users to articulate their needs if they have a direct feel of system Proof-of-concept Can it be done? Lets use a prototype to analyze the feasibility of the system. Selling the idea You dont see the benefit? Let the prototype show you.
22 Pros and Cons of Prototyping Advantages Encourages user participation and helps elaborate user requirements Gives a feel for the final system Helps determine technical feasibility (proof-of-concept prototype) and sell the idea (selling prototype) Disadvantages Leads people to believe the final system will finish shortly Gives no indication of performance under operational conditions Leads developers to skip proper testing and documentation
23 Outsourcing The delegation of business process (administrative, engineering, research, development, or technical support) to other organizations Example: www.borders.comwww.borders.com Off-shoring The migration of part or all of the business processes to another country Off-shore outsourcing … to other organizations in another country
24 Forms of IT Outsourcing Figure 6.7 on page 295
25 Pros and Cons of IT Outsourcing Why to outsource? Reduce development costs Focus on business core competencies Gain best practices and capabilities … Disadvantages Difficult to assimilate knowledge for future innovation Vulnerability of business secret Dependency on other organizations … What are the impacts of IT off-shoring/outsourcing on employees, companies, industries and nations?
26 Good Resources Government Accountability Office (GAO) reports http://www.gao.gov/docsearch/topic.php How to Write a Request for Proposal for a Web Project http://www.webdevelopersjournal.com/columns/writerfp.html Software Engineering Institute http://www.sei.cmu.edu/ CIO.com outsourcing http://www.cio.com/research/outsourcing/