Title: Multimedia software life cycle
1Multimedia software life cycle
- What can you infer from this chart?
- 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
Source The Standish Group
2Software 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 - Whats 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?
3A 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 criteriawhy? - A process uses resources, subject to constraints
(e.g., a schedule or a budget)
4A software process requires resources
What is the moral of the story (about project
managers and resources)?
5Classic waterfall life cycle
- Cascades from one stage to the next only after
previous stage is complete - Gravity only allows the waterfall to go down
its very hard to swim upstream
6Why 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.
7Is 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??
8Rapid 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
9Iterative 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
10Multimedia and the life cycle
- Lisa Lopucks timeline Whats different?
- Why brainstorming instead of analysis?
- Why build in prototyping user testing?
- Whats different during development?
- How might e-learning further change the life
cycle? (See Driscolls ADDIE model.) - Another view of e-learning milestones
11Quiz!
- 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?
12Analysis (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
13Example use case(from Fowler and Scott, UML
Distilled)
- Use Case Buy a Product (A behavior that
accomplishes a user goal) - Actors Customer, System
- Customer browsers through catalog and selects
items to buy - Customer goes to check out
- Customer fills in shipping information (address
next-day or 3-day) - System presents full pricing information,
including shipping - Customer fills in credit card information
- System authorizes purchase
- System confirms sale immediately
- 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
14- 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)
15Design
- Whats 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 interfacewhy a paper prototype?
16Implementation
- 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
17Delivery 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
18Relative costs to fix errorsWhat can you infer
from this graph?
Cost
Design
Testing
Maintenance
Requirements
Implementation
Cost to fix an error increases as it is found
later and later in the software lifecycle
19What 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?