Вы находитесь на странице: 1из 28

Software Requirement Specification

(SRS)
19 November 2009

Learning Course Management


System

Submitted by:
Garima Ahuja (05CS124)
Kamal Tuteja (06CS146)
Swati Gupta (06CS201)
Swati Pasricha (06CS202)
Yakshendra Bhardwaj (06CS221)
Chetan Pahwa (06CS222)

1
TABLE OF CONTENTS

1. Introduction 4
1.1 Purpose of this Document
1.2 Scope of the Development Project
1.3 Overview of Document

2. Vision of scope 6
2.1 Requirements
2.1.1 Objective
2.1.2 Risks
2.2 Vision of the Solution
2.2.1 Major Features
2.2.2 Assumption and Dependencies
2.3 Scope and Limitations
2.3.1 Scope of Initial Release
2.3.2 Scope of Subsequent Releases
2.3.3 Limitations
2.4 Operating Environment

3. System overview 8
3.1 User Personas and Characteristics
3.2 Product Perspective
3.3 Functional Requirements (Use Cases)

4. Entity - Relationship Diagrams 16

5. Technology used - MICROSOFT.NET 18


5.1 MICROSOFT.NET Technology
5.2 ASP.NET
5.3 C# Language
5.4 Microsoft SQL Server

2
6. Object Oriented Programming 22
6.1 Objects
6.2 Classes
6.3 Data Abstraction and Encapsulation
6.4 Inheritance
6.5 Polymorphism
6.7 Benefits of OOP

7. Site Map 27

3
1. Introduction

1.1. Purpose of this Document


This document contains a description for "Learning Course Management System"
enhancement. This document will contain the functional requirements of the project and how the
developers will enhance the project to achieve all the objectives. The SRS will serve as a guide
for the client and the developers. Section 2 is concentrated more on the client perspective and
Section 3 is directed more for the developers.

1.2. Scope of the Development Project


Learning Content Management System (LCMS) is a Learning Management System (LMS),
which combines learner administration capabilities of an LMS with the content creation and
storage capabilities of a CMS. Many LCMS can offer basic course administration features, but
their functionality isn't as robust as that found in most LMS. It also typically use skill
assessments to track learners' competencies and recommend courses, but most systems lack
the capability to dynamically deliver personalized courses.
LCMS should provide authoring, sequencing, and aggregation tools that structure content to
facilitate the learning process.
The main components should minimally include,
Ø Authoring capability
Ø Course Management
Ø Learning Topics
Ø Assessments
Ø Discussion Forum
Ø Calendar
Ø Assignments
Ø Learning & Content Delivery
Ø Newsletter
Ø Mail Server

4
1.3. Overview of Document

Section 2, the general description, gives an "executive overview" and is very client oriented. It
expounds on the functional and data requirements of the application. It also lists the limitations,
assumptions and dependencies of the application. Section 3.0, the specific requirements
section, includes the developers' technical view of the client's expectation of the application. It
also touches on the performance and quality requirements of the application and provides a
solid definition of the interface.

5
2. Vision of scope

2.1. Requirements

2.1.1. Objectives
1) To provide an integrated platform for learning.
2) To encourage communication between the students and the concerned faculty.
3) To make a website that is appealing to the users.
4) Making the website personal and secure.

2.1.2. Risks Involved


1) Completing the project in the given time.
2) Cost constraints.
3) Popularity

2.2. Vision of the Solution

2.2.1. Vision Statement

Our vision at LCMS is to provide an integrated platform for learning and course management by
enhancing the management systems, making them online, and also to encourage student-
teacher interactions.

2.2.2. Major Features

1) An inbuilt Mail Server.

2) A chat server for use by the faculty.

3) Online availability of course content for all the courses offered by the institute.

6
2.2.3. Assumptions and Dependencies
Ø The details entered by the student will be correct and student will not be a fake
user.
Ø Roles and tasks are predefined.
Ø Information provided by the college in college profile will be correct.

2.3. Scope and Limitations

2.3.1. Scope of Release


