Systems Development Life Cycle SDLC Minder Chen Ph D Professor of MIS Martin V Smith School of Business and Economics CSU Channel Islands minder chen csuci edu SDLC 1 Life Cycle Stages Planning Analysis Design Implementation What Problems Opportunities Requirements Soft People Skills Methodology Process Life Cycle Techniques Modeling How Solutions Specifications Technical Skills Visibility Deliverables Documentation Use modeling techniques A system development methodology is a framework that is used to structure plan and control the process of developing an information system Data Process UI UI User Interface Prototyping Coding Programming Implementation SDLC 2 Structured Project SDLC Requirements Analysis Refined project scope Cost Benefit Analysis Planning Preliminary Study Approved Project Proposal Approved Re development Project Proposal Design Users Participation Documentation Modeling Techniques CASE IDE Tools Quality Assurance Operation Maintenance Integrated Tested System CASE Computer Aided Software Engineering IDE Integrated Development Environment Design Specification s Implementati on Implemented System Testing Integration Installation SDLC 3 SDLC Waterfall Model Identify prioritize IS development projects Requirements AS IS vs TO BE Logical and physical Design specification Programming Testing Training Installation Bug fix and Upgrades IT Service Management ITIL standard SDLC 4 Deliverables Documentations of SDLC Stages Phases 5 SDLC 5 Spiral Model and Prototyping http en wikipedia org wiki Spiral model http www reliablesoftware com weblog uploaded images spiral 712085 bmp 6 SDLC 6 Requirements Elicitation SDLC 7 Managing User Interviews SDLC 8 Stakeholder Perspectives SDLC 9 SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS Find errors early the later in the SDLC an error is found the more expensive it is to fix SDLC 10 Balancing The Triple Constraints in Projects SDLC 11 The Mythical Man Month http www cs drexel edu yfcai CS451 RequiredReadings MythicalManMonth pdfSDLC 12 The Mythical Man Month SDLC 13 Team Productivity SDLC 14 Adding More People Brook s Law Adding developers to a late project will make it later SDLC 15 Design Cohesion and Coupling Divide and Conquer for effective teamwork Software Design Criteria Modularization Simple stable and clearly defined interface for each module no need to understand the internal structure or design of the module to use it Good design is a system that has low coupling between modules and high cohesion within modules SDLC 16 Stubs and Drivers The most common build problem occurs when one component tries to use another component that has not yet been written This occurs with modular design because the components are often created out of sequence Driver Module M Stub Module 2 Module 1 Module 2 Stubs are non functional components that provide the class property or method definition used by the other component Stubs are a kind of outline of the code you will create later To test two components that need to work together through a third component that has not been written yet you create a driver Drivers are simply test components that make sure two or more components work together Later in the project testing performed by the driver can be performed by the actual component SDLC 17 General Systems Theory Abstract Thinking Source http cimru nuigalway ie david pdf SE Slides Theory PDF SDLC 18 Testing Test plan objectives Is thoroughly tested Meets requirements Does not contain defects Test plan covers Tools Who Schedule Test result analysis What is being tested Test cases Automated testing Reproducible Measurable Source Developing Web Applications with Microsoft Visual Basic NET and Microsoft Visual C NET SDLC 19 Types of Tests Test type Objectives Unit test Each independent piece of code works correctly Integration test All units work together without errors Regression test Newly added features do not introduce errors to other features that are already working Load test also called stress test The product continues to work under extreme usage Platform test The product works on all of the target hardware and software platforms SDLC 20 Regression and Regression Test Regression testing is the process of validating modified parts of the software and ensuring that no new errors are introduced into previously tested code Unit and integration tests form the basis of regression testing As each test is written and passed it gets checked into the test library for a regularly scheduled testing run If a new component or a change to an existing component breaks one of the existing unit or integration tests the error is called a regression SDLC 21 Reasons for Project Failures 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 SDLC 22 SDLC 23 Successful Principles for Software Development 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 SDLC 24 The End SDLC 25 The Ten Essentials of RUP The Ten Essentials of RUP 1 Develop a Vision 2 Manage to the Plan 3 Identify and Mitigate Risks 4 Assign and Track Issues 5 Examine the Business Case 6 Design a Component Architecture 7 Incrementally Build and Test the Product 8 Verify and Evaluate Results 9 Manage and Control Changes 10 Provide User Support Source http www therationaledge com cont ent dec 00 f rup html 26 SDLC 26 Unified Process Structure Phases Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Management Environment Preliminary Iteration s Iter 1 Iter 2 Iter n Iter n 1 Iterations 27 Iter n 2 Iter m SDLC 27 Iter m 1 28 SDLC 28 29 SDLC 29 Agile software development Agile Minimizes feature creep by developing in short intervals resulting in miniature software projects and releasing the product in Pros mini increments Short iteration may add too little functionality leading to significant delays in final iterations Since Agile emphasizes real time Cons communication preferably face to face using it is problematic for large multi team distributed system development Agile methods
View Full Document
Unlocking...