50
CS251 – Software CS251 – Software Engineering Engineering Lecture 21 Lecture 21 Process and Life Cycle Process and Life Cycle

CS251 – Software Engineering Lecture 21 Process and Life Cycle

Embed Size (px)

DESCRIPTION

1/26/20163 Assessment Midterm exam (5%) Project (15% = Bonus) Quizzes (10 + 1%) Lab (5 + 1%) A1 (5%)

Citation preview

Page 1: CS251 – Software Engineering Lecture 21 Process and Life Cycle

CS251 – Software EngineeringCS251 – Software EngineeringLecture 21Lecture 21

Process and Life CycleProcess and Life Cycle

Page 2: CS251 – Software Engineering Lecture 21 Process and Life Cycle

اليوم اليوم حكمة حكمة

األرض 1. في يسيروا أفلمبها يعقلون قلوب لهم فتكون

بها يسمعون آذان أوولكن 2. األبصار تعمى ال فإنها

الصدور في التي القلوب تعمى

Page 3: CS251 – Software Engineering Lecture 21 Process and Life Cycle

05/03/2305/03/23 33

AssessmentAssessment

• Midterm exam (5%)• Project (15% = 5 + 5 + 5 + 1 + Bonus)• Quizzes (10 + 1%)• Lab (5 + 1%)• A1 (5%)

Page 4: CS251 – Software Engineering Lecture 21 Process and Life Cycle

05/03/2305/03/23 44

Lecture OutlineLecture Outline

• SW Lifecycle• SW Process Models

Page 5: CS251 – Software Engineering Lecture 21 Process and Life Cycle

55

Where are we now?Where are we now?

Requirement

Analysis

Design

Implement

Testing

Process Models

Page 6: CS251 – Software Engineering Lecture 21 Process and Life Cycle

66

Where are we now?Where are we now?

Process Models

Page 7: CS251 – Software Engineering Lecture 21 Process and Life Cycle

05/03/2305/03/23 77

Page 8: CS251 – Software Engineering Lecture 21 Process and Life Cycle

1. Software Life Cycle1. Software Life Cycle• Conception• Feasibility Study / Domain Analysis• Requirements’ Gathering• Overall Design• Detailed Design • Development (Coding, Programming)• Testing (Unit, Integration, Acceptance)• Deployment / Training• Maintenance and Evolution

Page 9: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Process of Building a House Process of Building a House

Different Process

Same life cycle

Page 10: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Software Life CycleSoftware Life Cycle• Conception• Feasibility Study / Domain Analysis• Requirements’ Gathering• Overall Design• Detailed Design • Development (Coding, Programming)• Testing (Unit, Integration, Acceptance)• Deployment / Training• Maintenance and Evolution

Page 11: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Important TermsImportant Terms

• Software life-cycle– Phases– Development cycle and evolution cycle

• Software process – Discipline, activities, roles, and artifacts

• Iterations– Milestones

Page 12: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Software Life Cycle Software Life Cycle (As in RUP)(As in RUP)

• Conception• Feasibility Study / Domain Analysis• Requirements’ Gathering• Overall Design• Detailed Design • Development (Coding, Programming)• Testing (Unit, Integration, Acceptance)• Deployment / Training• Maintenance and Evolution

Page 13: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Phases of the Development Phases of the Development Cycle Cycle

T I M E

Transition

Construction

ElaborationInception

Inception - Define the scope of projectElaboration - Plan project, specify features, baseline system Construction - Build the productTransition - Transition the product into end user community

Page 14: CS251 – Software Engineering Lecture 21 Process and Life Cycle

05/03/2305/03/23 1414

Software ProcessSoftware Process• The set of activities and associated results

that produce a software product.• Four fundamental process activities:

– Software Specification– Software Development– Software Validation– Software Evolution

• Can be organized in different ways, described at varying level of details → different software development process models

Page 15: CS251 – Software Engineering Lecture 21 Process and Life Cycle

2. SE Process2. SE Process

• A software process model describes the activities performed to produce a software, the order of these activities, the roles responsible of them and the deliverables produced from each activity.

• The distinction between SDLC and SP is a not clear cut.

Page 16: CS251 – Software Engineering Lecture 21 Process and Life Cycle

1. Waterfall Model1. Waterfall Model• Requirements – defines

needed information, function, behavior, performance and interfaces.

• Design – data structures, software architecture, interface representations, algorithmic details.

• Implementation – source code, database, user documentation, testing.

Page 17: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Waterfall StrengthsWaterfall Strengths

• Easy to understand, easy to use• Provides structure to inexperienced staff• Milestones are well understood• Sets requirements stability• Good for management control (plan, staff, track)• Works well when quality is more important than

cost or schedule

Page 18: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Waterfall DeficienciesWaterfall Deficiencies• All requirements must be known upfront• Deliverables created for each phase are

