software life cycle the software life cycle is the sequence of activities that occur during software...

22
Software Life Cycle Software Life Cycle The The software life cycle software life cycle is the is the sequence of activities that occur sequence of activities that occur during software development and during software development and maintenance. maintenance.

Upload: job-glenn

Post on 14-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Software Life CycleSoftware Life Cycle

The The software life cyclesoftware life cycle is the sequence of is the sequence of activities that occur during software activities that occur during software development and maintenance.development and maintenance.

Page 2: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Software Life CycleSoftware Life Cycle

Main stepsMain steps1. Determining feasibility1. Determining feasibility

2. Gathering requirements2. Gathering requirements

3. Designing the software3. Designing the software

4. Implementing the software4. Implementing the software

5. Testing and Software Quality Assurance (SQA)5. Testing and Software Quality Assurance (SQA)

6. Installation6. Installation

7. Maintenance7. Maintenance

Page 3: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

Determining feasibilityDetermining feasibility – Is the proposed – Is the proposed project worthwhile?project worthwhile?

This is the most important step in the This is the most important step in the software life cycle.software life cycle.

Many software projects have been Many software projects have been implemented that are not worthwhile. implemented that are not worthwhile.

Page 4: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

Doing market analysisDoing market analysis – determining if – determining if there is a potential market for the product.there is a potential market for the product.

Is the proposed project worthwhile?Is the proposed project worthwhile?

This is the most important step in the software This is the most important step in the software life cyclelife cycle

Many large Many large software projects have been have been implemented that are not worthwhileimplemented that are not worthwhile

Page 5: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Feasibility StudyFeasibility Study

What should go into a good What should go into a good feasibility study?feasibility study?

1.1. A statement of the task to be A statement of the task to be undertaken.undertaken.

2.2. A domain analysisA domain analysis

3.3. A preliminary requirements analysis.A preliminary requirements analysis.

Page 6: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Feasibility StudyFeasibility Study

4.4. Suggested deliverables.Suggested deliverables.

5.5. Process to be followed, e.g., Process to be followed, e.g., modified waterfall model, iterative modified waterfall model, iterative refinement, prototype, phased refinement, prototype, phased development, etc.development, etc.

6.6. Outline plan, showing principal Outline plan, showing principal activities and milestones.activities and milestones.

Page 7: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Feasibility StudyFeasibility Study

7.7. Visibility plan. Visibility plan. • How will you keep in contact with the How will you keep in contact with the

client and report progress? client and report progress? • How will you communicate among your How will you communicate among your

team?team?

8.8. Risk analysis. What can go wrong? Risk analysis. What can go wrong? What is your fallback plan?What is your fallback plan?

9.9. Probable technical requirementsProbable technical requirements

Page 8: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

Determining requirementsDetermining requirements – What – What functionality should the software have?functionality should the software have?This involves:This involves:

Obtaining requirements from the users (or Obtaining requirements from the users (or potential users) is called potential users) is called requirement requirement elicitationelicitation..

Determining the tasks common to the Determining the tasks common to the problem is called problem is called domain analysisdomain analysis..

Page 9: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

PrototypingPrototyping – creating a rough model of the proposed – creating a rough model of the proposed system.system.

Requirements can be agreed upon using a Requirements can be agreed upon using a non-functional user interface. This is part of non-functional user interface. This is part of both the requirements gathering phase AND both the requirements gathering phase AND the design phase.the design phase.

Page 10: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

Users provide a document called Users provide a document called statement of workstatement of work that is a that is a preliminary specification of the preliminary specification of the capabilities of the software.capabilities of the software.

Page 11: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

The software provider creates a software requirements specification document, which describes what the software will do. This document typically includes:

• Object Models – a model showing the main objects/classes, their properties, methods and their associated relationships.

• Use case scenarios – Show a sequence of possible behaviors from the users viewpoint.

Page 12: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

Project PlanningProject Planning – determining how – determining how to develop the software.to develop the software.

Determining who does what (Determining who does what (work work breakdown structurebreakdown structure) when ) when ((schedulingscheduling).).

Cost analysisCost analysis – determining the – determining the cost of development and which cost of development and which requirements might be too costlyrequirements might be too costly

Page 13: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life Cycle Steps in the Software Life Cycle (Project Planning)(Project Planning)

SchedulingScheduling – building a schedule for – building a schedule for development. A document called the development. A document called the “project schedule” is produced.“project schedule” is produced.

Software quality assurance Software quality assurance (Software quality assurance plan (Software quality assurance plan document)document)

Page 14: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

DesignDesign – determining how the – determining how the software will provide functionalitysoftware will provide functionality

Architectural DesignArchitectural Design – determining – determining the structure of the system (like a the structure of the system (like a blueprint)blueprint)

Interface DesignInterface Design – specifying the – specifying the interfaces between parts of the interfaces between parts of the systemsystem

Page 15: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life Cycle Steps in the Software Life Cycle (Design)(Design)

Detailed design – designing the Detailed design – designing the methods or low level objects to be methods or low level objects to be used in the parts. A document is used in the parts. A document is produced at this step.produced at this step.

Page 16: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

ImplementationImplementation – building the – building the software.software.

When a pre-defined portion of the When a pre-defined portion of the software is complete, a software is complete, a milestonemilestone is is reached.reached.

Page 17: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

TestingTesting

Unit TestingUnit Testing – Testing by the – Testing by the original developer (should be done original developer (should be done during and after implementation)during and after implementation)

Integration TestingIntegration Testing – Testing – Testing during the integration of the softwareduring the integration of the software

Page 18: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life Cycle Steps in the Software Life Cycle (Testing)(Testing)

System testingSystem testing – testing the software in an – testing the software in an environment that matches the operational environment that matches the operational environmentenvironment

Alpha testingAlpha testing – testing by the customer – testing by the customer at the developers siteat the developers site

Beta testingBeta testing – testing by the customer at – testing by the customer at the customers sitethe customers site

Page 19: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life Cycle Steps in the Software Life Cycle (Testing)(Testing)

Acceptance testingAcceptance testing – testing to – testing to satisfy the purchasersatisfy the purchaser

Regression testingRegression testing – saving the – saving the tests from the previous version to tests from the previous version to ensure that the new version retains ensure that the new version retains the previous capabilitiesthe previous capabilities

Page 20: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life Cycle Steps in the Software Life Cycle (Testing)(Testing)

When testing is complete, a test report When testing is complete, a test report document is generated. As a result document is generated. As a result of alpha and beta testing, the of alpha and beta testing, the customer generates a defect report.customer generates a defect report.

Page 21: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

DeliveryDelivery – providing the software to – providing the software to the purchaserthe purchaser

InstallationInstallation – making the software – making the software operational at the purchasers siteoperational at the purchasers site

TrainingTraining – teaching the user to use – teaching the user to use the softwarethe software

Help deskHelp desk – answering the users – answering the users questionsquestions

Page 22: Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance

Steps in the Software Life CycleSteps in the Software Life Cycle

MaintainanceMaintainance

Fixing errorsFixing errors

Adding new featuresAdding new features

Removing obsolete featuresRemoving obsolete features