The first release of LCMS offers:
1) A Mail Server
2) A chat server for the faculty
3) Online course content
4) Personal Profiles
5) Time tables and other Schedules
6) Assignments

2.3.2. Limitations
1) Limited server space hence not many documents can be uploaded.
2) Time Constraint
3) Students do not have the facility of a chat server.

2.4. Operating Environment

Operating System : Microsoft Windows

Framework : .NET

Client Side Language : C#

Server Side Language : ASP.NET

Database : Front end – Web


Back end - SQL Server

7
3. System Overview

3.1 User Personas and Characteristics


The primary users of "Learning Course Management System" will be
Ø The Administrator
Ø Students of all trades offered by the institute.
Ø Faculty
Ø H.O.D
The program will feature a simple point-and-click graphical interface similar to that which most
people use. The users are expected to have basic knowledge of Web Accessing.
Detailed Description of four personas that will be the users of Learning Course Management
System is as follows:

 The Administrator
I. The administrator can keep track of all the data related to every student, teacher
and the H.O.D.s

 Students of all trades offered by the institute


I. The students can create their personal profiles.
II. The students can get the schedule of the current courses they are enrolled in and
they can track their current progress in the course.
III. They can access their respective time tables and assignment schedules etc.
IV. They can interact with the faculty using the mailbox.
V. The students can also keep themselves updated with the latest news and events
regarding the various clubs and societies

 Faculty
I. The teachers can create their personal profiles.
II. The teachers from all the departments can upload their course content and
assignments for students to access.
III. They can interact with their respective H.O.D.s using the chat server or the
mailbox.

8
IV. They have access to the time tables of the classes assigned to them.
 H.O.D
I. The H.O.D.s provide authorization before any course content is uploaded by the
teachers of their respective departments.
II. They can interact with the teachers as well as other H.O.D.s using the chat
server or the mailbox.
III. They are responsible for uploading the academic calendars and the examination
schedules.
IV. They are also responsible for uploading any important notices.

3.2 Product Perspective

The program will be a web-based application, meaning it runs from a browser. The product
should be able to be run from a remote client machine with an Internet connection. This decision
is made depending on where the data file is stored. If it is stored locally, then the program will
run on the local machine. The external interface with be through the browser, through HTML,
PHP 4.4.2 etc.

9
3.3 Functional Requirements(Use Cases)

Class of Use Cases Use Cases Description of use cases

Use case related to Uploading Uploading Creates and initializes working files.

Use cases related to system authorization Login Login into LCMS

Change Password Change LCMS password

Use cases related to Homepages Create Profile Creates a new Profile.

Rename Profile Renames an existing Profile.

Delete Profile Deletes an existing Profile.

Use Cases related to Grouping system Create Group Creates a new Group in a given Profile.

Rename Group Renames an existing Group.

Delete Group Deletes an existing Group.

Use Cases related to Messaging system Create Message This is used for both e-mail and scrap

Setting Schedule Setting automatic schedule for e-mail

Use cases related to Scheduling Mails Show the pending Schedules List of all pending schedule

Delete Schedule Delete a given schedule

Display Home Page Features of homepage


Use cases related to information display

Display Chat Server Features of chat server

10
 Use case related to Uploading

Use Case 1: Uploading


Primary Actor: User
Pre Condition: Internet connection available.
Main Scenario:
1. User initiates the site by using any latest web browsers.
2. New Users can Sign Up.
3. User is also asked for the initial login and password.
3. User specifies login/password.
4. System creates the working space on the specified home page.
Home Page contains:
a. Profile.
b. List of Friends.
c. Messaging area.

Alternate Scenario:
(a) Network failure.
(b) Server too busy.

 Use cases related to system authorization:

Use Case 2: Login


Primary Actor: User
Pre Condition: Nil
Main Scenario:
1. Start the application. User prompted for login and password.
2. User gives the login and password.
3. System does authentication.
4. Main screen is displayed.

Alternate Scenario:
(a) Authorization fails

Use Case 3: Change Password


