initial import oc readyset markdown

This commit is contained in:
Charles N Wyble - admin 2021-04-26 13:55:22 -05:00
parent 76c6efe4c5
commit 64c83eac02
53 changed files with 9212 additions and 0 deletions

View File

@ -0,0 +1,5 @@
{
"markdownlint.config": {
"MD026": { "punctuation": "?" }
}
}

View File

@ -0,0 +1,180 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Project proposal](Proposal) > [Target audience and benefits](Target-and-Benefits)
- [SRS](SRS) > [Use case suite](Use-Case-Suite)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Demo Planning
*TODO: Think through your goals for this demo.*
#### Who is the target audience for this demo?
- ::Investors and potential investors
- ::Potential customers
- ::Management, other developers, or partners
- ::End users as part of training
#### What is your main goal for this demo?
- ::To convince the audience to make a decision and take action. E.g., a
sales call.
- ::To inform the audience about the product and prompt
further discussions. E.g., showing another team where their product
would have to integrate with yours.
- ::To provide evidence of progress. E.g., showing your boss that you
are done with the UI.
#### What main points will you use to achieve your goal?
- ::This product automates much of the user's task, thus increasing
productivity and cutting costs.
- ::This product is very easy to use, which will encourage
rapid adoption.
- ::This product supports use cases that are key to the customer's
overall business process or that enable new
business opportunities.
- ::We have built only 4 of 10 screens, but the remaining screens
are much easier to build.
- ::We have build 7 out of 10 features, and it turns out that one of
the remaining features cannot possibly work like the others.
#### How much time is available to present the demo?
- ::10 minutes, no questions
- ::10 minutes, plus questions
- ::30 minutes, including questions
#### What equipment and setup is needed to give the demo?
- ::One person. Any computer with a web browser.
- ::One person. Any computer where we can install from CD or
the Internet.
- ::Two people. Two high-powered laptops with specific software and data
pre-installed, a wireless networking base station, and a hand-held
with a wireless networking card.
### Demo Script
*TODO: Outline the steps of the demo. Plan out what you will do and say.
Practice three times to make sure that all system features actually work
as needed, and that there is enough time.*
*TIP: Imagine that you are in the audience. Do you understand what is
being shown at each step? Is the demo too fast? Too slow? Too long? Are
you interested? What are your questions or concerns? Do you strongly
disagree with any points?*
#### ::Beginning
- ::SET EXPECTATIONS
- ::SET THE STAGE
- ::KEY POINT
- ::DEMO STEP
- ::DEMO STEP
#### ::Middle
- ::KEY POINT
- ::DEMO STEP
- ::DEMO STEP
- ::KEY POINT
- ::DEMO STEP
- ::DEMO STEP
- ::KEY POINT (if there is time)
- ::DEMO STEP
- ::DEMO STEP
#### ::Ending
- ::FINAL POINT
- ::DEMO STEP
- ::DEMO STEP
- ::CONCLUSION OR SUMMARY
- ::CALL-TO-ACTION OR NEXT-STEPS
### Anticipated Questions
*TODO: Write down a few common questions that you expect to be asked, and
good answers.*
*TIP: You can leave some less critical points out of the demo and only
use them if someone asks a question.*
#### ::How does this compare to OTHER-PRODUCT?
::ANSWER
#### ::What happens if you do X or Y?
::It would do Z.
#### ::When will your product be ready?
- ::We have announced a release date of July 17th.
- ::We are planning a release this Winter, but no specific date has
been set.
- ::We have not announced a release date yet.
### Demo Checklist
*TODO: Use the following questions to help you evaluate your demo.*
#### Are you making the right points in the right order?
::Yes, we feel that we will accomplish our goals.
::No, we need to better prioritize our points.
#### Can it be presented in the available time?
::Yes, we could even add more or finish early.
::Yes, we have optional sections that can be skipped to save time
if needed.
::No, we need to make the same points more quickly or make
fewer points.
::No, we need to change the available time.
#### Do all system features actually work as needed?
::Yes, everything is finished and working.
::Yes, there are defects, but they will not matter for this demo.
::Don't know, we need to plan alternative demo steps just in case
something fails.
::No, we need to quickly fix the system and/or change the demo to make
our points without exposing defects.
#### Does the demo end effectively?
::Yes, viewers will be satisfied and convinced.
::No, we need to make sure the demo stops at the natural end of a
small but complete story, and that audience members understand our
key points.
#### Does the demo raise questions that it does not answer?
::No, the demo is very complete.
::Yes, but we anticipate those questions and can handle them in the
Q&A period.
::Yes, the goal of this demo is to raise questions and issues that we
will then work to resolve.

View File

