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

Multimedia software life

cycle
 What can you infer from this chart?
60

50

40

30

20 Source:
10 The Standish Group
0

Cost overrun Successful Cancelled


 Many real world projects have cost overruns or
fail
 Software engineers need to learn how to build
systems that are on time and within budget
 Think about your estimates per e-learning unit
Software engineering
defined
 Software engineering is “multi-person construction
of multi-version software”
 What is the relationship between the size of
a program & the time it takes to develop it?
 Real world software projects involve
teams of developers
 What’s the relationship between program size and
the number of people involved?
 Is it linear (N developers == N time speedup)?
 Or is it exponential (N developers = NN speedup)?
 How does multimedia affect the life cycle?
A software life cycle is a
process
 A process is organized in some order or sequence,
structuring activities as a whole
 A process involves activities, constraints and
resources that produce an intended output.
 Each process activity, e.g., design,
must have entry and exit criteria—why?
 A process uses resources, subject to constraints
(e.g., a schedule or a budget)
A software process requires
resources…

What is the moral of the story


(about project managers and resources)?
Classic waterfall life cycle
 Cascades from one stage to the
next only after previous stage is
complete
 Gravity only allows the waterfall to
go down; it’s very hard to swim
upstream
Why would corporate manager
types like the waterfall life cycle
model?
 Minimizes change, maximizes predictability

 Costs and risks are more predictable


 Each stage has milestones and deliverables:
project managers can use to gauge how close
project is to completion
 Sets up division of labor: many software shops
associate different people with different stages:
 Systems analyst does analysis,
 Architect does design,
 Programmers code,
 Testers validate, etc.
Is the waterfall model
realistic?
 Is this diagram a more realistic picture?
 Is this wild view of the process a good idea?
 Reality check: software requirements change so
embrace change during the process
 Realistic models allow for cycles
 How do embrace change, yet hold down costs,
increase likelihood of project success,
and keep our project managers happy??
Rapid prototyping model
 A prototype is a partially developed product that enables
customers and developers to examine some aspect of a
proposed system and decide if it is suitable for a finished
product.
 For the CIMEL project, we developed a prototype UI
 Potential users and domain experts reviewed the prototype
 Review panel summarized findings and made recommendations
 We then developed an alpha version of the interface
 Allow time for prototypes and improved versions
 Multimedia authoring tools facilitate prototyping
Iterative and incremental

process
Incremental development of functionality
 Early release starts with small, functional subsystem
 Later releases add additional functionality
 Iterative development of overall system in each release
 Delivers a full system in the first release, then changes the
functionality of each subsystem with each new release
 Suppose a customer wants to a word processing package
 Incremental approach: provide just Creation functions in Release 1,
then both Creation and Organization in Release 2,
finally add Formatting in Release 3, …
 Iterative approach: provide primitive forms of all three functions in
Release 1, then enhance (making them faster, improving the
interface, etc.) in subsequent releases
 Many organizations combine iterative & incremental
Multimedia and the life
cycle
 Lisa Lopuck’s timeline: What’s different?
 Why brainstorming instead of analysis?
 Why build in prototyping & user testing?
 What’s different during development?
 How might e-learning further change the life cycle? (See
Driscoll’s ADDIE model.)
 Another view of e-learning milestones
Quiz!

● What are drawbacks of Waterfall Model?


● Can prototypes alleviate these drawbacks?
Why or why not?
● Why do many software development shops prefer
iterative & incremental models?
● How does multimedia affect the process?
● Does this discussion motivate you avoid
just hacking? Why or why not?
Analysis
(needs/requirements)
 Lopuck calls this stage “brainstorming”:
who, what, why, where, when & how?
 Audience analysis: Who is it for?
 Needs analysis: Why develop it?
 Content analysis: What will it cover?
 Resource analysis: How and how much?
 Estimate: When will it get done?
 Where: platform, marketing and distribution?
 Use cases can help understand requirements
Example use case
(from Fowler and Scott, UML Distilled)

Use Case: Buy a Product (A behavior that accomplishes a user goal)


Actors: Customer, System
1. Customer browsers through catalog and selects items to buy
2. Customer goes to check out
3. Customer fills in shipping information (address; next-day or 3-day)
4. System presents full pricing information, including shipping
5. Customer fills in credit card information
6. System authorizes purchase
7. System confirms sale immediately
8. System sends confirming email to customer
Alternative: Authorization Failure (At what step might this happen?)
6a. At step 6, system fails to authorize credit purchase
Allow customer to re-enter credit card information and re-try
Alternative: Regular customer (At what step might this happen?)
3a. System displays current shipping information, pricing information,
and last four digits of credit card information
3b. Customer may accept or override these defaults
Return to primary scenario at step 6
Each user function (button or menu choice) can be modeled by a use case
So, how will you do
requirements analysis
for your multimedia e-learning project?

By Monday, February 2:
email me a tentative project title, subject matter expert
(someone with experience teaching the material),
team members and their tentative roles, preliminary
answers to who, what, why, when, how questions

By Monday, February 9:
1. Refine answers to who, what, why, when, how questions
2. Write a high-level requirements specification
3. Write 1 or 2 uses cases describing sample behavior
(flesh out more use cases for UI design in next iteration)
Design
 What’s the difference between analysis and design?
 Storyboards: design content as sequence of scenes or screens
 Scripts: design content in textual form
 Flowcharts: show navigational structure
 Why design in detail before programming?
 User interface—why a paper prototype?
Implementation
 How is multimedia development different
from systems programming?
 Why is prototyping a good idea?
 Programming uses authoring tools
 Media development involves special tools
for graphics, sound, video, etc.
 User testing, user observations and focus
groups
Delivery and maintenance

 CD-ROM/DVD/memory stick versus


Web delivery?
 Corrective: fixing errors after delivery
 Adaptive: new environments
 Perfective: improving behavior or
performance
 Preventive: improving maintainability
Relative costs to fix errors:
What can you infer from this
graph?
80

70
60

50 Cost
40
30

20
10

0
Design

Implementation

Testing

Maintenance
Requirements

Cost to fix an error increases as it is found later and later


in the software lifecycle
What is your ultimate
goal?
 Why should you plan for maintenance?
 Would you like to see your project used?
 How do you plan and develop for
maintenance?
 Do the analysis and design right
 85% of the cost of real world bugs occur during
analysis/design
 Why document as you go (not after-the-fact)?
 Use cases, scripts, well-commented code, delivery
manual (with use cases as a starting point)
 Why put your document on a web site?

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