Primary Actor: User
Pre Condition: User logged in
Main Scenario:
1. User initiates the password change command.
2. User is prompted for old password, new password and confirm new
password.
3. User gives the old password, new password and confirm new
password.
4. System does authentication.
5. New password is registered with the system.

11
Alternate Scenario:
(a) Authorization fails
(b) Prompt the user that he typed the wrong password
(c) Allow him to re-enter the password. Give him 3 chances.
(d) New password and confirm new password do not match.
(e) Allow him to re-enter the attributes. Give 3 chances.

 Use cases related to Homepages

Use Case 4: Create Profile.


Primary Actor: User
Pre Condition: User logged in.
Main Scenario:
1. User initiates the “Sign-Up” functionality.
2. System asks the user for the name, id’s, e-mail etc.
3. User enters the portfolio name, id, email.
4. An empty portfolio is created.

Alternate Scenario:
(a) User with the same name exists.
(b) System asks the user for a secondary email.

Use Case 5: Rename profile.


Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the “edit profile” functionality.
2. System asks for the profile labels to be renamed and the new labels are introduced.
3. User enters the new id if he slides from one branch to another.
4. Profile is renamed.

Alternate Scenario:
(a) The profile whose name is supposed to change does not exist.
(b) Renaming fails, the error message is displayed.
(c) Profile with the same new name exists.

Use Case 6: Delete profile.


Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the ‘delete profile’ functionality.
2. System sends a message to the Administrator.
3. The profile is deleted by administrator or gets deleted automatically after 30-days.
12
Alternate Scenario:
(a) Profile does not exist.
(b) Deletion fails, error message is displayed.

 Use Cases related to Grouping system:

Use Case 7: Create Group


Primary Actor: Users
Pre-Condition: User Logged In
Main Scenario:
1. User initiates the “Create group” functionality.
2. User provides the name of the new group.
3. Select the name from the pull down menu and double click or you can directly add my
writing email id.

Alternate Scenario:
(a) Renaming fails, the error message is displayed.
(b) If a group with same new name exists, then error message is displayed.

Use Case 8: Edit Group


Primary Actor: Users
Pre-Conditioned: Users Logged In
Main Scenario:
1. Users initiate the “Edit group” functionality.
2. User can edit following detail:
a) Group Name
b) Member Name
c) E-mail Address of member.
3. The Changes are saved button by ‘Save’ functionality.

Alternate Scenario:
1. Until Save functionality is not accessed changes are temporary.
2. The priority cannot be assigned to any individual.

Use Case 9: Delete Group


Primary Actor: Users
Pre-Conditioned: Users Logged In
Main Scenario:
1. User initiates the ‘Delete group’ functionality.
2. System sends a message to the Administrator.
3. The Group is deleted by administrator or gets deleted automatically after 30-days.

13
Alternate Scenario:
(a) Group does not exist.
(b) Deletion fails, error message is displayed.

 Use Cases related to Messaging system:

Use Case 10: Create Message.


Primary Actor: User
Pre-Condition: User logged in
Main Scenario:
1. User initiates the “E-mail Box” functionality.
2. Add the name of receiver either directly or initiates the
‘Group’ functionality.
3.User can also paste one line message on profile of other user by “scrap” functionality.

Alternate Scenario:
(a) Email address of receiver should be clearly specified.
(b) Error in messaging center.

 Use cases related to Scheduling Mails

Use Case 10: Setting Schedule


Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the “set Schedule” functionality.
2. The system asks the user for the date and details in the Schedule.
3. The Schedule is set.

Use Case 11: Show the pending Schedules


Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the “show pending Schedules” functionality.
2. System shows the pending Schedule.

Use Case 12: Delete Schedule.


Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the “delete Schedule” functionality.
2. User is asked for the Schedule to be deleted.
14
 Use cases related to information display:

Use Case 13: Display Home Page


Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User selects the option of viewing the Profile of other student of class
2. System displays the name of all profiles with their name. It also shows the number of
groups or is any new mail or scrap is present.

Use Case 14: Display Chat Server


Primary Actor: Faculty/H.O.D.
Pre-Condition: User logged in.

