Академический Документы
Профессиональный Документы
Культура Документы
The project -Moves systematically through phases where each phase has a standard set of outputs Produces project deliverables Uses deliverables in implementation Results in actual information system Uses gradual refinement
6. 7. 8. 9. 10.
Project Phases
Planning (Why build the system? How should the team go about building it?) Analysis (Who uses system, what will it do, where and when will the system be used?) Design (How will the system work?) Implementation (System delivery)
Planning
Identifying business value Analyze feasibility Develop work plan Staff the project Control and direct project
Analysis
Analysis strategy Gathering business requirements Requirements definition use cases Process modeling Data modeling
Design
Design selection Architecture design Interface design Data storage design Program design
Implementation
Construction
Program building Program and system testing
Installation
Conversion strategy Training plan Support plan
Product
System Request Feasibility Analysis Workplan System Proposal System Specification New System and Maintenance Plan
Analysis
Design
Implementation
SDLC Phases
Project Planning
Put project in context Small part of a much larger system? New system or modify old?
System Analysis
Define user requirements Analyze tasks Develop specifications
Installation
Testing, training, conversion
What Is a Methodology?
A formalized approach to implementing the SDLC
A series of steps and deliverables
Methodology Categories
Process-Centered Data-Centered Structured Design Rapid Application Development Agile Development Object-Oriented
Consists of a set of phases that a project progresses through in a sequential order. Each phase must be completed before the project can progress to the next phase. At the end of each phase is some form of gateway, usually a formal review where that decision is made. There is no overlap between phases. Straight forward, simple to understand and use. Deliverables are frozen at the end of each phase and serve as the baseline for the following phases. You do not see the software until the end of the project (big bang software development). Changes are not supposed to happen or are limited or are tightly controlled.
Cons
Design must be specified on paper before programming begins Long time between system proposal and delivery of new system
Cons
Still Uses Paper Documents Sub-projects May Be Difficult to Integrate
Prototyping
System prototyping
Throw-away prototyping
Design prototyping
Cons
Used to develop a quick implementation of the software prior to or during the software requirements phase. The customer uses the prototype and provides feedback to the software developers as to its strengths and weaknesses. This feedback is used to refine or change the prototype to meet the real needs of the customer. Can either be evolutionary or throw away.
Cons
Tendency to do Superficial Analysis Initial Design Decisions May Be Poor
Prototyping Guidelines
Throwaway Prototyping
Cons
May Take Longer Than Prototyping
V-SHAPED MODEL
The following list contains a brief description of each phase of the V-Shaped model, from project and requirements planning through acceptance testing. Projects and requirements planning - Determines the system requirements and how the resources of the organization will be allocated to meet them. (Where appropriate, this phase allocates functions to hardware and software). Product requirements and specification analysis Includes analysis of the software problem at hand and concludes with a complete specification of the expected external behavior of the software system to be built. Architecture or high-level design Defines how the software functions are to implement the design.
V-SHAPED MODEL
Detailed design Defines and documents algorithms for each component that was defined during the architecture phase. These algorithms will be translated into code. Coding Transforms the algorithms defined during the detailed design phase into software.. Unit testing Checks each coded module for errors. Integration and testing Interconnects the sets of previously unit-tested modules to ensure that the sets behave as well as the independently tested modules did during the unit-testing phase. System and acceptance testing Checks whether the entire software system (fully integrated) embedded in its actual hardware environment behaves according to the software requirements specification. Production, operation and maintenance Puts software into production and provides for enhancement and corrections. Acceptance testing (not shown) Allows the user to test the functionality of the system against the original requirements. After final testing, the software and its surrounding hardware become operational. Maintenance of the system follows.
V-SHAPED MODEL
Similar to waterfall except it emphasizes the importance of considering the testing activities up front instead of later in the life cycle.
Each test phase is considered in its matching development phase: Requirements == System /Functional Testing High-Level Design == Integration Testing Detailed Design == Unit Testing
REQUIREMENTS SYSTEM TEST PLANNING SYSTEM TESTING
PRELIMINARY DESIGN
INTEGRATION TESTING
DETAILED DESIGN
UNIT TESTING
CODING
Incremental Development
Allows a project to construct the software in incremental stages where each stage adds additional functionality. Each stage consists of design, code and unit test, integration test and delivery. Allows you to put functional software into the hands of the customer much earlier than either the waterfall or V-shaped model. You can plan the stages in such a way that you determine what functionality you do first.
i.e. you may choose to deliver the most important functionality to the customer first.
Provides tangible measures of progress. Requires careful planning at both the project management level and the technical level
SPIRAL
Developed by Barry Boehm. A risk-oriented software life cycle. Each spiral addresses major risks that have been identified. After all the risks have been addressed, the spiral model terminates as a waterfall software life cycle
SPIRAL
Cons
Requires Discipline Works Best in Small Projects
Importance of Testing
Unit Test Make sure the Integration Test system works! Full System Test Stress Testing Field Testing (Alpha and Beta Tests) Regression Testing