considered frozen – inhibits flexibility• Can give a false impression of progress• Does not reflect problem-solving nature of

software development – iterations of phases• Integration is one big bang at the end• Little opportunity for customer to preview the

system (until it may be too late)

Page 19: CS251 – Software Engineering Lecture 21 Process and Life Cycle

When to use the Waterfall ModelWhen to use the Waterfall Model

• Requirements are very well known• Product definition is stable• Technology is understood• New version of an existing product• Porting an existing product to a new platform.

Page 20: CS251 – Software Engineering Lecture 21 Process and Life Cycle

2. Incremental SDLC Model2. Incremental SDLC Model• Construct a partial

implementation of a total system

• Then slowly add increased functionality

• The incremental model prioritizes requirements of the system and then implements them in groups.

• Each subsequent release of the system adds function to the previous release, until all designed functionality has been implemented.

Page 21: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Incremental Model Strengths Incremental Model Strengths

• Develop high-risk or major functions first• Each release delivers an operational product • Customer can respond to each build• Uses “divide and conquer” breakdown of tasks• Lowers initial delivery cost • Initial product delivery is faster• Customers get important functionality early• Risk of changing requirements is reduced

Page 22: CS251 – Software Engineering Lecture 21 Process and Life Cycle

05/03/2305/03/23CPSC-4360-01, CPSC-5360-01, CPSC-4360-01, CPSC-5360-01,

Lecture 2Lecture 22222

Incremental ModelIncremental Model

• Each increment is a mini-waterfall.

Page 23: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Incremental Model Weaknesses Incremental Model Weaknesses

• Requires good planning and design• Requires early definition of a complete and

fully functional system to allow for the definition of increments

• Well-defined module interfaces are required (some will be developed long before others)

• Total cost of the complete system is not lower

Page 24: CS251 – Software Engineering Lecture 21 Process and Life Cycle

When to use the Incremental Model When to use the Incremental Model

• Risk, funding, schedule, program complexity, or need for early realization of benefits.

• Most of the requirements are known up-front but are expected to evolve over time

• A need to get basic functionality to the market early

• On projects which have lengthy development schedules

• On a project with new technology

Page 25: CS251 – Software Engineering Lecture 21 Process and Life Cycle

3. Spiral SDLC Model3. Spiral SDLC Model• Adds risk

analysis, and prototyping to the waterfall model

• Each cycle involves the same sequence of steps as the waterfall process model

Page 26: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral QuadrantSpiral QuadrantDetermine objectives, alternatives and constraintsDetermine objectives, alternatives and constraints

• Objectives: functionality, performance, hardware/software interface, critical success factors, etc.

• Alternatives: build, reuse, buy, sub-contract, etc.• Constraints: cost, schedule, interface, etc.

Page 27: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral QuadrantSpiral QuadrantEvaluate alternatives, identify and resolve risks Evaluate alternatives, identify and resolve risks