Main Scenario:
1. Users select the other person by drop down list.
2. A request is sent in return of which acknowledgement is being sent by the person
who wants to chat.
3. Only two persons can chat with each other at that time.

15
4. Entity-Relationship Diagrams

Interact through mailbox

STUDENT FACULTY

Accesses content posted by/


Uploads course content

STUDENT FACULTY

Interact through mailbox/


chat server

FACULTY H.O.D

Uploads notices & other


schedules for
H.O.D
STUDENT

16
Approves content uploaded by

H.O.D FACULTY

Manages profile data for

ADMINISTRATOR
ADMINISTRATOR STUDENT

Manages profile data & course


content for
ADMINISTRATOR
ADMINISTRATOR
FACULTY

Manages profile data & other


content for
ADMINISTRATOR
ADMINISTRATOR
H.O.D

17
5. Technology Used: MICROSOFT.NET

5.1. Microsoft .Net Framework


The Microsoft .NET Framework is a software technology that is available with several Microsoft
Windows operating systems. It includes a large library of pre-coded solutions to common
programming problems and a virtual machine that manages the execution of programs written
specifically for the framework.
The pre-coded solutions that form the framework's Base Class Library cover a large range of
programming needs in a number of areas, including user interface, data access, database
connectivity, cryptography, web application development, numeric algorithms, and network
communications. The class library is used by programmers, who combine it with their own code
to produce applications.

Programs written for the .NET Framework execute in a software environment that manages the
program's runtime requirements. Also part of the .NET Framework, this runtime environment is
known as the Common Language Runtime (CLR). The CLR provides the appearance of an
application virtual machine so that programmers need not consider the capabilities of the
specific CPU that will execute the program. The CLR also provides other important services
such as security, memory management, and exception handling. The class library and the CLR
together compose the .NET Framework.

18
Principal design features
· Interoperability
· Common Runtime Engine
· Language Independence
· Base Class Library
· Simplified Deployment
· Security
· Portability

Changes in 2.0 on comparison with 1.1

· Numerous API changes.


· A new hosting API for native applications wishing to host an instance of the .NET
runtime.
· Full 64-bit support for both the x64 and the IA64 hardware platforms.
· Language support for generics built directly into the .NET CLR.
· Many additional and improved ASP.NET web controls.
· New data controls with declarative data binding.
· New personalization features for ASP.NET, such as support for themes, skins and
web parts.

5.2. ASP.NET

ASP.NET is the next version of Active Server Pages (ASP). It is a unified web development
platform that provides the services necessary for developers to build web applications. It is a
compiled, .NET-based environment; applications can be written in any .Net compatible
language, including VisualBasic.Net, C# and JScript.Net. Developers can easily access the
benefits of these technologies, which include the managed common language runtime
environment, type safety, inheritance, and so on.

ASP.NET has been designed to work seamlessly with WYSIWYG HTML editors and other
programming tools, including Microsoft VisualStudio.Net. Not only does this make web
development easier, but it also provides all the benefits that these tools have to offer, including

19
a GUI that developers can use to drop server controls onto a web page and fully integrated
debugging support. Developers can use web forms or XML web services when creating an
ASP.NET application or a combination of these. Each is supported by the same infrastructure
that allows developers to use authentication schemes, caches frequently used data, or
customize your applications configurations, to name only a few possibilities.

5.3. C# Language

C# is a multi-paradigm programming language that encompasses functional, imperative, generic


and object-oriented (class-based) programming disciplines. It is developed by Microsoft as part
of the .NET initiative.

Design goals

1. C# is intended to be a simple, modern, general-purpose, object-oriented programming


language.
2. Because software robustness, durability and programmer productivity are important, the
language should include strong type checking, array bounds checking, and detection of
attempts to use uninitialized variables, source code portability, and automatic garbage
collection.
3. The language is intended for use in developing software components that can take
advantage of distributed environments.
4. Programmer portability is very important, especially for those programmers already
familiar with C and C++.
5. Support for internationalization is very important.
6. C# is intended to be suitable for writing applications for both hosted and embedded
systems, ranging from the very large that use sophisticated operating systems, down to
the very small having dedicated functions.

