Professional Documents
Culture Documents
Course Management Software System
Course Management Software System
This document outlines some high-level requirements for a generic course management software system that could be deployed for use within the Computer Science department at Cornell University. The requirements outlined in this document have been collected from a variety of sources, including: Instructors: Greg Morrisett, David Schwartz, Jayavel Shanmugasundaram, Teaching Assistants: Kiri Wagstaff Administrative Staff: Laurie Buck, Kathy Carpenter ADM Staff: Dora Abdullah
Please note that this document is only a first draft, and that the requirements could change once we get feedback from additional sources. The rest of this document is organized as follows. In Section 1, we outline the high-level architectural requirements, and in Section 2, we describe other functionality requirements. Finally, in Section 3, we present some thoughts on the development and maintenance of the system.
1.1
Security
Firewall protection: The course management software system should run inside a firewall. It is an open question as to whether this should be the within the CUCS firewall, or a separate firewall (for better security). Kerberos authentication: All users of the system should be authenticated using the Kerberos authentication mechanism provided by CIT. Support for different roles: The system should support different roles for users, such as Instructors, Teaching Assistants, Students, and Administrative Staff. A user logged in with a given role should only be allowed access consistent with that role. For example, a student should only be allowed to see his or her grades, and not the grades of others.
1.2
Reliability
Reliability of data: Since all course-critical data (such as grades) will be stored in the course management system, the reliability of the system is of paramount importance. A simple way to meet this requirement is to use a commercial database system (such as Microsoft SQL Server, Oracle or DB2) for all data management tasks. Note that periodic backup of text files is not sufficient to guarantee reliability of the data. Backups of text files are not sufficient to guarantee reliability because (a) the course management
software system could crash in the middle of updating the text file leaving the data in an inconsistent state, and (b) there could be race conditions when updates are done concurrently with backups. Reliability in the face of concurrent access: If the course management system is to be used for large courses, concurrent access to data becomes an important issue. For example, the system should continue to work correctly when students and TAs are concurrently accessing and manipulating grades. Again, using a commercial database for all data management tasks will solve this problem.
1.3
Scalability
Scaling to a large number of users: Large courses such as CS100 and CS432 have hundreds of students. The system should be able to handle the load for such courses, especially near assignment deadlines when many students can be expected to access the course management system. Scaling to a large number of courses: If the course management system is successful, it is conceivable that a large number of CS courses will end up using the system. The system should thus be able to scale to a large number of courses, while at the same time scaling to a large number of users for each course.
One simple way to meet the above requirements is to dedicate a separate machine and an application server for every large course. All the courses could share the same database backend so that management overhead for the system maintenance staff is minimized.
2. Functional Requirements
We now describe some functional requirements for the course management software system.
2.1
Grade Management
The system should be capable of managing student grades. Specifically, it should support the following features: Allow grades to be entered online: The system should allow TAs and instructors to enter and modify grades online. Allow students to access their grades online: The system should allow students to log in and check their grades at any time. In addition, it would be nice if the system also provides statistical information such as averages, standard deviation, median, etc. Track and Handle Re-grade Requests: The system should be able to track and handle requests for re-grades. All information about re-grades should be available to the student, the associated TAs, and the course instructor. Export grades in standard formats: The system should be capable of exporting the grades in CSV format so that the grades can be sent to the registrar electronically (without having to fill in bubble sheets). Also, exporting grades in CSV format allows grades to be imported by software packages like Microsoft Excel, in case sophisticated statistical analysis is desired.
2.2
Homework Submissions
The system should be capable of automatically accepting homework submissions. Specifically, it should support the following features: Accept submissions in multiple formats: The system should accept submissions in multiple formats, including .zip, .cpp, .txt, .doc, etc. Automatically validate submissions: The system should be able to automatically validate submission using a script so that students can get immediate feedback on faulty submissions. Support for late submissions: The system should provide information about late submissions, and also disallow submissions after a certain period of time. Provide online access to submissions for TAs: The system should allow TAs to download assignment submissions online. Support for online grading: The system should provide the ability to grade submitted code (and other assignments) online and provide good student feedback, without requiring massive printouts. Some ways of achieving this are: (a) providing online grading templates that can be filled out, and (b) automatically annotating code with line numbers. [Note: The Cucoon system may already support this feature.] Integration with grade management: The homework submission system should be integrated with the grade management system so that (a) assignment grades can be automatically posted, and (b) grader comments can be sent along with the grades.
2.3
Group Management
The system should support group management features. Such features are especially important for courses with group projects. Ability to create groups: The system should allow students to automatically create groups, and enforce certain conditions such as each student should be a member of exactly one group for a given project. The TA and/or course instructor should not be forced to create groups; this is especially important for large classes. Integration with homework submissions: The system should be able to accept group homework submissions. Integration with grade management: The system should support grade management for groups, and track how the group grade translates into individual student grades. Group Maintenance: Invariably, students either switch groups, or drop out from a group altogether. The system should support such transitions and keep track of them.
2.4
Miscellaneous
Course web page management: The system should allow for easy course web page management by supporting bulk-uploads of web pages/other files.
Integration with Registrars class lists: The system should periodically upload the latest registrars class list to determine the current set of students enrolled in the course. Integration with newsgroups: The system should allow for easy integration with course news groups (currently supported by CIT).
3. Concluding thoughts
Since we are not aware of any existing software system that supports all of the above features, it seems inevitable that we develop and maintain our own home-grown system. While developing such a system has many advantages, it also comes with the following additional responsibilities. Commitment towards system development and maintenance: Once the system is in operation, bugs and missing features will inevitably crop up. We need to have a strong commitment within the Computer Science department to support the course management software system so that bugs, missing features and personnel changes do not affect the usability of the system. Commitment towards course set-up: Once the course management system is available, there has to be a commitment to setting up the system for every CS course at the beginning of the semester. This way, there will be very little overhead in adopting the system for use in a course. If the system is going to be difficult to set up and configure, then many courses that could potentially use the system may never do so. Training for all users involved (Profs, TAs, Admin Assts, etc) is also a necessary component to ensure success of this endeavor.
1. Introduction
This Software Requirement Specification is written accordance with the IEEE model.
1.1. Purpose
This SRS Document contains the complete software requirements for the student attendance management System (SAMS) and describes the design decisions, architectural design and the detailed design needed to implement the system. It provides the visibility in the design and provides information needed for software support.
1.2. Scope
Student attendance management System is developed to replace old paper work system .It helps the parents to know the status of their children in the college.
1.4. Overview
In SAMS, the student swipes their ID from which their ID no, date and time of their entry into the college is obtained. All these details are stored in their respective record in the database. Their personal details is fed already in the database. This is updated every-day and when the student is on leave, the system automatically sends a SMS to the corresponding contact number. If the student is on leave with prior information, then the system admin will update the database in prior and prevents from sending SMS.
2. Overall description
This section of the SRS describes all general factors of the product and its requirements.
3. Specific requirements
3.1. Functional requirements
3.1.1. User class Student
1. Student registration form. Student can be register on the system and fill in all detail and forward to choose project/supervisor.
2. Change Detail. Student can change detail if information is incorrect such as telephone number.
functions relating to assignments are carried out appropriately. Among other things, assignment handling clerks (a) enter the marks into the student records database, (b) copy some assignments for monitoring (quality assurance) purposes, and (c) send the marked paper-based assignments back to the student using the postal service. The paper-based system runs in parallel with the eTMA system as there are still courses for which the eTMA system is not suitable for the types of assessment materials involved, and it acts as a back-up system should the eTMA system be unavailable. However, the University wants more courses to use the eTMA system because it provides a better service to students, gives more management information and is potentially less expensive.
Figure 1 The basic electronic tutor-marked assignment system Whilst not shown in Figure 1, the fact that both the unmarked and marked assignments are saved by the University enables it to implement a number of web-based reports that provide summary information to students and tutors on the current status of their assignments within the system, as well as providing management information for the University's Assignment Handling Office. To match the existing paper-based TMA system, marks and tutor comments are extracted from marked assignments and added to the students' records. Since the number and size of eTMAs is potentially huge, the University has decided that complete marked and unmarked assignments would be stored only for a short period of time. From the start, the aim was to provide a web browser interface for both students and tutors. However, for security reasons, there would be two subsystems: one for students and one for tutors. Should the eTMA system ever fail and be unavailable to students, a back-up system has been implemented in which students are able to submit an assignment as an attachment to an email. The attachment is extracted by the University and fed into the eTMA system once the eTMA system is operational again. The basic system has been gradually enhanced and now provides a number of facilities not shown in Figure 1. For example, one of the OU's quality control systems involves monitoring, that is, examining
samples of each tutor's work to ensure that standards of marking are being maintained. In the paperbased TMA system, clerks in the central Assignment Handling Office take samples of marked TMAs, photocopy them, and send the copies to the monitors (academic staff who review the work of tutors and report back on the quality of the work). In the current version of the eTMA system, electronic copies of the tutors' work are sent to the monitors who will send back electronic versions of their reports. The eTMA system also checks a number of business rules regarding the submission of TMAs. For example, a student can make as many submissions as he likes, but only the last one will be marked (provided the submissions are made before the cut-off date or before the tutor has downloaded the eTMA). The system also rejects any submission that either contains a virus or is too large.
A rectangle
A circle
Data (flow)
Data store
Two parallel lines with the name of the A repository of data for use by one or more data store between them processes.
The description inside each process bubble should be as terse and as meaningful as possible. The use of an imperative verb and a simple object can easily indicate the desired transformation. In the Case Study above for example, you can find processes called Submit assignment' and Download unmarked assignment'. It is common to use a decimal numbering system to identify each process or activity at its given level of abstraction. For example, in Figure 1, we could label the six process bubbles from 1 to 6 with Submit assignment' being number 1, say. Then, if we wanted to show the details of Submit assignment' in another DFD we would label the processes in the new diagram 1.1,1.2, and so on to show the connection with the original DFD.
When you decompose or refine an activity and show the result in a new DFD it is essential, for the development of a consistent set of models, that the inputs and outputs of each successive decomposition or refinement remain the same. In addition to the set of DFDs that describe something like the eTMA system, you should also prepare a dictionary or glossary of the terms you have used in the diagrams like assignment' and tutor identifier'. In particular, you need to re cord your understanding of the content of the data associated with each arrow and the stores. An important aspect of a DFD, and its main benefit in a requirements process, is that there is no explicit indication of the sequence of processing in the notation. A DFD identifies what is happening and what is being passed in and out of each activity, but it does not specify the order in which things happen. In other words, you can identify the activities that take place at a given level of abstraction, such as Figure 1 above, but some other technique is needed to indicate the time-ordering of those activities. Some kind of sequence may be implied by the naming of activities, as in Figure 1, although any combination of the activities may be somewhere between their starting and finishing points at a given point in time. The convention followed in DFDs to minimise the number of overlapping lines is to allow external entities and data stores to be duplicated.