• Study alternatives relative to objectives and constraints• Identify risks (lack of experience, new technology, tight

schedules, poor process, etc.• Resolve risks (evaluate if money could be lost by

continuing system development

Page 28: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral QuadrantSpiral QuadrantDevelop next-level productDevelop next-level product

• Typical activites:– Create a design– Review design– Develop code– Inspect code– Test product

Page 29: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral QuadrantSpiral QuadrantPlan next phasePlan next phase

• Typical activities– Develop project plan– Develop configuration management plan– Develop a test plan– Develop an installation plan

Page 30: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral Model StrengthsSpiral Model Strengths

• Provides early indication of insurmountable risks, without much cost

• Users see the system early because of rapid prototyping tools

• Critical high-risk functions are developed first• The design does not have to be perfect • Users can be closely tied to all lifecycle steps• Early and frequent feedback from users• Cumulative costs assessed frequently

Page 31: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Spiral Model WeaknessesSpiral Model Weaknesses• Time spent for evaluating risks too large for small or low-

risk projects• Time spent planning, resetting objectives, doing risk

analysis and prototyping may be excessive• The model is complex • Risk assessment expertise is required• Spiral may continue indefinitely• Developers must be reassigned during non-development

phase activities• May be hard to define objective, verifiable milestones that

indicate readiness to proceed through the next iteration

Page 32: CS251 – Software Engineering Lecture 21 Process and Life Cycle

When to use Spiral ModelWhen to use Spiral Model• When creation of a prototype is appropriate• When costs and risk evaluation is important• For medium to high-risk projects• Long-term project commitment unwise because

of potential changes to economic priorities• Users are unsure of their needs• Requirements are complex• New product line • Significant changes are expected (research and

exploration)

Page 33: CS251 – Software Engineering Lecture 21 Process and Life Cycle

4. Agile SDLC’s4. Agile SDLC’s

• Speed up or bypass one or more life cycle phases

• Usually less formal and reduced scope• Reduce documentation • Embed quality activities in the

development process• Used for time-critical applications

Page 34: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Some Agile MethodsSome Agile Methods

• Adaptive Software Development (ASD) • Feature Driven Development (FDD) • Crystal Clear • Dynamic Software Development Method

(DSDM) • Rapid Application Development (RAD)• Scrum • Extreme Programming (XP)

Page 35: CS251 – Software Engineering Lecture 21 Process and Life Cycle
Page 36: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Example SPsExample SPs– Rational Unified Process– Scrum (Will be covered by Amr Samir)

– Remember, a SW Development Process defines: activities (or Tasks), their order, roles and deliverables (or Work Products or artifacts).

Page 37: CS251 – Software Engineering Lecture 21 Process and Life Cycle

1. Rational Unified Process 1. Rational Unified Process (RUP)(RUP)

• RUP is an iterative software development process framework by the Rational Software Corporation, a division of IBM.

• It is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored.

• Organizations and software project teams will select the elements of the process that are appropriate for their needs.

Page 38: CS251 – Software Engineering Lecture 21 Process and Life Cycle

UPEDU Is a version of RUPUPEDU Is a version of RUP

Project ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

PhasesProcess Workflows

Supporting WorkflowsDeployment

Config & Change Mgmt

Requirements

Elaboration TransitionInception Construction

UPEDU

http://www.upedu.org/

Page 39: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Weight of Disciplines in Iteration VariesWeight of Disciplines in Iteration Varies

Project Management

ImplementationTest

Analysis & Design

Life Cycle Phases

Engineering Workflows

Supporting WorkflowsConfiguration & Change Mgmt

Requirements

Elaboration TransitionInception Construction

ITERATION A ITERATION E

Page 40: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Artifacts Evolve in the Develop. Cycle Artifacts Evolve in the Develop. Cycle

Management artifactsRequirements artifactsDesign artifactsImplementation artifacts

MRDI

::::

Inception

R D IM

Construction

R D IM

Transition

R D IM

Elaboration

R D IM

An An iterationiteration is a distinct sequence of activities with an is a distinct sequence of activities with an established plan and evaluation criteria resulting in an established plan and evaluation criteria resulting in an modified artifacts modified artifacts

Page 41: CS251 – Software Engineering Lecture 21 Process and Life Cycle

UPEDU RolesUPEDU Roles

• Analyst• Designer• Implementer• Integrator• Tester• Change Control Manager• Configuration Manager

• Project Manager• Reviewer• Any other Stakeholder

Page 42: CS251 – Software Engineering Lecture 21 Process and Life Cycle

UPEDU UPEDU Implementation Implementation

Discipline: Discipline: ActivitiesActivities

Page 43: CS251 – Software Engineering Lecture 21 Process and Life Cycle

UPEDU Implementation UPEDU Implementation Discipline: ArtifactsDiscipline: Artifacts

Page 44: CS251 – Software Engineering Lecture 21 Process and Life Cycle

UPEDU Implementation UPEDU Implementation Discipline: ActivitiesDiscipline: Activities

Page 45: CS251 – Software Engineering Lecture 21 Process and Life Cycle

2. Scrum2. Scrum

• Watch Amr Samir’s video under Acadox (11 min.)

• Very important and very nice explanation of Scrum.

• Will com in exam

Page 46: CS251 – Software Engineering Lecture 21 Process and Life Cycle
Page 47: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Reviewing Course ObjectivesReviewing Course Objectives11

• Teaching students the disciplined approach to engineering software systems.

• Educating the students about the cost of software failures and the importance of software engineering.

• Training the students on applying engineering practices in software development.

• Introducing learners to the Software Engineering Body of Knowledge.

4747

Page 48: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Course ObjectivesCourse Objectives22

• Training them on the basics of software requirements engineering, modeling, and design, construction and configuration and process management.

• Training the students on system modeling using UML.

• Training students on teamwork.

4848

Page 49: CS251 – Software Engineering Lecture 21 Process and Life Cycle

Course ObjectivesCourse Objectives33

• Coders - Can pretty much figure out it. It'll work, but it won't be pretty.

• Hackers - usually low level folks, skillful, with detailed understanding of some area deeply, often scarily deeply.

• Programmer - Write code and understand algorithms. Often work alone and well.

• Software Engineer - Are the best generalists, can use lots of different systems and languages and get them to talk to each other. Are true and broad professionals, work with people, and communicate well.

4949

Page 50: CS251 – Software Engineering Lecture 21 Process and Life Cycle

How to StudyHow to Study

• Lectures (slides and videos and code)• Readings

• Quizzes + Lecture Practice• Labs + Sections

• Previous exams and questions

5050