Nick Walker

CSE 403

4 April 2006

Life Cycle Objectives

Project: TestFile: Test file/school document organization, storage, retrieval and annotation

Operational Concepts:This document proposes a system designed to assist a group of users that wish to store, organize and refer to old tests, quizzes, assignments, notes and other school related documents. It makes use of a server to store documents and retain information about their contents and organization, and the client will be able to access the server via a web browser to perform searches or retrievals of documents. This software is different from simple OS-based file sharing or standard file sharing applications in that it its features are specifically targeted towards communities of users seeking specifically school related documents. Additionally, it does not require special software, as document servers will provide web front-ends. Users of this system specifically would appreciate features such as being able to request documents from their community, searching documents tagged with specific information such as class name or professor, and quickly uploading test files for others to use. The system should be very scalable to serve anywhere from a small, close-knit group of students in a dorm cluster to a large organization of most of the undergraduates in a particular major or set of related majors.

System Requirements:This system will require a central repository server or a collection of servers that can provide the documents as well as any information attached to the documents, to be stored in a database. Personal computers with web browsers can simply navigate to the address of a repository and the web server will provide an easy-to-use interface that doesn’t require any additional software. From the web interface, a user will be able to query the system for files based on file metadata, or navigate the directory tree of files which can be automatically organized by the file server based on metadata and options configurable by the administrator of the server, and subsequently download the documents they find. After viewing the documents, the user can annotate them or make suggestions and offer the new, annotated version of the documents to be included on the server to accompany the original, unedited copy. The user would also be able to submit his own original documents for inclusion as well. The system is not designed to assist a user in viewing the documents or annotating/editing them – it is a file-sharing system designed to assist users in locating and obtaining documents.

System and Software Architecture: Development of this system will include creation of the core file-sharing software that will reside on the document server, the web front-end tied into it that will allow client users to connect and navigate the files, and the associated database that will store and organize metadata about particular documents. Users will connect to the web front-end running on the server with the TestFile application, which can reference the database when it needs to. Development of each of these components should be extremely feasible with a small amount of research and applied knowledge, as they are standard components produced frequently in industry and in the classroom as well. The project would likely be developed with C# and ASP.NET for ease of implementation, especially considering the tools available at the disposal of the class.

Lifecycle Plan: TestFile offers a solution to a problem experienced by students and teachers alike at all levels of education, but especially at the university level, where the organizational nature of some groups of students enables them to maintain an organized test file systems where other groups of students, or individual students, cannot. As such, it makes sense that this product actually be developed at the university level, where students and teachers can have the most input and influence over the design. Stakeholders in TestFile are students and professors/teachers who may approve or disapprove of the system. Students will need to actively participate in adding files to a TestFile system for an incarnation of it to be a success, and other students will need to make use of the uploaded documents and provide their own input so the system is used to its full potential. It is entirely possible that professors or teachers could use the system as well: while some will understandably disapprove of the system and the way it builds on previous students’ work, others will likely embrace the system and interact with it.

It makes the most sense for the system to be created by and supported by students going forward. In fact, TestFile would likely be a great application to continue work on as an example of a simple client/server relationship system for students to tinker with as a class activity or project.

In following the spiral life cycle model, I believe it would be important to focus heavily on moving from one prototype to another in an evolutionary prototyping fashion. At the time of creating this document, TestFile is not complete in its design or description, and evolutionary prototyping would provide a way for the development team to get lots of feedback about ideas and features that should or shouldn’t be included. Since technical development of this system will likely not be very complex, it is important to focus on its feature set and ensure that the application does everything it should.

In order to focus on prototyping, a timeline for the project would consist of beginning with prototype development for the front end, determining what features should be included and what makes sense. The first two weeks or so would be spent discussing features and how the user interface should be organized, and creating an early prototype with little functionality. From this point, the back end, including the database, could quickly be developed to share files with metadata.

Feasibility Rationale:TestFile is a product that can definitely be created by a group of students at the university level. It is a solid idea that, while it does not have a lot of characteristics that differentiate it from a standard file-sharing application, it does focus on being easy to use and usable through ubiquitous browser software so. It utilizes simple engineering to solve a problem caused by the lack of organization in certain groups of people.

A major risk of this project will be identifying features in order to adequately differentiate the product from simple OS-based file sharing or file sharing applications. With some creativity, the system could be made to provide a great service that isn’t made available by simple file sharing. Additionally, inherent risks lie in the development of the application: the system needs developers who have the knowledge necessary to develop a file-sharing application