CS 501: Software Engineering Feasibility Studies CS 501 Spring 2002 Lecture 3

advertisement
CS 501: Software Engineering
Lecture 3
Feasibility Studies
1
CS 501 Spring 2002
Administration
News group:
nntp://newsstand.cit.cornell.edu/cornell.class.cs501
Wednesday evening section this week:
Project team formation and discussions
Today:
Announcements
Lecture on Feasibility Studies
Discussion of Pfleeger, Chapter 2
2
CS 501 Spring 2002
Administration
Project teams:
3
•
If you have definitely chosen a project, please notify
the Teaching Assistants with the names of your team
members
•
If you do not have a team you can meet after class
•
Wednesday's recitations session will be to help the
people who do not have projects form teams
•
We may ask teams to add extra members
•
A Teaching Assistant will be added to each team.
CS 501 Spring 2002
Feasibility Study
Before beginning a project, a (usually) short, low-cost study
to identify:
•
Client
•
Scope
•
Potential benefits
•
Resources needed:
staff, time, equipment, etc.
•
Potential obstacles
Where are the risks? How can they be minimized?
4
CS 501 Spring 2002
Feasibility Study
A feasibility study leads to a decision:
go ahead
do not go ahead
think again
In production projects, the feasibility study
often leads to a budget request.
In research, a feasibility study is often in the
form of a proposal.
5
CS 501 Spring 2002
Example: Library of Congress
(Poor Process)
Outline Description
The Library of Congress required a repository system
to store and make accessible very large amounts of
highly varied material over long periods of time.
6
CS 501 Spring 2002
Chronology (Bad)
1993-94 CNRI carried out research on architectures for digital
libraries.
1995-97 CNRI developed prototype repository for Library of
Congress.
1998
7
CNRI and Library of Congress realized that the project
was going in the wrong direction.
CS 501 Spring 2002
Bad Discoveries During Prototype
• Resistance to change within Library of Congress
• Technical weakness of Library of Congress
• Gaps in CNRI architecture
8
CS 501 Spring 2002
Mistakes
•
Confusion of objectives (research and implementation)
• Failure to involve all stakeholders
•
9
Over-ambitious (no proper feasibility study)
CS 501 Spring 2002
Repository: Research During Prototype
1. CORBA implementation of repository access protocol.
2. Integration of persistent naming through handle system.
3. Use of structural metadata to describe complex objects,
elementary typology.
4. Access management framework and implementation.
5. Applet-based middleware for user interfaces.
6. Information visualization program to view the structure of
large collections.
10
As research this was excellent, but it did not help the client build
a production system.
CS 501 Spring 2002
Example: NSDL (Long Process)
1996 Vision articulated by NSF's Division of
Undergraduate Education
1997 National Research Council workshop
1998 SMETE-Lib workshop
1999 NSDL solicitation
2000 6 demonstration projects (core system)
2001 1 large core integration system funded
11
CS 501 Spring 2002
Why are Feasibility Studies Difficult?
Benefits are usually very hard to quantify.
Approach is usually ill-defined. Estimates of resources needed
and timetable are very rough.
(e.g., eCornell)
Organizational changes may be needed.
(e.g., British auto licensing center.)
Therefore, feasibility studies rely heavily on the judgment of
experienced people.
Mistakes made at the beginning are the most difficult to correct.
12
CS 501 Spring 2002
Techniques for Feasibility Studies
Give client appreciation of system:
demonstration
mock-up
walk through
Outline budget:
n people for m months at $x per month
equipment, buildings, etc.
Phases/milestones:
deliverables at approximate date
13
CS 501 Spring 2002
CS 501: Client
In CS 501, you have two clients:
• The client for the project
• The professor for the course
Can you satisfy them both?
14
CS 501 Spring 2002
Scope
What are the boundaries of the project?
CS 501 Examples (Fall 2000):
• Static web pages with open access on the Web [Web Profiler]
• Used by the general public [Digital Collections]
• Varying data formats [Legal Information]
• Thousands of sensors [Data mining]
• Support for Windows, Mac, Unix [SALSA]
15
CS 501 Spring 2002
Potential Benefits
Why are you doing this project? Can you price the benefits?
Examples
• Create a marketable product
•
•
•
•
Improve the efficiency of an organization (e.g., save staff)
Control a system that is too complex to control manually
New or improved service (e.g., faster response to customers)
Safety or security
• Get a good grade on CS 501
16
CS 501 Spring 2002
Resources
Examples: CS 501
Staff: 5 to 7 students, with some help. How many hours per week?
What skills do people have?
Time: Must be completed by end of semester, including
operational system, documentation, presentation
Equipment and software: What special needs are there?
Client: Will the client be sufficiently available and helpful?
17
CS 501 Spring 2002
Obstacles
CS 501 projects
Start-up time. Creating a team, scheduling meetings, acquiring
software, learning new systems, ...
Business considerations. Licenses, trade-secrets, ...
Too ambitious. Nothing to show at the end of the semester...
Changing circumstances. Client leaves the university, ...
What else?
18
CS 501 Spring 2002
How to Minimize Risk?
CS 501 Projects
• Several target levels of functionality:
required, desirable, optional phases
• Visible software process: intermediate deliverables
• Good communication within team and with
Teaching Assistant
Good processes lead to good software
Good processes reduce risk
19
CS 501 Spring 2002
Feasibility Report
A written document
• For a general audience: client, financial management,
technical management, etc.
• Short enough that everybody reads it.
• Long enough that no important topics are skipped.
In CS 501, I am looking for a well written, well presented
document.
20
CS 501 Spring 2002
Discussion of Pfleeger, Chapter 2
Format:
State a question.
Ask a member of the class to answer.
(Sorry if I pronounce your name wrongly.)
Provide opportunity for others to comment.
When answering:
Stand up.
Give your name or NetID. Make sure the TA hears it.
Speak clearly so that all the class can hear.
21
CS 501 Spring 2002
Question 1: Steps in the Waterfall
Process
1. Give a short description of the Piccadilly television advertising
project.
2. This project is likely to have some sort of database. Give an
example of a requirement that is part of the decision making
to use a database.
3. At what stage in the waterfall process, would the decision be
made to use a relational database?
4. At what stage in the waterfall process, would the decision be
made to use an Oracle database?
22
5. At what stage in the waterfall process would the database
schema be specified?
CS 501 Spring 2002
The Waterfall Model
Requirements Analysis
System design
Program design
Coding
Unit & Integration Testing
System Testing
Acceptance Testing
Operation & Maintenance
23
CS 501 Spring 2002
Question 2: Risk
Suppose that a major requirement is changed during the
development of a software system.
1. How is this accommodated in the iterative refinement model?
2. How is this accommodated in the waterfall model?
24
CS 501 Spring 2002
Question 3: Acceptance Testing
1. What is the purpose of Acceptance Testing?
2. Where does Acceptance Testing occur in:
the waterfall model?
iterative refinement?
the V model of development?
3. What impact do these differences have on the project risk?
25
CS 501 Spring 2002
Question 4: Prototype and Phased
Development
1. How does a prototype differ from phased development?
2. Explain the following figure:
Developers
Users
26
Build
release 1
Use
release 1
Build
release 2
Use
release 2
Build
release 3
Use
release 3
CS 501 Spring 2002
Download