@ -0,0 +1,196 @@
##### Project
::PROJECT-NAME(Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > Design Architecture
- [Software Requirements Specification](SRS)
- [Glossary](Glossary)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
*TODO: Answer the questions below to help you define your system
architecture. Some example text is provided.*
### Overview
#### What are the most important facts that a developer should know about this system architecture?
::PARAGRAPH OR BULLETS
#### What software architecture style is being used?
- ::Single-process desktop application (with plug-in extension modules).
- ::Client-server with a custom thick-clients and server.
- ::2-tier web application: webserver/app-server, database.
- ::3-tier web application: webserver, app-server, database.
- ::Single web service: app-server, database.
- ::Network of web services.
- ::Peer-to-peer with/without central server.
- ::Pipe-and-filter.
- ::Computing grid / distributed servers.
#### What are the ranked goals of this architecture?
1. ::[Ease of integration](Glossary-Standard-Terms#ease_of_integration)
2. ::[Extensibility](Glossary-Standard-Terms#extensibility)
3. ::[Capacity matching](Glossary-Standard-Terms#capacity_matching)
### Components
#### What are the components of this system?
::The components of this system are clearly defined in this [UML Model
with Component Diagram](LINK-TO-MODEL).
::The components of this system are listed below by type:
- ::Presentation/UI Components
- ::[C-00: COMPONENT-NAME](Design-Components#c-00)
- ::Application Logic Components
- ::[C-10: COMPONENT-NAME](Design-Components#c-10)
- ::Data Storage Components
- ::[C-20: COMPONENT-NAME](Design-Components#c-20)
### Deployment
#### How will the components be deployed to processes and machines?
::The deployment of components to processes and machines is clearly
defined in this [UML Model with Deployment Diagram](LINK-TO-MODEL).
::The deployment of components to processes and machines is clearly
defined below:
- ::All-in-one server
- ::Tomcat process
- ::[C-00: Tomcat web server](Design-Components#c-00)
- ::[C-10: PROJECT-NAME
application](Design-Components#c-10)
- ::Database process
- ::[C-20: COMPONENT-NAME](Design-Components#c-30)
::The deployment of components to processes and machines is clearly
defined below:
- ::Load-balanced front-end servers
- ::[C-01: COMPONENT-NAME](Design-Components#c-00)
- ::Back-end server
- ::JVM process
- ::[C-00: COMPONENT-NAME](Design-Components#c-00)
- ::[C-10: COMPONENT-NAME](Design-Components#c-10)
- ::[C-11: PLUG-IN COMPONENT-NAME](Design-Components#c-11)
- ::[C-12: PLUG-IN COMPONENT-NAME](Design-Components#c-12)
- Database process
- ::[C-20: COMPONENT-NAME](Design-Components#c-30)
#### What aspects/resources of their environment are shared?
::Everything is on one server so all machine resources are shared by
all components.
::All machines share the same bandwidth to the Internet. All machines
access the same file server. So, if one component uses the resources
heavily, other components may have to wait.
#### How are requests allocated to redundant or load-balanced servers?
::We are not doing any load-balancing or redundancy for fail-over.
::Load-balancing among front-end servers is handled by a load
balancing device that we can make very few assumptions about.
However, once a user session is established, the same front-end
server will be used for all requests during that session.
#### What alternative deployment configurations are possible?
::This is the only possible deployment.
::The database could be moved to a different machine with a fairly
simple change to a configuration file. Otherwise, nothing can be
changed about the deployment.
::We have the ability to move the database process to a
separate machine. We have the ability to add more front-end servers.
The application logic running on the application server cannot be
split or load-balanced.
### Integration
#### How will components be integrated? Specifically, how will they communicate?
::All of our code uses direct procedure calls. The database is
accessed through a driver.
::Components within the same process use direct procedure call or
standard Java events. Plug-ins are also accessed through a API of
direct procedure calls and standard events. Communication with the
database uses a JDBC driver. Communication between the front end-and
back-end servers uses XML-RPC.
#### What architectural mechanisms are being used to ease future extensions or modifications?
::We could change the database by switching drivers. Otherwise,
extensions and modifications can only be done at the design level.
::New front-end components could be added so long as they access the
back-end the same way. New plug-in components can be dynamically
loaded, so long as they satisfy the plug-in API. Otherwise, there is
no ability to add or exchange components, because this architecture
uses direct dependencies between its components rather than
implicit invocation. Extensions and modifications can be made at the
design-level, but deploying those changes requires recompilation
and down-time.
### Architectural Scenarios
*TODO: Provide architecture scenarios that show how objects will
communicate across components, processes, and machines. Focus on
scenarios where the architecture itself is changing, e.g., system
startup, shutdown, adding or upgrading components, load balancing or
fail-over.*
The following sequence diagrams give step-by-step descriptions of how
components communicate during some important usage scenarios:
- ::[System startup](LINK-TO-DIAGRAM)
- ::[System shutdown](LINK-TO-DIAGRAM)
- ::[SCENARIO NAME](LINK-TO-DIAGRAM)
### Architecture Checklist
*TODO: Evaluate your architecture with respect to each of your goals.*
#### Ease of integration: Have mechanisms been provided for all needed types of integration?
::Yes. In this system, all of the new components are designed to
work together. And, the reused components are integrated via fairly
simple interfaces.
#### Extensibility: What types of components can be added later and how?
::See above.
#### Capacity matching: How has this architecture matched component resource needs to machines?
::The database can be on a machine with RAID disks and a hot-swappable
power supply, while the web front-end components can be on cheaper
machines that could fail individually without causing
system downtime. The front-end web servers and application server
are both CPU-intensive, so they are deployed to different CPUs. The
database is disk-intensive, so it can be deployed to the same
machine as the CPU-intensive application server, with only moderate
competition for resources.
#### Has the architecture been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the [Risk Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,127 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > [Architecture](Design-Architecture) > Design Components
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
*TODO: Briefly describe each component in the system. Focus on
architectural issues such as communication mechanisms, environmental
concerns that affect deployment options, and concurrency. Note key
aspects of each interface, but avoid duplicating details of interfaces
that are specified in the UML class diagrams or other documents.*
Each interface can be an API (application program interface), standard
protocol (e.g., HTTP), config files, input data file format, or
interactive user interface (e.g., command-line or GUI). One component
may have multiple interfaces: e.g., a server may handle requests in a
standard protocol, but also have a config file, command-line options, an
administrative control panel GUI, and a performance monitoring API.
*TIP: Use an HTML anchor for each component so that a direct link can be
made from other documents, issues, and email messages.*
---
### C-00: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES
---
### C-01: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES
---
### C-10: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES
---
### C-11: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES
---
### C-12: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES
---
### C-20: COMPONENT NAME
**Description:**
::DESCRIPTION
**Environmental Constraints:**
::REQUIRED OPERATING SYSTEM, RAM, ETC.
**Available Interfaces:**
::BRIEFLY DESCRIBE INTERFACES

View File

@ -0,0 +1,191 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > Design Persistence
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Overview
*TODO: Answer the questions below to help you design needed persistence
features. Some example text is provided. Add or delete text as needed.*
#### What are the most important facts that a developer should know about persistent data storage in this system?
::PARAGRAPH OR BULLETS
#### What are the ranked goals for persistence in this system?
1. ::[Expressiveness](Glossary-Standard-Terms#dg_expressiveness)
2. ::[Ease of access](Glossary-Standard-Terms#dg_easy_access)
3. ::[Reliability](Glossary-Standard-Terms#dg_data_reliability)
4. ::[Data capacity](Glossary-Standard-Terms#dg_data_capacity)
5. ::[Data security](Glossary-Standard-Terms#dg_data_security)
6. ::[Performance](Glossary-Standard-Terms#dg_data_performance)
7. ::[Interoperability](Glossary-Standard-Terms#dg_data_interop)
### Central Database
#### What is the logical database design?
::The logical database design is described in this [UML
model](LINK-TO-MODEL) or this [ER diagram](LINK-TO-DIAGRAM).
::Additional logical constraints on the database are:
- ::Students can repeat a course (and thus have two records for the
same course in their transcript), if and only if they got a
grade of "C-" or lower, or the course number is 198, 199, 298,
or 299.
- ::A grade of "A+" is valid only for transcript entries during or
after Fall 1990. Prior to that term, the highest possible grade
was an "A".
- ::LOGICAL CONSTRAINT THAT CANNOT BE EXPRESSED IN THE DIAGRAM
- ::LOGICAL CONSTRAINT THAT CANNOT BE EXPRESSED IN THE DIAGRAM
#### What are the physical tables and views?
::The physical database design is described in this [UML
model](LINK-TO-MODEL) or this [ER diagram](LINK-TO-DIAGRAM).
#### How will objects in the application be stored in the database?
::We will use one database table for each class, and one row in the
database for each persistent instance of that class.
::We will use a [library](LINK-TO-LIBRARY) to do our
object-relational mapping. (E.g., torque, castor, JDO,
ADO, hibernate)
#### What database access controls will be used?
::A database user account has been created that has access to the
needed application database tables. The username and password for
this account is stored in a configuration file read by the
application server. The database limits login by that user to only
the IP-address used by the application server.
#### Is this application's central database accessible to other applications?
::Yes. The database is an important point of interoperability for new
applications to be added later. The database itself provides support
for access controls and checks validity constraints so that a
defective application cannot corrupt the database.
::No. This database should always be accessed through
this application. All relevant pieces of information are available
through the application interfaces. The database itself does not
protect against data corruption that could be caused by
other applications.
### File Storage
#### What data needs to be stored in files?
::Nothing is stored in files, everything is in the database.
::The server stores most data in the database, but mailing list
attachments are written to files on the server hard disk.
::All user documents are stored in files on their computer hard disk.
#### What are the conventions for directory structure and file naming?
::N/A
::Files are stored on the server as
```bash
/var/data/attachments/msgNNNN-MMM.dat
```
::Users store files anywhere on their computer, with the filename
extension ```.TST```.
#### What file system access controls will be used?
::N/A
::Files for message attachments are only readable and writable by the
mailing list archiving process that runs as operating system
user "daemon".
::Users can use whatever file permissions they like.
#### What file format will be used?
::The [XYZ](LINK-TO-STANDARD) standard file format.
::A java .properties file.
::A window's .ini file.
::An XML file using [this DTD file](LINK-TO-DTD).
::A simple text file with the following format: ...
::A custom binary file in the following format: ...
### Distributed Storage
#### What information (if any) will be stored on client machines? For how long?
::A cookie will be stored on the user machine for the purpose of
identifying a user session. When the user logs out or closes their
web browser, the cookie is deleted. Most browsers will not even
write this cookie to the disk.
::The a cookie is stored on the user's computer that is equivalent to
their password (but it is NOT actually their password). This cookie
is needed for the auto-login feature. The cookie lasts a maximum of
30 days, and it can only be used from the same IP address.
::User preferences for color scheme are stored in cookies in
their browser. This information is not at all sensitive, so it is
kept indefinitely.
::All the user data will be stored on files on their computers.
### Persistence Mechanisms Checklist
#### Expressiveness: To what extent has this been achieved?
::2-4 SENTENCES
#### Ease of access: To what extent has this been achieved?
::2-4 SENTENCES
#### Reliability: To what extent has this been achieved?
::2-4 SENTENCES
#### Capacity: To what extent has this been achieved?
::2-4 SENTENCES
#### Security: To what extent has this been achieved?
::2-4 SENTENCES
#### Performance: To what extent has this been achieved?
::2-4 SENTENCES
#### Interoperability: To what extent has this been achieved?
::2-4 SENTENCES
#### Has the persistence design been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the [Risk Management](Project-Plan#Risk-Management)
section.

View File

@ -0,0 +1,53 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > Scalability
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Overview
*TODO: Briefly describe the approach to scalability. Rank your
scalability goals for this design.*
::2-4 SENTENCES.
### Relevant parameters
| Parameter | Description |
|---------------------|-----------------------------------------------------------------------------------------|
| ::registered\_users | ::Number of registered users in the database. |
| ::concurrent\_users | ::Number of users logged into the system at a given time. |
| ::map\_size | ::Number of game squares in the playing area. E.g., a 10 x 25 map would be 250 squares. |
| ::game\_pieces | ::Number of game pieces on the playing area at a given time. |
### Scalability Mechanisms
### Performance Goals and Estimates
| Action | Goal | Time Formula | Description |
|----------------|--------------|-------------------------------|-----------------------------------------------------------------------------|
| ::login | ::1 second | ::O(Log(registered\_users)) | ::Time that it takes to look up a user by their login name in the database. |
| ::display\_map | ::1/5 second | ::O(map\_size + game\_pieces) | ::Time that it takes to redraw the game map and all game pieces. |
### System Scalability Checklist
How well do these mechanisms support the achievement of your goals?
::2-4 SENTENCES
#### Have these scalability mechanisms been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the
[Risk Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,156 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > Design Security
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Overview
*TODO: Answer the questions below to help you design needed security
features. Some example text is provided. Add or delete text as needed.*
#### What are the most important facts that a developer should know about the security of this system?
::PARAGRAPH OR BULLETS
#### What are the ranked goals for security in this system?
1. ::[Data security](Glossary-Standard-Terms#data_security)
2. ::[Intrusion prevention](Glossary-Standard-Terms#intrusion_prevention)
3. ::[Abuse prevention](Glossary-Standard-Terms#abuse_prevention)
4. ::[Auditability](Glossary-Standard-Terms#auditability)
### Security Mechanisms
#### What physical security mechanisms will be used?
- ::Servers will be kept in a locked room with door code known only
to administrators.
- ::Servers will be kept in a locked equipment rack.
- ::Server case itself has a security cable that prevents the case
from being opened (so the hard-disk with sensitive data cannot
be removed).
- ::Backup tapes are stored in a locked cabinet in a locked room.
#### What network security mechanisms will be used?
- ::A firewall device limits access to specific network ports (e.g.,
port 80 for web server access).
- ::Firewall software limits access to specific network ports (e.g.,
port 80 for web server access).
- ::Only the front-end machines are accessible over the Internet.
Other machines in the server cluster communicate over a private
LAN only.
- ::Users can only connect to the server from specific ranges of
IP-address (e.g., university-owned computers in networks
on campus).
- ::Certain users (e.g., administrators) can only connect from
specific ranges of IP-addresses.
- ::All network communication takes place over a virtual private
network (VPN) that is encrypted and not accessible to outsiders.
- ::All network communication takes place over a LAN that does not
have any connections to the Internet.
#### What operating system security will be used?
- ::Operating system user accounts will never be created on the
servers, other than those needed by the application itself.
- ::Different components in the application execute as different
operating system users, have only the least possible privileges,
and may only access the particular files needed by
that component.
- ::Operating system permissions on files and directories are set to
prevent undesired access or modification.
- ::Intrusion detection software will be used on the server to
detect any modifications made by hackers.
- ::Administrators will monitor security mailing lists for
announcements of security holes in any components that we use
and security patches and upgrades will be applied quickly.
- ::Data on disks and backup tapes is stored using an encrypted file
system so that the data is protected if the media itself is
stolen or somehow accessed.
#### What application security mechanisms will be used?
- ::Values input into every field are validated before use
- ::Usernames and passwords are required for access
- ::Passwords are stored encrypted
- ::Verification of user email address
- ::The quality of passwords is checked
- ::Users must have certificate files on their client machine before
they can connect to the server
- ::Users must have physical security tokens (e.g., hasp, dongle,
smart-card, or fingerprint reader)
- ::Users are given roles that define their permissions. Those roles
are:
- ::Guest: Visitor to the site is not logged in, no permissions
to change anything
- ::Guest: Visitor to the site is not logged in, can post
messages anonymously
- ::RegisteredUser: User is logged in, has permissions for X, Y,
and Z
- ::Administrator: Permission to change anything, even on behalf
of other regular users
- ::Each action (information display or change) requires that the
user has a role with proper permissions
- ::Compromised or abused accounts can be quickly disabled
by administrators. >
- ::Administrators can review user > permissions
- ::Administrators can audit all a > ccesses and changes
- ::All communications with the us > er are encrypted (e.g., SSL)
- ::Some communications with the user (e.g., the username
and password) are encrypted (e.g., SSL)
- ::Sessions are tied to a particular client IP-address so that
stolen cookies cannot be used.
- ::Session cookies are long random strings that cannot be guessed.
- ::Sessions time out so that unattended terminals cannot be abused.
- ::Actions that seem to destroy data actually move it to a place
where it can still be reviewed by administrators.
- ::Sensitive data, such as credit card numbers, are processed but
not retained in any database or file
- ::The data access layer will be responsible for preventing SQL
injection attacks (i.e., hackers attempting to enter SQL
statements through application UI fields).
- ::The data access layer will allow read-only connections, which
will be used for most requests, as well as write connections for
requests that update the database.
- ::The HTML generation layer will be responsible for preventing
cross-site-scripting (XSS) attacks.
- ::The application will prevent CSRF attacks. It will do this by
performing updates to the database only after a POST, and
checking that the referring page was served by the system for
every POST. Browsers that do not report HTTP-Referrer will not
be supported.
### Security Checklist
#### Protection of data: To what extent has this been achieved?
::2-4 SENTENCES
#### Prevention of intrusion: To what extent has this been achieved?
::2-4 SENTENCES
#### Prevention of abuse: To what extent has this been achieved?
::2-4 SENTENCES
#### Accountability/auditing: To what extent has this been achieved?
::2-4 SENTENCES
#### Have these security mechanisms been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the [Risk Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,126 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > Source Code Organization and Build System
- ::[Example build.xml for Tomcat](http://jakarta.apache.org/tomcat/tomcat-4.1-doc/appdev/build.xml.txt)
- ::[Apache Ant manual](http://ant.apache.org/manual/index)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Overview
*TODO: Answer the questions below to help you define your source code
organization and build process. Some example text is provided. Add or
delete text as needed. E.g., not all projects try to be platform
independent.*
#### What are the most important facts that a developer should know about this source code organization and build system?
::It roughly follows the standard proposed in the Tomcat documentation
and is very similar to the organization used on many open source
projects at the Apache Software Foundation.
#### What are the ranked goals of this source code organization and build system?
1. ::Separation of files by type
2. ::Separation of version-controlled files from files generated by
the build process
3. ::Compatibility with standard build processes
4. ::Platform independence
### Key Directories and Files in Developer Working Copies
*TODO: Describe the purpose of each directory that will appear in a
developer's work copy, also include any files that are important to the
overall structure or build process.*
| Path | VC | Description |
|--------------------------------------|-------|---------------------------------------------------------------------------------|
| ::build.xml | ::Yes | ::Build file |
| ::build.properties | ::Yes | ::Build properties file |
| ::src/ | ::Yes | ::Source code |
| ::src/java/ | ::Yes | ::Java source code |
| ::src/java/\[Nested packages\]/ | ::Yes | ::Java source code of classes in each package |
| ::src/java/\[Nested packages\]/test/ | ::Yes | ::Java source code of unit tests for classes in each package |
| ::web/ | ::Yes | ::HTML and JSP files |
| ::web/css/ | ::Yes | ::CSS files, if any |
| ::web/images/ | ::Yes | ::Image files, if any |
| ::web/WEB-INF/web.xml | ::Yes | ::Java web application configuration file |
| ::conf/ | ::Yes | ::Configuration files, if any |
| ::data/ | ::Yes | ::Initial data to load into database and/or file system, if any |
| ::lib/ | ::Yes | ::Libraries reused by this project, if any |
| ::scripts/ | ::Yes | ::Command-line utility scripts used by this project, if any |
| ::www/ | ::Yes | ::Project documents (e.g., overview, plan, requirements, and design) |
| ::build/ | ::No | ::Output of build process |
| ::build/WEB-INF/classes/ | ::No | ::Compiled code output by build process |
| ::dist/docs/api/ | ::No | ::API documentation output from build process |
| ::dist/PROJECT-NAME-VERSION.war | ::No | ::Deployable web archive of classes and config files generated by build process |
### Build Targets
*TODO: Describe the build targets that developers will use in daily
development. The examples below should fit most projects.*
| Target | Description |
|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::compile = default | ::Compiles Java source code and creates .class files under the "build" directory. |
| ::dist | ::Packages the system for distribution/deployment to servers or end users. Specifically, it creates .war archive of compiled classes and configuration files. |
| ::install | ::Places executable code into location where it will actually be executed. Specifically, it copies .war file into Tomcat's webapps directory for use. You must then restart Tomcat or use the "reload" link in the Tomcat Manager. |
| ::javadoc | ::Generates Java API documentation under "build/docs/api/". |
| ::clean | ::Deletes files generated by previous build commands. Files under version control are not touched. |
### Build Configuration Options
| Property | Description |
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::app.name | ::The name of this application. This should be one short word. Used in the name of resulting package files. Specifically, the .war file. And, it will be used to access the application via http://localhost:8080/APP.NAME/ |
| ::app.version | ::Version number of this release. Used in the name of resulting package files. Specifically, the .war file. |
| ::webapps.path | ::Path to the Tomcat "webapps" directory. Defaults to C:\Program Files\Apache Group\Tomcat 4.1\webapps\ |
::These build system properties can be modified by editing the
build.properties file.
### Source Code Organization and Build System Checklist
#### Separation of files by type: Are files separated by type?
::Yes. Except that application JSP and HTML files are in the same
directory, which is convenient because sometimes we change an HTML
file to be a JSP file.
#### Separation of version-controlled and non-version controlled files: To what extent has this been achieved?
::It has been achieved. Everything is under version control except for
the "build" directory. No step in the build process should create or
modify any file in any other directory.
#### Compatibility with standard build processes: To what extent has this been achieved?
::So far, so good. We can use build.xml files that are very close to
the examples that come with Ant. One difference is that we keep our
technical documentation under "www" rather than under "docs". Also,
we have avoided the use of custom ant tasks.
#### Platform independence: To what extent has this been achieved?
::We are using Ant, which is itself platform independent. The names
of the files and directories should work across platforms because
they do not rely on case-sensitive names. We assume that the utility
scripts in the "scripts" directory support all needed platforms and
we have not created directories for different versions of these files
aimed at specific platforms.
#### Have these implementation decisions been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the [Risk Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,212 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Design](Design) > User Interface
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
### Overview
*TODO: Answer the questions below to help you design the user interface
features of your system. Some example text is provided. Add or delete
text as needed.*
#### What are the most important facts that a developer should know about the user interface of this system?
::PARAGRAPH OR BULLETS
#### What are the ranked goals for the user interface of this system?
1. ::[Understandability and learnability](Glossary-Standard-Terms#understandability_and_learnability)
2. ::[Task support and efficiency](Glossary-Standard-Terms#task_support_and_efficiency)
3. ::[Safety](Glossary-Standard-Terms#safety)
4. ::[Consistency and familiarity](Glossary-Standard-Terms#consistency_and_familiarity)
### Metaphors, Exemplars, and Standards
#### What is the central metaphor of this UI design?
::PARAGRAPH
#### What existing systems have user interfaces similar to the UI you want to build? What specific aspects are similar?
- ::[amazon.com](http://www.amazon.com): Our e-commerce site will
have stores and departments, and search like this site.
- ::[Microsoft Office](http://www.microsoft.com/office/using/default.asp): We
will use configurable toolbars the same way Office 2000 does.
- ::[EXISTING-UI](LINK-TO-SYSTEM): DESCRIPTION
#### What UI design standards, guidelines, and styles are you following?
- ::[Microsoft UI guidelines](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/welcome.asp)
- ::[Java UI guidelines](http://java.sun.com/products/jlf/ed1/guidelines.html)
- ::[Mac UI guidelines](http://developer.apple.com/techpubs/macosx/Essentials/AquaHIGuidelines/AHIGHIGs/index.html)
- ::[W3C Accessibility guidelines](http://www.w3.org/TR/WCAG10/)
### Task Models
#### What types of users will use this system?
::See the [user needs document](User-Needs).
#### What types of tasks will those users perform?
::See the [use case suite](Use-Case-Suite).
### Content Model / Interaction Contexts
*TODO: List interaction contexts. Each interaction context is a "place"
where users see information and where they select commands or options.
In a graphical user interface, a interaction context will eventually be
implemented as a window or dialog box. In other applications, an
interaction context may be implemented as, e.g., a web page, a voice
menu prompt, or a physical control panel.*
*TIP: Each interaction context is an exclusive mode: the user can only
use one interaction context at a time. All the components within one
context are visible and usable at the same time. E.g., if a window has
three tabs, that is three interaction contexts because only one tab can
be used at a time.*
*TODO: For each interaction context, list the abstract components within
that context. Each component is a piece of information, or a user
interface affordance. In a GUI, each abstract component will eventually
become a widget, but the choice of specific widgets happens later.
Choice of abstract components corresponds to step 2 in the
[HTML prototyping example](http://www.ics.uci.edu/~jrobbins/htmlproto/index.html)
demonstrated in class.*
*TIP: Most high frequency use cases should be carried out in only one
interaction contexts. A use case that requires three interaction
contexts could be hard to use. However, interaction contexts with too
many components can also be hard to use.*
| Interaction Context --Abstract UI Components | Purpose | Contents / Constraints / Behavior |
|------------------------------------------------|------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::[Login dialog](LINK-TO-MOCKUP) | ::Verify that the current user is actually the person that they claim to be. | |
| ::--Prompt | ::Tell the user that this dialog is to log in. | ::"Please log in". |
| ::--Message area | ::Give the user some feedback about the login process. | ::Initially blank. Changes to "Checking username and password" when the user presses "Login". Changes to "Invalid username or password, please try again", if login fails. |
| ::--Username | ::Identify the user account that the current user is trying to access. | ::The name of the user account. Regex: [-_a-z0-9]{1-16}. The application should not do anything that would help users guess usernames. E.g., this should not be a combo-box with recent users listed, and it should not offer auto-complete. |
| ::--Password | ::Verify that the current user knows a secret password that only the true user of that user account should know. | ::The password of 4-16 characters. Do not display the password on the screen. The application should not do anything that would help users guess passwords. |
| ::--Login | ::Allow the user to indicate that they have completed entry of their username and password. | ::"Login" Only enabled when Username != "". If the username or password is incorrect, delay a few seconds, and then clear all fields. |
| ::--Lost Password | ::Allow the current user to start a process of generating a new password for a given username. | ::"Forgot your password? Click here." Only enabled when Username != "". |
| ::[PAGE-NAME](LINK-TO-MOCKUP) | ::PURPOSE | |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::[PAGE-NAME](LINK-TO-MOCKUP) | ::PURPOSE | |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::[MAIN-WINDOW-NAME](LINK-TO-MOCKUP) | ::PURPOSE | |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::[DIALOG-NAME](LINK-TO-MOCKUP) | ::PURPOSE | |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::[DIALOG-NAME](LINK-TO-MOCKUP) | ::PURPOSE | |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
| ::--ABSTRACT-COMPONENT-NAME | ::PURPOSE | ::CONTENTS |
### Technical Constraints / Operational Context
#### What are your assumptions about the output devices?
::We assume that the user has a 17-inch or larger screen with 1024x768
pixels that can display thousands of colors (16 bit or more). We
assume basic audio that can play simple sound files.
::We make very few assumptions about the user's screen or web browser,
other than the assumption that they can view page somehow. We will
not use any audio features.
::This "pay-at-the-pump" system has a 320x200 16-color display and
can beep.
#### What are your assumptions about the input devices that you will use?
::We assume only that the user has a standard keyboard and mouse.
::This "pay-at-the-pump" system has digits 0-9, "OK", "Cancel", and
four menu buttons along the right-hand edge of the screen.
#### What are your assumptions about the amount of time users will spend on tasks?
- ::Use cases UC-02 and UC-04 are expected to take a few minutes each.
- ::Use case UC-00 should take less than 5 seconds each. All other use
cases should take less than 30 seconds each.
#### What windowing systems, UI libraries, or other UI technologies will you use?
::Standard Java Swing with no extra libraries.
::Simple HTML and CSS with simple GIF images.
### User Interface Checklist
*TODO: Answer the following questions to help evaluate the design. You
may add or remove questions to fit your project.*
#### Understandability and learnability
##### Are there any labels of icons that are likely to be misunderstood?
::1-3 SENTENCES
##### Is the user's current place and state clearly visible? E.g., wizard step 2 of 5, or edit-mode vs. play-mode.
::1-3 SENTENCES
##### Are advanced options clearly separated from the most commonly used options?
::1-3 SENTENCES
##### Are there no invisible options or commands? E.g., hold down the control key when opening a dialog box to see advanced options.
::1-3 SENTENCES
#### Task Support and Efficiency
##### Which use cases force the user to work through more than two interaction contexts?
::1-3 SENTENCES
##### Which use cases force the user to perform slow or difficult UI steps? E.g., entering a long code number like an ISBN. E.g., long mouse-drag operations.
::1-3 SENTENCES
#### Safety
##### Are there any dangerous or irreversible actions that are done with only one step?
::1-3 SENTENCES
#### Consistency and Familiarity
##### Do UI elements in your system work the same as they do in the existing example systems you identified?
::1-3 SENTENCES
##### Do all elements in your system that appear the same, actually function the same?
::1-3 SENTENCES
##### Are all elements share consistent visual characteristics such as font and color scheme, unless there is a reason for them to differ?
::1-3 SENTENCES
##### Are labels used consistently throughout the system? E.g., not "forward/back" in some contexts and "next/prev" in others.
::1-3 SENTENCES

View File

@ -0,0 +1,149 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Attached Worksheets
- Design > [Architecture Worksheet](Design-Architecture)
- Design > [Source Organization and Build Worksheet](Design-Src-Org)
- Design > [Scalability Worksheet](Design-Scalability)
- Design > [User Interface Worksheet](Design-UI)
- Design > [Persistent Storage Worksheet](Design-Persistence)
- Design > [Security Worksheet](Design-Security)
##### Related Documents
- [SRS](SRS) > [Use case suite](Use-Case-Suite)
- [SRS](SRS) > [Feature set](Feature-Set)
- [Glossary](Glossary)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:**
This design document describes a system that will satisfy the requirements of the [SRS](SRS). Decisions made in creating this design document are based on those requirements and an understanding of available technologies and components. Once the design has been drafted, work on the system implementation and unit testing may begin.
*TODO: Fill in the sections below. Add ore remove items as needed for your project.*
### Introduction
#### How is this design document organized?
This main page describes the system design in terms of packages,
classes, relationships, and behavior. Several attached worksheets
address specific aspects of the overall system design, such as user
interface and database design.
#### What are the most important facts that a developer should know about this design?
::PARAGRAPH or BULLETS
#### What are the prioritized goals of this design?
1. ::[Correctness](Glossary-Standard-Terms#correctness)
2. ::[Feasibility](Glossary-Standard-Terms#feasibility)
3. ::[Understandability](Glossary-Standard-Terms#understandability)
4. ::[Implementation phase guidance](Glossary-Standard-Terms#implementation-and-phase-guidance)
5. ::[Modularity](Glossary-Standard-Terms#modularity)
6. ::[Extensibility](Glossary-Standard-Terms#extensibility)
7. ::[Testability](Glossary-Standard-Terms#testability)
8. ::[Efficiency](Glossary-Standard-Terms#efficiency)
### UML Structural Design
*TODO: Link to a design model and/or design diagrams that describe your
system's structure in detail.*
#### The system's structural design is described in the following UML model
::[MODEL-NAME](LINK-TO-MODEL-FILE).
#### The system's structural design is described in the following UML structural diagrams
- ::[PACKAGE OVERVIEW DIAGRAM](LINK-TO-DIAGRAM)
- ::PACKAGE-NAME
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::PACKAGE-NAME
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::PACKAGE-NAME
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
::ANY ADDITIONAL NOTES OR COMMENTS
### UML Behavioral Design
*TODO: Link to a design model and/or design diagrams that describe your
system's behavior in detail.*
#### The system's behavioral design is described in the following UML model
::[MODEL-NAME](LINK-TO-MODEL-FILE)
#### The system's behavioral design is described in the following UML behavioral diagrams
- State Diagrams
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- Sequence Diagrams
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- Collaboration Diagrams
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
- ::[DIAGRAM-NAME](LINK-TO-DIAGRAM)
::ANY ADDITIONAL NOTES OR COMMENTS
### UML Design Checklist
*TODO: Answer the following questions to help evaluate your design. Add
or remove questions to fit your project. If you cannot answer a question
positively, that may indicate an aspect of the design that should be
revised.*
#### Correctness: How do you know that this design is correct?
::2-4 SENTENCES
#### Feasibility: What indicates that this design can be implemented and tested with the planned amount of time and effort?
::2-4 SENTENCES
#### Understandability: What makes this design understandable?
::2-4 SENTENCES
#### Implementation phase guidance: Does the design suggest reasonable implementation tasks?
::2-4 SENTENCES
#### Modularity: How have concerns been separated and addressed in distinct modules?
::2-4 SENTENCES
#### Extensibility: How can new features can be easily added later?
::2-4 SENTENCES
#### Testability: What makes this system easy to test?
::2-4 SENTENCES
#### Efficiency: Does the system consume an acceptable amount of time, storage space, bandwidth, and other resources?
::2-4 SENTENCES
#### Has the design been communicated to the development team and other stakeholders?
- ::Yes, everyone understands. Feedback is welcome.
- ::No, this is a risk that is noted in the
[Risk Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,19 @@
*TODO: This template is not done yet. Feel free to contribute your ideas.*
This document defines the artifacts the team creates during your software
development process. Documenting artifact types helps define the inputs and
outputs of each development task. The producer/consumer matrix helps document
the software development workflow.
### Artifact Producer / Consumer Matrix
| Read By \ Written By | Everyone | Project Manager | Product Manager | Dev Team | QA Team | Tech Writer | Tech Support | Operations | Sales |
|------------------------|-----------------|-----------------|-----------------|----------|---------|-------------|--------------|------------|-------|
| ::Everyone | [SDM](SDM) | | | | | | | | |
| ::Project Manager | | | | | | | | | |
| ::Dev Team | | | | | | | | | |
| ::QA Team | | | | | | | | | |
| ::Tech Writer | | | | | | | | | |
| ::Tech Support | | | | | | | | | |
| ::Operations | | | | | | | | | |
| ::Sales | | | | | | | | | |

106
ProductDocumentation/FAQ.md Normal file
View File

@ -0,0 +1,106 @@
*TODO: Answer these common questions. Some sample answers are provided
for you. Add new questions and new sections to fit the needs of your
users.*
*TIP: This FAQ is for end users, you may want to write FAQ's for other
types of stakeholders such as potential customers, open source
contributors, members of a developers' network, or administrators.*
### General Information
#### What is ::PRODUCT-NAME?
::It is a XXXXX. Read our [PRODUCT-NAME overview](http://www.COMPANY.com/products/PRODUCT-NAME/).
#### Who should use ::PRODUCT-NAME?
::Anyone who wants XXXXXXX. Read more about our [target audience and benefits](Target-and-Benefits).
### Download and Install
#### How can I obtain ::PRODUCT-NAME?
::You may [download PRODUCT-NAME](LINK-TO-DOWNLOAD).
::You may [place an order for PRODUCT-NAME](LINK-TO-ORDER).
#### What do I need to use ::PRODUCT-NAME?
::System requirements are described in the [release notes](Release-Notes).
::System requirements are a Intel-compatible PC with a processor speed
of at least XXX MHz, XXX MB of RAM. XXX MB of free disk space, and
one of the following operating systems: Windows 98/2000/XP, Mac
OSX, Linux.
#### How do I install ::PRODUCT-NAME?
::[Installation instructions](install.html) are available on-line.
#### How do I upgrade from an older version of PRODUCT-NAME?
::[Installation instructions](install.html) are available on-line.
### Getting Started
#### What is ::TECHNICAL-TERM?
::It means XXXXX. For additional technical terms, see the
[glossary](Glossary).
#### What is ::GUI-ELEMENT?
::It is a XXXXX. It is used for YYYYY.
#### How do I do ::COMMON-TASK?
::You should understand that XXX. Once you are ready, you can:
1. ::Step one
2. ::Step two
3. ::Step three
### SECTION NAME
#### ::QUESTION?
::ANSWER.
#### ::QUESTION?
::ANSWER.
#### ::QUESTION?
::ANSWER.
#### ::QUESTION?
::ANSWER.
### Troubleshooting
#### ::I see an error message "ERROR-MESSAGE". What's wrong?
::ANSWER.
#### ::I can't do COMMON-TASK. What's wrong?
::ANSWER.
### Other Questions
#### ::My question is not on this page. How do I find the answer?
::First read the [user guide](user-guide) and other
on-line help. Your question may have already been asked and
answered, to find it: search the project [mail archives](#) and
[issue tracking system](#). If you still don't find it, you can ask
the question on the [users' mailing list](#) or the [developers'
mailing list](#) or you can [enter an issue](#).
#### ::Where should I send comments on this FAQ?
::You can write to [EMAIL-ADDRESS](mailto:#) or any of the developers
on the [developers' mailing list](mailto:#).

View File

@ -0,0 +1,110 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [SRS](SRS) > [Feature Set](Feature-Set) > Feature Specification Format
---
**Process impact:** This reference page documents the format of feature
descriptions and gives tips on writing them. You can copy and paste the
feature specification template into your [Features](Features)
document. This file itself should not be edited to hold specific
features.
*TODO: Copy and paste this feature specification template as many times
as needed in your [Features](Features) document.*
---
### ::F-00: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risk | 2-Risk | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::NOTE
- ::QUESTION
- ::QUESTION
---
### Feature Attribute Values
- Priority
- Essential: The system could not or would never be used without
this feature. It would be much harder to test, document, or
package the product without this feature.
- Expected: Key stakeholders strongly desire and expect
this feature. It may have been promiDIAGRAMsed to them in a certain
release. It's absence would substantDIAGRAMially reduce the success of
the project.DIAGRAM
- Desired: Stakeholders desire this feDIAGRAMature. It's absence would
reduce the success of the project.
- Optional: This feature would be nice to have. Adding it could
have some advantage, but delaying it would not have a big effect
on the success of the project.
- Effort
- Months: A very large feature that is too big to estimate and
should be broken in to smaller, better-defined features.
- Weeks: A large feature that will take 40 to 160 hours to add.
- Days: An average or easy feature that would take less than 40
hours to add.
- Hours: A very easy feature that would take less than 8 hours to
add
- Note that "adding" a feature means doing all of it's design,
implementation, technical documentation, user documentation,
and testing. Even the easiest feature takes hours to add.
- Risk
- Dangerous: Implementing this feature successfully would require
overcoming risk factors that are more than three or unknown
in number. It should be broken down into parts, better
specified, or risk factors should be eliminated prior
to implementation.
- 3-Risks: Implementing this feature would require three risk
factors to be overcome. Any single release should contain at
most a few such high-risk features, and contingency plans should
be considered. You should be able to list the risks.
- 2-Risks: Implementing this feature would require two risk
factors to be overcome. This is normal for challenging features.
You should be able to list the risks.
- 1-Risk: Implementing this feature as specified would require one
risk factor to be overcome. This is normal for many features.
You should be able to describe the risk.
- Safe: Implementing this feature as specified is just a matter of
time and effort, there is no real risk of failure.
- A "risk factor" is a task or fact that is currently in doubt,
but that must turn out well in order for the feature to be
successfully implemented. See tips on managing risk below.
### Further Information
For more information on advice, see:
- Words of wisdom on [feature sets](http://readyset.tigris.org/words-of-wisdom/feature-set.html).
- Words of wisdom on [feature specifications](http://readyset.tigris.org/words-of-wisdom/features.html).

View File

@ -0,0 +1,120 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [SRS](SRS) > Feature Set
- [Project proposal](Proposal) > [User needs](User-Needs)
- [SRS](SRS) > [Use case suite](Use-Case-Suite)
- [Feature format](Feature-Format)
- ::LINK TO USE CASE DIAGRAM
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** A feature set is simply a table of contents for the
individual feature descriptions. Much like a test suite, organizing the
feature set by priority, functional area, actor, business object, or
release can help identify missing, extra, or poorly motivated features
early.
*TODO: Before writing individual feature descriptions, list all the
features that you think you will need. Organize them so that missing
features appear as blanks on this page, and extra features will appear
to be extras that don't fit anywhere. See the
[feature format](Feature-Format#further-information) document for more
tips on specifying features and feature sets.*
*TIP: Refer back to the user stories in your [user needs](User-Needs)
document and to the [use case suite](Use-Case-Suite).
Use them for ideas and make sure that you cover all of them.*
### Features by Release and Priority
*TODO: Select subset of features can be implemented for a given release.
When features are listed in priority order, choosing the features to
implement in a release simply becomes a matter of "drawing a line":
features below the line must wait for a later release. Make sure to also
consider estimated effort and risk.*
- ::Release 1.0
- ::Essential
- ::[F-00](Features#f-00_site_configuration) Site configuration
- ::[F-01](Features#f-01_user_regisration) User registration
- ::[F-21](Features#f-21_feature_name) NAME OF FEATURE
- ::[F-31](Features#f-31_feature_name) NAME OF FEATURE
- ::Expected
- ::[F-02](Features#f-02_feature_name) NAME OF FEATURE
- ::[F-03](Features#f-03_feature_name) NAME OF FEATURE
- ::[F-20](Features#f-20_feature_name) NAME OF FEATURE
- ::Release 1.1
- ::Expected
- ::[F-22](Features#f-22_feature_name) NAME OF FEATURE
- ::[F-23](Features#f-23_feature_name) NAME OF FEATURE
- ::[F-33](Features#f-33_feature_name) NAME OF FEATURE
- ::Desired
- ::[F-10](Features#f-10_feature_name) NAME OF FEATURE
- ::[F-11](Features#f-11_feature_name) NAME OF FEATURE
- ::[F-12](Features#f-12_feature_name) NAME OF FEATURE
- ::Later Releases
- ::Optional
- ::[F-30](Features#f-30_feature_name) NAME OF FEATURE
- ::[F-32](Features#f-32_feature_name) NAME OF FEATURE
### Features by Release and Risk
- ::Release 1.0
- ::[F-00](Features#f-00_site_configurtion) Safe : Site configuration
- ::[F-01](Features#f-01_user_registration) Safe : User registration
- ::[F-21](Features#f-21_feature_name) Safe : NAME OF FEATURE
- ::[F-31](Features#f-31_feature_name) 1-Risk : NAME OF FEATURE
- ::[F-02](Features#f-02_feature_name) 1-Risk : NAME OF FEATURE
- ::[F-03](Features#f-03_feature_name) 2-Risks : NAME OF FEATURE
- ::[F-20](Features#f-20_feature_name) 2-Risks : NAME OF FEATURE
- ::Total unique risk factors: 4
- ::Release 1.1
- ::[F-22](Features#f-22_feature_name) Safe : NAME OF FEATURE
- ::[F-23](Features#f-23_feature_name) Safe : NAME OF FEATURE
- ::[F-33](Features#f-33_feature_name) Safe : NAME OF FEATURE
- ::[F-10](Features#f-10_feature_name) 2-Risks : NAME OF FEATURE
- ::[F-11](Features#f-11_feature_name) 2-Risks : NAME OF FEATURE
- ::[F-12](Features#f-12_feature_name) 3-Risks : NAME OF FEATURE
- ::Total unique risk factors: 5
- ::Later Releases
- ::[F-30](Features#f-30_feature_name) Safe : NAME OF FEATURE
- ::[F-32](Features#f-32_feature_name) 2-Risks : NAME OF FEATURE
- ::Total unique risk factors: 2
### Features by Functional Area
- ::FUNCTIONAL AREA ONE
- ::[F-00](Features#f-00_site_configuration) Site configuration
- ::[F-01](Features#f-01_user_registration) User registration
- ::[F-02](Features#f-02_feature_name) NAME OF FEATURE
- ::[F-03](Features#f-03_feature_name) NAME OF FEATURE
- ::FUNCTIONAL AREA TWO
- ::[F-10](Features#f-10_feature_name) NAME OF FEATURE
- ::[F-11](Features#f-11_feature_name) NAME OF FEATURE
- ::[F-12](Features#f-12_feature_name) NAME OF FEATURE
- ::[F-13](Features#f-13_feature_name) NAME OF FEATURE
- ::FUNCTIONAL AREA THREE
- ::[F-20](Features#f-20_feature_name) NAME OF FEATURE
- ::[F-21](Features#f-21_feature_name) NAME OF FEATURE
- ::[F-22](Features#f-22_feature_name) NAME OF FEATURE
- ::[F-23](Features#f-23_feature_name) NAME OF FEATURE
- ::FUNCTIONAL AREA FOUR
- ::N/A: These features are completely automated and internal, users
never interact with them
- ::FUNCTIONAL AREA FIVE
- ::TODO: need to write use cases here
- ::Other functional areas
- ::[F-30](Features#f-30_feature_name) NAME OF FEATURE
- ::[F-31](Features#f-31_feature_name) NAME OF FEATURE
- ::[F-32](Features#f-32_feature_name) NAME OF FEATURE
- ::[F-33](Features#f-33_feature_name) NAME OF FEATURE

View File

@ -0,0 +1,492 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [SRS](SRS) > [Feature Set](Feature-Set) > Features
- [Feature format](Feature-Format)
- [Project proposal](Proposal) > [User needs](User-Needs)
- [SRS](SRS) > [Use case suite](Use-Case-Suite)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** This is a set of detailed feature descriptions.
*TODO: For each feature listed in the [feature set](Feature-Set),
give a detailed description of the feature here. Describe each feature
in enough detail that it could be implemented by any member of the
development team (not only someone who already informally knows what to
do).*
*TIP: Start with a short textual description of each feature. Then, add
more formal information as needed to make each description precise and
unambiguous. E.g.,*
- *Precisely define valid inputs, and error handling*
- *Specify data structures with UML or logical schema*
- *Specify UI aspects of features with tiny mock-ups*
- *Specify key decisions with decision trees or tables*
- *Specify key algorithms with pseudo-code or flow charts*
- *Specify state-based behavior with state machines or tables*
- *Specify sequences of events with scenario diagrams*
---
### ::F-00: Site Configuration
Priority: ::Essential
Effort: ::Days
Risk: ::Safe
Functional area(s): ::Administration
Use case(s): ::[UC-00](Use-Cases#UC-00) [UC-11](Use-Cases#UC-11)
Description:
::The site administrators will be able to configure:
- ::The site appearance by choosing a predefined CSS file
- ::Whether the site makes new clans public or private by default
- ::The email address to be used to send critical error reports
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-01: User registration
Priority: **::Essential**
Effort: ::Days
Risk: ::Safe
Functional area(s): ::Administration
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
:: Visitors can come to the site and register themselves. They must provide the following information:
- ::username
- ::email address (twice to catch typos)
- ::real name
Precise Details:
- ::username must be unique (not equal to any other existing user name)
- ::username must be of the form ~~~[a-zA-Z0-9]{2,16}~~~ and is not case sensitive
- ::email address must be of the form ~~~[-a-zA-Z0-9_.]{2,16}@[-a-zA-Z0-9_.]{6,64}~~~
- ::both entries of the email address must match
- ::email address will be verified by sending the user's initial password there
- ::real name must not be empty
- ::leading and trailing spaces are stripped from all fields
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-02: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
:: 1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-03: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-10: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-11: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-12: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-13: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-20: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-21: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-22: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-23: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-30: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-31: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-32: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION
---
### ::F-33: FEATURE NAME
Priority: ::Essential | Expected | Desired | Optional
Effort: ::Months | Weeks | Days | Hours
Risk: ::Dangerous | 3-Risks | 2-Risks | 1-Risk | Safe
Functional area(s): ::WORD, WORD, WORD
Use case(s): ::[UC-01](Use-Cases#UC-01)
Description:
::1-4 PARAGRAPHS. USE BULLETS OR TABLES TO ORGANIZE INFORMATION. LINK TO WORKSHEETS OR ADDITIONAL INFORMATION.
Precise Details:
- ::LOGICAL CONSTRAINT
- ::LOGICAL CONSTRAINT
Notes and Questions:
- ::NOTE
- ::QUESTION

View File

@ -0,0 +1,560 @@
**Process impact:** This file as a dictionary of standard terms defined
as they are used across projects. Individual projects should not need to
edit this file. Writing out the definitions of terms and acronyms here
helps keep other documents more concise and easy to edit. Check the
[ReadySET glossary](http://readyset.tigris.org/templates/glossary-std.html) for
updates.
Jump to: [General](#general-terms) | [Computer science & technology](#computer-science-and-technology-terms) | [Process](#process-terms) | [Software development tools](#development-tool-terms) | [Requirements](#requirements-terms) | [Design](#design-terms) | [Design goals terms](#desigD-DIAGRAMn-goals-terms) | [QA terms](#qa-terms) | [QA goals terms](#qa-goals-terms) | [Additional terms](#additional-standard-terms)| [Project terms](Glossary)
### General Terms
##### Chipping away
The process of removing sample text from templates when that text
does not apply to the current project. Often some of the sample text
will be kept or revised to fit the current project. Even if the
sample text does not fit the current project, it provides a reusable
example of how to phrase that type of description. The term
"chipping away" comes from an old joke: when a sculptor is asked how
he carved a marble statue of a horse, he replies "It was easy, I
just started with a big block of marble and chipped away everything
that did not look like a horse."
##### Attached worksheetD-DIAGRAM
The idea is similar to fillD-DIAGRAMing in an IRS form and using worksheets
to calculate subtotals or mD-DIAGRAMake specific decisions. That is to say,
there is a hierarchy to theD-DIAGRAM templates: there are the main templates,
and then worksheets for speD-DIAGRAMcific topics. We have divided the
information into several fiD-DIAGRAMles so that each file is focused on one
topic, and so that each filD-DIAGRAMe can be worked on by one person in a
reasonable amount of time.D-DIAGRAM
D-DIAGRAM
##### Process impactD-DIAGRAM
The process impact box on eD-DIAGRAMach template explains where the current
template fits into the softD-DIAGRAMware development process. It usually
includes a brief comment on who should create the document, and who
would be expected to make use of it. You can change the process
impact box, but you should not need to.
##### Checklist
There are two kinds of checklists:
- Many of the templates have a section with questions that help
you check your work in that template. Often the sample answers
to the questions prompt you to take some corrective action.
- For design and code review meetings, there are links to
guidelines and checklists that help you identify common errors
in those artifacts.
##### Sticky note
The idea is similar to a post-it note attached to a document that
tells you do "sign here" or fill in a certain part. There are two
types of sticky notes:
- *TODO: Instructs you on how to fill in the template. This is the
minimum that you need to do. One of the main goals of ReadySET
is to help your team *quickly* carry out basic software
engineering activities. The TODO sticky notes make that easy by
making the templates more self-explanatory.*
- TIP: Helps you think of better ways to fill in the template. One
of the other main goals of ReadySET is to help your team make
better decisions that can make your whole project more
successful. The TIP sticky notes help with that.
After you have done what the sticky note says, you can delete the
sticky note.
### Computer Science and Technology Terms
##### ::API (Application Programming Interface)
An API is a set of functions that one software component makes
available to other software components. That allows other programs
to "call" this program via direct function calls, or more indirect
communications such as [SOAP](#soap) messages.
##### ::SOAP
SOAP (Simple Object Access Protocol) is the message format used by
standard web services. It entails sending an XML document to a
server in order to invoke an operation on the server-side.
[More information on SOAP](http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/?tc=1).
### Process Terms
##### Change Control Board (CCB)
A group of people who review proposed changes toD-DIAGRAM the project
requirements and/or source code to accept or reject changes in each
particular release. Proposed changes are usually rejected if they
introduce too much risk or would trigger additional effort (e.g.,
the need to redo a lot of testing on new code). A CCB is usually
composed of managers and representatives of other stakeholders such
as the QA group and key customers.
##### Feature Complete
A release is called "feature complete" when the development team
agrees that no new features will be added to this release. New
features may still be suggested for later releases. More development
work needs to be done to implement all the features and
repair defects.
##### Code Complete
A release is called "code complete" when the development team agrees
that no entirely new source code will be added to this release.
There may still be source code changes to fix defects. There may
still be changes to documentation and data files, and to the code
for test cases or utilities. New code may be added in a
future release.
##### Internal Release Number
An internal release number is the number that the development team
gives each release. Internal release numbers typically count up
logically, i.e., they do not skip numbers. They may have many parts:
e.g., major, minor, patch-level, build number, RC number.
##### External Release Number
External release numbers are the numbers that users see. Often, they
will be the same as the internal release number. That is especially
true if the product being built is a component intended to be reused
by another engineering group in the same development organization.
External release numbers can be different for products that
face competition. External release number are simpler, and may not
count up logically. E.g., a certain major ISP jumped up to version 8
of their client software because their competition had released
version 8. Later, the competition used version "10 Optimized" rather
than "10.1" or "11".
##### Release Number
The term "release number" by itself refers to an
[external release number](#external_release_number). Users normally are not aware
of the existence of any internal release numbers.
### Development Tool Terms
#### Version Control System
::DEFINITION1
#### Commit Log Message
::DEFINITION1
#### Issue Tracker
::DEFINITION1
#### Unit Testing Automation
::DEFINITION1
#### Automated Build System
::DEFINITION1
#### Style Checker
::DEFINITION1
#### Source Code Formatter (Pretty Printer)
::DEFINITION1
#### System Test Automation
::DEFINITION1
### Requirements Terms
#### Feature specification
A feature specification focuses on one feature of a software product
and completely describes how that feature can be used. It includes a
brief description of the purpose of the feature, the input and
output, and any constraints. Individual bullet items give precise
details on all aspects of the feature. One feature may be used in
many different ways as part of many different use cases.
#### Use case
The main part of a use case is a set of steps that give an example
of how an [actor](#actor) can use the product to succeed at
a goal. These steps are called the "Main success scenario", and they
include both user intentions and system responses. One use case may
show how the actor uses several features to accomplish a goal.
#### Actor
A user or an external system that uses the system being built.
### Design Terms
#### ::TERM2
::DEFINITION2
### Design Goals Terms
#### Correctness
This design correctly matches the given requirements.
#### Feasibility
This design can be implemented and tested with the planned amount of
time and effort.
#### Understandability
Developers can understand this design and correctly implement it.
#### Implementation phase guidance
This design divides the implementation into components or aspects
that can correspond to reasonable implementation tasks.
#### Modularity
Concerns are clearly separated so that the impact of most design
changes would be limited to only one or a few modules.
#### Extensibility
New features or components can be easily added later.
#### Testability
It is easy to test components of this design independently, and
information is available to help diagnose defects.
#### Efficiency
The design enables the system to perform functions with an
acceptable amount of time, storage space, bandwidth, and
other resources.
#### Ease of integration
The components will work together.
#### Capacity matching
The architecture deploys components onto machines that provide
needed resources with reasonable total expense.
#### Expressiveness
It allows for storage of all valid values and relationships
#### Ease of access
Application code to access stored data is simple
#### Reliability
Stored data cannot easily be corrupted by defective code, concurrent
access, or unexpected process termination
#### Data capacity
The system can store the amount of data needed.
#### Data security
Protection of sensitive user and corporate data from unauthorized
access or modification
#### Performance
Data can be accessed quickly
#### Interoperability
The database or data files can be accessed and updated by other
applications
#### Intrusion prevention
Prevent, e.g., hackers opening a command shell on our server.
#### Abuse prevention
Prevention of abuse (e.g., using our system to send spam).
#### Auditability
All changes can be accounted for later.
#### Understandability and learnability
Users can reasonably be expected to understand the UI at
first sight. Users will be able to discover additional features
without aid from other users or documentation, and they will be able
to recall what they have learned.
#### Task support and efficiency
The UI is well matched to the users' tasks and it can be used with a
reasonable number of clicks and keystrokes.
#### Safety
Users are not likely to accidentally produce an undesired result
(e.g., delete data, or send a half-finished email).
#### Consistency and familiarity
Users can apply their knowledge of similar UIs or UI standards to
this system.
### QA Terms
#### Bug
*n.* **Deprecated** since 1991. See [defect](#defect).
#### Error
*v.* A mistaken thought in the developer's mind. Often caused by
miscommunication or bad assumptions. Errors can create
[defects](#defect). E.g., a developer might erroneously think that
the square root of -4 is -2.
#### Defect
*n.* The result of the developer's [error](#error) embodied in the
product source code, initial data, or documents. E.g., a square root
function which allows negative numbers as arguments is defective.
Defects can be removed by changing the source code, initial data,
or document.
#### Fault
*n.* The execution of defective code. E.g., if a certain input is
provided to defective code, it may cause an exception, or go into an
infinite loop, or store an incorrect value in an internal variable.
A fault is not normally visible to users, only the
[failure](#failure) is visible.
#### Failure
*n.* The user-visible result of a [fault](#fault). E.g., an error
message or an incorrect result. This is evidence that can be
reported in a defect report. Developers use failure evidence during
debugging to eventually find and remove [defects](#defect).
### QA Goals Terms
#### Functionality > Correctness
Correctness is the most basic quality goal. It means that, when
valid inputs are given and the system is in a valid state and under
reasonable load, the system's behavior and results will be correct.
#### Functionality > Robustness
Robustness is the system's ability to gracefully handle
invalid inputs. It should never be possible for any user input to
crash the system or corrupt data, even if that user input is
abnormal, unexpected, or malicious.
#### Functionality > Accuracy
Accuracy refers to the mathematical precision of calculations done
by the system. Any system that does numeric calculations must
consider accuracy, e.g., financial or scientific applications.
#### Functionality > Compatibility
Systems that claim to follow standards or claim compatibility with
existing systems must adhere to the relevant file formats,
protocols, and APIs. The relevant standards are linked at the top of
this document.
#### Functionality > Factual correctness
Is the data in the system a true representation of the real world?
Any system that contains initial data or gathers data about the real
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
#### Usability > Understandability and Readability
Users need to understand the system to use it. The basic metaphor
should be understandable and appropriate to user tasks. Some defects
in understandability include unclear metaphors, poor or hard-to-see
labels, lack of feedback to confirm the effects of user actions, and
missing or inadequate on-line help.
#### Usability > Learnability and Memorability
Every user interface contains some details that users will need to
learn and remember. E.g., Alt-F to open the "File" menu. UI cues and
rules can make these details easier to learn and remember. E.g., the
"F" is underlined and, as a rule, the first letter is usually the
accelerator key.
#### Usability > Task support
This is the quality of match between user tasks and the system's UI.
Task support defects are cases where the system forces the user to
take unnatural steps to accomplish a task or where the user is given
no support for a difficult step in a task. E.g., must the user
invent an 8-character filename for their "Christmas card list"?
E.g., must users total their own tax deductions?
#### Usability > Efficiency
Users should be able to accomplish common tasks with
reasonable effort. Common tasks should be possible with only one or
two steps. The difficulty of each step should also be considered.
E.g., does the user have to remember a long code number or click on
a very small button?
#### Usability > Safety
Humans are error-prone, but the negative effects of common errors
should be limited. E.g., users should realize that a given command
will delete data, and be asked to confirm their intent or have the
option to undo.
#### Usability > Consistency and Familiarity
Users should be able to apply their past experience from other
similar systems. This means that user interface standards should be
followed, and common conventions should be used whenever possible.
Also, UI elements that appear in several parts of the UI should be
used consistently, unless another UI quality takes priority. E.g.,
if most currency entry fields do not require a dollar-sign, then one
that does demand it is a consistency defect, unless there is a real
chance that the user is dealing with anoD-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
in his/her task.
#### Usability > Subjective satisfactionD-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
Users should feel generally satisfied with the UI. This is a
subjective quality that sums up the other user interface qualities
as well as aesthetics.
#### Security
The system should allow usage only by authorized users, and restrict
usage based on permissions. The system should not allow users to
side-step security rule or exploit security holes. E.g., all user
input should be validated and any malicious input should
be rejected.
#### Reliability > Consistency under load
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
#### Reliability > Consistency under concurrency
Systems that allow concurrent access by multiple users, or that use
concurrency internally, should be free of race conditions
and deadlock.
#### Reliability > Availability under load
Every system has some capacity limits. What happens when those
limits are exceeded? The system should continue to service those
requests that it is capable of handling. It should not crash or sD-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
processing all requests.
#### Reliability > Longevity
The system should continue to operate as long as it is needed. ItD-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
should not gradually use up a limited resource. Example longevityD-DIAGRAM
D-DIAGRAM
D-DIAGRAM
D-DIAGRAM
defects include memory leaks or filling the disk with log files.
#### Efficiency
The system's operations should execute quickly, with reasonable use
of machine and network resources. E.g., if one user does one
operation, it should execute efficiently.
#### Scalability
Scalability is a general quality that holds when the system
continues to satisfy its requirements when various usage parameters
are increased. E.g., a file server might be scalable to a high
number of users, or to very large files or very high capacity disks.
Several specific scalability goals are listed below.
#### Scalability > Performance under load
This is a specific type of scalability goal dealing with the
performance of the system at times when it is servicing many
requests from many users.
#### Scalability > Large data volume
This is a specific type of scalability goal dealing with the ability
for the system to handle large data sets. Operations should continue
to be correct and efficient as data set size increases. Furthermore,
the user interface should still be usable as the data presented to
users increases in length.
#### Operability
The long-term needs of system administrators should be
reliably supported. E.g., is the system easy to install? Can the
administrator recover from a crash? Is there sufficient log output
to diagnose problems in the field? Can the system's data be backed
up without downtime? Can the system be upgraded practically?
#### Maintainability > Understandability
Will it be easy for (future) developers to understand how the system
works?
#### Maintainability > Evolvability
Can the system easily be modified and extended over time?
#### Maintainability > Testability
Can the system easily be tested? Do the requirements precisely
specify possible inputs and the desired results? Can the system be
tested in parts? When failures are observed, can they be traced back
to defects in specific components (i.e., debugging)? Is testing
practical with the available testing tools?
### Additional Standard Terms
For additional standard terms, see the following reference sites:
- [Dictionary.com](http://www.dictionary.com/)
- [Whatis.com](http://www.whatis.com/)
- [NIST Dictionary of Algorithms and Data Structures](http://www.nist.gov/dads/)
- [Free on-line dictionary of computing](http:/http://foldoc.doc.ic.ac.uk/foldoc/index.html)
- [IBM's glossary of computing terms](http://www-3.ibm.com/ibm/terminology/goc/gocmain.htm)
- [Jargon File](http://www.jargon.org/)

View File

@ -0,0 +1,113 @@
**Process impact:** This file as a dictionary of terms defined as they
are used during the project. Writing out the definitions of terms and
acronyms here helps keep other documents more concise and precise. A
shared glossary helps prevent misunderstandings and makes it easier for
new team members to be productive.
Jump to: [A](#a) | [B](#b) | [C](#c) | [D](#d) | [E](#e) | [F](#f) |
[G](#g) | [H](#g) | [I](#i) | [J](#j) | [K](#k) | [L](#l) | [M](#m) |
[N](#n) | [O](#o) | [P](#p) | [Q](#q) | [R](#r) | [S](#s) | [T](#t) |
[U](#u) | [V](#v) | [W](#w) | [X](#x) | [Y](#y) | [Z](#z) |
[Standard terms](glossary-std.html#standard_terms)
### Project-specific Terms
*TIPs:*
- *Define HTML anchors on your terms with id="TERMNAME" so that other
documents can link to the definition of specific terms.*
- *If there is any question about the meaning of a term, note it here.
If someone (e.g., the customer) gave you a definition to use, note
that here too. If something is best defined by using a hyperlink to
another document or website, include a hyperlink in the definition.*
- *If a term was used in the past, but is no longer going to be used,
you should keep it in the list, mark it as "deprecated", and link to
the term or terms that replace it. E.g., deprecated standard term
[bug](glossary-std.html#bug).*
- *Define only project-specific terms, or ones that a new team member
would not know. Don't define standard textbook terms that can be
easily found elsewhere.*
- *This glossary can serve as simple domain model or data dictionary.
You can define important data objects by describing their meaning
and key attributes. For example, see [student](#student) and
[GPA](#gpa).*
#### A
#### B
#### C
##### ::Class standing
- ::Computed attribute of [student](#student) based on number of
academic units completed. Used to determine priority in
course enrollment.
- ::Real-world meaning of values:
| | |
|-------------|---------------------------------|
| ::Freshman | ::Less than 90 units |
| ::Sophomore | ::Between 90 and 180 units |
| ::Junior | ::Between 180 and 270 units |
| ::Senior | ::More than 270 units completed |
#### D
#### G
##### ::GEF
::*n.* The [Graph Editing Framework](http://gef.tigris.org/). An open
source library for editing diagrams (boxes and arrows).
##### ::GPA
::*n.* Grade Point Average. GPA is a float between 0.00 and 4.00,
accurate to 2 decimal places. Computed from average of completed
course grades in transcript weighted by course units. Used to
determine student ranking, and to trigger Dean's List and
academic probation.
#### I
##### ::ICS
::*n.* Acronym for the [School of Information and Computer
Science](http://www.ics.uci.edu/) at [UC Irvine](http://www.uci.edu/).
#### S
##### ::Student
::*n.* A person who attends a school to earn a degree. Persistent
attributes include: student\_id\_number (primary key), GPA, major,
and years\_at\_school.
##### ::Senior
::*n.* A senior is special type of [undergraduate](#undergraduate) who
has a certain number of course credits on his or her transcript.
Years\_at\_school does not determine senior standing. TODO: how many
credits needed?
#### T
##### ::Term1D-DIAGRAM
::Definition1
##### ::Term2
- ::Definition2a
- ::Definition2b
##### ::Term3
::Definition3
#### U
##### ::Undergraduate
::A type of [student](#student). *TODO: add more detail.*

View File

@ -0,0 +1,57 @@
### Mission and Scope
*TODO: Answer these questions in your own words by filling in each*
#### What problem does this project address?
::2-4 SENTENCE PROBLEM
#### What is the goal of this project?
::2-4 SENTENCE GOAL
#### What is the scope of this project?
::2-4 SENTENCE SCOPE
#### What development methodology is being used?
::See our [software development methodology](sdm) document.
#### Where should a new team member start?
::For more information, see the [project proposal](Proposal).
### Status
*TODO: Briefly describe the status of this project. E.g., what phase are
you in? And, what is your next major milestone? Detailed project status
is written in the status reports, not here.*
::We have completed our second beta release and are currently working on
adding more of the functionality described in our product
[specification](srs) and fixing defects.
::The next major milestone is a third beta release with nearly complete
functionality and a wider set of testers.
### Project Documents
|By Activity |Documents |
|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Inception: | [Home](Home), [Project Proposal](Proposal), [Target Audience and Benefits](Target-and-Benefits), [Statement of User Needs](User-Needs) |
| Reference: | [Glossary](Glossary), [Software Development Methodology](SDM), [Document Cross Reference](Document-Cross-Ref), [All-in-one project summary](Summary) |
| Elaboration: | [Project Plan](Project-Plan), [Software Requirements Specification](SRS), [Feature Set](Feature-Set), [Use Case Suite](Use-Case-Suite), [Design](Design), [QA Plan](QA-Plan), [Test Suite](Test-Suite) |
| Construction: | [Review Meeting Notes](Review-Meeting-Notes), [Implementation Notes](Implementation-Notes), [User Guide](User-Guide), [FAQ / Troubleshooting Guide](FAQ) |
| Transition: | [Install / Quick Start](Installation-Guide), [Demo Script](Demo-Script), [Release notes](Release-Notes), [Release checklist](Release-Checklist), [Post Mortem](Post-Mortem) |
| Continuous: | [Status Report](Status-Report) |
|By Audience |Documents |
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For Everyone: | [Home](Home), [Project Proposal](Proposal), [Target Audience and Benefits](Target-and-Benefits), [Statement of User Needs](User-Needs), [Software Requirements Specification](SRS), [Project Plan](Project-plan), [Release Checklist](Release-Checklist), [Glossary](Glossary)|
| For Management: | [Project Resource Needs](Resource-Needs), [Status Report](Status-Report) |
| For Developers: | [Design](Design), [Review Meeting Notes](Review-Meeting-Notes), [Software Development Methodology](SDM) |
| For QA: | [QA Plan](QA-Plan) |
| For End Users: | [Install / Quick start](Installation-Guide), [User Guide](User-Guide), [Release Notes](Release-Notes) |
| For Support and Ops:| [Implementation Notes](Implementation-Notes), [FAQ / Troubleshooting Guide](FAQ) |
| For Sales/Legal: | [Demo Script](Demo-Script), [Legal Issues](Legal) |

View File

@ -0,0 +1,215 @@
##### Project
::[PROJECT-NAME](Home)
##### Release(s):
::X.Y.Z
##### Related Documents
- [Software Requirements Specification](SRS)
- [Release notes](Release-Notes)
- [FAQ](FAQ)
- [Glossary](Glossary)
---
**Process impact:** This document is a brief and fairly technical
discussion of how the system works under ideal conditions. It is also
known as a "theory of operation" document. It should describe key
algorithms, technology dependencies, and operational issues. Much of the
content of this document can be drawn from design documents. This
document will be used by the QA, technical support, and operations
groups. The goal is to give those groups the information they need to
understand, manage, or begin to troubleshoot the system (i.e., recognize
certain behavior as normal or abnormal). If significantly more
information is needed, it should be organized into a larger "operations
guide".
### Type of Implementation
*TODO: Fill in information that will help other engineers understand this
system at-a-glance. Feel free to use relevant technical terms and name
specific technology platforms.*
#### Type of system
- ::Desktop GUI application ||
- ::Unix-style command ||
- ::Server-side web application ||
- ::Web service ||
- ::Client-side applet ||
- ::Embedded application ||
- ::Reusable library ||
- ::Reusable class framework ||
- ::Browser Plug-in
#### Programming Language(s)
- ::Java ||
- ::Perl, Unix shell scripts
#### Data Storage
- ::Flat files using XML ||
- ::Flat files using Java properties file format ||
- ::Flat files using Java object serialization format ||
- ::SQL database: MySQL
#### UI Technologies
- ::Java Swing ||
- ::XHTML, CSS, JavaScript
##### Security Technologies
- ::Authentication: None needed ||
- ::Authentication: Local username and password file ||
- ::Authentication: LDAP ||
- ::Authorization: Operating system file ownership and read-write-execute flags ||
- ::Authorization: Access control lists ||
- ::Encryption: None needed ||
- ::Encryption: SSL
### Runtime Environment
*TODO: List and describe runtime objects that make up a running system.
These objects may be referred to by name in the sections below.*
#### Processes
- ::Main application process
- ::Client and server processes
- ::Cron tasks
- ::Operating system services or drivers
#### Configuration Files
- ::PRODUCT-NAME.conf: stores application configuration in Java properties file format.
- ::Section of httpd.conf: configures components of the Apache webserver
#### Database Table
- ::TABLE_ONE: Each row represents a ...
- ::TABLE_TWO: Each row represents a ...
- ::TABLE_THREE: Each row represents a ...
- ::See the persistence design document.
#### Data Files
- ::*.ext: Data files saved by the user on their local hard disk.
- ::/var/PRODUCT-NAME/upload-XXXX.dat: Files uploaded to the server.
#### Temporary Files
- ::/tmp/PRODUCT-NAME.pid: Process ID of the currently running server process.
- ::/tmp/upload-XXXX.dat: Files uploaded to the server before they are processed.
#### Log Files
- ::error.log: Serious errors are put in the normal Apache error log. Must be writable by Unix user httpd.
- ::PRODUCT-NAME.log: Messages indicating the progress of normal operations and some errors. Must be writable by Unix user httpd.
- ::Log files are rotated nightly. Old logs are archived in ANOTHER LOCATION.
### Implementation of Specific Features
*TODO: Write short descriptions of interesting or unexpected algorithms,
limiting assumptions, or any other implementation detail that will
impact the work of other groups. E.g., long-running operations that must
not be interrupted. E.g., start up or shutdown scripts that are
automatically run by the operating system.*
- ::Feature name: 1-3 SENTENCE DESCRIPTION
- ::Feature name: 1-3 SENTENCE DESCRIPTION
- ::Feature name: 1-3 SENTENCE DESCRIPTION
- ::DETAILS
- ::DETAILS
- ::DETAILS
- ::Feature name: 1-3 SENTENCE DESCRIPTION
- ::DETAILS
- ::DETAILS
- ::DETAILS
### Operational Procedures
*TODO: Briefly describe procedures that should be followed by operations
engineers when the system is being run in an ASP production environment.*
#### Install
::See the [installation guide](Installation-Guide)
#### Upgrade
::See the [installation guide](Installation-Guide)
#### Start Server
1. ::STEP 1
2. ::STEP 2
3. ::STEP 3
#### Stop Server
1. ::STEP 1
2. ::STEP 2
3. ::STEP 3D-DIAGRAM
#### Reload Config Files
1. ::STEP 1
2. ::STEP 2
3. ::STEP 3
#### Monitor Activity
::Watch the PRODUCT-NAME.log and error.log.
#### Periodic Cleanup
::On rare occasion, /tmp/upload-XXXX.dat files can be left behind. Any such files that are more than a day old can safely be removed.
### Security
*TODO: Write notes on security to help operations engineers keep the
system secure while it is in operation.*
We take the following precautions to make the system secure
- ::STEP
- ::STEP
- ::STEP
The security of the system depends on the following external factors
- ::STEP
- ::STEP
- ::STEP
### Performance and Scalability
*TODO: Write notes on performance and scalability to help operations
engineers operate the system efficiently.*
::NOTES ON PERFORMANCE.
::NOTES ON SCALABILITY.
### Implementation Notes Checklist
Do these implementation notes provide enough information for operations engineers?
- ::Yes, these notes have been reviewed by the operations team and
requested changes have been incorporated.
- ::No, these notes only summarize parts of a larger
[operations manual](LINK-TO-OPERTIONS-MANUAL).
- ::No, a member of the development team is available on-call whenever
the operations team may need help. This is listed in the
[Resource Needs](Resource-Needs) document and in the
[on-call schedule](LINK-TO-ON-CALL-SCHEDULE).
Have these implementation notes been communicated to the operations and development teams and other stakeholders?
- ::Yes, everyone has had a chance to review them. Feedback is welcome.
- ::Yes, it has been posted to the project website.
- ::No, some developers or operations engineers are not aware of
this document. This is a risk that is noted in the
[Risk Management](Project-Plan#risk-management) section of the
[Project Plan](Project-Plan).

View File

@ -0,0 +1,95 @@
*TODO: Fill in information about this product. Make sure to use the
**product** name and **external** release number, not internal
information.*
##### Product:
::PRODUCT-NAME
##### Release Number:
::X.Y.Z
##### Release Date:
::YEAR/MONTH/DAY
##### Customer Support:
:: For more information or support, please visit our
[website](http://www.COMPANY.com/products/PRODUCT-NAME/) or
email us at <support@COMPANY.com>
---
### Introduction
::This document describes how to install and get started with
PRODUCT-NAME.
### Minimal System Requirements
::System requirements are described in the [release notes](Release-Notes).
### Installation
*TODO: Give detailed installation instructions. Make sure to test these
instructions by doing them yourself on a target machine.*
*TIP: For development releases, or products that are reusable components
rather than end-user applications, you should include information on
needed development and bugging tools, e.g., Ant and JUnit.*
#### What other software must be installed first?
::Before you can install this product, you must install the following
packages:
- ::[Java SDK](http://java.sun.com/)
- ::[Apache Tomcat](http://jakarta.apache.org/)
- ::[MySQL database](http://mysql.com/)
- ::[OTHER PACKAGES](http://)
#### How do I install PRODUCT-NAME?
:: Please follow these steps
1. ::STEP
2. ::STEP
- ::SUB-STEP
3. ::STEP
4. ::STEP
#### How can I uninstall PRODUCT-NAME?
1. ::STEP
2. ::STEP
- ::SUB-STEP
3. ::STEP
4. ::STEP
#### What if I encounter problems?
::Please see the troubleshooting section in the [FAQ](FAQ).
### Getting Started
*TODO: Briefly describe how the user would accomplish one or two of the
main use cases for new users. For development releases or reusable
components, include instructions on running unit tests.*
#### How can I run post-install unit tests?
1. :Compile the source code by typing "ant"
2. :Run unit tests by typing "ant test"
- ::A brief report will be shown on the console
- ::A detailed test report for any failed tests will be
in build/test-out.
#### ::How can I quickly get started using PRODUCT-NAME?
1. ::STEP
2. ::STEP
- ::SUB-STEP
3. ::STEP
4. ::STEP

View File

@ -0,0 +1,103 @@
##### Related Documents
- [User Needs](User-Needs)
- [Interview Notes](interview-notes.html)
---
**Process impact:** This checklist will help you plan customer
interviews.
### Pre-Interview Checklist
1. Decide what goals you want to accomplish
2. Prepare a list of questions
- Ask about things you know you need to find out, based on your
current understanding of the requirements
- Keep questions simple. Don't use multi-part questions, break
complex topics into individual questions.
- Confirm key assumptions. E.g., "You are the one who actually
would use this software, right?" "The total needs to be
displayed and updated as each item is scanned, right?"
- Avoid leading or multiple-choice questions because the right
answer might be one that you don't know about yet. E.g., WRONG:
"Would you log in to the system from your desk here or from
home?" RIGHT: "Where are some of the places you would be sitting
when you log in?" "Here in my office, but also when I work with
others sometimes I log in from their office or from a machine in
the lab or conference room... so, I don't want a cookie saved
there."
- Try to find out the priority of each requirement: essential,
expected, desired, or optional.
- Write some more open-ended questions to see if new important
requirements come up.
- Don't ask too many questions that seem out of scope, you could
accidentally change the scope or set incorrect expectations.
E.g., "Would you like the system to also do ten other cool
things?" "Sure!"
3. Select interviewees that represent all important stakeholders
4. Review your questions. Do you think they can be answered? Will they
help achieve your goals? If not, go back and revise.
5. Decide whether you want to do this interview via email, telephone,
or in person
6. Schedule an interview a time and place for the
interviewee's convenience. Plan on the interview lasting one hour.
### Interview Checklist
1. Be prompt, courteous, and business-like
2. Introduce yourself and explain why you are there
3. Make sure that you are interviewing the person you think you are.
Get their contact information (e.g., email address) if you don't
already have it.
4. Ask permission to take notes. Don't record or video tape.
5. Confirm the amount of time you and the interviewee have for
this session.
6. Give a quick indication of the type and number of questions that you
have
7. Work through the questions.
8. Listen. That is why you are there.
9. If the interviewee refers to existing documents, systems, equipment,
or people, make sure that you understand what he or she is
talking about. If it is important, ask if you may have a copy or
screenshot (but, don't ask for anything containing proprietary
information), or make a note of the important aspects of the items
referred to. Note the URLs of any existing public
websites discussed.
10. Try not to answer the questions yourself, or to react to interviewee
requests by making promises to solve problems. Interviews are for
understanding the problems, not solving them or setting schedules
or deliverables.
11. Write down action items to follow up on finding more information.
E.g., if the interviewee starts explaining at length something that
you know you can learn on your own, or if they don't know the answer
and start speculating at length, you should try to move on the
next question.
12. If you find that you have prepared the wrong questions, focus on
getting information that will help you prepare the right
follow-up questions.
13. Finish on time. If you need more time, continue via email or
another meeting.
14. Summarize action items that you will follow up on
15. Ask if the interviewee has any questions for you, or if there was
something more that they wanted you to ask.
16. Make sure to leave contact information
17. Thank the interviewee for their time
### Post-Interview Checklist
1. Within 24 hours, read your notes and fill in any important details
that were said but not written down
2. Type up your notes so that they can be shared with the team and
archived
3. Formulate any important follow-up questions
4. Within 2-3 days, send a follow-up email message to
- Thank the interviewee again
- Confirm that you have their correct email address, and make it
easier for them to reply to you
- Ask any important follow-up questions
- Give status on your action items, if any. E.g., "I searched
Google for that product you mentioned and I couldn't find a
users manual, but I did find a magazine review of it." Or,
"After I interviewed you, I spoke with Bob, and he confirmed
that some current products do cost $0.00."

View File

@ -0,0 +1,98 @@
##### Project
::[PROJECT-NAME](Home)
##### Interviewer(s)
::PERSON-NAME
##### Interviewee(s)
::PERSON-NAME
##### Date of Interview
::DATE
##### Interview Location
::LOCATION
##### Related Documents
- [Project proposal](Proposal) > [Target audience and benefits](Target-and-Benefits)
- [Interview checklist](Interview-Checklist)
- [Glossary](Glossary)
---
*TODO: Copy this file once for each interview. Fill in the details. Link
to this file from the "Notes from Interviews and Brainstorming" section
of user-needs.md.*
**Process impact:** Planning questions for interviews with stakeholders
is key to effective requirements gathering. Good requirements are needed
to build the right system. These notes should be kept as part of the
documentation on [user needs](User-Needs) are referred to when the
[software requirements specification](SRS) is written or updated.
### Interview Questions and Answers
*TODO: Before the interview, plan the questions you will ask. Afterwords,
type up the answers you received and any additional questions and
answers, and any new follow-up questions.*
#### ::How did you learn about the need for this product?
::ANSWER
#### ::What types of users are likely to use this product?
::ANSWER
#### ::Can you give an example of how a user might actually use the product?
::ANSWER
#### ::Is there any risk or downside to using the product?
::ANSWER
#### ::QUESTION1
::ANSWER1
#### ::QUESTION2
::ANSWER2
#### ::QUESTION3
::ANSWER3
#### QUESTION4
::ANSWER4
### New Questions and Action Items
*TODO: Often early interviews will raise more questions than they answer.
Note these new questions and what you must do to find the answer.*
- ::Can we do X?
- ::Do we support Y?
- ::Action item: research topic Z
- ::Action item: Send follow-up email as per [post-interview checklist](Interview-Checklist#post-interview-checklist)
- ::Action item: prepare for next interview with PERSON(S) on DATE
### Other Interview Notes
*TODO: Note anything else that came out of the interview, either
explicitly or implicitly. Remember to confirm things that you picked up
implicitly if there is any doubt. E.g., make a note if the interviewee
uses an unusual meaning for a certain term. Add links to any documents
provided to you by the interviewee.*
- ::NOTE
- ::NOTE
- ::NOTE

View File

@ -0,0 +1,126 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Release Audience:
- ::General availability release ||
- ::Customer-specific release: CUSTOMER(S) ||
- ::Developer release (Internal usage only) ||
- ::Early access release (Controlled external access)
##### Intended Product License:
::Commercial license
##### Related Documents
- [Project proposal](Proposal) > [Target audience and benefits](Target-and-Benefits)
- [Project Plan](Project-Plan) > [Resource needs](Resource-Needs)
- [Glossary](Glossary)
---
**Process impact:** This document outlines legal issues that may affect
this release. Failure to carefully consider these issues may put the
development organization at risk for legal action.
*TODO: Fill in the information above and below. Add or remove rows as
needed. Use the worksheet to help identify legal issues. Seek
professional counsel for review as needed.*
### Ownership of Intellectual Property
| Component | Owner | License | Status | Comments |
|----------------------------|--------------|----------------------|-----------------------------------------------|----------------------------------------------------------------|
| ::Product name | ::Us | ::Trademark | ::Registration pending | ::We must use "(TM)", not "(R)" |
| ::Database | ::VENDOR | ::Commercial license | ::In compliance, paid normal fee | ::Limits us to 2 CPUs/server |
| ::Encryption library | ::VENDOR | ::Commercial license | ::In compliance, signed partnership agreement | |
| ::Clip-art graphics | ::None | ::Public Domain | ::In compliance | |
| ::Sound driver library | ::OS Project | ::BSD | ::In compliance | |
| ::Search engine indexer | ::OS Project | ::GPL | ::In compliance | ::Indexer runs in separate process, does not make our code GPL |
| ::Other library | ::OS Project | ::BSD | ::In compliance | |
| ::Other data | ::Us | ::Copyrighted | ::In compliance | |
| ::Special algorithm patent | ::Us | ::Patent pending | ::In compliance | ::Patent search done, patent application submitted |
### Regulatory Compliance
| Type | Regulation | Status | Comments |
|--------------------------|---------------------------------------------------|-----------------|-----------------------------------------------------------|
| ::Export | ::Strong encryption exports must be declared | ::In compliance | ::We will not distribute out of country |
| ::Privacy | ::Cannot collect personal information from minors | ::In compliance | ::We ask for user age before asking for other information |
| ::Industry certification | ::Game industry rating | ::In compliance | ::We follow guidelines for "Everyone" rating |
> **Possible Status Values**
>
> - In compliance: we are OK to go ahead with this release
> - Waived: we decided not to consider this aspect for this release
> - Violated: we are not conforming. Comment should describe impact.
### Legal Issues Checklist
The goal of this checklist is to help expose legal issues that might
otherwise be missed. It does not help with the actual management of
legal issues.
*TODO: Answer the questions below. If multiple sample answers are
provided, delete the ones that do not apply. Edit any provided answers
as needed.*
#### Does the development organization hold trademarks on the product name and any other names used in marketing the product?
::Yes. Make sure to defend your ownership.
::No. Make sure not to impinge on the trademarks of others.
#### Does the development organization hold or license patents on intellectual property that is used in the product?
::Yes. Make sure to defend your ownership.
::No. Make sure not to impinge on the patents of others.
#### Does the development organization hold or license copyrights on source code that is used in the product?
::Yes. Make sure to defend your ownership.
::No. Make sure not to impinge on the patents of others.
#### For each component in the product, is that component being used in a way that complies with its license?
::Fill in details in table above.
#### For each piece of copyrighted data in the product, is that data being used in a way that complies with its license?
::Fill in details in table above.
#### Was any component or data produced by another organization under contract?
::Yes. Review the contract details for ownership and licensing.
::No. No action required.
#### Does the product use technologies that are under export control?
::Yes. But, we have no plans to export.
::Yes. Take steps to obtain needed export permissions.
::No. No action required.
#### Does the product need to meet industry-specific regulations?
::Yes. Take steps to meet them. Specifically...
::No. No action needed.
#### Does the product satisfy corporate policies (e.g., on privacy and security)?
::Yes. Describe how each policy is satisfied..
::No. Describe steps to bring the product into compliance.
::No. No policies apply.

View File

@ -0,0 +1,73 @@
Do not modify or delete this file. This file describes the license under
which you may use the ReadySET templates.
### Copyright and License
Copyright (C) 2003-2004 Jason Robbins. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of these files must retain the above copyright notice, this list of conditions and the following disclaimer. The individual template files must retain the copyright footnote whenever they are used as templates.
2. The name "ReadySET" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact jrobbins@jrobbins.org.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
### License FAQ
---
#### Can I use these templates at my company?
Yes, absolutely. Once you fill in the template with detailed
information about a specific project, you are free to do what you
want with them in the context of that project. ***You may even hide the
template copyright statement***: the best way to do that is to edit the
file inst.css.
#### Can I modify these templates for use on several projects at my company?
Yes, absolutely. You may modify and distribute these templates to
others, so long as you retain this file and the footnote with the
copyright statement clearly visible in each file.
#### Can I include these templates as part of a commercial product?
If you use the templates and fill in details about a given product,
go ahead. If you are thinking of making a product that includes the
templates for use *as templates*, you must retain this file and the
copyright statement in a visible footnote. An enhanced commercial
version of these templates, [ReadySETPro](http://www.readysetpro.com/),
is already in development
#### Can I combine these templates with other templates or documents?
Sure, go ahead. This license is not "viral", it does not mean that
anything you do must be open source or covered under the
same license.
#### If I enhance the templates, must I give those enhancements back to the open source project?
No, but it would be very welcome. Even if you don't modify the
templates, you can share your "words of wisdom". For more
information on contributing, see the
[ReadySET home page](http://readyset.tigris.org/).
#### ReadySET seems too good to be true. What is the catch? Why would anyone buy a commercial version?
There is no catch. However, the scope of ReadySET is limited to only
most common needs of development projects. It is easy to get started
with ReadySET, but [ReadySET Pro](http://www.readysetpro.com/) holds
much more value for corporate users.

View File

@ -0,0 +1,262 @@
##### Project
::[PROJECT-NAME](Home)
##### Project Time-frame:
::START-DATE - END-DATE
##### Attached worksheets:
- Plan > [Resource Needs](Resource-Needs)
##### Related Documents
- [Project Proposal](Proposal) > [Target audience and benefits](Target-and-Benefits)
- [Software development methodology](SDM)
- [Glossary](Glossary)
---
**Process impact:** This plan will be used to evaluate and manage the
project. Key assumptions that affect the plan should be documented here.
The project plan should be updated throughout the life-time of the
project.
*TODO: Fill in the information above and below. Add or remove rows as
needed. Use the worksheet to help identify and scope resource needs.*
### Summary of Project
#### What are the business problem, scope, and goal of this project?
For a summary of this project, see the [Project proposal](Proposal).
#### Who will sponsor, manage, and lead the project?
- ::Sponsor: PERSON-NAME
- ::Manager: PERSON-NAME
- ::Technical lead: PERSON-NAME
#### What authority does the project manager have?
- ::Hire, dismiss, or reassign personnel in his/her department
- ::Hire contract employees or manage subcontractors
- ::Purchase equipment, software, and other needed capital
- ::Assign specific tasks to other departments
- ::Negotiate requirements and schedules with customers
- ::Negotiate with vendors, suppliers, and partners
#### What planning lessons were learned in previous releases?
::None yet. This is the first release.
- ::We can reduce training time, but it significantly increases development time.
- ::Maintaining a past release takes more than 20% of our time, due to low quality in that release.
- ::The customer seems to always change the requirements after the second demo.
- ::There are always defects. We planned time to test, but we forgot to plan time to fix the defects.
On this project, we will actually estimate the number of undetected defects.
- ::Issue XXXX made us realize that we forgot to plan time for DEVELOPMENT-TASK.
### Summary of Methodology
#### What general development approach will be used?
::THREE TO FIVE SENTENCES OR BULLETS HERE. COVER GENERAL APPROACH, IMPORTANT ASSUMPTIONS, KEY PRACTICES, AND PROJECT COORDINATION CONTROLS.
For more information see the [Software Development Methodology](SDM).
#### How will the project team be organized?
- ::The development team will consist of ...
- ::The change control board will consist of ...
#### What development and collaboration tools will be use?
::We plan to use the following tools extensively through out the project:
- ::Project website
- ::Project mailing lists
- ::Issue tracking system
- ::Version control system
- ::Automated build system
- ::Automated unit test system
#### How will changes be controlled?
- ::Requests for requirements changes will be tracked in the issue tracker
- ::The change control board ([CCB](Glossary#ccb)) will review requested changes and authorize work on them as appropriate
- ::After the [feature complete](Glossary#featurecomplete) milestone, no new features will be added to this release.
- ::After the [code complete](Glossary#codecomplete) milestone, no entirely new product source code will be added to this release.
- ::All source code commit log messages must refer to a specific issue ID, after the feature complete milestone.
#### How will this plan be updated?
::This project plan will be updated as needed throughout the project.
It will be placed under version control and instructions for
accessing it will be on the [project website](Home). Any
change to the plan will cause an automatic notification to be sent
to a project mailing list.
### Work Breakdown Structure and Estimates
*TODO: List tasks that will be needed for this project. Keep dividing
tasks into subtasks until you feel that you have enough detail to expose
risks and make reasonable estimates in ideal engineering hours.*
*TIP: Label each step uniquely to show its position in the WBS, e.g.,
Step 1.1.4.A. Use numbers for steps that you intend to do in sequence,
and use letters for steps that you intend to do in parallel. E.g., Step
1.1 comes before Steps 1.2.A and 1.2.B, but those two steps may be done
in parallel, and Step 1.3 will be done after all 1.2.\* steps have been
finished. Don't worry about renumbering if you delete a step.*
| Step | Description | Estimate |
|-----------|-----------------------------------------------------------|----------|
| 1. | ::Preparation | |
| 1.1. | ::Developer training | 30h |
| 2. | ::Inception | |
| 2.1. | ::Requirements gathering | 30h |
| 2.2. | ::Requirements specification | 20h |
| 2.3. | ::Requirements validation | 10h |
| 3. | ::Elaboration | |
| 3.1. | ::High-level design | 5h |
| 3.2. | ::Low-level design (break down by component) | |
| 3.2.A. | ::Object design | 10h |
| 3.2.B. | ::User interface design | 10h |
| 3.2.C. | ::Database design | 3h |
| 3.3. | ::Design review and evaluation | 5h |
| 4. | ::Construction | |
| 4.1.A. | ::System implementation | |
| 4.1.A.1. | ::Implement COMPONENT-NAME 1 | 25h |
| 4.1.A.2. | ::Implement COMPONENT-NAME 2 | 25h |
| 4.1.A.3. | ::Implement COMPONENT-NAME 3 | 25h |
| 4.1.A.4. | ::Implement COMPONENT-NAME 4 | 25h |
| 4.1.A.5. | ::Integrate Components (mostly done during implementation)| 5h |
| 4.1.B. | ::Technical documentation (break down by component) | 10h |
| 4.1.C. | ::User documentation (break down by component) | 10h |
| 4.1.D. | ::Testing | |
| 4.1.D.1. | ::Test planning | 10h |
| 4.1.D.2. | ::Test code implementation (break down by component) | 30h |
| 4.1.D.3. | ::Test execution | 10h |
| 4.2. | ::Implementation review and evaluation | 15h |
| 5. | ::Transition | |
| 5.A. | ::Release packaging | 3h |
| 5.B. | ::Documentation for other groups | 3h |
| 6. | ::Reflection | |
| 6.1. | ::Postmortem report | 10h |
| | ::Total | 329 hours|
### Deliverables in this Release
*TODO: List project deliverables in detail, with delivery dates.*
| Deliverable Name | Description | Delivery Date |
|------------------|---------------------------------------------------------------|---------------|
| Deliverable Name | ::Description | Delivery Date |
| Deliverable Name | ::Description | Delivery Date |
| Deliverable Name | ::Description Description Description Description Description | Delivery Date |
| Deliverable Name | ::Description | Delivery Date |
### Schedule for this Release
*TODO: Make the rows in this table match the steps in your WBS above. If
you have a large number of detailed steps, you can skip the most
detailed ones. The columns of the table represent weeks of calendar
time. For each cell in the table, enter the number of hours ideal
engineering time that the team will spend on that task that week. Total
your hours across and down.*
*TIP: These hours should total to the same as the total of the hours
listed in your [resource needs](Resource-Needs) document. And, the
hours for each type of effort resources needed should correspond to the
sum for each type of task.*
| Task \ Week | W-01 | W-02 | W-03 | W-04 | W-05 | W-06 | W-07 | W-08 | W-09 | W-10 | W-11 | W-12 | Task Total |
|-----------------|------|------|------|------|------|------|------|------|------|------|------|------|------------|
| ::1. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::2. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::3. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::4.1.A. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::4.1.B. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::4.1.C. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::4.1.D. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::4.2. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::5. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::6. | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| ::Weekly Totals | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
### Risk Management
*TODO: List and rank the major risks of this project, and what you plan
to do to mitigate each risk. If you don't plan to do anything to
mitigate the risk, state that. Use the risk list below, or the [risks
worksheet](Risks).*
Please see the [risks worksheet](Risks).
#### The main risks of this project are
1. ::There is a potential conflict between the goals of a high-quality appearance and one that is completely customizable. We can only succeed if players find the web site appealing, and game vendors can customize it with no more effort than would be needed to build a static website. We already have a design in mind that will address this risk and we will review it with a web site designer who worked for a game vendor site.
2. ::There are significant technical difficulties in building a web site and web application. This will be a risk because one person on our team has much experience with the relevant tools and technologies. Although the others will learn, we will certainly make some mistakes and sub-optimal choices. We will address this risk by scoping the project such that we have enough time to train and to review the design and implementation.
3. ::The schedule for this project is very short. We will manage this by planning a conservatively scoped functional core and series of functional enhancements that can be individually slipped to later releases if needed.
4. ::The performance of the system will be significantly impacted by the decisions made during the [database design task](#3.2.C). None of our current team members has experience with database optimization. To address this, we will arrange a review meeting with an experienced DBA or hire a consultant from the database vendor.
5. ::We could be underestimating known tasks.
HOW TO AVOID/MITIGATE?
6. ::We could be underestimating the impact of unknown tasks.
HOW TO AVOID/MITIGATE?
7. ::We could be underestimating the dependencies between tasks.
HOW TO AVOID/MITIGATE?
8. ::We could have misunderstood the customer's requirements.
HOW TO AVOID/MITIGATE?
9. ::The customer could change the requirements.
HOW TO AVOID/MITIGATE?
10. ::We could face major difficulties with the technology chosen for this project.
HOW TO AVOID/MITIGATE?
11. ::We could have low quality that demands significant rework.
HOW TO AVOID/MITIGATE?
12. ::We could incorrectly assess our progress until it is too late to react.
HOW TO AVOID/MITIGATE?
13. ::We could lose resources. E.g., team members could get sick, spend time on other projects, or quit.
HOW TO AVOID/MITIGATE?
14. ::There may be a mis-alignment of stakeholder goals or expectations.
HOW TO AVOID/MITIGATE?
### Project Planning Dependencies
#### Does this project conflict or compete for resources with any other project?
::No, this is the only project that we are working on.
::Yes, and we have determined how many hours each person can actually
dedicate to this project.
#### Are the same human or machine resources allocated to maintenance of past versions and/or planning of future versions during this release time period?
::No, this is the first release and we will not plan the next release.
::Yes, we predict that team members will spend an average of 20% of
their time maintaining previous releases and planning future
releases during this release time frame. Some weeks may be higher if
an urgent patch to a previous release is needed.
#### Does this project depend on the success of any other project?
::No, this project stands alone.
::Yes, project P1 must provide library L, and project P2 must prove
the usability of feature F, and....
#### Does any other project depend on this project?
::No, project is not producing any components that will be used in
other current projects.
::Yes, we must produce library L for our project and support users of
L in projects P1 and P2.
#### Are there any other important dependencies that will affect this project?
::No, everything is covered above.
::Yes. DETAILS....

View File

@ -0,0 +1,220 @@
##### Project
::[PROJECT-NAME](Home)
##### Project Time-frame:
::2003/1/16 to 2003/3/19
##### Summary:
::2-4 SENTENCE SUMMARY
##### Attached Worksheets:
Project Proposal > [Target audience and benefits](Target-and-Benefits)
##### Related Documents
- [Project plan](Project-Plan) > [Resource needs](Resource-Needs)
- [Glossary](Glossary)
---
**Process impact:** This proposal, along with drafts of related
documents, will be used by management to determine whether or not to
approve work on this project. A clear and precise project plan helps set
expectations that will be used later to evaluate the success of the
project.
### Background and Motivation
*TODO: Replace the example text below with text that describes your
project. What are the needs or problems that you are trying to address?
Why do these needs (still) exist? Why are these problems worth solving?
Who is the customer? Write 2-4 paragraphs.*
#### What is the setting and history behind this project?
::Video games were originally designed and built as stand-alone
systems with the user playing against the machine. Although many
advances have been made in game AI, humans still tend to enjoy
competing against other humans over a network. There is a social
aspect to network gaming where people form teams that play and
leagues that play at scheduled times and keep scores over a
prolonged period. This is important to video game vendors because it
can result in increased revenue and extend the sales life of
their products.
#### What is the problem to be addressed?
::There are 100 million users on the Internet, and hundreds of
websites dedicated to video game playing teams, called "clans". If
users have to explore to find the good clans that they can join, it
takes a lot of their time. There is a need for a faster way for
users to find high quality clan websites that interest them and that
will allow them to join.
#### What are some current approaches to this problem?
::Users can tell each other about clan websites, but that is not
scalable because it depends on manual steps by people who may not be
motivated or honest in their evaluations. There are already some
clan directory web sites, but they are not automated so they are
always out of date and do not rate the quality of the websites.
- ::[Example of current manually maintained clan website](#)
- ::[Link to existing competitor](#)
#### Why is this problem worth solving or worth solving better?
::A better clan directory service would be valuable because it could
greatly increase player satisfaction and allow them to spend more
time playing and less time searching. Implementing a better clan
directory would cause players to use that website rather than the
existing directories. The benefit to us could come in the form of
revenue from advertising and service fees from video game vendors.
#### How will this product be better than previous approaches?
::We add innovative new features. Our affiliate directory will be
larger an more detailed. We will offer built-in tools for managing
membership and organizing events such as game nights or tournaments.
::Our system will have similar functionality, but it will have much
better maintainability, scalability, and security.
::Our system will have similar functionality, but it is specifically
aimed at a market segment that is not served by competing products.
::This is a "me-too" product that will go head-to-head with very
similar competing products in the same market. The market is large
enough that we can be very happy with a share of it. Our unique
competitive advantages are in non-product area of our business such
as sales, marketing, partnerships, support, training, etc. The
product will have some simple built-in "hooks" that leverage
those advantages.
#### Where is there more information on this problem?
::The following pages provide additional background and motivation:
- ::[Magazine article on this topic](#)
- ::[Industry analysis's report on massive-multi-player game market](#)
- ::[Quotes from game players](#)
### Goal
#### What is the goal of this project?
::This project will produce an engine for clan directory websites that
allows players to quickly find, evaluate, and join clans.
#### What are the defining features and benefits of this product?
- ::Reusable website engine with functionality for creating,
editing, deleting, searching, categorizing, browsing, rating,
and commenting on clans. This automates all clan operations and
ensures that users will always find information that is
automatically up-to-date.
- ::The reusable website engine will have a highly configurable
appearance that allows it to match the look and feel of the
game. This allows the reusable website engine to have a
high-quality appearance that is just as good as existing
clan directories.
- ::The website engine will be secure and only allow users with the
proper permissions to edit, delete, or join a clan. This will
prevent cheating or the submission of false information.
#### Where are other documents that further explain the goal of this project?
- ::[Mock-up](LINK-TO-MOCKUP)
- ::[Early user stories](LINK-TO-EARLY-STORIES)
- ::[Quotes from potential customers](LINK-TO-QUOTES)
- ::[Comparison to existing competitors](LINK-TO-COMPARISON)
- ::[Draft feature list](LINK-TO-DRAFT-FEATURES)
### Scope
*TODO: Replace the sample text below with a clear statement of the scope
of your project. What are the high-level things that you plan to do, and
that you will not do? What are your important simplifying assumptions?
Try to guard against reasonable misunderstandings that might arise if
you did not explain the scope. It can take the form of a paragraph,
bullet list, in/out list, and/or UML context diagram.*
::We want to focus on the web application itself, and the features of that
application that help build a good gaming community.
::See the [context diagram](LINK-TO-CONTEXT-DIAGRAM).
- ::Work with common servers and browsers that we are already
familiar with.
- ::Allow easy customizations of fonts and colors, with the same basic
page layout.
- ::Enough security to greatly discourage abuse
- ::The web site content discusses a game, but it will not need to
actually integrate with any game software
| In Scope | Out of Scope |
|----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::Building a web application for use with standard web servers and application servers | ::Building a new web server or application server |
| ::Working the most popular browsers (IE6, NN7/Mozilla) | ::Working with uncommon or outdated browsers |
| ::Security in the form of user accounts, passwords, and permissions | ::Special security against hackers. Finding or patching security holes in existing software components. |
| ::One simple sample look-and-feel and instructions for customization | ::Our own high-quality look-and-feel. A library of look-and-feel options. |
| ::Database and server load and data volume that can be handled by one computer. | ::Managing a cluster of servers. |
| ::Keeping track of which users are in which clans | ::Tracking all user activity on the site and producing custom reports |
| ::Displaying advertisements to visitors. Billing advertisers for impressions. | ::Automatically selecting ads that fit the visitor's interests. On-line management of advertising or real-time reporting to advertisers. Participating in existing banner advertising affiliate networks. |
### Deliverables
*TODO: Briefly list project deliverables. When you are done, what will
you deliver to the customer? This can be copied from the draft project
plan and simplified to reduce technical detail.*
- ::Clan website directory engine
- ::Customization guide
- ::Sample look-and-feel
- ::On-line help for end users
- ::Command-line advertising configuration tool and report generator
### Risks and Rewards
#### What are the main risks of this project?
1. ::There is a potential conflict between the goals of a
high-quality appearance and one that is completely customizable.
We can only succeed if players find the web site appealing, and
game vendors can customize it with no more effort than would be
needed to build a static website. We already have a design in
mind that will address this risk and we will review it with a
web site designer who worked for a game vendor site.
2. ::There are significant technical difficulties in building a web
site and web application. This will be a risk because one person
on our team has much experience with the relevant tools
and technologies. Although the others will learn, we will
certainly make some mistakes and sub-optimal choices. We will
address this risk by scoping the project such that we have
enough time to train and to review the design
and implementation.
3. ::The schedule for this project is very short. We will manage this
by planning a conservatively scoped functional core and series
of functional enhancements that can be individually slipped to
later releases if needed.
#### What are the main rewards if this project succeeds?
::If we accomplish the elements of our plan, our clan directory
website engine will replace existing clan directory websites and
generate traffic which will result in advertising revenue and/or
hosting fees paid by game vendors. Our ability to overcome the
challenges above will determine time to market, the speed of
adoption, the amount of web traffic, and thus the generated revenue
over time.
### Project Plan
See attached draft of [project plan](Project-Plan)
and [resource needs](Resource-Needs).

View File

@ -0,0 +1,304 @@
*TODO: For each release, update this file by filling in answers to the
questions. In cases where multiple answers are already written, delete
those answers that do not apply.*
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number:
::X.Y.Z
##### Release Audience:
- ::General availability release ||
- ::Customer-specific release: CUSTOMER(S) ||
- ::Developer release (Internal usage only) ||
- ::Early access release (Controlled external access)
##### Attached Worksheets:
- QA plan > [Review meeting notes](Review-Meeting-Notes)
- QA plan > [System test case suite](Test-Suite)
- QA plan > [System test runs](Test-Run-Suite)
##### Related Documents
- [Software Requirements Specification](SRS)
- [Design](Design)
- [Project plan](Project-Plan)
- [Software development methodology](SDM)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** This document specifies quality goals, selects
strategies for assuring that those goals have been met, and details a
plan of action to carry out those strategies.
### Introduction
#### Why is this QA plan needed?
::"Quality" refers to all the good things that we would like to see in
our product. We build a quality product and assure its quality by
keeping quality in mind all the time and performing the selected
activities below. Testing is one QA activity, but it is not the best
or only one, other QA activities include the use of style guides and
checklists, review meetings, use of analysis tools, and careful
quality measurements and estimates. A plan is needed to select and
coordinate all the QA activities.
#### What QA lessons were learned in previous releases?
::None yet. This is the first release.
- ::Different browsers render the same HTML page differently, so we
must test each version of each supported browser.
- ::In a previous release, customers found that punctuation (e.g.,
quotation marks and less-than signs) were entered and processed
properly, but not displayed properly. From now on, we must test
both validation and display of special characters.
- ::Large data sets can sometimes make our system fail if the space
used for temporary data is used up. Our test plans should
include more data volume tests.
#### What is the scope of this QA plan?
::All components and aspects of the system will be evaluated in
this release.
::There are many quality goals and approaches to assuring them. Since
we have limited time and resources for this release, we will focus
on the following components and aspects:
- ::COMPONENT-1
- ::COMPONENT-2
- ::COMPONENT-3
- ::FEATURE-1
- ::FEATURE-2
#### What is the summary of this plan?
::In this release we will continue to use development practices that
support all of our quality goals, but we will focus on functional
correctness and robustness. We will do that with the following major
activities:
- ::using if-statements to test preconditions and assert statements
to test invariants and post-conditions
- ::conducting frequent reviews
- ::performing automated unit and regression testing with JUnit
- ::carrying out structured manual system testing
- ::keeping all issues up-to-date in an issue tracking database
### Quality Goals for this Release
*TODO: Add or edit goals to fit your project. Group them by priorities
that make sense for your project on this particular release.*
- ::Essential
- [Functionality > Correctness](Glossary-Standard-Terms#functionality--correctness)
- [Functionality > Robustness](Glossary-Standard-Terms#functionality--robustness)
- ::Expected
- [Functionality > Accuracy](Glossary-Standard-Terms#functionality--accuracy)
- [Functionality > Compatibility](Glossary-Standard-Terms#functionality--compatibility)
- [Functionality > Factual correctness](Glossary-Standard-Terms#functionality--factual-correctness)
- [Usability > Understandability and Readability](Glossary-Standard-Terms#usability--understandability-and-readability)
- [Usability > Learnability and Memorability](Glossary-Standard-Terms#usability--learnability-and-memorability)
- [Usability > Task support](Glossary-Standard-Terms#usability--task-support)
- [Usability > Efficiency](Glossary-Standard-Terms#usability--efficiency)
- [Usability > Safety](Glossary-Standard-Terms#usability--safety)
- [Usability > Consistency and Familiarity](Glossary-Standard-Terms#usability--consistency-and-familiarity)
- [Usability > Subjective satisfaction](Glossary-Standard-Terms#usability--subjective-satisfaction)
- [Security](Glossary-Standard-Terms#security)
- ::Desired
- [Reliability > Consistency under load](Glossary-Standard-Terms#reliability--consistency-under-load)
- [Reliability > Consistency under concurrency](Glossary-Standard-Terms#reliability--consistency-under-concurrency)
- [Reliability > Availability under load](Glossary-Standard-Terms#reliability--availability-under-load)
- [Reliability > Longevity](Glossary-Standard-Terms#reliability--longevity)
- [Efficiency](Glossary-Standard-Terms#efficiency)
- [Scalability](Glossary-Standard-Terms#scalability)
- [Scalability > Performance under load](Glossary-Standard-Terms#scalability--performance-under-load)
- [Scalability > Large data volume](Glossary-Standard-Terms#scalability--large-data-volume)
- [Operability](Glossary-Standard-Terms#operability)
- [Maintainability > Understandability](Glossary-Standard-Terms#maintainability--understandability)
- [Maintainability > Evolvability](Glossary-Standard-Terms#maintainability--evolvability)
- [Maintainability > Testability](Glossary-Standard-Terms#maintainability--testability)
### QA Strategy
*TODO: Consider the activities listed below and delete those that are not
applicable to your project. Edit and add new activities if needed. For
each activity, specify the coverage or frequency that you plan to
achieve. If you do not plan to perform an activity, write "N/A".*
<!-- Hint: view this large table with text wrapping turned off -->
| Activity | Coverage or Frequency | Description |
|--------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::Preconditions | <ul><li>::Every public method</li><li>::Every public method in COMPONENT-NAME</li><li>::All public methods that modify data</li></ul> | ::We will use if-statements at the beginning of public methods to validate each argument value. This helps to document assumptions and catch invalid values before they can cause faults. |
| ::Assertions | <ul><li>::Every private method</li><li>::Every private method in COMPONENT-NAME</li><li>::All private methods that modify data</li></ul> | ::Assertions will be used to validate all arguments to private methods. Since these methods are only called from our other methods, arguments passed to them should always be valid, unless our code is defective. Assertions will also be used to test class invariants and some postconditions. |
| ::Static analysis | <ul><li>::Strict compiler warnings</li><li>::Automated style checking</li><li>::XML validation</li><li>Detetect common errors</li></ul> | ::We will use source code analysis tools to automatically detect errors. Style checkers will help make all of our code consistent with our coding standards. XML validation ensures that each XML document conforms to its DTD. Lint-like tools help detect common programming errors. E.g.: [lint](http://www.freebsd.org/cgi/man.cgi?query=lint), [lclint/splint](http://www.splint.org/), [jlint](http://artho.com/jlint/), [checkstyle](http://sourceforge.net/projects/checkstyle/), [Jcsc](http://sourceforge.net/projects/jcsc), [PyLint](https://www.pylint.org/), [PyChecker](http://pychecker.sourceforge.net/), [Tidy](http://www.html-tidy.org/) |
| ::Buddy review | <ul><li>::All changes to release branches</li><li>::All changes to COMPONENT-NAME</li><li>::All changes</li></ul> | ::Whenever changes must be made to code on a release branch (e.g., to prepare a maintenance release) the change will be reviewed by another developer before it is committed. The goal is to make sure that fixes do not introduce new defects. |
| ::Review meetings | <ul><li>::Weekly</li><li>::Once before release</li><li>::Every source file</li></ul> | ::We will hold review meetings where developers will perform formal inspections of selected code or documents. We choose to spend a small, predetermined amount of time and try to maximize the results by selecting review documents carefully. In the review process we will use and maintain a variety of checklists. |
| ::Unit testing | <ul><li>::100% of public methods, and 75% of statements</li><li>::100% of public methods</li><li>::75% of statements</li></ul> | ::We will develop and maintain a unit test suite using the JUnit framework. We will consider the boundary conditions for each argument and test both sides of each boundary. Tests must be run and passed before each commit, and they will also be run by the testing team. Each public method will have at least one test. And, the overall test suite will exercise at least 75% of all executable statements in the system. |
| ::Manual system testing | <ul><li>::100% of UI screens and fields</li><li>::100% of specified requirements</li></ul> | ::The QA team will author and maintain a detailed written suite of manual tests to test the entire system through the user interface. This plan will be detailed enough that a person could repeatably carry out the tests from the test suite document and other associated documents. |
| ::Automated system testing | <ul><li>::100% of UI screens and fields</li><li>::100% of specified requirements</li></ul> | ::The QA team will use a system test automation tool to author and maintain a suite of test scripts to test the entire system through the user interface. |
| ::Regression testing | <ul><li>::Run all unit tests before each commit</li><li>::Run all unit tests nightly</li><li>::Add new unit test when verifying fixes</li></ul> | ::We will adopt a policy of frequently re-running all automated tests, including those that have previously been successful. This will help catch regressions (bugs that we thought were fixed, but that appear again). |
| ::Load, stress, and capacity testing | <ul><li>::Simple load testing</li><li>::Detailed analysis of each scalability parameter</li></ul> | ::We use a load testing tool and/or custom scripts to simulate heavy usage of the system. Load will be defined by scalability parameters such as number of concurrent users, number of transactions per second, or number/size of data items stored/processed. We will verify that the system can handle loads within its capacity without crashing, producing incorrect results, mixing up results for distinct users, or corrupting the data. We will verify that when capacity limits are exceeded, the system safely rejects, ignores, or defers requests that it cannot handle. |
| ::Beta testing | <ul><li>::4 current customers</li><li>::40 members of our developers network</li><li>::1000 members of the public</li></ul> | ::We will involve outsiders in a beta test, or early access, program. We will beta testers directions to focus on specific features of the system. We will actively follow up with beta testers to encourage them to report issues. |
| ::Instrumentation and monitoring | <ul><li>::Monitor our ASP servers</li><li>::Remotely monitor customer servers</li></ul> | ::As part of our SLA, we will monitor the behavior of servers to automatically detect service outages or performance degradation. We have policies and procedures in place for failure notification, escalation, and correction. |
| ::Field failure reports | <ul><li>::Prompt users to report failures</li><li>::Automatically report failures</li></ul> | ::We want to understand each post-deployment system failure and actively take steps to correct the defect. The system has built-in capabilities for gathering detailed information from each system failure (e.g., error message, stack traceback, operating system version). This information will be transmitted back to us so that we may analyze it and act on it. |
### QA Strategy Evaluation
*TODO: Use the following table to evaluate how well your QA Strategy will
assure your QA goals.*
| Goal | Preconditions | Assertions | Buddy review | Review meeting | Unit testing | Manual system testing | Overall assurance |
|-----------------|-----------------|--------------|----------------|------------------|----------------|-------------------------|---------------------|
| Functionality | ::Medium | ::Medium | ::Medium | ::High | ::High | ::High | ::Strong |
| Correctness | ::High | ::High | ::Medium | ::Medium | ::High | ::Medium | ::Strong |
| Robustness | ::High | ::High | ::Medium | ::Medium | ::High | ::Medium | ::Strong |
| Usability | ::None | ::None | ::None | ::High | ::None | ::Medium | ::Strong |
| Security | ::Medium | ::None | ::Medium | ::High | ::None | ::Medium | ::Strong |
| Reliability | ::None | ::Medium | ::Low | ::Medium | ::Medium | ::Medium | ::Weak |
| Efficiency | ::None | ::None | ::Low | ::Medium | ::None | ::Low | ::At-Risk |
| Scalability | ::None | ::None | ::Low | ::Medium | ::Low | ::Low | ::At-Risk |
| Operability | ::None | ::None | ::None | ::Low | ::None | ::Low | ::At-Risk |
| Maintainability | ::Medium | ::Low | ::Medium | ::High | ::Low | ::None | ::Weak |
Cell values in the table above are subjective estimates of the
effectiveness of each activity. This table helps to identify quality
goals that are not being adequately assured.
#### Evaluation cell values
- High: This activity gives a strong assurance that the goal has been
met in development.
- Medium: This activity gives a medium assurance that the goal has
been met in development.
- Low: This activity gives only a little assurance that the goal has
been met in development.
- None: This activity does not address the goal.
#### Overall assurance values
- Strong: The set of activities together provide strong assurance that
the goal has been met in development.
- Weak: The activities together provide limited assurance that the
goal has been met in development.
- At-Risk: There is little or no assurance that this goal has
been met.
Note: As a rule of thumb, it takes at least two "high" activities and
one "medium" to give a "strong" overall rating. Likewise, it takes at
least two "medium" and one "low" activities to rate a "weak" overall
rating.
### Plan of Action
*TODO: Adjust this plan to fit your project.*
*TODO: Once the plan is outlined, tasks should be assigned to individuals
and tracked to completion.*
1. Preconditions and Assertions
- ::Refine requirements document whenever preconditions are not
already determined
- ::Create validation functions for use by preconditions and
assertions, as needed
- ::Write preconditions and assertions in code
2. Review meetings
- ::Assign buddy reviewers whenever a change to a release branch is
considered
- ::Select an at-risk document or section of code for weekly review
meetings
- ::Each week, identify reviewers and schedule review meetings
- ::Reviewers study the material individually for 2 hours
- ::Reviewers meet to inspect the material for 2 hours
- ::Place [review meeting notes](Review-Meeting-Notes) in the
repository and track any issues identified in review meetings
3. Unit tests
- ::Set up infrastructure for easy execution of JUnit tests (this is
just an Ant target)
- ::Create unit tests for each class when the class is created
- ::Execute unit tests before each commit. All tests must pass
before developer can commit, otherwise open new issue(s) for
failed tests. These "smoke tests" will be executed in each
developer's normal development environment.
- ::Execute unit tests completely on each release candidate to check
for regressions. These regression tests will be executed on a
dedicated QA machine.
- ::Update unit tests whenever requirements change
4. System tests
- ::Design and specify a detailed manual [test suite](Test-Suite).
- ::Review the system test suite to make sure that every UI screen
and element is covered
- ::Execute system tests completely on each release candidate. These
system tests will be carried out on a dedicated QA machine.
- ::Update system tests whenever requirements change
5. QA Management
- ::Update this test plan whenever requirements change
- ::Document test results and communicate them to the entire
development team
- ::Estimate remaining (not yet detected) defects based on current
issue tracking data, defect rates, and metrics on code size and
the impact of changes.
- ::Keep all issues up-to-date in an issue tracking database. The
issue tracker is available to all project members
[here](LINK-TO-ISSUE-TRACKER). The meaning of issue states,
priorities, and other attributes are defined in the
[SDM](SDM#issue-tracking).
### QA-Plan Checklist
#### Do the selected activities in the QA Strategy provide enough assurance that the project will meet it's quality goals?
::Yes, if all activities are carried out as planned, we are confident
that the quality goals will be satisfied. We will, of course, adjust
this plan as needed.
::No, this plan leaves open several quality risks that have been noted
in the [Risk Management](Project-Plan#Risk-Management) section of the
[Project Plan](Project-Plan).
#### Have human resources been allocated to carry out the QA activities?
::Yes, human resources have been allocated. They are listed in the
[Resource Needs](Resource-Needs) document.
::No, human resources have not been allocated. They are listed as
"pending" in the [Resource Needs](Resource-Needs) document.
#### Have machine and software resources been allocated as needed for the QA activities?
::Yes, the QA team will use desktop machines and servers that are
already allocated to them.
::Yes, a QA Lab has been set up. The needed machine and software
resources are listed in the [Resource Needs](Resource-Needs) document.
::No, needed machine and software resources are listed as pending in
the [Resource Needs](Resource-Needs) document.
#### Has this QA Plan been communicated to the development team and other stakeholders?
::Yes, everyone is aware of our prioritized quality goals for this
release and understands how their work will help achieve
those goals. Feedback is welcome.
::Yes, this document is being posted to the project website. Feedback
is welcome.
::No, some developers are not aware of the quality goals and planned
QA activities for this release. This is a risk that is noted in the
[Risk Management](Project-Plan#Risk-Management) section of the
[Project Plan](Project-Plan).

View File

@ -0,0 +1,133 @@
*TODO: For each release, copy this file and fill in answers to the
questions. In cases where multiple answers are already written, delete
those answers that do not apply.*
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### External release number
::X.Y.Z
##### Release audience
- ::General availability release
- ::Customer-specific release: CUSTOMER(S)
- ::Developer release (Internal usage only)
- ::Early access release (Controlled external access)
---
**Process impact:** The process of working through this checklist helps
uncover any remaining concerns before the release, and reminds internal
stakeholders of their upcoming responsibilities. Once this checklist has
been satisfied, this release may be sent to manufacturing and sold to
customers with the full support of the organization.
*TODO: Discuss each item with the relevant stakeholders and update its
status. Add comments as needed to record important decisions or link to
resulting documents. Add new items as needed for your particular project
or process. Any uncovered problems or tasks should be tracked in the
issue tracker.*
### Marketing / Product Management
| Item | Status | Comments |
|--------------------------------------------------------------------------|---------|----------|
| ::All new requirements for this release have been tracked | Pending | |
| ::All prior defects needing resolution in this release have been tracked | Pending | |
| ::All marketing documents have been updated | Pending | |
| ::Marketing / Product Management is satisfied with this release | Pending | |
### Development
| Item | Status | Comments |
|--------------------------------------------------------|---------|----------|
| ::All needed design work has been completed | Pending | |
| ::All needed design work has been reviewed | Pending | |
| ::All development work has been completed | Pending | |
| ::All development work has been reviewed | Pending | |
| ::All defects assigned to this release have been fixed | Pending | |
| ::All development documentation has been updated | Pending | |
| ::All unit test code has been updated | Pending | |
| ::The development team is satisfied with this release | Pending | |
### Quality Assurance {#quality-assurance}
| Item | Status | Comments |
|-------------------------------------------------|---------|----------|
| ::The QA plan and test cases have been updated | Pending | |
| ::The QA plan has been completely carried out | Pending | |
| ::All discovered defects have been tracked | Pending | |
| ::All fixed defects have been verified as fixed | Pending | |
| ::The QA team is satisfied with this release | Pending | |
### Release Engineering / Configuration Management
| Item | Status | Comments |
|----------------------------------------------------------------------------------------------------------------------|---------|----------|
| ::All components have been properly tagged for release, and the release configuration is clearly defined | Pending | |
| ::Change-control practices have been followed, meaning that the released product does not contain unapproved changes | Pending | |
| ::The RelEng team is satisfied with this release | Pending | |
### User Experience
| Item | Status | Comments |
|-----------------------------------------------------------|---------|----------|
| ::Any new or changed functionality is deemed usable | Pending | |
| ::On-line and printed user documentation has been updated | Pending | |
| ::The UE team is satisfied with this release | Pending | |
### Technical Support / Operations
| Item | Status | Comments |
|--------------------------------------------------------------------------------------------------------------|---------|----------|
| ::Theory of operations document has been updated | Pending | |
| ::Tech support / Operations has successfully installed, upgraded, and used this release | Pending | |
| ::Any "Early access" or "Beta" program was conducted successfully and all resulting issues have been tracked | Pending | |
| ::The impact of any changes on operations offerings has been identified and tracked | Pending | |
| ::Troubleshooting guide has been updated | Pending | |
| ::The tech support / operations teams are satisfied with this release | Pending | |
### Services / Training
| Item | Status | Comments |
|----------------------------------------------------------------------------------|---------|----------|
| ::Services / Training has had access to this release | Pending | |
| ::The impact of any changes on service offerings has been identified and tracked | Pending | |
| ::Training materials have been updated | Pending | |
| ::Services / Training is satisfied with this release | Pending | |
### Legal
| Item | Status | Comments |
|-------------------------------------------------------------------------------|---------|----------|
| ::Legal risks associated with this release have been identified and tracked | Pending | |
| ::We hold proper licenses for all reused components and intellectual property | Pending | |
| ::We conform to all relevant laws and regulations (e.g., export, safety) | Pending | |
| ::The legal team is satisfied with this release | Pending | |
#### Possible status values
- Pending: Work still needs to be done
- N/A: This item cannot logically apply
- Waived: This item could apply, but the stakeholders deem it
unimportant
- Done: The stakeholders agree that the item has been satisfied
- Failed: This item has forced us to abandon this release
*TIP: If a stakeholder hits difficulties with this release after it goes
out, add those issues to the checklist template so that everyone knows
that they will be explicitly managed on the next release. Conduct a
postmortem review to help expose difficulties rather than repeat them.*
*TIP: You might consider some of the following additional stakeholders at
your organization: Other engineering groups (i.e., hardware design),
Manufacturing and Shipping, Software Process Improvement, Key customers
and partners, External developers, Risk Management, Business
Development, and Upper Management.*

View File

@ -0,0 +1,174 @@
*TODO: For each release, copy this file and fill in the needed
information.*
*TODO: Make sure to use the **product** name and **external** release
number, not internal information.*
##### Product
::[PRODUCT-NAME](http://www.COMPANY.com/products/PRODUCT-NAME/)
##### Release Number
::X.Y.Z
##### Release Date
::YEAR/MONTH/DAY
##### Customer Support
::For more information or support, please visit our
[website](http://www.COMPANY.com/products/PRODUCT-NAME/) or email us
at <support@COMPANY.com>
---
### Introduction
::This document contains the release notes for PRODUCT-NAME version X.Y.Z.
The following sections describe the release in detail and provide
late-breaking or other information that supplements the main
documentation.
*TODO: Consider using one of the following example paragraphs.*
::This is a developer release for internal evaluation only. Please report
any issues via the internal issue tracker.
::This is an early access release for evaluation and usage by select
partners. Your feedback is important to us, please help us make this the
best product possible.
::This is an early access release for wide evaluation and usage. Your
feedback is important to us, please help us make this the best product
possible. Keep in mind that we are continuing to work on PRODUCT-NAME and
things may change in the future.
::This is the first full release of this product. See the product website
for a complete description.
::(WHEN X IN VERSION NUMBER CHANGES) This is a major release with many new
features. Users of previous releases should check the "Version
Compatibility" section below for instructions on how to use existing
data with this new release.
::(WHEN Y IN VERSION NUMBER CHANGES) This is an upgrade release with some
significant enhancements. Users of previous releases are encouraged to
upgrade.
::(WHEN Z IN VERSION NUMBER CHANGES) This is a maintenance release that
improves quality, reliability, and performance without adding any new
functionality. All users of previous X.Y releases should upgrade to this
release.
::(WHEN DEFECT CORRECTION CLOSES SIGNIFICANT SECURITY HOLES) This is a
critical upgrade release that addresses recently discovered security
holes. All users of previous X.Y releases should upgrade immediately to
this release.
### What's New?
*TODO: Briefly list major user-visible enhancements. Or, note that
nothing major has been added. Technical issues should only be mentioned
if this is a reusable software component that will be used to build
larger products. Do not include issue numbers. Links to detailed
information can be helpful.*
- ::Added 4 new play-back modes
- ::Increased play-back speed by as much as 30%
- ::(FOR REUSABLE COMPONENTS ONLY) Streamlined build process
- ::(FOR REUSABLE COMPONENTS ONLY) Roughly doubled unit test coverage
- ::Many improvements to the product's quality, reliability, ease of
use, and performance. See "Recent Changes" below for details.
### Installation and Upgrade Notes
*TODO: Fill in these sections. The text here is only an example.*
#### ::Installation
::See the [installation instructions](Installation-Guide) for full details.
Please note that in this release, ...
::IMPORTANT: You must completely uninstall any previous "developer
release" or "early access" version of this product before installing
this release.
#### ::Manifest
::This release consists of the following items:
- ::Release notes (this file)
- ::Installation instructions / Quick start guide
- ::Product installer binary
- ::User guide
- ::Product source code and build instructions
### ::Minimum System Requirements
#### ::System Processor
::800MHz
#### ::System Memory
::256MB
#### ::Free Disk Space
::10MB
#### ::Operating System
::Windows 2000, Windows XP, Mac OS X, Linux (kernel 2.4)
#### ::Networking
::Internet access
#### ::Existing Software
- ::Standard e-mail client
- ::Popular web browser (IE6, NN7)
- ::SuperWaveEdit(TM) 2.0.2 (Needed for custom playback modes)
#### ::Version Compatibility
::Files saved by earlier versions of this product may be used with
this version. However, wave files saved in version W.Y.Z, must be
updated by using the WaveUpgrade utility.
### Recent Changes
*TODO: Query your public issue tracking system to produce a report of
changes in this release. Include the issue number, type, and one-line
summary. Include issues that were highlighted in the "What's New?"
section above. You may revise one-line summaries in the issue tracker,
prior to generating the report, if you notice that they are incorrect.
You may exclude or summarize changes that might give away valuable
proprietary information.*
- ::FIX [09823](#) Screen frozen when caps-lock is on
- ::FIX [09912](#) Static heard while downloading
- ::FIX [10923](#) Repeat-mode cannot play more than 99 times
- ::ENHANCEMENT [08237](#) Scratch DJ-mode
- ::ENHANCEMENT [08238](#) Chill DJ-mode
- ::ENHANCEMENT [08259](#) Retro stereo-mode
- ::ENHANCEMENT [10202](#) Techno-mode
### Known Problems and Workarounds
*TODO: Query your public issue tracking system to produce a report of
defects discovered in this release, or in previous releases that are
still not resolved. Include information on workarounds from the issues.
Otherwise, same as above.*
- ::DEFECT [07293](#) Player skips on very loud playback.
- ::WORKAROUND: Limit volume to settings 1 through 9.
- ::DEFECT [10509](#) Cannot switch directly from random play mode to
Internet play-list.
- ::WORKAROUND: Switch to local play-list first. Click [here](#) for
detailed instructions.
- ::DEFECT [10589](#) Static heard while booting
- ::DEFECT [10944](#) Repeat-mode cannot play more than 999 times

View File

@ -0,0 +1,298 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Project Time-frame:
::START-DATE - END-DATE
##### Related Documents
- [Project proposal](Proposal)
- [Project plan](Project-Plan)
- [QA plan](QA-Plan)
- [Software development methodology](SDM)
- [Glossary](Glossary)
---
**Process impact:** Based on the project plan and the worksheet below,
this project will need the following resources to meet its goals. If
fewer resources are available, the scope of the release should be
reconsidered or the process must be changed.
*TODO: Fill in the information above and below. Add or remove rows as
needed. Use the worksheet to help identify and scope resource needs.
These rows are just examples. The total effort listed in this example
may not even match the totals given in other examples of related
documents.*
### Human Resource Needs
| Need | Resource | Amount | Status | Comments/Responsibilities |
|-------------------------------------------|--------------------------------------|------------|------------|---------------------------|
| ::Project Management | ::PERSON-NAME | ::20 hours | ::Pending | |
| ::Requirements | ::PERSON-NAME | ::20 hours | ::Assigned | |
| ::Requirements | ::PERSON-NAME, PERSON-NAME, PERSON-NAME | ::10 hours | ::Assigned | |
| ::Consultation with domain expert | ::PERSON-NAME | ::2 hours | ::Pending | |
| ::Consultation with topic expert | ::PERSON-NAME | ::4 hours | ::Pending | |
| ::Training on use of component/technology | ::PERSON-NAME | ::8 hours | ::Assigned | |
| ::Overall Design | ::PERSON-NAME, PERSON-NAME, PERSON-NAME | ::20 hours | ::Assigned | |
| ::Detailed UI Design | ::PERSON-NAME | ::5 hours | ::Pending | |
| ::Detailed Database Design | ::PERSON-NAME | ::5 hours | ::Pending | |
| ::Development | ::PERSON-NAME, PERSON-NAME, PERSON-NAME | ::40 hours | ::Assigned | |
| ::Development | ::PERSON-NAME, PERSON-NAME | ::80 hours | ::Assigned | |
| ::Development | ::PERSON-NAME | ::20 hours | ::Pending | |
| ::Technical writing | ::PERSON-NAME, PERSON-NAME | ::10 hours | ::Assigned | |
| ::QA Planning | ::PERSON-NAME | ::10 hours | ::Assigned | |
| ::QA Testing | ::PERSON-NAME, PERSON-NAME, PERSON-NAME | ::40 hours | ::Assigned | |
| ::Release Engineering | ::PERSON-NAME | ::4 hours | ::Assigned | |
### Capital Needs
| Need | Resource | Amount | Status | Comments |
|------------------------------------|-------------------------------------------------------|-----------|---------------------------|---------------------------------------------------------------------------------|
| ::Training materials | ::Book/Course on specific technology | ::1 | ::Allocated | ::Book ordered |
| ::Development Workstations | ::800MHz PC, 256MB RAM | ::4 | ::Satisfied | ::Dev group will use existing workstations |
| ::Development DB Server | ::Dual CPU 1GHz PC, 512MB RAM: SERVERNAME.company.com | ::1 | ::Allocated | |
| ::Interactive Testing Workstations | ::800MHz PC, 256MB RAM | ::2 | ::Allocated | |
| ::Load Test Server | ::800MHz PC, 256MB RAM: SERVERNAME.company.com | ::1 | ::Pending | |
| ::Load Test Clients | ::500MHz PC or Mac, 128MB RAM | ::4 | ::Satisfied | ::QA group will use existing machines |
| ::Automated Testing Slave | ::800MHz PC, 256MB RAM: SERVERNAME.company.com | ::1 | ::Satisfied | ::QA group will use existing machine |
| ::Testing DB Server | ::Dual CPU 1GHz PC, 512MB RAM: SERVERNAME.company.com | ::1 | ::Rejected | ::Testing group will use development DB server and do load testing in off hours |
| ::IDE Licenses | ::Standard development licenses | ::N/A | ::Satisfied | ::Will use open source tools |
| ::SCM Licenses | ::Standard development licenses | ::N/A | ::Satisfied | ::Will use open source tools |
| ::Testing Tool Licenses | ::Standard development licenses | ::N/A | ::Satisfied | ::Will use open source tools |
| ::DB Licenses | ::Standard development licenses | ::6 | ::Pending | |
| ::DB Licenses | ::Production licenses | ::4 CPU's | ::2 Pending; ::2 Rejected | ::Testing group will use development DB server and do load testing in off hours |
| ::Software component | ::GIS Library w/ source code | ::1 | ::Pending | ::One time fee, approx. $10,000 |
| ::Software component | ::Encryption library | ::1 | ::Pending | ::Revenue sharing at 2% |
#### Possible Status Values
- Pending: request is awaiting management decision
- Assigned: task has been assigned to a person in the issue tracker
- Allocated: capital request approved by management, but resource has
not arrived
- Satisfied: request is satisfied, resource has arrived
- Rejected: requested resource will not be allocated, plan must be
adjusted to work without this resource
### Resource Needs Checklist
The goal of this checklist is to help expose resource needs that might
otherwise be missed. It does not help with the actual estimated number
of hours needed. Those estimates should be based on the project plan.
*TODO: Answer the questions below. If multiple sample answers are
provided, [chip away](Glossary-Standard-Terms#chipping-away) the ones that do
not apply. Edit any provided answers as needed. Use this exercise to
help you fill in the tables above.*
#### Does this project need more than a few days work?
:: Yes. A project manager role is needed to oversee the project.
:: No. The developers can manage their own work.
#### Are the requirements already completely defined and validated?
:: Yes. No additional time is needed for requirements.
:: No. Effort is needed for requirements.
#### What aspects of the system need to be designed?
:: General design. Group developer effort needed.
:: User interface. UI designer and domain experts effort needed.
:: Database design. Developer and DBA effort needed.
:: Security design. Developer and topic expert effort needed.
:: Other design. Developer, domain, and/or topic expert effort needed.
#### Does the project plan include any new development?
:: Yes. Development resources are needed.
:: No. No developers are needed
#### Does the project plan include complex configuration of existing components?
:: Yes. Component expert needed. Also need time to coordinate with
development and operations teams.
:: No. No component experts are needed
#### Does the development team have knowledge of all tools, components, and technologies to be used?
:: Yes. No training time needed.
:: No. Effort needed for training. Need training materials, courses, or
time with experts or mentors. List specific training
needs individually.
#### Is the entire development team have an agreed upon software development methodology?
:: Yes. No effort needed for defining a methodology.
:: Yes. But, effort is needed to refine the methodology to the project
at hand.
:: No. Effort needed to define and document a methodology and train all
team members. Additional effort needed for refinements throughout
the project.
#### Does the project plan include end-user documentation?
:: Yes. Technical writing resources must be allocated.
:: No.
#### What is the complexity of the internal documentation?
:: Significant. Technical writing resources must be allocated.
:: Average. Developers can produce technical documents as they go.
#### Will the technical support, training, operations, or services groups deal with the product of this project?
:: Yes. Effort must be allocated to train the staff in those groups.
:: No, but other developers will need training to reuse this component.
:: No. Effort put into producing good technical documentation should
be enough.
#### Will the product of this project be sold to customers, directly or indirectly?
:: Yes. The full SDM must be followed, including effort by a change
control board and release engineering.
:: No, it is for internal use only but it will be used repeatedly to
help build a shipping product. Release engineering and CCB effort is
still needed.
:: No, it is for internal use only and will only be used once. Release
engineering and CCB effort not needed.
#### Does the QA plan call for the running of automated unit tests?
:: Yes. Development effort will be needed to implement unit tests.
:: No. Additional QA effort will be needed for manual testing.
#### Does the QA plan call for more than the running of automated unit tests?
:: Yes. QA effort will be needed.
:: No. Unit tests will be enough for this component, full QA can be
done on products that use this component.
#### How many development workstations will be needed?
:: 1 per developer.
:: 1 per developer, plus extra for...
#### What development servers are needed?
:: None.
:: One for the whole team.
:: One for the one aspect of development, another for another aspect.
:: One for the one branch of development, another for another branch.
#### What database servers are needed?
:: None. No database is being used.
:: None. Database is integrated into product and does not require a
separate server.
:: One for the whole team.
:: One for the developers, one for QA.
:: One for one branch of development, another for another branch.
:: One for the developers, one for QA, one for load testing.
:: One for each developer or tester, plus one for load testing.
#### What machines are needed for automated testing?
:: None. Automated testing will not be done.
:: None. Automated testing will be done on workstations.
:: One for all nightly automated tests.
:: One for one aspect of nightly automated tests, another for
another aspect.
:: One for one branch of development, another for another branch.
#### What machines are needed for load testing?
:: None. Load testing will not be done.
:: None. Load testing will be done on workstations.
:: One machine will do all load testing.
:: Several machines needed to act as clients and servers.
:: One cluster of load testing machines for each branch of development.
#### What development tools must be licensed for this project?
:: None. Everything is implemented by us.
:: None. All development tools are open source.
:: Some tools: IDE, database, testing tools. These tools have already
been purchased, installed, and configured.
:: Some tools: IDE, database, testing tools. Budget must be allocated
to purchase these tools. Effort must be allocated to research and
select tools for purchase, install, and configure them.
#### What software components must be licensed for this project?
:: None. Everything is implemented by us.
:: None. All reused components are open source.
:: Some components: database, server software, libraries. These
components have already been selected, purchased, installed,
and configured.
:: Some components: database, server software, libraries. Effort must
be allocated to research, select, install and configure
these components. Budget must be allocated to purchase them.
#### Are any of the personnel assignments of capital allocations conditional?
:: Yes. All such conditions are written in the comments column above.
We have a contingency plan that will still achieve (an
acceptable subset) of the project goals.
:: No. Management has set aside these resources as promised, and the
needs of this project will take priority over any other project that
is likely to need the same resources.
#### Have these resource assignments been communicated to the people being assigned and their managers?
:: Yes, everyone understands. Feedback is welcome.
:: No, this is a risk that is noted in the [Risk
Management](Project-Plan#Risk-Management) section.

View File

@ -0,0 +1,21 @@
# Review Meeting Checklists
---
## Checklists for Types of Artifacts
- ::[Checklists for peer reviews](http://processimpact.com/pr_goodies.shtml)
by Karl E. Wiegers
- ::[Checklists for UML design](http://www.modelingstyle.info/)
by Scott W. Ambler
## Style Guides
- ::[Sun's java style guide](http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html)
- ::[Sun's javadoc guide](http://java.sun.com/j2se/javadoc/writingdoccomments/)
- ::[PHPBuilder.com's PHP style guide](http://www.phpbuilder.com/columns/tim20010101.php3)
- ::[Alltasks.net PHP style guide](http://alltasks.net/code/php_coding_standard.html)
- ::[C\# style guide](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions)
- ::[More C++ style guides](http://directory.google.com/Top/Computers/Programming/Languages/C%2B%2B/Style/)
- ::[More Java style guides](http://directory.google.com/Top/Computers/Programming/Languages/Java/Coding_Standards/)
- ::[Python PEP 8 style guide](https://www.python.org/dev/peps/pep-0008/)

View File

@ -0,0 +1,67 @@
##### Project
::[PROJECT-NAME](Home)
##### Release Number
::X.Y.Z
##### Location of Meeting
::LOCATION, BUILDING, ROOM
##### Date and Time of Meeting
::YEAR/MONTH/DAY HH:MM
##### Attendees
- ::PERSON-NAME
- ::PERSON-NAME
- ::PERSON-NAME
- ::PERSON-NAME
##### Related Documents
- [QA Plan](QA-Plan) > Review Meeting Notes
- [Review Meeting Checklists](Review-Meeting-Checklists)
---
### Documents and Code Reviewed at this Meeting
- ::[Feature list section of requirements](#)
- ::[Multi-user section of requirements](#)
- ::[Hello.java](/source/browse/PROJECT-NAME/src/Hello.java)
- ::[HelloStream.java](/source/browse/PROJECT-NAME/src/HelloStream.java)
- ::[HelloPanel.java](/source/browse/PROJECT-NAME/src/HelloPanel.java)
### Meeting Minutes
*TODO: Fill in the information above and write a brief summary of what
happened at the meeting. The text below is just a sample.*
::We started on time with 3 members and the other team members arrived
shortly thereafter.
::In the first hour of the review meeting, we went over issues that the
team had entered individually. Most of the issues raised questions about
the error handling capability of Hello.java, but there were also issues
about multi-user robustness requirements and UI.
::In the second hour, we read through all of the methods of
HelloStream.java. All team members agreed that they understood each
method and thought is was correct before we moved on to the next method.
We raised issues of consistency between the constructors in that class
and other classes. The checklist was helpful in identifying the fact
that we needed to implement hash() and equals(). All raised issues were
entered into the issue tracker and marked with the word "review".
::Although, some issues were found, we do not feel that Hello.java and
HelloStream.java need to be inspected again. HelloPanel was not
inspected, it still needs review.
### Action Items
::All defects and tasks identified in this review are being tracked in the
issue tracker.

View File

@ -0,0 +1,176 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Project plan](Project-Plan)
- [Software development methodology](SDM)
##### References:
- [Risk Management during Requirements](http://www.systemsguild.com/pdfs/s5req.lo%201.pdf) by Tom DeMarco and Tim Lister
- [Taxonomy-Based Risk Identification](http://www.sei.cmu.edu/pub/documents/93.reports/pdf/tr06.93.pdf) by Carr, Konda, Monarch, Ulrich, and Walker (SEI)
---
**Process impact:** This document records the major project risks, and
plans to control them. For each risk the plan should include:
- Mitigation plan
- Measures you will carry out now, to reduce the likelihood and/or
impact of the risk. Alternatively, you can decide to accept
the risk.
- Indicator
- A sign you will monitor to determine if the risk is beginning to
have an impact on the project.
- Contingency plan
- What you will do if the risk does arise. You can specify some
general contingency plans. In this case you only need to give a
contingency plan if you have a special one for the particular risk.
The severity of a risk is its likelihood multiplied by its impact. Risks
are classified as minor if they have low likelihood, negligible impact,
or medium likelihood and marginal impact.
*TODO: You should update these lists regularly. They should be reviewed
by customers and developers from time to time.*
### General contingency plans
#### Catastrophic risks
::If a catastrophic risk occurs we will make an honest reassessment of
the viability of the project and involve the relevant
project stakeholders.
::If a catastrophic risk occurs we will cancel the project. We will
take away our lessons learned and any valuable project bi-products.
::We do not recognize any catastrophic risks. If one occurs we will
pretend everything is fine and hope that none of the
stakeholders notice.
#### Risks that consume development resources.
::The project has a fixed deadline. The requirements are prioritized.
If we lose time, we will reduce project scope.
::The features specified are all essential If we lose time, we will
delay delivery.
::If we lose time, we will make time estimates for the remaining
features, and meet with the customers to reconsider scope and
delivery date.
#### ::OTHER RISK TYPE
::OTHER CONTINGENCY PLAN
### Major risks
| Name | Description | Likelihood | Impact | Plan | Status | Owner |
|-----------------|---------------------------------------------------------------------------------------------------------------------------------|------------|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|-------------------|
| ::Requirements | Requirements are only partly known at project start. Customers may not allocate sufficient resources to exploring requirements. | Medium | Critical to Catastrophic | Requirements will be detailed first for the top priority goals. Indicator: Track the rate at which requirements are discovered. Contingency: request more customer effort. | Amber | Requirements Lead |
| ::Goals | Stakeholders goals may conflict. | Medium | Critical | Keep an explicit list of stakeholders goals. The project manager will report progress to each declared goal. | Green | Customers |
| ::Communication | Communication problems in development team. They are dispersed among several sites, and have not worked together before. | Medium | Critical | Use these [tools](SDM#communication) to help communication. The main indicator of miscommunication will be software defects detected by our [QA activity](qa-plan). | Green | QA lead |
| ::Acceptance | Customer may accept delivery of the system although it does not really meet their goals. | Medium | Critical | Customers are asked to declare acceptance criteria as each release is planned. | Green | Customers |
| ::Scope | The total features requested may be beyond what the development team can deliver in the time available. | High | Marginal | Assign levels of important to the use cases. Make the first review of project scope after 12 months. | Green | Customers |
### Minor risks
*TODO: Review this list regularly, to decide whether the likelihood or
impact of a risk has increased to make it a "major" risk.*
| Name | Description | Likelihood | Impact | Mitigation Strategy | Status | Owner |
|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|-----------------|
| ::Estimate | The development team might not be able to estimate the work time, preventing customers from deciding priorities effectively. | Medium | Marginal | The development team will gain experience in estimating the work, and deliver the first estimates after 12 months. We will compare estimated work to actual work. | Green | Project Manager |
| ::Retention | Some developers may leave the project before it is finished. | Medium | Marginal | Employing locations should provide support for continuing professional development. The project manager will discuss career goals with each developer, and try to assign tasks appropriately. | Green | Project Manager |
| ::Correctness | The system as delivered may have low take-up because of a lack of confidence in its correctness. | Low | Catastrophic | State of the art [QA activity](QA-Plan). Contingency: stop development of new facilities until the quality of the existing code is assured. | Green | QA Lead |
| ::Usability | The system as delivered may have low take-up because of poor usability. | Low | Critical | We will have a UI style guide. Most of the development of the front end will be in close contact with customers. We will review usability later in the project. | Green | UI design lead |
| ::Desire | The stated requirements might not match the customers' desires and ambitions for the system. | Low | Critical | Incremental delivery of versions will provide experience of using the system, which will help the customers to identify the real requirements. Indicator: a developer saying "I think they mean ...", a customer saying "They know what I mean". Contingency: request customer review of requirements. | Green | Customers |
| ::Changes | After requirements have been documented and agreed, development activities begin to based on them, first design then implementation. If the requirements change later then effort is wasted. | Low | Critical | A change control procedure is required, so changes are only made when the cost is worthwhile. Indicator: compare cost of change to new development. Contingency: request customer review of requirements. | Green | Project Manager |
| ::Process | Some developers may not cooperate in common standards and processes. | Low | Critical | QA to check conformance, then discussions in development team meetings to change the standard or the actual practice as appropriate. | Green | QA Lead |
| ::Maintainability | The system as delivered might be hard to maintain. | Low | Marginal | We will review the code for maintainability. | Green | Lead Developer |
| ::RISK-NAME | ONE-TO-THREE-SENTENCES | Low or Medium or High | Negligible or Marginal or Critical or Catastrophic | ONE-TO-THREE-SENTENCES | Red or Amber or Green | PERSON-NAME |
#### Possible risk status values
##### Red
Active & impacting project
##### Amber
Active but contained without impact to scope or delivery time.
##### Green
Not yet active
### Risk Checklist
#### Do the plans provide an indicator to detect each of the risks becoming active?
::Yes, if all activities are carried out as planned, we will know if any
of the risks is becoming troublesome.
::No, some risks could creep up on us.
#### Are the right "risk owners" assigned to monitor the risks?
::Yes, for each risk the assigned owner can detect the indicator, can
launch the contingency plan, and is the person who will suffer by
the risk.
::No, in some cases the assigned owner may not notice or care, or does
not have sufficient authority.
#### Does each risk have a mitigation strategy, or is the risk acceptable?
::Yes, we have plans to control each risk.
::Yes, we have plans to control some risks, and have accepted others.
::No, this plan leaves open several risks.
#### Does each risk have a contingency plan?
::Yes, most risks cost development time and the general plan applies,
and for each of the others there is a contingency plan above.
::No, there are some risks we still have to plan for.
#### Has this Risk Control Plan been communicated to the development team and other stakeholders?
::Yes, this document is being posted to the project website. It will
also be discussed at an early team meeting, and discussed with the
customers before the commit to the project. Comments are welcome.
::No, our culture does not allow discussion of risks.
#### Is there a procedure in place for identifying new risks and reviewing the existing ones?
::TBD
#### In the light of these risks, is the project worth carrying out?
::Yes, it is a low risk project
::No, other projects can deliver as much value at lower risk.
::Yes. It is an unusually risky project by commercial standards, but
we believe we have adequate plans here, considering the value that
the project could deliver.
#### Is there an anonymous reporting channel, to allow developers to communicate concerns to senior management?
::Yes
RISKNAME
RISKNAME and strength of character of
RISKNAME
RISKNAME

View File

@ -0,0 +1,5 @@
*TODO: This template is not done yet. Feel free to contribute your ideas.*
A Software Development Methodology is always specific to a given
company, but the outline of that document could be reused, as could some
sections on common practices such as version control procedures.

256
ProductDocumentation/SRS.md Normal file
View File

@ -0,0 +1,256 @@
##### Project
::PROJECT-NAME
##### Internal Release Number
::X.Y.Z
##### Attached worksheets:
- SRS > [Use case suite](Use-Case-Suite)
- SRS > [Feature set](Feature-Set)
##### Related Documents
- [Project proposal](Proposal) > [User needs](User-Needs)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
- [Glossary](Glossary)
---
**Process impact:** The SRS precisely defines the software product that
will be built. Decisions made in writing the SRS are based on
information in the [project proposal](Proposal) and [user
needs](User-Needs) documents. The SRS sets requirements that must
be satisfied by the [system design](Design). The SRS is verified
and validated by activities outlined in the [QA plan](QA-Plan).
### Introduction
*TODO: Provide a brief overview of this release of the product. You can
copy text from the project proposal, paste it here, and shorten it.*
::PARAGRAPH
::PARAGRAPH
For more information, see the project [proposal](Proposal).
### Use Cases
::ONE PARAGRAPH OVERVIEW
Details:
- Actors are described in the [user needs](User-Needs) document.
- The [use case suite](Use-Case-Suite) lists all use cases in an
organized way.
### Functional Requirements
::ONE PARAGRAPH OVERVIEW
Details:
- The [feature set](Feature-Set) lists all features in an
organized way.
### Non-Functional Requirements
*TODO: Describe the non-functional requirements for this release. Some
examples are provided below.*
#### What are the usability requirements?
::Our main criteria for making the system usable is the difficulty of
performing each high-frequency use case. Difficulty depends on the
number of steps, the knowledge that the user must have at each step,
the decisions that the user must make at each step, and the
mechanics of each step (e.g., typing a book title exactly is hard,
clicking on a title in a list is easy).
::The user interface should be as familiar as possible to users who
have used other web applications and Windows desktop applications.
E.g., we will follow the UI guidelines for naming menus, buttons,
and dialog boxes whenever possible.
::PARAGRAPH
Details:
- ::Government customers will demand [section508
compliance](http://www.section508.gov/)
- ::Support learnability with principles of [Instructive
Interaction](http://www.foruse.com/articles/instructive.htm)
- ::The customer wants extensive on-line help, but is not demanding
a printed manual.
#### What are the reliability and up-time requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the safety requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the security requirements?
::Access will be controlled with usernames and passwords.
::Only administrator users will have access to administrative
functions, average users will not.
Details:
- ::Passwords must be 4-14 characters long
- ::We will not use encrypted communications (SSL) for this website
- ::DETAIL
#### What are the performance and scalability requirements requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the maintainability and upgradability requirements?
::Maintainability is our ability to make changes to the product
over time. We need strong maintainability in order to retain our
early customers. We will address this by anticipating several types
of change, and by carefully documenting our design
and implementation.
::Upgradability is our ability to cost-effectively deploy new versions
of the product to customers with minimal downtime or disruption. A
key feature supporting this goal is automatic download of patches
and upgrade of the end-user's machine. Also, we shall use data file
formats that include enough meta-data to allow us to reliably
transform existing customer data during an upgrade.
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the supportability and operability requirements?
::Supportability is our ability to provide cost effective
technical support. Our goal is to limit our support costs to only 5%
of annual licensing fees. The product's automatic upgrade feature
will help us easily deploy defect fixes to end-users. The user guide
and product website will include a troubleshooting guide and
checklist of information to have at hand before contacting
technical support.
::Operability is our ability to host and operate the software as an
ASP (Application Service Provider). The product features should help
us achieve our goal of 99.9% uptime (at most 43 minutes downtime
each month). Key features supporting that are the ability to do hot
data backups, and application monitoring.
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the business life-cycle requirements?
::The business life-cycle of a product includes everything that
happens to that product over a period of several years, from initial
purchase decision, through important but infrequent use cases, until
product retirement. Key life-cycle requirements are listed below.
Details:
- ::Customers must be able to manage the number of licenses that
they have and make informed decisions to purchase more licenses
when needed
- ::The product shall support daily operations and our year-end
audit
- ::The customer data shall be stored in a format that is still
accessible even after the application has been retired
### Environmental Requirements
*TODO: Describe the environmental requirements for this release.
Environmental requirements describe the larger system of hardware,
software, and data that this product must work within. Some examples are
provided below.*
#### What are the system hardware requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What are the system software requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::DETAIL
- ::DETAIL
- ::DETAIL
#### What application program interfaces ([APIs](Glossary-Standard-Terms#api_application_programming_interface)) must be provided?
::PARAGRAPH
::PARAGRAPH
Details:
- ::We must implement this [standard API](LINK-TO-STANDARD).
- ::DETAIL
- ::DETAIL
#### What are the data import and export requirements?
::PARAGRAPH
::PARAGRAPH
Details:
- ::The system will store all data in a standard SQL database, where
it can be accessed by other programs.
- ::The system will store all data in an XML file, using a
[standard DTD](LINK-TO-STANDARD).
- ::The system will read and write valid .XYZ files used by
OTHER APPLICATION
- ::DETAIL

View File

@ -0,0 +1,162 @@
*TODO: Copy this file for each status report. Fill in the information
below. Email a notification to stakeholders when this report is made
available.*
*TODO: Edit the rows in the following table. In some rows, multiple
examples are given, you should select/edit only one.*
##### Project
::[PROJECT-NAME](Home)
##### Status Report Date
::YEAR/MONTH/DAY
##### Next Internal Release Number
::X.Y.Z
##### Release Date
- ::Original estimate: YEAR/MONTH/DAY
- ::Current estimate: YEAR/MONTH/DAY
- ::Change Since Last Report: No change
- ::Change Since Last Report: Slipped 2 days
- ::Change Since Last Report: Saved 4 days
##### Open Issues (needing development):
- ::[17 defects](ISSUE-TRACKER-QUERY)
- ::[8 enhancements](#)
##### Resolved Issues (pending verification):
- ::[0 defects](#)
- ::[2 enhancements](#)
##### Closed Issues:
- ::[34 defects](#)
- ::[3 enhancements](#)
##### Resources used this period:
- ::PERSON-NAME: 18 hours.
- ::PERSON-NAME: 15 hours.
- ::PERSON-NAME: 10 hours.
- ::PERSON-NAME: 12 hours.
##### Status Summary:
- ::Project completed. This is the final status report.
- ::Low risk. Project on track.
- ::Medium risk. Problems are being dealt with.
- ::High risk. Advice from management and stakeholders needed.
- ::Project canceled. This is the final status report.
##### Related Documents
- [Project plan](Project-Plan) > [Resource needs](Resource-Needs)
- [QA plan](QA-Plan)
- [Glossary](Glossary)
---
**Process impact:** This helps keep stakeholders informed of project
status so that they may correctly set expectations. Reasoned
explanations of slight changes in schedule are much better than major
unexplained slips.
### Detailed Status
TODO: Provide 1-4 paragraphs describing what has happened on this
project. The text below is just an example, replace it with your own
words.
::This week we focused on...
::Two major problems have been uncovered...
::We are approximately 30% of the way through the project plan, and running about 2 days ahead of schedule...
::The reason for the change in estimated release date is...
::To stay on schedule, we have slipped enhancements [issue92](ISSUE-TRACKER-URL),
[issue 101](ISSUE-TRACKER-URL), and [issue 129](ISSUE-TRACKER-URL) to a later
release. These issues were selected because ...
### Risk Management
*TODO: List 3-10 of the top project risks that are still outstanding.
This list may be an **updated** copy from [project plan](Project-Plan.html#Risk-Management)
or a previous status report.*
- ::We could face major difficulties with the technology chosen for
this project. HOW TO AVOID/MITIGATE?
- ::We could have low quality that demands significant rework. HOW TO
AVOID/MITIGATE?
- ::We could incorrectly assess our progress until it is too late
to react. HOW TO AVOID/MITIGATE?
- ::There may be a mis-alignment of stakeholder goals or expectations.
HOW TO AVOID/MITIGATE?
### Upcoming Activity
*TODO: Provide a few bullets describing what you will do between now and
the next status report. The text below is just an example, replace it
with your own words. Link to open issues in the issue tracker whenever
possible.*
- ::Fix [issue 130](ISSUE-TRACKER-URL)
- ::Fix [issue 133](ISSUE-TRACKER-URL)
- ::Verify [issue 102](ISSUE-TRACKER-URL), [issue 103](ISSUE-TRACKER-URL),
[issue 107](ISSUE-TRACKER-URL), and [issue 109](ISSUE-TRACKER-URL)
- ::Conduct regular team meeting: Tuesday, 1 hour
- ::Conduct review meeting: Wednesday, 2 hours
- ::Make major progress on COMPONENT
- ::Work through next release checklist
- ::Continue functional testing
- ::Revise our integration procedure
- ::Release version X.Y.Z
### Tracking to Plan
*TODO: Copy the Work Breakdown Structure from the [project plan](Project-Plan) and paste it here.
Add a new column for actual effort spent so far by all team members.*
| Step | Description | Planned Hours | Spent To-Date |
|------------|----------------------------------------------------------------------|---------------|---------------|
| ::1. | ::Preparation | | |
| ::1.1. | ::Developer training | ::30h | ::0h |
| ::2. | ::Inception | | |
| ::2.1. | ::Requirements gathering | ::30h | ::0h |
| ::2.2. | ::Requirements specification | ::20h | ::0h |
| ::2.3. | ::Requirements validation | ::10h | ::0h |
| ::3. | ::Elaboration | | |
| ::3.1. | ::High-level design | ::5h |::0h |
| ::3.2. | ::Low-level design (break down by component) | | |
| ::3.2.A. | ::Object design | ::10h | ::0h |
| ::3.2.B. | ::User interface design | ::10h | ::0h |
| ::3.2.C. | ::Database design | ::3h | ::0h |
| ::3.3. | ::Design review and evaluation | ::5h | ::0h |
| ::4. | ::Construction | | |
| ::4.1.A. | ::System implementation | | |
| ::4.1.A.1. | ::Implement Component 1 | ::25h | ::0h |
| ::4.1.A.2. | ::Implement Component 2 | ::25h | ::0h |
| ::4.1.A.3. | ::Implement Component 3 | ::25h | ::0h |
| ::4.1.A.4. | ::Implement Component 4 | ::25h | ::0h |
| ::4.1.A.5. | ::Integrate Components (mostly done during component implementation) | ::5h | ::0h |
| ::4.1.B. | ::Technical documentation (break down by component) | ::10h | ::0h |
| ::4.1.C. | ::User documentation (break down by component) | ::10h | ::0h |
| ::4.1.D. | ::Testing | | |
| ::4.1.D.1. | ::Test planning | ::10h | ::0h |
| ::4.1.D.2. | ::Test code implementation (break down by component) | ::30h | ::0h |
| ::4.1.D.3. | ::Test execution | ::10h | ::0h |
| ::4.2. | ::Implementation review and evaluation | ::15h | ::0h |
| ::5. | ::Transition | | |
| ::5.A. | ::Release packaging | ::3h | ::0h |
| 5.B. | ::Documentation for other groups | ::3h | ::0h |
| ::6. | ::Reflection | | |
| ::6.1. | ::Postmortem report | ::10h | ::0h |
| | Total | ::329 hours | |

View File

@ -0,0 +1,224 @@
### Mission and Scope
*TODO: Answer these questions in your own words. This is condensed
from the project [Home](Home).*
#### What problem does this project address?
::2-4 SENTENCE PROBLEM
#### What is the goal of this project?
::2-4 SENTENCE GOAL
#### What is the scope of this project
::2-4 SENTENCE SCOPE
### Status
*TODO: Briefly describe the status of this project. E.g., what phase are you in? And, what is your next major milestone? Detailed project status is written in the status reports, not here.*
::We have completed our second beta release and are currently working on
adding more of the functionality described in our product
[specification](SRS) and fixing defects.
::The next major milestone is a third beta release with nearly complete
functionality and a wider set of testers.
#### Status reports
- ::[Status report 1](status-report.html)
- ::[Status report 2](status-report2.html)
- ::Etc.
### Resources and schedule
*TODO: Briefly describe the project resources and schedule. This is
condensed from the [project plan](Project-Plan), [resource needs](Resource-Needs),
and [legal issues](legal.html) documents.*
#### What are the deadlines for this project?
- ::DATE: MILESTONE
- ::DATE: MILESTONE
- ::DATE: MILESTONE
- ::DATE: RELEASE-NUMBER
#### Who is working on this project?
- ::100% PERSON-NAME
- ::100% PERSON-NAME
- ::75% PERSON-NAME
- ::33% PERSON-NAME
#### What capital resources are allocated to this project?
- ::HARDWARE
- ::SOFTWARE LICENSE
- ::FACILITIES
#### What are the main legal concerns for this project?
- ::Intellectual property: DESCRIPTION
- ::Privacy and security: DESCRIPTION
- ::Potential harm: DESCRIPTION
### Requirements
*TODO: Briefly describe the most important system requirements. This is
condensed from the [user needs](User-Needs),
[interview notes](interview-notes.html), [SRS](SRS),
[use case suite](Use-Case-Suite),
and [feature set](Feature-Set) documents.*
#### Who are the project stakeholders?
- ::PROJECT CHAMPION / EXECUTIVE SPONSOR
- ::DEPARTMENTS WITHIN YOUR COMPANY
- ::CORPORATE PARTNERS
- ::KEY CUSTOMERS
#### What user needs have you gathered?
- ::[User stories](LINK-TO-USER-STORIES)
- ::[Interview notes](LINK-TO-INTERVIEW-NOTES)
#### What are the requirements specifications?
- ::[Use cases](LINK-TO-USE-CASES)
- ::[Feature specifications](LINK-TO-FEATURE-SPECS)
- ::[Environmental requirements](LINK-TO-ENV-REQ)
- ::[Other requirements](LINK-TO-OTHER-REQ)
### Design
*TODO: Briefly describe the most important aspects of the design. This is
condensed from the [design](Design) template and associated
worksheets.*
#### What are your ranked design goals?
1. ::Correctness
- ::This design correctly matches the
given requirements.
2. ::Feasibility
- ::This design can be implemented and tested with the
planned amount of time and effort.
3. ::Understandability
- ::Developers can understand this design and
correctly implement it.
4. ::Implementation phase guidance
- ::This design divides the
implementation into components or aspects that can correspond to
reasonable implementation tasks.
5. ::Modularity
- ::Concerns are clearly separated so that the impact of
most design changes would be limited to only one or a
few modules.
6. ::Extensibility
- ::New features can be easily added later.
7. ::Testability
- ::It is easy to test components of this design
independently, and information is available to help
diagnose defects.
8. ::Efficiency
- ::The design enables the system to perform functions
with an acceptable amount of time, storage space, bandwidth, and
other resources.
#### Where are your design documents?
- ::[UML class diagram](LINK-TO-CLASS-DIAGRAM)
- ::[UML class diagram](LINK-TO-CLASS-DIAGRAM)
- ::[UML state diagram](LINK-TO-STATE-DIAGRAM)
- ::[UML sequence diagram](LINK-TO-SEQUENCE-DIAGRAM)
- ::[UML deployment diagram](LINK-TO-DEPLOYMENT-DIAGRAM)
- ::[Other design](LINK-TO-OTHER-DESIGN)
### Quality Assurance
*TODO: Briefly describe your quality goals and how you will achieve them.
This is condensed from the [QA plan](QA-Plan), [test
suite](test-suite), and [test cases](test-cases.html) documents.*
#### What are your ranked quality goals?
1. ::Correctness
2. ::Robustness
3. ::Accuracy
4. ::Compatibility
5. ::Usability
6. ::Security
7. ::Reliability
8. ::Scalability
9. ::Operability
10. ::Maintainability
#### What QA activities will you use?
- ::Preconditions and assertions
- ::Buddy reviews
- ::Review meetings
- ::Unit testing
- ::System testing
#### Where are the test cases?
- ::[Test case](LINK-TO-TEST-CASE)
- ::[Test case](LINK-TO-TEST-CASE)
- ::[Test case](LINK-TO-TEST-CASE)
- ::[Test case](LINK-TO-TEST-CASE)
### Packaging, Delivery, and Deployment
Where is the release checklist or sign-off document?
::[Release checklist](LINK-TO-RELEASE-CHECKLIST)
#### How is the product packaged and deployed?
- ::Packaging: DESCRIPTION
- ::Deployment: DESCRIPTION
- ::[Release notes](LINK-TO-RELEASE-NOTES)
#### How is the product installed?
- ::System requirements: DESCRIPTION
- ::STEP
- ::STEP
- ::STEP
### User Support
Where is the user documentation?
- ::[User guide](LINK-TO-USER-GUIDE)
- ::[User FAQ](LINK-TO-FAQ)
#### How can users get technical support or report problems?
- ::Support: DESCRIPTION
- ::Issue tracking: DESCRIPTION
### Glossary
*TODO: Define any technical terms that you use above, if a new member of
the team would not already know them. This is condensed from the
[glossary](Glossary) documents.*
##### ::TECHNICAL TERM 1
::DEFINITION
##### ::TECHNICAL TERM 2
::DEFINITION
##### ::TECHNICAL TERM 3
::DEFINITION
##### ::TECHNICAL TERM 4
::DEFINITION

View File

@ -0,0 +1,139 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [Proposal](Proposal) > Target Audience and Benefits
- [Project proposal](Proposal) > [User needs](User-Needs)
- [Glossary](Glossary)
---
**Process impact:** This document helps identify potential customers and
their defining aspects. That helps to suggest and give weight to
requirements. The list of benefits gives the sales team information on
how to sell the product, and highlights important use cases and test
cases.
### Target Audience
*TODO: Fill in the information above and below. Provided answers are only
examples. Delete them and answer in your own words.*
#### What market segment is this product in?
::Console video games. Specifically, first-person shooters.
::Anti-virus software for cellular phones.
::Open source development tools for SQL database design.
#### What is the target market for this product? Include specific defining characteristics.
::Experienced console game players age 13-35 who enjoy first-person
shooter games with detailed character animation models and
cinematic segments.
::Cellular phone users who frequently download ring-tones, video
games, and other content to high-end phones and who are concerned
about the potential for viruses.
#### What is the size of the total available market? Cite references for facts.
::10,000 users \[[magazine article](#)\].
::$10M, growing annually at 4% \[[industry analyst](#)\].
#### What are some other customer options or leading products that address the same needs?
- ::[Competitor 1](#)
- ::[Competitor 2](#)
- ::[Do-it-yourself solutions](#)
#### Are there any known customers for this product?
- ::[MegaCorp, corporate I.T. department](#)
- ::[Worldwide Global Corporation](#)
- ::Our own in-house application software developers and server
operations team
- ::Our own marketing, sales, and customer support departments
### Benefits to Customers
*TODO: List high-level benefits that this product will provide. For each,
identify the type of customer or user that will benefit. Each benefit
should be in real-world terms, not involving just this product itself.
You may want to highlight benefits that are not offered by competing
products. Benefits to the development organization should be listed in
[Risks and Rewards](Project-Plan#risk-management).*
*TIP: If you can rank benefits by value, use numbered lists (the HTML
&lt;ol> tag), otherwise use bullet lists (the HTML &lt;ul> tag).*
- ::Increases play-value
- ::Many players enjoy games more when they play as a team.
- ::Clans can greatly extend the time that a player plays one game,
thus reducing the expense of buying new games.
- ::Improves customer population
1. ::Clan players often encourage their friends to play the same
game, which gives game vendors more revenue.
2. ::Clans help to organize the customer population and create
channels of communication so that vendor information (e.g.,
about future releases) spreads more quickly with less
advertising expense and delay.
3. ::Clans attract the more experienced players who can give better
feedback to game vendors.
- ::Reduces current costs
- ::Reduced staffing costs
- ::Reduced training costs
- ::Reduced maintenance costs
- ::Reduced infrastructure costs
- ::Makes current processes more efficient
- ::Avoids penalty clauses of current contracts
- ::Opens new business opportunities
- ::Opens new sales opportunities
- ::Improves sales success rate or size
- ::Opens partnership opportunities
- ::Triggers bonus clauses current contracts
- ::Satisfies stakeholders
- ::Satisfies shareholders
- ::Satisfies partners
- ::Satisfies management or executives
- ::Satisfies government regulation or corporate policy
- ::Improves morale
- ::Helps take advantage of changing marketplace
- ::Reduced inventory or need for advance planning
- ::Speeds time-to-market
- ::Optimizes supply chain
- ::Reduces fixed costs
- ::Type of benefit
1. ::Most valuable benefit
2. ::Benefit
3. ::Benefit
- ::Type of benefit
- ::Benefit
- ::Benefit
- ::Benefit
### Potential Downside
*TODO: Could anyone be harmed or put at a disadvantage because of your
system? List as above. Note, these are not risks to the success of your
implementation, assume that you build the system as specified on time.*
- ::Privacy
- ::When players opt into clans, they also opt into receiving
marketing information from game vendors. Usually this is a good
thing if the players are interested, but it can also
be annoying.
- ::Cheaters will be publicly named as cheaters and blocked from
game servers, thus they lose the ability to play/cheat.
- ::Type of downside
1. ::Worst downside
2. ::Downside
3. ::Downside

View File

@ -0,0 +1,130 @@
##### Related Documents
- [QA Plan](QA-Plan) > [Test Suite](Test-Suite) > Test Case Format
---
**Process impact:** This reference page documents the format of test
cases and gives tips on writing test cases. You can copy and paste the
sample test case into your test-cases file. This file itself should
not be edited to hold specific test cases.
This test case format is suitable for manual system test cases.
The test cases should be written in enough detail that they could be
given to a new team member who would be able to quickly start to carry
out the tests and find defects.
---
### unique-test-case-id: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is being tested. If this gets too long, break the test case up or put more information into the feature descriptions.
**Prerequisite:**
Assumptions that must be met before the test case can be run. E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;, &quot;user test-user exists&quot;.
**Test Data:**
List of variables and their possible values used in the test case. You can list specific values or describe value ranges. The test case should be performed once for each *combination* of values. These values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### Format of test steps
Each step can be written very tersely using the following keywords:
#### ::login \[as ROLE-OR-USER\]
::Log into the system with a given user or a user of the given type.
Usually only stated explicitly when the test case depends on the
permissions of a particular role or involves a workflow between
different users.
#### ::visit LOCATION
::Visit a page or screen. For web applications, LOCATION may be
a hyperlink. The location should be a well-known starting point
(e.g., the Login screen), drilling down to specific pages should be
part of the test.
#### ::enter FIELD-NAME \[as VALUE\] \[in SCREEN-LOCATION\]
::Fill in a named form field. VALUE can be a literal value or the name
of a variable defined in the "Test Data" section. The FIELD-NAME
itself can be a variable name when the UI field for that value is
clear from context, e.g., "enter password".
#### ::enter FIELDS
::Fill in all fields in a form when their values are clear from
context or when their specific values are not important in this
test case.
#### ::click "LINK-LABEL" \[in SCREEN-LOCATION\]
::Follow a labeled link or press a button. The screen location can be
a predefined panel name or English phrase. Predefined panel names
are based on GUI class names, master template names, or titles of
boxes on the page.
#### ::click BUTTON-NAME \[in SCREEN-LOCATION\]
::Press a named button. This step should always be followed by a "see"
step to check the results.
#### ::see SCREEN-OR-PAGE
::The tester should see the named GUI screen or web page. The general
correctness of the page should be testable based on the
feature description.
#### ::verify CONDITION
::The tester should see that the condition has been satisfied. This
type of step usually follows a "see" step at the end of the
test case.
#### ::verify CONTENT \[is VALUE\]
::The tester should see the named content on the current page, the
correct values should be clear from the test data, or
given explicitly. This type of step usually follows a "see" step at
the end of the test case.
#### ::perform TEST-CASE-NAME
::This is like a subroutine call. The tester should perform all the
steps of the named test case and then continue on to the next step
of this test case.
*Every test case must include a verify step at the end so that the
expected output is very clear. A test case can have multiple verify
steps in the middle or at the end. Having multiple verify steps can be
useful if you want a smaller number of long tests rather than a large
number of short tests.*

View File

@ -0,0 +1,365 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
[QA Plan](QA-Plan) > [Test Suite](Test-Suite) > Test Cases
[System test case format](Test-Case-Format)
::LINKS TO RELEVANT STANDARDS
::LINKS TO OTHER DOCUMENTS
---
### login-1: Normal User Login
**Purpose:**
::Test that users can log in with the proper username or
email address and their password.
**Prerequisite:**
::User is not already logged in.
::User test-user exists, and account is in good standing.
**Test Data:**
::usernameOrEmail = {test-user, bogus-user, test-user@nospam.com,
test@user@nospam.com, empty}
::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::This assumes that user has not agreed to terms-of-use already.
- ::Does this work without browser cookies?
---
### login-2: Locked-out User Login
**Purpose:**
::Test that a user who has been locked out by a moderator, cannot
log in, They should see a messagaddede indicating that they were locked
out.
**Prerequisite:**
::User is not already logged in.
::User test-user2 exists, and has been locked out
**Test Data:**
::usernameOrEmail = {test-user2, test-user2@nospam.com}
::password = {valid}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter usernameOrEmail
- ::enter password
- ::click Login
- ::see LoginPage
- ::verify warning message is the locked-out message
**Notes and Questions:**
- ::Does this work without browser cookies?
---
### unique-test-case-id1: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### unique-test-case-id2: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### unique-test-case-id3: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### unique-test-case-id4: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### unique-test-case-id5: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### unique-test-case-id6: Test Case Title
**Purpose:**
::Short sentence or two about the aspect of the system is
being tested. If this gets too long, break the test case
up or put more information into the feature descriptions.
**Prerequisite:**
::Assumptions that must be met before the test case can be run.
E.g., &quot;logged in&quot;, &quot;guest login allowed&quot;,
&quot;user test-user exists&quot;.
**Test Data:**
::List of variables and their possible values used in the test case.
You can list specific values or describe value ranges. The test case
should be performed once for each *combination* of values. These
values are written in set notation, one per line. E.g.:
- ::loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty}
- ::password = {valid, invalid, empty}
**Steps:**
::Steps to carry out the test. See step formating rules below.
- ::visit LoginPage
- ::enter userID
- ::enter password
- ::click login
- ::see the terms of use page
- ::click agree radio button at page bottom
- ::click submit button
- ::see PersonalPage
- ::verify that welcome message is correct username
**Notes and Questions:**
- ::NOTE
- ::QUESTION

View File

@ -0,0 +1,82 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [QA Plan](QA-Plan) > Test Run Suite
- [Test suite](Test-Suite)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** This is a test run log for manual system testing. A
test run is logged whenever the manual system test suite is carried out.
The log overview helps visualize the set of system configurations that
have been tested and those that have not. Clearly understanding the
degree to which the system has been tested helps to assess progress,
assess risk, and focus ongoing testing efforts.
*TODO:*
- *Review the [target audience](Target-and-Benefits),
[environmental requirements](SRS#environmental), and [possible
deployments](Design-Architecturel#deployment) to understand the
set of possible system configurations that could be tested.*
- *Use a table or list to describe that set of possible configurations.
Mark each possibility with Pending, N/A, or Waived.*
- *Track each test run with an issue in the issue tracker or an item in
the [test-runs](Test-Runs) document.*
- *Periodically review the set of possible system configurations to
identify any additional needed test runs.*
### ::Test Runs by Operating System and Browser
| OS \ Browser | IE | Firefox | Safari | Chrome | other |
|----------------|------------------------------------------|----------------------------------|----------------------------------|-----------|---------|
| ::Windows | ::[Passed](Test-Runs#TR-01) | ::[Passed](Test-Runs#TR-02) | ::N/A | ::Pending | ::N/A |
| ::Linux | ::N/A | ::[Passed](Test-Runs#TR-03) | ::Pending | ::Pending | ::N/A |
| ::Mac | ::[FAILED](Test-Runs#TR-10) | ::Pending | ::[Passed](Test-Runs#TR-11) | ::Pending | ::N/A |
| ::iOS | ::N/A | ::N/A | ::Pending | ::N/A | ::N/A |
| ::Android | ::N/A | ::N/A | ::Pending | ::Pending | ::N/A |
### ::Test Runs by Locale
*TIP: Use this outline to guide the testing of internationalized
applications. Each locale indicates a native language as well as formats
for presenting money, dates, times, etc.*
- ::English US: [Passed](Test-Runs#TR-00)
- ::English UK: [Passed](Test-Runs#TR-01)
- ::English CA: [Passed](Test-Runs#TR-02)
- ::Japanese: [Passed](Test-Runs#TR-10)
- ::Spanish: Pending
- ::Russian: Pending
- ::German: Pending
- ::French: Pending
- ::French CA: Waived, French + English Canadian is good enough
### ::Test Runs by Hardware Configuration
*TIP: Use this outline for products that depend on specific hardware.
E.g., a disk crash recovery product would depend on the type of drive, a
game might depend on processor speed and graphics cards, other products
might depend on memory or other hardware specs.*
- ::PCs
- ::IDE drive: Pending
- ::EIDE drive: Waived because we only use IDE features
- ::ATA drive: [Passed](Test-Runs#TR-00)
- ::SCSI drive: [Passed](Test-Runs#TR-01)
- ::SATA drive: [Passed](Test-Runs#TR-02)
- ::USB drive: [FAILED](Test-Runs#TR-03)
- ::Macs
- ::EIDE drive: [Passed](Test-Runs#TR-10)
- ::SCSI drive: [Passed](Test-Runs#TR-11)
- ::Firewire drive: Pending
- ::USB drive: [FAILED](Test-Runs#TR-12)

View File

@ -0,0 +1,301 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [QA Plan](QA-Plan) > [Test Run Suite](Test-Run-Suite) > Test Runs
- [Test suit](Test-Suite)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
*TODO: Use this file to record the results of each test run. Or, use your
issue tracking tool to plan and track test runs.*
### TR-00: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-01: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-02: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-03: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-10: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-11: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-12: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-13: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-20: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---
### TR-21: Test Run
**Date:**
::DATE-TEST-WAS-PERFORMED
**Tested by:**
:: EMAIL-ADDRESS-OF-TEST-ENGINEER
**Location or Configuration:**
::NAME-OF-SERVER | DESCRIPTION-OF-TEST-ENVIRONMENT
**Test Description:**
::Performed all [manual system tests](Test-Cases).
**Test Run Results:**
::Pending | Passed | FAILED
**Notes and Questions:**
- ::NOTE
- ::QUESTION
---

View File

@ -0,0 +1,135 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [QA Plan](QA-Plan) > Test Suite
- [Test case format](Test-Case-Format)
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** This is a test suite for manual system testing. It
is just one activity in the overall [QA plan](QA-Plan). A test case
suite is simply a table of contents for the individual test cases.
Organizing the suite of test cases by priority, functional area, actor,
business object, or release can help identify parts of the system that
need additional test cases.
*TODO: Before writing individual test cases, list the test cases that you
think you will need. Organize them in a way that will purposely leave
visible blanks on this page if you are missing use cases. Choose one or
more of the organizations show below.*
*TIP: Refer back to your [use cases](Use-Cases) document. Use them
for ideas and make sure that you cover all of them. Remember that test
cases are more precise than use cases, test cases should reference
specific details of your implementation, and there may be several test
cases for a given use case.*
*TIP: The test case suite can be organized into nested lists according to
other coverage criteria, e.g., by actor. Or, it can be organized into
tables that consider two aspects at a time, e.g., business objects vs.
actor. If a certain section of the tree or table does not need test
cases, explicitly mark it "N/A". Otherwise, if a section needs more test
cases than you have written yet, mark it "TODO". If one cell or list
item contains many tests, break that section out into its own table, as
done for the enrollment feature below.*
### Test Cases by Business Object and Operation
<!-- Hint: turn off word wrapping to edit this big table -->
| BO \ Action | ::add | ::list/browse | ::edit | ::delete | ::search | ::other |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| ::Student | <ul><li>::[student-add-1](Test-Cases#student-add-1)</li><li>::[student-add-2](Test-Cases#student-add-2)</li><li>::[student-add-3](Test-Cases#student-add-3)</li></ul> | ::[student-list-1](Test-Cases#student-list-1) | <ul><li>::[student-edit-1](Test-Cases#student-edit-1)</li><li>::[student-edit-2](Test-Cases#student-edit-2)</li></ul> | ::[student-delete-1](test-casesstudent-delete-1) | <ul><li>::[student-search-1](Test-Cases#student-search-1)</li><li>::[student-search-2](Test-Cases#student-search-2)</li></ul> | ::[See grid below](#enroll-grid) |
| ::Course | <ul><li>::[course-add-1](Test-Cases#course-add-1)</li><li>::[course-add-2](Test-Cases#course-add-2)</li></ul> | ::[course-list-1](Test-Cases#course-list-1) | <ul><li>::[course-edit-1](Test-Cases#course-edit-1)</li><li>::[course-move-1](Test-Cases#course-move-1)</li><li>::[course-add-prereq-1](Test-Cases#course-add-prereq-1)</li></ul> | ::[course-cancel-1](Test-Cases#course-cancel-1) | ::[course-search-1](Test-Cases#course-search-1) | ::N/A |
| ::Room | <ul><li>::[room-add-1](Test-Cases#room-add-1)</li><li>::[room-add-2](Test-Cases#room-add-2)</li></ul> | ::[room-list-1](Test-Cases#room-list-1) | ::TODO | ::TODO | ::TODO | ::N/A |
| ::Instructor | ::[inst-add-1](Test-Cases#inst-add-1) | ::N/A | ::[inst-edit-1](Test-Cases#inst-edit-1) | ::[inst-delete-1](Test-Cases#inst-delete-1) | ::N/A | <ul><li>::[inst-eval-1](Test-Cases#inst-eval-1)</li><li>::[inst-eval-2](Test-Cases#inst-eval-2)</li></ul> |
### ::Test Cases for Enrolling in Courses
| ::Course \ Student | ::New Freshman | ::Senior | ::Any Honors | ::Other |
|--------------------|----------------------------------------------------------|----------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| ::In Major | [::enroll-priority-2](Test-Cases#enroll-priority-2) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | <ul><li>[::enroll-1](Test-Cases#enroll-1)</li><li>[::enroll-2](Test-Cases#enroll-2)</li><li>[::enroll-3](Test-Cases#enroll-3)</li></ul> |
| ::Non-Major | [::enroll-priority-2](Test-Cases#enroll-priority-2) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | <ul><li>[::enroll-1](Test-Cases#enroll-1)</li><li>[::enroll-2](Test-Cases#enroll-2)</li><li>[::enroll-3](Test-Cases#enroll-3)</li></ul> |
| ::Honors Course | [::enroll-priority-1](Test-Cases#enroll-priority-1) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | [::enroll-priority-1](Test-Cases#enroll-priority-1) | [::enroll-restricted-1](Test-Cases#enroll-restricted-1) |
### Test Cases by Feature Priority
*TODO: Use this outline to make sure that high priority features are
adequately tested. List features by priority, and then list the test
cases for each feature. If a feature needs more test cases, note that
with "TODO".*
- Essential
- ::[F-01](features#F-01):
::[student-add-1](Test-Cases#student-add-1)
::[student-add-2](Test-Cases#student-add-2)
::[student-add-3](Test-Cases#student-add-3)
- ::[F-02](features#F-02): [enroll-1](Test-Cases#enroll-1)
::[enroll-2](Test-Cases#enroll-2)
::[enroll-3](Test-Cases#enroll-3)
::[enroll-priority-1](Test-Cases#enroll-priority-1)
::[enroll-priority-2](Test-Cases#enroll-priority-2)
::[enroll-restricted-1](Test-Cases#enroll-restricted-1)
- Expected
- ::[F-22](features#F-22):
::[student-search-1](Test-Cases#student-search-1)
::[student-search-2](Test-Cases#student-search-2)
::[course-search-1](Test-Cases#course-search-1)
- ::[F-23](features#F-23):
::[room-add-1](Test-Cases#room-add-1)
::[room-add-2](Test-Cases#room-add-2)
::[room-edit-1](Test-Cases#room-edit-1) TODO
- Desired
- ::[F-31](features#F-31):
::[inst-eval-1](Test-Cases#inst-eval-1)
::[inst-eval-2](Test-Cases#inst-eval-2)
### Test Cases by Use Case Priority
*TODO: Use this outline to make sure that high priority use cases are
adequately tested. List use cases by priority, and then list the test
cases for each use case. If a use case needs more test cases, note that
with "TODO".*
- Essential
- ::[UC-01](Use-Cases#UC-01)
- ::[student-add-1](Test-Cases#student-add-1)
- ::[student-add-2](Test-Cases#student-add-2)
- ::[student-add-3](Test-Cases#student-add-3)
- ::[UC-02](Use-Cases#UC-02)
- ::[enroll-1](Test-Cases#enroll-1)
- ::[UC-03](Use-Cases#UC-03)
- ::[enroll-2](Test-Cases#enroll-2)
- ::[UC-04](Use-Cases#UC-04)
- ::[enroll-3](Test-Cases#enroll-3)
- ::[UC-05](Use-Cases#UC-05)
- ::[enroll-priority-1](Test-Cases#enroll-priority-1)
- ::[enroll-priority-2](Test-Cases#enroll-priority-2)
- ::[UC-06](Use-Cases#UC-06)
- ::[enroll-restricted-1](Test-Cases#enroll-restricted-1)
- Expected
- ::[UC-22](Use-Cases#UC-22):
::[student-search-1](Test-Cases#student-search-1)
::[student-search-2](Test-Cases#student-search-2)
- ::[UC-23](Use-Cases#UC-23):
::[course-search-1](Test-Cases#course-search-1)
- ::[UC-30](Use-Cases#UC-30):
::[room-add-1](Test-Cases#room-add-1)
::[room-add-2](Test-Cases#room-add-2)
- ::[UC-31](Use-Cases#UC-31):
::[room-edit-1](Test-Cases#room-edit-1) TODO
- ::[UC-32](Use-Cases#UC-32): TODO
- ::[UC-33](Use-Cases#UC-33): TODO
- Desired
- ::[UC-40](Use-Cases#UC-40):
::[inst-eval-1](Test-Cases#inst-eval-1)
::[inst-eval-2](Test-Cases#inst-eval-2)

View File

@ -0,0 +1,144 @@
##### Related Documents
- [SRS](SRS) > [Use Case Suite](Use-Case-Suite) > Use Case Format
---
**Process impact:** This reference page documents the format of use
cases and gives tips on writing use cases. You can copy and paste the
sample use case into your [Use Cases](Use-Cases) document. This
file itself should not be edited to hold specific use cases.
*TODO: Use this template once in your [Use Cases](Use-Cases)
document. Anything you mention here will apply to all use cases in that
file.*
---
### Aspects common to all use cases
**Direct Actors:**
- ::User: end-user in any role
- ::System: The system being built
- ::When actors are not listed, assume User is doing it.
- ::Items beginning with &quot;see&quot; indicate that System has presented a new screen.
**Stakeholders:**
::The user who is entering the data, and those who will read it
**Prerequisite:**
::Project is set up
*TODO: Copy and paste this use case template as many times as needed in
your [Use Cases](Use-Cases) document. Only use those fields that
are not the same as the default for all use cases.*
---
### UC-00: USE CASE NAME
**Summary:**
::1-3 SENTENCES
**Priority:**
::Essential | Expected | Desired | Optional
**Use Frequency:**
::Always | Often | Sometimes | Rarely | Once
**Direct Actors:**
::ACTOR1, ACTOR2, ACTOR3
**Stakeholders:**
::STAKEHOLDER, STAKEHOLDER, STAKEHOLDER
**Prerequisite:**
- ::PRECONDITION
- ::PRECONDITION
- ::PRECONDITION
**Main Success Scenario:**
- ::STEP
- ::STEP
- ::STEP
**Alternative Scenario Extensions:**
- ::If CONDITION, then ALTERNATIVE STEPS.
- ::NOTES or DETAILS.
- ::If CONDITION, then ALTERNATIVE STEPS.
- ::NOTES or DETAILS.
**Notes and Questions:**
- ::NOTE
- ::NOTE
- ::QUESTION
- ::QUESTION
---
### Format of Use Case Steps
Try to start each step with one of these action words:
#### login \[as ROLE or USER\]
Log into the system with a given user or a user of the given type.
Usually usually only stated explicitly when the test case involves a
workflow between different users.
#### visit LOCATION
Visit a page or GUI window. State the user's intention, don't say
too much about UI choices that could change later. E.g., WRONG:
"Press the 'Advanced...' button on the File | Page Setup dialog".
RIGHT: "Visit the page margin configuration dialog".
#### enter INFORMATION
Fill in specific information. Try to state the information in
some detail. E.g., WRONG: "Enter customer information." RIGHT:
"Enter customer shipping address and discount code." Don't commit to
details of a particular UI, i.e., don't name specific UI fields that
might change later.
#### COMMAND
Describe a command that the user can tell the system to do. State
the user's intent, not the label on a particular UI widget. This
will usually be followed by a "see" step where the user sees a
confirmation of their action. E.g., WRONG: "Control-P, OK". RIGHT:
"Print the current document with default settings".
#### see CONTENT
The user should see the specified information on the currently
presented web page or GUI window. Try to be specific about the
information that is seen, but try not to refer to specific
UI elements. E.g., WRONG: "see UserList.jsp" (what is the user
supposed to notice on that page?) RIGHT: "see list of users with the
newly added user in the list".
#### perform USE-CASE-NAME
This is like a subroutine call. The user will do all the steps of
the named use case and then continue on with the next step of this
use case.
### Further Information
For more information on advice, see:
- Words of wisdom on [use case suites](http://readyset.tigris.org/words-of-wisdom/use-case-suite.html).
- Words of wisdom on [use cases](http://readyset.tigris.org/words-of-wisdom/use-cases.html).

View File

@ -0,0 +1,145 @@
##### Project
::[PROJECT-NAME](Home)
##### Internal Release Number
::X.Y.Z
##### Related Documents
- [SRS](SRS) > Use Case Suite
- [Project proposal](Proposal) > [User needs](User-Needs)
- [SRS](SRS) > [Feature set](Feature-Set)
- [Use case format](Use-Case-Format)
- ::LINK TO USE CASE DIAGRAM
- ::LINKS TO RELEVANT STANDARDS
- ::LINKS TO OTHER DOCUMENTS
---
**Process impact:** A use case suite is simply a table of contents for
the individual use cases. Much like a test suite, organizing the suite
of use cases by priority, functional area, actor, business object, or
release can help identify parts of the system that need additional use
cases.
*TODO: Before writing individual use cases, list the use cases that you
think you will need. Organize them in a way that will purposely leave
visible blanks on this page if you are missing use cases. E.g., see
"Scalability and availability". Choose one or more of the organizations
show below.*
*TIP: Refer back to the user stories in your [user needs](User-Needs)
document. Use them for ideas and make sure that you cover all of them.
Remember that use cases are more precise than user stories, and there
may be several use cases for a given user story.*
*TIP: The use case suite can be organized into nested lists according to
other coverage criteria, e.g., by actor. Or, it can be organized into
tables that consider two aspects at a time, e.g., business objects vs.
actor. If a certain section of the tree or table does not need use
cases, explicitly mark it "N/A". Otherwise, mark it "TODO".*
### Use Cases by Functional Area
- ::User account management
- ::[UC-00](Use-Cases#UC-00) Configure the site
- ::[UC-01](Use-Cases#UC-01) Register as a new user
- ::[UC-02](Use-Cases#UC-02) Request new password
- ::[UC-03](Use-Cases#UC-03) Edit user profile
- ::[UC-04](Use-Cases#UC-04) View user profile
- ::Course management
- ::[UC-10](Use-Cases#UC-10) Create course
- ::[UC-11](Use-Cases#UC-11) View catalog description
- ::[UC-31](Use-Cases#UC-31) Assign course to room
- ::Course enrollment
- ::[UC-20](Use-Cases#UC-20) Enroll in course
- ::[UC-21](Use-Cases#UC-21) Drop course
- ::Scalability and availability
- ::N/A: These features are completely automated and internal, users never interact with them
- ::Facilities management
- ::[UC-30](Use-Cases#UC-30) View room description
- ::[UC-31](Use-Cases#UC-31) Assign course to room
- ::Grading and transcripts
- ::TODO: need to write use cases here
- ::FUNCTIONAL AREA SEVEN
- ::[UC-70](Use-Cases#UC-70) NAME OF USE CASE
- ::[UC-71](Use-Cases#UC-71) NAME OF USE CASE
- ::FUNCTIONAL AREA EIGHT
- ::[UC-80](Use-Cases#UC-80) NAME OF USE CASE
- ::[UC-81](Use-Cases#UC-81) NAME OF USE CASE
- ::FUNCTIONAL AREA NINE
- ::[UC-90](Use-Cases#UC-90) NAME OF USE CASE
- ::[UC-91](Use-Cases#UC-91) NAME OF USE CASE
### Use Cases by Stakeholder
This information is shown in the [use case diagram](LINK-TO-DIAGRAM),
but it is shown here as a list or table so that missing use cases are
more noticeable.
- ::All Stakeholders
- ::[UC-11](Use-Cases#UC-11) View catalog description
- ::[UC-30](Use-Cases#UC-30) View room description
- ::Students
- ::[UC-01](Use-Cases#UC-01) Register as a new user
- ::[UC-02](Use-Cases#UC-02) Request new password
- ::[UC-03](Use-Cases#UC-03) Edit user profile
- ::[UC-20](Use-Cases#UC-20) Enroll in course
- ::[UC-21](Use-Cases#UC-21) Drop course
- ::Instructors
- ::[UC-04](Use-Cases#UC-04) View user profile
- ::Administrators
- ::[UC-00](Use-Cases#UC-00) Configure the site
- ::[UC-10](Use-Cases#UC-10) Create course
- ::[UC-31](Use-Cases#UC-31) Assign course to room
- ::Executives
- ::N/A: this stakeholder never directly interacts with the system
- ::Vendors
- ::TODO: need to write use cases here
- ::STAKEHOLDER
- ::[UC-70](Use-Cases#UC-70) NAME OF USE CASE
- ::[UC-71](Use-Cases#UC-71) NAME OF USE CASE
- ::STAKEHOLDER
- ::[UC-80](Use-Cases#UC-80) NAME OF USE CASE
- ::[UC-81](Use-Cases#UC-81) NAME OF USE CASE
- ::STAKEHOLDER
- ::[UC-90](Use-Cases#UC-90) NAME OF USE CASE
- ::[UC-91](Use-Cases#UC-91) NAME OF USE CASE
### Use Cases by Priority
- Essential
- ::[UC-00](Use-Cases#UC-00) Configure the site
- ::[UC-01](Use-Cases#UC-01) Register as a new user
- ::[UC-10](Use-Cases#UC-10) Create course
- ::[UC-11](Use-Cases#UC-11) View catalog description
- ::[UC-20](Use-Cases#UC-20) Enroll in course
- ::[UC-21](Use-Cases#UC-21) Drop course
- ::[UC-30](Use-Cases#UC-30) Assign course to room
- ::[UC-31](Use-Cases#UC-31) Assign course to room
- Expected
- ::[UC-02](Use-Cases#UC-02) Request new password
- ::[UC-03](Use-Cases#UC-03) Edit user profile
- ::[UC-04](Use-Cases#UC-04) View user profile
- ::[UC-70](Use-Cases#UC-70) NAME OF USE CASE
- ::[UC-71](Use-Cases#UC-71) NAME OF USE CASE
- ::[UC-80](Use-Cases#UC-80) NAME OF USE CASE
- ::[UC-81](Use-Cases#UC-81) NAME OF USE CASE
- Desired
- ::N/A: There are no use cases with Priority = Desired
- Optional
- ::[UC-30](Use-Cases#UC-30) View room description
- ::[UC-90](Use-Cases#UC-90) NAME OF USE CASE
- ::[UC-91](Use-Cases#UC-91) NAME OF USE CASE
### Use Cases by Business Object and Actor
<!-- Hint: turn off text wrap for this large table -->
| BO \ Actor | All | ::Student | ::Instructor | ::Admin |
|--------------------------------|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|-----------------------------------------------------------------------------------------------|
| ::Student record | ::N/A | <ul><li>::[Register as new user](Use-Cases#uc-01)</li><li>::[Request new password](Use-Cases#uc-02)</li><li>::[Edit user profile](Use-Cases#uc-03)</li></ul> | ::[View user profile](Use-Cases#uc-04) | ::N/A |
| ::Course | ::[View catalog description](Use-Cases#uc-11) | <ul><li>::[Enroll in course](Use-Cases#uc-20)</li><li>::[Drop course](Use-Cases#uc-21)</li></ul> | ::TODO | <ul><li>::[Create course](Use-Cases#uc-10)</li><li>::[Assign room](Use-Cases#uc-31)</li></ul> |
| ::Room | ::[View room description](Use-Cases#uc-30) | ::N/A | ::N/A | ::[Assign room](Use-Cases#uc-31) |

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
*TODO: Fill in information on this product. Make sure to use the
**product** name and **external** release number, not internal
information.*
##### Product
::[PRODUCT-NAME](http://www.COMPANY.com/products/PRODUCT-NAME/)
##### Release Number
::X.Y.Z
##### Release Date
::YEAR/MONTH/DAY
##### Customer Support
::For more information or support, please visit our
[website](http://www.COMPANY.com/products/PRODUCT-NAME/) or email
us at <support@COMPANY.com>
---
### Table of Contents
*TODO: Fill in the user guide outline below.*
*TIP: Consider providing both tutorial (step-by-step) and reference
material. You can organize the user guide by features, by use cases, by
roles, or in other ways.*
1. Introduction
- ::What is PRODUCT-NAME?
- ::About this user guide
2. ::SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
3. ::SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
4. ::SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME
- ::SUB-SECTION-NAME

View File

@ -0,0 +1,235 @@
##### Project
::[PROJECT-NAME](Home)
##### Attached worksheets
- User needs > [Interview notes](interview-notes.html)
##### Related Documents
- [Project proposal](Proposal) > [Target audience and benefits](Target-and-Benefits)
- [Software requirements specification](SRS)
- [Glossary](Glossary)
---
**Process impact:** The statement of user needs documents and explains
the actual desires of stakeholders in roughly their own words. What they
*desire* is never exactly what the product *provides*. Documenting user
needs here, independently from the [SRS](SRS), helps to keep the
SRS precise and makes the tasks of verification and validation more
effective. This document is *not* an informal draft of the SRS, it is
different document with a complementary purpose.
### Agreed Goals
*TODO: Has there been a clear statement of the overall goal of this
project that the stakeholders agree to? If so, paste it here or add a
hyperlink. If not, you should summarize your understanding of the
project goals into a brief statement and try to get the stakeholders to
agree to it. The text below gives three alternative examples, select
one, or write your own.*
::We were given an [initial project description](LINK) that is agreed to
by all stakeholders.
::After several interviews and brainstorming sessions, we have [revised
project description](LINK) that has been agreed to by all stakeholders.
::There are still a few different (but overlapping) visions of what this
project needs to achieve. When a single joint vision is agreed to, it
will be hyper-linked from here.
### Environment
*TODO: Briefly describe various aspects of the environment where the
software will be used. Describe the environment as it *is* or *will be*,
not what you would wish it to become. The text below gives a few
examples.*
#### What is the system's business environment?
:: Each real estate agent works with a set of potential buyers
and sellers. Real estate agents do not share customer data with
other agents, because they do not want to share commissions.
Information on specific available homes changes daily, and this tool
must help them keep up.
:: Game players may visit several free web sites to find information
about teams or "clans". There is usually more information available
than they would choose to read, the challenge is in having the most
fun with the least effort. This website must be familiar to players
who have used other sites, but it must also be better.
#### What is the system's physical environment?
:: This system is a web server that will run on a machine in a
co-located data center with 24x7 monitoring, UPS,
air-conditioning, etc. Users of this system are typically at
their offices.
:: This application runs on hand-held devices that will often be used
while the user is walking from one section of the warehouse
to another. Lighting is good in that environment, but there are many
noises and distractions.
#### What is the system's technology environment (hardware and software)?
:: 60% of game players have machines with P-II or equivalent
processors, while 30% have P-I machines, and 10% have less
powerful machines. While many users have 17-inch monitors, 15-inch
monitors or laptops with 1024x768 resolution are also common.
:: 65% of game players are using Windows 98 or Me. 30% are using NT,
2000, or XP. The remaining 5% use Mac OS X, Mac OS 9, or Linux.
### Stakeholders / Actors
*TODO: List and describe the stakeholders for this product. These can be
named individuals or roles that people play. For each stakeholder,
list/rank their key needs. Consider the expected technical expertise of
the stakeholders and how often they are likely to use the system, as
well as key strengths, weaknesses, preferences, or other
characteristics. Use a greater-than sign to indicate inheritance among
types of actors.*
*TIP: To get information on types of users, you can talk to actual users.
You may also want to talk to user surrogates (people who work with
users), such as domain experts, technical trainers, technical support
staff, technical writers, supervisors of users, and your own sales and
marketing department. You can find clues in manuals and marketing
materials for competing products.*
#### ::All
:: All stakeholders share the following key needs:
1. ::Security against abuses by other site visitors
2. ::Convenient access to the site any time over the Internet
#### ::Player
:: Players want to have fun. That means a sense of discovery,
challenge, satisfaction, and community. Some players who become
involved in clans will spend a few hours a week, while others will
spend over 20 hours a week. So, they need new content posted often
to keep them interested. Players involved in clans are often power
users and have high expectations for the functionality and quality
of the site, but they may not have much knowledge of
computer science.
:: Key needs:
1. ::Easily find information about clans
2. ::Keep in touch with members of his/her own clan
3. ::Understand the date and time of tournament play
4. ::Easily report cheaters
#### ::Player > Advanced player
:: Advanced players seek more challenges to continue the sense
of discovery. They tend to play over 20 hours a week. They have seen
more of the game details, now the need to see the "big picture".
:: Key needs:
1. ::View metrics that compare multiple clans
2. ::Understand relationships between clans
3. ::Understand overall schedule of tournaments
#### ::STAKEHOLDER1
::PARAGRAPH
#### ::STAKEHOLDER2
::PARAGRAPH
#### ::STAKEHOLDER3
::PARAGRAPH
### Notes from Interviews and Brainstorming
*TODO: Keep a log of your requirements gathering. Paste in notes from any
face-to-face or telephone conversations with stakeholders or from
brainstorming sessions with members of the development team. If the
communication took place via email, link to it in the archive or paste
it here.*
#### ::DATE, INTERVIEWEE
::[interview with INTERVIEWEE](interview-notes.html)
#### ::DATE-1, INTERVIEWEE
::NOTES FROM INTERVIEW...(pasted here)
#### ::DATE-2, INTERVIEWEE
::NOTES FROM INTERVIEW...(pasted here)
#### ::DATE-3, PARTICIPANTS
::NOTES FROM BRAINSTORMING SESSION...(pasted here)
#### ::DATE-4, PARTICIPANTS
::[email from INTERVIEWEE](LINK-TO-ARCHIVE)
### User Stories
*TODO: Write brief user stories to explain how various actors would
interact with the system (directly and indirectly) to accomplish a
real-world goal. User stories are *not* use cases: user stories are
brief (3-5 sentences) paragraphs that describe one specific scenario in
concrete terms. In this description of user needs, do not make
assumptions about details of the system, instead focus on the users.
Note the source of each user story.*
#### ::invited-to-join
:: John has gotten pretty good at SuperShooter by playing on public
servers about 8 hours a week for the last 3 weeks. John has chatted
with Bob about strategies and they have enjoyed some duels. Bob is a
member of the RedDawn clan. That clan plays a tournament on a
private server Friday nights. Bob invites John to visit the RedDawn
website and join. (Source: [INTERVIEWEE](interview-notes.html))
#### finding-the-tournament
:: Bob is visiting his friend. He tries to use his friend's computer to
log onto the RedDawn SuperShooter tournament. But, he does not
remember the exact name of the server. So, he visits the RedDawn
clan website to find that information. (Source: PERSON-NAME)
#### STORY-NAME-1
:: PARAGRAPH
#### STORY-NAME-2
:: PARAGRAPH
#### STORY-NAME-3
:: PARAGRAPH
### Performance and Capacity Needs
*TODO: Briefly list the stakeholders' desired values for various aspects
of the system capacity. If you have a good idea about averages or rates
of increase, note that as well.*
::By the end of the first year of service, we should to reach the
following system capacity:
- ::50,000 user records in the clan website account database (rate:
50-500 new registrations each day)
- ::1000 users browsing the web site any given time
- ::1000 gaming clans
- ::1000 members of a single clan (average: 8)
- ::4 MB max disk space for each clan (average: 0.5 MB)
- ::100 game vendors posting advertisements on the site
- ::1000 actual advertisements in the database

View File

@ -0,0 +1,73 @@
# Proposal
## Line-by-line Instructions
### Project
Write the name of the proposed project.
### Project Time-frame
Write the proposed project start and end dates. This information will usually be approximate.
### Summary
Write an executive summary of the proposed project. It is usually best to write the proposal first and then write the highlights here.
### What is the setting and history behind this project?
Briefly describe how the need for this project arose and was recognized. This helps motivate the product, put it into the context of the overall business, and can help identify project stakeholders.
### What business problem does this project address?
Use 2-4 sentences to describe the problem that your potential users are having right now. Focus on business problems, not technical problems. If you are trying to solve a technical problem, describe the business need that makes that technical problem important enough to solve. Do not say anything about your solution here.
### What are some current approaches to this problem?
List some of the alternatives that your potential customers have now. Listing these now will help set requirements for your product to be better than these alternatives, and it will help identify the expectations of potential customers that have already been using the alternatives.
### Why is this problem worth solving or worth solving better?
Explain why a better product would matter to customers or project stakeholders. Your argument would ideally impact business metrics such as profit, costs, revenue, sales, time-to-market, brand value, size of customer base, or return on investment.
### How will this product be better than previous approaches?
Describe how this product will actually be better than the current alternatives. This may be due to better functionality ("defining features" are covered below), or other aspects of the product that make it easier to buy, install, or use.
### Where is there more information on this problem?
Link to more information on the problem that customers face. Is this problem growing? Is the problem big enough to create enough demand for the product? These documents should support the decision to authorize the project by explaining the need.
### What is the goal of this project?
Write 2-4 sentences or bullets on your main goal for the project. Briefly, name your target audience and mention key benefits that your customers will gain by using your product.
### What are the defining features and benefits of this product?
Briefly list the most important features of the product. It is alright to reiterate features found in the alternative products, but focus on the unique features that will set this product apart.
### Where are other documents that further explain the goal of this project?
If you have other documents that support this project proposal, link to them from here. These documents should support the decision to authorize the project by explaining the value of the proposed solution.
### Scope
There are several useful formats for explaining the scope of a proposed project. A good scope description provides insight into the resources that may be needed for the project and helps you avoid feature creep later.
The simplest format is just a paragraph: give 2-4 sentences that summarize what you intend to do as part of this project. It is often a good idea to explicitly state some things that will not be done.
Another way to document the scope of a project is to use two bullet lists: one for things that are in scope, and one for things that are out of scope.
The third and best format is a table with columns that list things that are in scope and out of scope. Each row of the table defines a direction, the first column says how far you plan to go in that direction, and the second column names something that is too far in that direction.
### Deliverables
Briefly list the deliverables in enough detail to support the decision to authorize the project. You can describe deliverables in more detail in the project plan.
### Risks and Rewards
Briefly list risks to the success of the project and the main rewards to the organization if the project succeeds. Include enough information to support the decision whether to authorize the project. Later, you can describe and track project risks in more detail in the risk management worksheet.
### Project Plan
Link to a draft of the project plan.

View File

@ -0,0 +1,71 @@
# Template List
The original [ReadySET Pro](http://readysetpro.com) words of wisdom are [here](http://www.readysetpro.com/words-of-wisdom).
***
The following pages contain specific tips and advice on each template.
## Project kick-off
* [Project proposal](Words-of-Wisdom-Proposal)
* Target audience & benefits
* User needs & stories
* Interview notes
* All-in-one project summary
## Project Reference Information
* Project overview
* Glossary / Data dictionary
* Software development method
## System requirements
* SRS
* Use case suite
* Feature set
## Planning
* Project plan
* Resource needs
* Risk management
* Legal issues
## Design
* Design overview
* Architecture
* Persistence
* User interface
* Security
* Source organization
## Project tracking
* Status report
* Review meeting
## Quality management
* QA plan
* Test suite
* Test run log
## Product content
* Release notes
* Installation / Quick-start
* User Guide
* FAQ / Troubleshooting
## Product support information
* Implementation notes
* Demo script
## Release end-game
* Release checklist
* Postmortem report

View File

@ -0,0 +1,127 @@
### By Activity
1. Project Planning
1. [Home](Home)
2. [Proposal](Proposal)
- [Target and Benefits](Target-and-Benefits)
3. [Project Plan](Project-Plan)
- [Resource needs](Resource-Needs)
4. [Legal Issues](Legal)
5. [QA Plan](QA-Plan)
2. Requirements and Specification
1. [User Needs](User-Needs)
- [Interview Notes](Interview-Notes)
2. [Software Requirements Specification](SRS)
- [Use Case Suite](Use-Case-Suite)
- [Feature Set](Feature-Set)
3. Architecture and Design
1. [Design](Design)
- [Architecture Worksheet](Design-Architecture)
- [Source and Build](Design-Src-Org)
- [User Interface Worksheet](Design-UI)
- [Persistence Worksheet](Design-Persistence)
- [Security Worksheet](Design-Security)
4. Implementation and Testing
1. [User Guide](User-Guide)
2. [Test Suite](Test-Suite)
- [Test Case Format](Test-Case-Format)
- [Test Cases](Test-Cases)
5. Deployment and Installation
1. [Release Checklist](Release-Checklist)
2. [Installation / Quick Start Guide](Installation-Guide)
3. [Release Notes](Release-Notes)
4. [Demo Script](Demo-Script)
6. Operations and Support
1. [FAQ / Troubleshooting](FAQ)
2. [Implementation Notes](Implementation-Notes)
7. Continuous or Final
1. [Glossary](Glossary)
2. [Status Report](Status-Report)
3. [Review Meeting Notes](Review-Meeting-Notes)
4. [Software Development Methodology](SDM)
### By Suggested Sequence
1. Step 1
1. [Home](Home)
2. [Proposal](Proposal)
- [](Target-and-Benefits)[Target and Benefits](Target-and-Benefits)
3. [Project Plan](Project-Plan)
- [Resource needs](Resource-Needs)
4. [Legal Issues](Legal)
5. [Glossary](Glossary)
2. Step 2
1. [User Needs](User-Needs)
- [Interview Notes](Interview-Notes)
2. [Software Requirements Specification](SRS)
- [Use Case Suite](Use-Case-Suite)
- [Feature Set](Feature-Set)
3. [Software Development Methodology](SDM)
3. Step 3
1. [Design](Design)
- [Architecture Worksheet](Design-Architecture)
- [Source and Build](Design-Src-Org)
- [User Interface Worksheet](Design-UI)
- [Persistence Worksheet](Design-Persistence)
- [Security Worksheet](Design-Security)
4. Step 4
1. [QA Plan](QA-Plan)
2. [Test Suite](Test-Suite)
- [Test Case Format](Test-Case-Format)
- [Test Cases](Test-Cases)
5. Step 5
1. [Review Meeting Notes](Review-Meeting-Notes)
6. Step 6
1. [Release Checklist](Release-Checklist)
7. Step 7
1. [Installation / Quick Start Guide](Installation-Guide)
2. [Release Notes](Release-Notes)
3. [User Guide](User-Guide)
4. [Demo Script](Demo-Script)
5. [FAQ / Troubleshooting](FAQ)
6. [Implementation Notes](Implementation-Notes)
8. Every week
1. [Status Report](Status-Report)
### All Templates
1. [Summary](Summary)
2. [Home](Home)
3. [Proposal](Proposal)
- [Target and Benefits](Target-and-Benefits)
4. [Project Plan](Project-Plan)
- [Resource needs](Resource-Needs)
5. [QA Plan](QA-Plan)
- [Test Suite](Test-Suite)
- [Test Case Format](Test-Case-Format)
- [Test Cases](Test-Cases)
- [Review Meeting Notes](Review-Meeting-Notes)
6. [Legal Issues](Legal)
7. [User Needs](User-Needs)
- [Interview Notes](Interview-Notes)
8. [Software Requirements Specification](SRS)
- [Use Case Suite](Use-Case-Suite)
- [Feature Set](Feature-Set)
9. [Glossary](Glossary)
10. [Design](Design)
- [Architecture Worksheet](Design-Architecture)
- [Source and Build](Design-Src-Org)
- [User Interface Worksheet](Design-UI)
- [Persistence Worksheet](Design-Persistence)
- [Security Worksheet](Design-Security)
11. [User Guide](User-Guide)
12. [Release Checklist](Release-Checklist)
13. [Installation / Quick Start Guide](Installation-Guide)
14. [Release Notes](Release-Notes)
15. [Demo Script](Demo-Script)
16. [FAQ / Troubleshooting](FAQ)
17. [Implementation Notes](Implementation-Notes)
18. [Status Report](Status-Report)
19. [Software Development Methodology](SDM)
### How to download these templates
- [Download template archive](http://readyset.tigris.org/servlets/ProjectDocumentList), or
- Use CVS to [check out](http://readyset.tigris.org/servlets/ProjectSource) project
"readyset" or clone from [ReadySet GFM](https://github.com/bike-bill/readyset-gfm/wiki)
on Github.

View File

@ -0,0 +1,7 @@
**TODO:** Check for [words of wisdom](Words-of-Wisdom) for additional advice on this template.
::**Your-Organization Proprietary**
Copyright 2003-2004 Jason Robbins. All rights reserved. [License terms](LICENSE). Retain this copyright statement whenever this file is used as a template.
Find [Readyset GFM](https://github.com/bike-bill/readyset-gfm) on Github.

View File

@ -0,0 +1,5 @@
* [Home](Home)
* [Summary](Summary)
* [Project Plan](Project-Plan)
* [Workflows](Workflows)
* [Words of Wisdom](Words-of-Wisdom)