20
7. Although C# applications are intended to be economical with regard to memory and
processing power requirements, the language is not intended to compete directly on
performance and size with C or assembly language.

5.4. Microsoft SQL Server

RDBMS is an acronym for Relational Database Management System. The most famous
RDBMS packages are Oracle, Sybase and Informix. Every business enterprise maintains large
volumes of data for its operations. With more and more people accessing data for their work,
the need to maintain its integrity and relevance increases. Microsoft SQL Server is a relational
database management system (RDBMS) produced by Microsoft. Its primary query language is
Transact-SQL.
T-SQL (Transact-SQL) is the primary means of programming and managing SQL Server. It
exposes keywords for the operations that can be performed on SQL Server, including creating
and altering database schemas, entering and editing data in the database as well as monitoring
and managing the server itself. Client applications, both which consume data or manage the
server, leverage SQL Server functionality by sending T-SQL queries and statements which are
then processed by the server and results (or errors) returned to the client application. SQL
Server allows it to be managed using T-SQL. For this it exposes read only tables from which
server statistics can be read. Management functionality is exposed via system-defined stored
procedures which can be invoked from T-SQL queries to perform the management operation.

Features:

1. Native support for managing XML data, in addition to relational data.


2. Allows embedding XQuery queries in T-SQL

21
3. Allows a database server to be exposed over web services using TDS packets
encapsulated within SOAP requests.
4. T-SQL has been augmented with error handling features and support for recursive
queries.
5. Enhanced with new indexing algorithms and better error recovery systems.

6. Object Oriented Programming

Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their
interactions to design applications and computer programs. Object-oriented programming may
be seen as a collection of cooperating objects, as opposed to a traditional view in which a
program may be seen as a group of tasks to compute (subroutines). In OOP, each object is
capable of receiving messages, processing data, and sending messages to other objects. Each
object can be viewed as an independent little machine with a distinct role or responsibility.

Object-oriented programming can trace its roots to the 1960s. As hardware and software
became increasingly complex, quality was often compromised. Researchers studied ways in
which software quality could be maintained. Object-oriented programming was deployed in part
as an attempt to address this problem by strongly emphasizing discrete units of programming
logic and re-usability in software. Computer programming methodology focuses on data rather
than processes, with programs composed of self-sufficient modules (objects) containing all the
information needed within its own data structure for manipulation.
Inspiring factor in the invention of object-oriented approach is to remove some of the flaws
encountered in the procedural approach. OOP treats data as a critical element in the program
development and does not allow it to flow freely around the system. It ties data more closely to

22
the functions that operate on it, and protects it from accidental modification from outside
functions. OOP allows decomposition of a problem into a number of entities called objects and
then builds data and functions around these objects.

An object-oriented program consists of a set of objects that communicate with each other. The
process of programming in an object-oriented language, therefore, involves the following basic
steps:

1. Creating classes that define objects and their behavior,


2. Creating objects from class definitions, and
3. Establishing communication among objects.

Objects communicate with one another by sending and receiving information much the same
way as people pass messages to one another. The concept of message passing makes it
easier to talk about building systems that directly model or simulate their real-world
counterparts. A message for an object is a request for execution of a procedure, and therefore
will invoke a function (procedure) in the receiving object that generates the desired result.
Message passing involves specifying the name of the object, the name of the function
(message) and the information to be sent. Objects have a life cycle. They can be created and
destroyed. Communication with an object is feasible as long as it is a1ive.

6.1 Objects

23
Objects are the basic run-time entities in an object-oriented system. They may represent a
person, a place, a bank account, a table of data or any item that the program has to handle.
They may also represent user-defined data such as vectors, time and lists. Objects take up
space in the memory and have an associated address like a record in Pascal, or a structure in
C. When a program is executed, the objects interact by sending messages to one another.

Each object contains data, and code to manipulate the data. Objects can interact without having
to know details of each other’s data or code. It is sufficient to know the type of message
accepted, and the type of response returned by the objects.

