Вы находитесь на странице: 1из 7

CS3215: Software Engineering Project

CS3215, LN set #3: SDLC for the project SDLC: Software Development Lifecycle p j p g g SDLC is a framework for project planning and executing
who is doing what, when and how? for managers: to tell how things should be done, define project tasks for developers: to follow the plan, provide feedback to managers

SDLC addresses people, product, process, technology


organization of the project team, communication channels project phases, activities, milestones software system architecture methods and tools to be used

SDLC helps us manage project complexities


1

CS3215 Set#3 SDLC

How can SDLC help?


Benefit from 50 years of project experiences
learn from project management experiences that work learn from development strategies avoid common mistakes

Standardize routine tasks


use creativity to solve novel problems rather than to reinvent the wheel

Reduce risk of failure, increase project predictability


25% of large projects fails 20% implemented on time but 70% experience 100% cost overruns 50% of projects run over planned schedule and budget

Types of SDLC:
waterfall, spiral, incremental, RAD (rapid application development)
CS3215 Set#3 SDLC

Waterfall SDLC with feedback loops


system engineering software requirements analysis user needs business analysis

design specification coding

changed user needs

testing

maintenance

P bl Problems with th waterfall SDLC ith the t f ll SDLC:


fuzzy and changing requirements late detection of errors easy to say, difficult to do high risk, high failure rate
3

CS3215 Set#3 SDLC

Iterative, incremental SDLC


mini-system S1 mini-system S2 complete product

requirements:

R1

R2

R2

design:

D1

D2

D2

code:

C1 iteration 1

C2 iteration 2

C2 iteration n

time

System is developed in pieces rather than in one big-bang Project is divided into mini-projects (iterations) Each iterations delivers fully tested and integrated mini-system, implementing a subset of the complete product
CS3215 Set#3 SDLC

Why the incremental SDLC works better?


You can gradually learn about the problem and program solution
you can better deal with complex problems - decomposition you can identify major problems early and work on them in each iteration you check if all basic project elements are in sync

Early validation of requirements Early validation of design decisions Incremental development encourages design for change Incremental SDLC effectively reduces project risks related to:
requirements, technical issues, personnel and politics.
CS3215 Set#3 SDLC

Phases in incremental SDLC


You must perceive a problem as a whole before you can plan development iterations
Architectural design 1 Incremental development 2 3 4 ...

Analysis

Transition

Analysis: understand the problem, scope the project Architectural design: create a blueprint for a system g p y Incremental development through iterations Transition:
beta-testing, performance tuning, user training, packaging the product

CS3215 Set#3 SDLC

An SDLC for SPA project


First, we must understand the problem and solution Analysis: understand the problem
play with models on paper draw AST and CFG for sample programs compute other design abstractions to be derived from sources write program queries and evaluate queries by hand

Architectural design: understand the solution


id if major SPA components and their interactions identify j d h i i i sketch design abstractions in PKB as ADTs:
model associations among ADTs define interface operations

look into a strategy for evaluating program queries


CS3215 Set#3 SDLC

A sketch of the SPA architecture


SPA consists of four subsystems: SPA front-end query processing PKB user interface
SPA front-end
program entry user interface query result viewing user interface query result formattedz query entry user interface

query result projector parser design extractor query result raw format AST AST

query in PQL

design abstractions design abstractions

query evaluator

query tree

query pre-processor

CS3215 Set#3 SDLC

Program Knowledge Base PKB

tables describing program design model of SIMPLE: design entities, attributes, relationships

Team structure
Group-PKB
design of the SPA front-end to parse a SIMPLE program and build an AST design of the algorithms to derive procedure call, control flow and other program design information, as described in the program design model design of the data structures to store the program design abstractions in the PKB

Group-PQL
validating a query design a query evaluation mechanism

Both groups:
design the PKB API design algorithms to compute program design abstractions on demand, such as Calls*, Next*, Affects and Affects*.
CS3215 Set#3 SDLC

Strategy 1: Depth-first iterations


take one function at a time develop solution for that problem in a given iteration
f u n c t i o n 1 1 2 f u n c t i o n 2 f u n c t i o n 3 3 f u n c t i o n 4 4 release of the product

CS3215 Set#3 SDLC

10

Example
1. develop a parser for SIMPLE 2. implement ADT for AST, CFG, etc. 3. generate an AST 4. generate CFG 5. 5 develop parser for program queries 6. develop query evaluator

CS3215 Set#3 SDLC

11

Strategy 2: Breadth-first iterations


in a given iteration, work on a set of related functions, but in a simplified form select iterations so that the whole team works closely together
re le a se o f th e p ro d u ct

4 f u n c t i o n 1 1 f u n c t i o n 2 f u n c t i o n 3 f u n c t i o n 4

ite ra tio n s
CS3215 Set#3 SDLC

12

Example
First iteration: select a small subset of SIMPLE and PQL
Group-PKB: p develop a parser for that subset generate simplified AST, CFG Group-PQL: work on queries in a fixed, simple format only consider queries that mostly require program design information computed by Group-PKB

Subsequent iteration: 2. extend the subset of SIMPLE 3. refine PKB API 4. develop query evaluator for more query formats
CS3215 Set#3 SDLC

13

Which strategy is better for the SPA project?


Evaluate strategies, plan and justify the choice of your development strategy in assignment #2

--- The end ---

CS3215 Set#3 SDLC

14

Вам также может понравиться