[Project description
| Grading Criteria | Milestone
One | Milestone Two ]
[ Milestone Three | Milestone
Four | Milestone Five | Milestone
Six ]
Project
description and milestones
Project groups with 4-5 members will be formed by the instructors, with
the goal of mixing people with distinct background and perspectives. Much
of the value of the project will be what you learn from working with other
group members.
Project description
The purpose behind the project is to gain experience in applying the concepts
of the course to real-life situations. Your project group will choose a
significant application of interest to you. You will then apply your skills
in:
-
Conceptualizing what a networked application can do. Note,
the important point is not to just automate existing processes, but rather
think creatively about how the processes could be reorganized to take maximum
advantage of networked applications. This may mean reorganization of human
organizations, major changes to the customer interfaces, etc.
-
Analysis of the application. What are the important application
requirements -- functional and performance? In the course of doing this,
try to talk to people already engaged in this application (for this reason,
applications on campus are particularly appropriate).
-
Technology supporting the application.
The outcome of the project will be a group-authored Web site that documents
the conclusions of the group and which will be assigned as reading for
all the students.
Grading
criteria [top]
-
How compelling is your application? How much impact will network computing
make on cost, quality, functionality, etc.within the context of the user
group or user organization?
-
How innovative is your organization or reorganization of the application
processes to take maximum advantage of networked computing? Is your application
significantly different from existing commercial applications? Have you
achieved major advantage through the use of networked computing?
-
How well have you determined the requirements of the application?
-
Have you developed a good acquisition approach and technological solution,
such that good cost/performance characteristics will be obtained?
In addition, you should take the following into account in formulating
your project:
-
It is important to consider how you can add value to all participants
in the application. This includes organizations as well as individuals.
This is important to justify the expense of developing an application,
and also expands opportunities.
-
Don't just automate what currently happens, but rethink the processes to
make them much more effective by leveraging networked applications. Again,
think about how to reorganize all aspects of the process, individual and
organizational.
-
Make sure your application is well differentiated from what already exists.
Investigate existing applications that may overlap yours, and make sure
you are different. Avoid applications where there is already significant
commercial activity unless you have good ideas about how to do significantly
better.
-
Be innovative! Use your imagination to come up with new ideas on how the
context of your application can be made better.
Milestone 3 is the capstone of the first three milestones, and 50% of the
project grade will be based on it. (The first two milestones served as
a vehicle to give you direction and guidance.) The weighting of the subsequent
milestones are shown below:
M3
50%
M4
15%
M5
10%
M6
25%
In addition, 30% of the project grade will be based on an assessment
of your group members as to your personal contribution to the group. More
specifically, the following is the formula governing the project grade
assuming each milestone M and your particpation P are all
graded on a scale of 4 (4 = A, 3 = B, 2 = C, 1 = D, 0 = F):
Project grade (range of 0 to 4) = (0.5*M3 + 0.15*M4 +
0.1*M5 + 0.25*M6) * (0.7 + 0.3*P/4)
Milestone
one [top]
Create a homepage for your group. Your homepage should be arranged with
an entry page that contains a title and abstract for the project, a list
of group members, and links to each of the milestones.
Choose the application your group would like to address. We want each
of the project groups to choose different applications, and it is also
important that the application be of a complexity and scale that does not
exceed the intentions of this project. For these reasons, get approval
for your application from the instructor.
For the purposes of approval, the title and abstract will be sufficient
-- the instructors will ask additional questions if necessary.
Here are some examples to illustrate the type of applications you might
choose:
-
Reorganize and automate the student admissions and record keeping process
at UC Berkeley
-
Reorganize and automate food services and campus retail organizations at
UC Berkeley
-
Organize and automate a remote learning operation for UC Extension
-
Organize and automate a remote learning operation for UC campuses to share
classes
-
Organize and automate an outreach program from UC Berkeley to secondary
schools
-
Other ideas welcome, including those not at the University.....
Think carefully about finding an application where networked computing
adds major value, since you will be judged in part on how much impact you
potentially make on users and organizations.
Your submission should include:
-
Subj: Group xx project milestone 1 (only if sent by email -- see below)
-
Your group number.
-
List of students in the group who have participated in the discussions.
-
List of email addresses of students in the group.
-
Concise description of the proposed application. This will be only one
to three paragraphs long, and state what is intended to accomplish and
how you believe this is a compelling application of networked computing.
You can submit milestone 1 one of several ways:
-
(Preferred) Author an html page and post on the class web site under "groups
and projects". In this case send a notification by email that the web page
has been posted.
-
Author an html page and attach to an email message.
-
Send as ascii within an email message.
-
Please do not send attached Word files. (You can author in Word
and save as an html file if you like.)
The purpose of this milestone is to get your group moving in a profitable
direction. In many cases there will be some discussion with the instructor
and resubmissions before the milestone is completed.
Milestone two [top]
On your group homepage, concisely write up the following (this will probably
amount to at most two to three pages):
-
What is the scope of the application? What users and/or organizations will
be served, and what will they be able to accomplish?
-
What general application capabilities discussed in class ought to be applicable
to this application (social, information management, business, etc. --
be specific)?
-
What innovative new capabilities can you include that are not available
to users today?
-
In general, make the case as to why you think the end users or user organization
will derive major benefits from your new application.
Again, there might be some iteration with the instructors to refine your
application ideas. They will give you guidance as to how you might improve
your proposal, and your grade is based on the final outcome.
Milestone
three [top]
In this phase, you will begin an analysis of your application in sufficient
detail that the stakeholders (people who will pay to develop the application
and who will have to use it in their operational setting) can examine and
evaluate your plan and give you feedback. It is a good idea to talk to
people who might actually use the application (if this is possible).
This first stage of analysis is functional requirements. Your analysis
will include:
-
Goals. Describe the general goals of your application. What is the
application context and what do you plan to do for this context? This will
be an expansion and refinement of your second milestone.
-
Impact. If these functional requirements are met, what impact will
your application make on the intended users? You need to sell this application
to them, since they will have to use it and somebody will have to pay for
it. Give your strongest pitch. What are all the specific functions that
your application performs?
-
Scenarios. Give appropriate usage scenarios: What steps will users
follow in making use of your application. Give as many scenarios as necessary
to capture all the main capabilities of your application.
The following criteria will be specifically addressed in the grading:
-
(30%) Impact on cost, productivity, functionality, and quality in the application
domain
-
(20%) Innovation rather than just automation of existing processes
-
(15%) Impact on all individuals and organizations
-
(15%) Originality
-
(10%) Organization and style
-
(10%) Completeness and detail
Milestone
four [top]
Now you will continue your analysis to deal with the performance issues.
Based on the application usage requirements, so that the users derive maximum
value without budgeting more acquisition and deployment costs than necessary,
analyze the following:
-
Performance objectives. What functions of your application are immediate
and what is deferred? What quantitative objectives are required? What performance
attributes are less critical? Justify your conclusions by making an argument
(from a user perspective) as to why these objectives are necessary (since
improving performance parameters will always increase the cost of development
and deployment).
-
Scalability. What is the largest conceivable usage of your application
if it is wildly successful, in terms of number of users, number of operations,
or whatever parameters are relevant? This will give you guidance at the
architectural phase.
Observe that here you are addressing the characteristics of your application
and how it serves users, not the technology supporting the application.
The requirements you identify then affect the design of the technology.
In estimating these performance requirements you will have to make credible
and supportable assumptions about your application: how many users might
you have if you are most successful, what is the activity level of those
users, and how do the details of what users are actually doing affect the
requirements on factors like throughput and interactive delay. For a background
on the issues you should be thinking about, see Section 17.1 and the first
paragraph in Section 17.3 (remembering that this is about the technology,
whereas you are interested in the needs of the users, with the goal of
relating that to the requirements on the technology).
The following criteria will be specifically addressed in the grading
of this milestone:
-
(22%) Realistic and accurate identification of performance attributes relevant
to this application
-
(22%) Quantifiable estimation of how those attributes can be relaxed without
affecting users
-
(22%) Realistic and accurate identification of scalability attributes relevant
to this application
-
(22%) Quantifiable estimation of the scalability requirements of this application
-
(12%) Organization and style
Milestone
five [top]
Address the issue of how your application might be acquired. In particular,
consider the following issues and try to achieve closure on them:
-
Do you think your application is of sufficient interest that sales to multiple
organizations might justify starting a company and developing this application
as a software product? If so, what types of configurability and flexibility
would be required to meet the differing needs of many customers?
-
Assuming your application won't be available as a product, discuss the
merits of outsourced development vs. internal development for your application.
Your conclusions will depend very much on the context of your chosen application:
its capabilities, and also the nature of the organizations that will use
it. Justify your conclusions in the context of both the application you
have chosen and the organizations involved.
The following criteria will be specifically addressed in grading this
milestone:
-
(30%) Accurate and justified conclusion on the product opportunity for
this application
-
(25%) Identification of dimensions of flexibility needed for a software
product
-
(30%) Accurate and justified conclusion on outsourcing vs internal development
-
(15%) Organization and style
Milestone
six [top]
Address some technology issues for your application. In particular:
-
Propose a host architecture (client-server, number of tiers, peer-to-peer,
or whatever) and justify your choice.
-
What communication services would be most advantageous? Can you define
any services that would be very useful in your particular application but
which were not discussed in class or the reader?
-
Consider one instance where an application-level protocol needs
to be defined for your application, and (for the practice) design and document
that protocol. Choose one that will stretch you a bit, not a trivial example.
-
Consider the availability and security issues for your application. What
security capabilities (authentication, confidentiality, integrity, non-repudication,
etc.) do you believe are necessary, and where and how would they be used
in your application? Would you use certificates, and if so who would be
the CA? How would secret keys be managed?
The following criteria will be specifically addressed in grading this milestone:
-
(15%) Choice of a host architecture and justification
-
(20%) Appropriate choice of communcation services and justification
-
(25%) Well-designed application protocol
-
(25%) Appropriate coverage of security issues
-
(15%) Organization and style