6.2 Classes

Objects contain data, and code to manipulate that data. The entire set of data and code of an
object can be made a user defined data type with the help of a class. In fact, objects are
variables of the type class. Once a class has been defined, we can create any number of
objects belonging to that class. Each object is associated with the data of type class with which
they are created.

A class is a collection of objects of similar type. For e.g., mango, apple and orange are
members of the class fruit. Classes are user-defined data types and behave like the built-in
types of a programming language.

24
6.3 Data Abstraction and Encapsulation

The wrapping up of data and functions into a single unit (called class) is known as
encapsulation. Data encapsulation is the most striking feature of a class. The data is not
accessible to the outside world, and only those functions, which are wrapped in the class, can
access it. These functions provide the interface between the object’s data and the program. This
insulation of the data from direct access by the program is called data hiding or information
hiding.

Abstraction refers to the act of representing essential features without including the
background details or explanations. Classes use the concept of abstraction and are defined as
a list of abstract attributes such as size, weight and cost, and functions to operate on these
attributes. They encapsulate all the essential properties of the objects that are to be created.
The attributes are sometimes called data members because they hold information. The
functions that operate on these data are sometimes called methods or member functions. Since
the classes use the concept of data abstraction, they are known as Abstract Data Types (ADT).

6.4 Inheritance

25
Inheritance is the process by which objects of one class acquire the properties of objects of
another class. For example, the bird ‘robin’ is a part of the class “flying bird’ which is again a
part of the class ‘bird’. The principle behind this sort of division is that each derived class shares
common characteristics with the class from which it is derived.

Concept of inheritance provides the idea of reusability. This means that we can add additional
features to an existing class without modifying it. This is possible by deriving a new class from
the existing one. The new class will have the combined features of both the classes. The real
appeal and power of the inheritance mechanism is that it allows the programmer to reuse a
class that is almost, but not exactly, what he wants, and to tailor the class in such a way that it
does not introduce any undesirable side-effects into the rest of the classes. Note that each sub-
class defines only those features that are unique to it. Without the use of classification, each
class would have to explicitly include all of its features.

6.5 Polymorphism
Polymorphism means the ability to take more than one form. An operation may exhibit different
behaviors in different instances. The behavior depends upon the types of data used in the
operation. For e.g., consider the operation of addition of two numbers, the operation will
generate a sum. If the operands are strings, then the operation would produce a third string by
concatenation. The process of making an operator to exhibit different behaviors in different
instances is known as operator overloading. Polymorphism plays an important role in allowing
objects having different internal structures to share the same external interface. This means that
a general class of operations may be accessed in the same manner even though specific
actions associated with each operation may differ. Polymorphism is extensively used in
implementing inheritance.

6.6 Benefits of OOP


26
OOP offers several benefits to both the program designer and the user. Object-orientation
contributes to the solution of many problems associated with the development and quality of
software products. The new technology promises greater programmer productivity, better quality
of software and lesser maintenance cost.
The principal advantages are:

1. Through inheritance, we can eliminate redundant code and extend the use of existing
classes.
2. We can build programs from the standard working modules that communicate with one
another, rather than having to start writing the code from scratch. This leads to saving of
development time and higher productivity.
3. The principle of data hiding helps the programmer to build secure programs that cannot
be invaded by code in other parts of the program.
4. It is possible to have multiple instances of an object to co-exist without any interference.
5. It is possible to map objects in the problem domain to those in the program.
6. It is easy to partition the work in a, project based on objects.
7. The data-centered design approach enables us to capture more details of a model in
implementable form.
8. Object-oriented systems can be easily upgraded from small to large system.

8. Sitemap

HOME

Sign In Sign Up
Session Session

Student Faculty H.O.D. Administr New


Extra 27 ator
Curricul User
ar
L.M.S. L.M.S. Time
Mailbox
Profile
Home
Activitie Mailbox
Profile
Home
Chat Mailbox
Profile
Home
Chat Student
Faculty
H.O.D
Page Page Table
28

Вам также может понравиться