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 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)
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
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