modeling the process and life cycle csci 411 advanced database and project management monday,...

20
Modeling the Modeling the Process Process and Life Cycle and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015

Upload: amara-faro

Post on 15-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Modeling the Process Modeling the Process and Life Cycleand Life Cycle

CSCI 411 Advanced Database and Project ManagementMonday, February 2, 2015

Meaning of ProcessMeaning of ProcessWhen providing a service, creating a

product, whether it be developing software, writing a report, or taking a business trip, you usually follow a sequence of steps.

The tasks are performed in the same order each time (e.g., you don’t bake the cake until you mix together the ingredients).

This set of ordered tasks is called a process.

Typical Process Typical Process CharacteristicsCharacteristicsMajor process activitiesResources, subject to a set of

constraints (such as a schedule)Intermediate, and final resultsMay be composed of subprocessesProcess activities have entry and exit

criteriaActivities are organized in a sequenceEvery process has a set of guiding

principles that explain the goals of each activity

Life CycleLife CycleWhen the process involves the

building of some product, we sometimes refer to the process as a life cycle

The software development process is sometimes called the software life cycle because it describes the life of a software product from its conception to its implementation, delivery, use, and maintenance

Software Development Software Development StagesStagesRequirements analysis and

definitionSystem designProgram designWriting the programs (program

implementation)Unit testingIntegration testingSystem testingSystem deliveryMaintenance

Software Process ModelsSoftware Process ModelsProcess models for software

engineering:◦Some are prescriptions for the way

software development should progress

◦Some are descriptions of the way software development is done in actuality

In theory, the two models should be the same…

Why Model a Process?Why Model a Process?When a group writes down a description of

its development process, it forms a common understanding of the activities, resources, and constraints involved in software development

Helps the team find inconsistencies, redundancies, and omissions in the process

The model should reflect developmental goals, such as building high-quality software, finding faults early in development, and meeting required budget and schedule constraints

Every process is tailored for a special situation in which it will be used. Building a process model helps the team understand where the tailoring is to occur

The waterfall modelThe waterfall model

The waterfall modelThe waterfall modelDescribed by Royce (1970)Basis for software development deliverables

in U.S. Department of Defense contracts for many years

Strength of model is simplicity and the explicit stages of development

Problems:◦Does not reflect how code is really

developed (software is usually written through multiple iterations)

◦Software is more of a creation process, not a manufacturing process (more back-and-forth activities occur)

The software The software development process in development process in realityreality

Improving the waterfall Improving the waterfall modelmodel

Prototype: a partially developed product that enables customers and developers to examine some aspect of the proposed system and decide if it is suitable or appropriate for the finished product

Validation: ensures that the system has implemented all of the requirements, so that each system function can be traced back to a particular requirement in the specification

Verification: ensures that each function works correctly

Waterfall model with Waterfall model with prototypingprototyping

The V modelThe V model

Unit and integration testing ensures all aspects of program design have been implemented correctly in the code

System testing verifies the system designAcceptance testing is done by the customer

The prototyping modelThe prototyping model

Overall goals: Reducing the risk and uncertainty in development

The operational specification The operational specification modelmodel

Allows developers and customers to examine the requirements and their implications early in the process, where they can discuss and resolve some of the uncertainty

The transformational The transformational modelmodel

Tries to reduce the opportunity for error by eliminating several major development steps

Using automated support, a series of transformations (changing the data representation, selecting algorithms, optimizing, compiling, etc.) are applied to change a specification into a deliverable system

The phased-development The phased-development modelmodel

Cycle time: the time from when the requirements documents were written to when the system was delivered

One way to reduce cycle time is to deliver the system in pieces

The incremental and iterative The incremental and iterative modelsmodels

Incremental – system begins with one small, functional subsystem. New functionality is added with each release

Iterative – full system delivered initially, but the functionality of each subsystem changes with new releases

The spiral modelThe spiral model

Developed by Boehm (1988)Combine development activities with risk

management to minimize and control risk

Agile methodsAgile methodsSee homework…..