The Software Requirement Specification Information Technology Essay

Published: November 30, 2015 Words: 4216

The main approach behind the developing of Student Marking System is to develop a desktop application which is user designed, developed, tested and implemented. It was found that marking of the student assignments and generating the feedback reports has been time consuming so this project aims to reduce the time taken for the marking of the student assignments, generate the feedback reports, can retrieve the feedback report or student marks lists when they need and send the feedback report from the application which is integrated with mail system for sending the mails.

The objectives are to develop the system which is a multi database which can be used in both by "Oracle" and "Access" accordingly with user preference since there may possibility that the user may not be having the oracle database but MS-Access Database is used by almost everyone. This application should be able users to setup modules they teach, tests under each module, questions for each test, parts for each question and marks for each question.

This application is developed using Visual Studio 2010(VB.Net for the front forms Design), Oracle 10g Database, and Access Database for saving of the data and Crystal reports for design of the feedback report which can be exported to the word format.

After undergoing research of the various process models of the software development life cycle I have chosen to develop the application based on the Rapid Action development (RAD) Model. The main objective behind choosing this approach is that the user involvement plays major role in this application development process.

At the end of this project I will be able to learn the whole process involved in development of the software applications from Analysis to the deployment of the application.

Analysis

Existing System

Proposed System

The goal of this project is to make "Marking" of the student assignments simple and time efficient. To develop a desktop application which has all features required to the Tutor to mark the student's assignments .The developed application should allow multiple Tutors to use.

Advantages

It can be used in multiple Databases in accordance with the user priority.

It will allow the tutors to set up more than one module since there is a possibility that a tutor can teach more than one module

Add Tests for each module.

Set up questions and parts for each Test

Add feedback for each question

Add student details to database from the existing CSV file and new Student

It allows the Tutor to check student mark list at any time

Generates the feedback report for individual student.

Feedback report can be sent to the students from application which is integrated with mail system

Generates the output in the CSV file format

Software Requirement Specification (SRS)

The purpose of this document is to provide the detailed overview of the software product and its aims. It provides the overall information for the development of the application i.e. user interfaces to be designed and the purpose of them, Specifies the Software and Hardware requirements.

These are the following proposed user interfaces need to be developed:-

Login Form

This interface is used to authenticate the user information and redirect him to Main menu according to the database selected. If it is the new user a new account is created in admin mode

Login Parameters:

User Name

Password

Database

Functionality:

If the user is already created he can directly access to Main menu of the application

If the User is need to login to Administrator and then create new user

It has to check with the database whether user name and the password are corrected and alert the user if the information failed.

Module Master:

This Form enables the user to set up the modules information he teaches.

Module Parameters:

Module Name

Module Description

Functionality :

Should be able to add the module to the database

Check if the module already defined

Alert the User that the module is already defined

Delete the module from list

Test Master:

This interface enables the user to set up tests for each module.

Test Parameters:

Module code

Test code

Functionality :

Should be able to set up Tests for each module.

Check whether the Test is already defined.

Should be able to Delete Tests for each module.

Should be able to modify Tests.

Question Master:

This interface should be able to set up questions for each module.

Question set up Parameters:

Module Code

Test Code

Question

Question Parts

Question Marks

Feedback1 Marks

Feedback1

Feedback2 Marks

Feedback2

Feedback3 Marks

Feedback3

Feedback4 Marks

Feedback4

Feedback5 Marks

Feedback5

Functionality:

Should be able to set up question for each Test

Should be able to set up parts for each Question

Assign Marks for each Question

Should be able to set up feedbacks for each question.

Should be able to modify the Questions

Should be able to delete the Questions.

Student Master:

This interface should enable the user to add new student details and Existing student list from the CSV file.

Student Parameters:

Student Name

Student Mail

Module Code

Year

Functionality :

Should add new student details to the database.

Add existing student details from reading the CSV file

Should be able to delete student from database

Should be able to modify the student Details.

Marks Entry:

This User interface is to be designed for marking the assignment of the student according to the module and test. It has to read the question and parts from the database, get the feedback for that question according to the marks assigned. Save the Tutor feedback for that question so as to use them for the next student and check whether the student is marked. Display the marks list of the student and make necessary changes if needed.

Marks Entry Parameters

Student Name

Student Mail

Test code

Question

Question Parts

Marks

Feedback

Tutor Feedback

Functionality:

Should read questions and parts from the database.

Should read the feedback from the database

Alert whether the student is marked for that test.

Alert the maximum marks for that question

Save the tutor feedback

Display the mark list at the end of test.

Marks List:

This user interface should allow the Tutor to get the student mark list when he need to see the result. It should allow the tutor to update the marks if there are any changes needed to make.

Marks list Parameters

Module Name

Test

Student Name

Functionality:

Should be able to get list of the student's who has been for the selected test

Display the result of the student according to the test and student name.

Feedback Report:

This user interface should allow the Tutor get the feedback report of the test. This user interface uses the crystal report viewer to display the report.

Report Parameters:

Module Name

Test

Student Name

Functionality:

Should be able to generate the feedback report.

Should be able to export the report to word format.

Send Feedback Report:

This user interface should enable the tutor to send the feedback report from the application.

Send Report Parameters:

Student Mail

Senders Mail

Subject

Attachments

Message

Functionality :

The tutor should be able to send the student feedback report from the application itself.

Get the list of student mail Id's.

Add the attachments.

Create New User:

This should allow the Administrator to create the new user login according to database which selected by user. It should create the new database dynamically and tables to store the data dynamically

New user Parameters

User Name

Password

Confirm Password

Database

Functionality:

Check if the User already exists and alert that user already exists.

Create Database Dynamically according to the user preference.

Hardware Specifications:

Software Specifications:

Operating System : Windows Vista or XP

Languages :Visual Basic .net

Database :Oracle 10g and Access 2007

Reporting :Crystal Reports 11

LITERATURE REVIEW

Software Development Life Cycle:

In this challenging IT world there has been many software applications being developed which are used by many of us. The main success behind the development these applications is the proper implementation of the software process models.

A process model is a "simplified description of a software process from a particular perspective" [1].

"SDLC is referred as the entire process of formal and logical steps taken to

Develop a software product" [3].

The common methodology in developing of a system involves in various phases that elaborates the system's life cycle model for the development of the software project. The general phases involved in development life cycle are

Requirements Analysis

Design

Development

Coding

Testing

There are different process models:-

Incremental /linear sequential process models

Spiral model

Rapid action development model

Formal transformation model

Prototyping models

Component Assembly model

RAD:

Rapid action development model was developed by James Martin in the year 1991.This is an incremental software process model which is used for the implementation of the of the prototyping. The main aspect behind the use of this model for the system development is the user participation. This aims to shorten the life cycle and to develop the application rapidly accompanying the user requirements.

The Rapid action development model has four phases:-

Requirements Planning:

This is the phase where the user interaction plays major role in the development process. It scopes for normalizing the business issues and gather required information the developer need from users of the organization.

User design :

This phase is based on the prototyping cycle which involves users and developers. These prototypes are designed based on the frequent interaction. Computer aided software engine tools are used for building of the protype and these are refined based on the user evaluation.

Construction :

Code is generated for the designed prototype here the new developed system is evaluated by the user. In the small application development user design and construction are combined together as the single phase.

Cut over :

This is the final stage the entire developed system is tested ,user trained and deployment of the system in the client machine.

Why RAD is used in this project?

To this application it is necessary to have high involvement of the user as to get overall requirements and design the prototype. To develop the application in constrained time and faster with necessary functionality.

Software Used:

To development of the application is done using the following software.

Visual Studio .net 2010:

.NET is a very exciting and major technology change. While it builds on the concepts introduced by COM, it is quite different from anything we have today promising

to make us more productivity as it merges the windows GUI and browser based Internet development environments closer together.

Visual Studio is a integrated development environment with collection of component based development and other technologies. This is used for designing, developing and deploying the applications.

Visual Studio is a combination of development tools for designing the web based applications using Asp.net, desktop applications, XML webservies and mobile application development. The IDE is integrated with different programming languages VB.net,C#.net(c sharp.net),F#.Net(F sharp.Net ).These languages utilize the functionality of the .net framework which allows access to technologies and ease the development of Active servlet Pages(ASP) web applications and XML services.

Some of the advantages to developers and users

Easy and Rapid development

Rich object model

Integrated built in functionality

Integration of different languages into one platform

Interoperability with existing applications.

Potentially better performance

Dot Net Framework:

The .net framework is used for designing, developing and deploying of the applications. It supports multiple languages; it is integrated with the CLR (common language runtime) and .net framework class library.

CLR(Common Language Runtime):

CLR is an Engine which is used for compiling of the source code to the intermediate language and is known as Microsoft intermediate language. When the program is executed the MSIL is converted to the machine code or native code this possible with the JIT (just in time) compiler. The end result is portable executable file it contains MSIL and additional information called Meta data with it is possible to write the code in any language. The programmer need not be worried about the memory it will be managed by the garbage collector.

Dot Net Framework Library:

It is a combination of library classes, GUI's, and value types that gives access to the functionality of the system and designed to be the foundation on .net framework.

ADO.Net:

Database management system

Database is a collection of related data which is stored in standard format and shared by multiple users. The group of programs that defines the database, manages the structure and controls the access to data in the database is known as database management system. DBMS serves as intermediate between the user and the database.

Advantages of database management system:

Data sharing:- DBMS creates an environment in which data is readily accessed by the end users at the same time.

Data integration:- Access to wider well managed data helps in integrated view of organizations operations and gives clear view of picture.

Data consistency:- Data consistency is maintained through the well design of database.

Efficient data access:- DBMS helps in access of data efficiently by using the query language. This feature is important when data is stored in external storage devices.

Data independence:- Application programs are independent in order to unaffected the data storage structures and data representation.

Data integrity and security:- The data which is accessed through DBMS helps in enforce the integrity constraints which is useful in preventing invalid entry of data. DBMS is also responsible in maintaining security access control.

SYSTEM DESIGN

ER Diagrams:

The relation upon the system is structure through a conceptual ER-Diagram, which not only specifics the existential entities but also the standard relations through which the system exists and the cardinalities that are necessary for the system state to continue.

The entity Relationship Diagram (ERD) depicts the relationship between the data objects. The ERD is the notation that is used to conduct the date modeling activity the attributes of each data object noted is the ERD can be described resign a data object descriptions.

The set of primary components that are identified by the ERD are

 Data object  Relationships

 Attributes  Various types of indicators.

The primary purpose of the ERD is to represent data objects and their relationships.

Normalization: The database has been designed using entity relation model by crow's foot notation implementing normalization techniques in 3rd normal form. Normalization is a process used for optimally design and development of database to minimize data redundancy and reduce data anomalies. The level of normalization of database is determined by normal forms. There are different normal forms, but three forms which are used in the development of this application are first normal form (1NF), second normal form (2NF) and third normal form (3NF).

First normal form: Data is divided into logical units called entities and it is assigned a primary key, and ensured that there are no repeating data/attributes in the tables.

Second normal form: Taken attributes that are only partly dependent on the primary key and entered the attributes/data into another table.

Third normal form: Removed the data in the entities that are not dependent on the primary key.

UNIFIED MODELLING LANGUAGE DIAGRAMS:

UML stands for Unified Modelling Language. This object-oriented system of notation has evolved from the work of Grady Booch, James Rum Baugh, Ivar Jacobson, and the Rational Software Corporation. These things are the basic object-oriented building blocks of the UML. You use them to write well-formed models.

5.4.2 Structural things: Structural things are the nouns of UML model. These are the mostly static parts of a model, representing elements that are either conceptual or physical. In all, there are seven kinds of structural things.

Class A description of a set of objects that share the same attributes operations, relationships, and semantics. A class implements one or more interfaces. Graphically, a class is rendered as a rectangle, usually including its name, attributes, and operations.

Classes

Interface A collection of operations that specify a service (for a resource or an action) of a class or component. It describes the externally visible behaviour of that element. Graphically, an interface is rendered as a circle together with its name.

ISpelling

Collaboration Define an interaction among two or more classes. Define a society of roles and other elements. Provide cooperative behaviour. Capture structural and behavioural dimensions.

UML uses 'pattern" as a synonym (careful). Graphically, collaboration is rendered as an ellipse with dashed lines, usually including only its name.

Chain of Responsibility

Collaborations.

Use Case A sequence of actions that produce an observable result for a specific actor .A set of scenarios tied together by a common user goal .Provides a structure for behavioural things. Realized through a collaboration (usually realized by a set of actors and the system to be built). Graphically, a use case is rendered as an ellipse with solid lines, usually including only its name.

Place Order

Use Case

5.4.3 Behavioral Things:

Behavioral Things are the verbs of UML models. These are the dynamic parts of UML models: "behaviour over time and space".Usually connected to structural things in UML.

5.4.4 Relationships in the UML:

There are four kinds of relationships in the UML:

Dependency

Association

Generalization

Realization

Dependency

A semantic relationship between two things in which a change to one thing (independent) may affect the semantics of the other thing (dependent). Graphically, a dependency is rendered as a dashed line, possibly directed, and occasionally including a label.

Association:

An association is a structural relationship that describes a set of links, a link being a connection among objects. Aggregation is a special kind of association, representing a structural relationship between a whole and its parts. Graphically, an association is rendered as a solid line, possibly directed, occasionally including a label, and often containing other adornments.

*

0.1

Employee

Employer

Generalization:

A specialization/generalization relationship in which objects of the specialized element (the child) are more specific than the objects of the generalized element. Graphically, a generalization relationship is rendered as a solid line with a hollow arrowhead pointing to the parent.

Realization:

A semantic relationship between two elements, wherein one element guarantees to carry out what is expected by the other element. Graphically, a realization is rendered as a cross between a generalization and a dependency relationship.

TESTING

Testing plays a crucial role for quality assurance and for reliability of the software. The basic function of the testing is to detect the errors. Once the coding phase of the development is done, then the testing is started to test the proper working of the system. It's the intention of identifying the errors by executing the program in order to satisfy the user requirements. The testing phase involves testing of a system using various test data. Preparing the test data plays an important role in the testing. The errors which are found during the test phase are corrected by following testing steps and corrections are left for the future reference. Series of testing is done before it is ready for coding since this is the only one which is executed frequently and it plays a vital role in the successful implementation of the software product. Thus the aim is to uncover the requirements, design and coding errors in the program.

Unit Testing:

The important and the first step in testing phase is unit testing. Unit test is normally considered as subordinate position to the coding step. Once the coding is developed and verified for syntax errors unit testing begins. Standalone modules were tested individually for their correct functionality, with the corresponding data and it ensures reliability of the modules when they are integrated. Each and every module is tested using the sample data and was found all the modules are functioning correctly. Important control paths are tested to uncover errors within the boundary of the modules. Boundary conditions were checked, all independent paths were exercised to ensure that all statements in the module are checked at least once and all error handling paths were tested. Each unit was thoroughly tested to check if it might fall in any possible situation. This testing was carried out during the programming itself. At the end of this testing phase, each unit was found to be working satisfactory, as regard to the expected output from the module.

Integration Testing:

Integration testing is the second phase of the testing. It is systematic technique for constructing the program structure while conducting tests to uncover errors associated with interfacing. When we in the unit testing phase all the modules are carried out properly but after interfacing some of the data can be lost at the interface, one module can have an inadvertent, adverse effect on other, sub functions when combined may not produce the desired major function, global data structures can cause problems, etc.

It is performed by integrating all the individual modules and the activities of the user such as loading layers, retrieving information from any functions. Hence, the final objective of the integration testing is to take unit tested modules and build a final program structure. Therefore all the modules developed are quite independent and the whole process is approved for all. And each every module is integrated well with the other modules and there interfaces are tested successfully.

System Testing:

Once the coding is completed according to the requirement we have to test the quality of the software. The critical element of software quality assurance and represents the ultimate review of specification, design and coding. It is designated to uncover weaknesses that were not detected in the earlier tests and it demonstrates the software functions appear to be working as per the specifications. The system is tested for all major recovery and even after failures so that the data is not lost and acceptance test is done to check the validity and reliability of the system.

Verification and Validation:

Verification is the set of activities that ensures the software correctly implements the specified function and validation assures that these are built and it is traceable to the customer requirements. The verification stage takes a particular precaution while coding and there should be an accurate flow from start to end of the program without any hindrances, complexity of it should be maintained at the extreme level and excellent logic involved in the coding. The module should be flexible enough to make the modifications in the future whenever required.

The most important action which should be taken in advance is while programming you should make use of the available memory productively, or else it will be a major problem in proper execution of the software. Finally, the size of the functions or methods declared should be as minimal as possible, which helps in better throughput.

Acceptance Testing

Acceptance Test is performed with realistic data of the client to demonstrate that the software is working satisfactorily. Testing here is focused on external behavior of the system; the internal logic of program is not emphasized.

In this project we realistically used existing mail accounts from Gmail and deployed it.We have collected some data and tested whether project is working correctly or not.

Test cases should be selected so that the largest number of attributes of an equivalence class is exercised at once. The testing phase is an important part of software development. It is the process of finding errors and missing operations and also a complete verification to determine whether the objectives are met and the user requirements are satisfied.

White Box Testing

This is a unit testing method where a unit will be taken at a time and tested thoroughly at a statement level to find the maximum possible errors. We tested step wise every piece of code, taking care that every statement in the code is executed at least once. The white box testing is also called Glass Box Testing.

Black Box Testing

This testing method considers a module as a single unit and checks the unit at interface and communication with other modules rather getting into details at statement level. Here the module will be treated as a block box that will take some input and generate output. Output for a given set of input combinations are forwarded to other modules.

Criteria Satisfied by Test Cases

Test cases that reduced by a count that is greater than one, the number of additional test cases that much be designed to achieve reasonable testing.

Test cases that tell us something about the presence or absence of classes of errors, rather than an error associated only with the specific test at hand.

Test Cases:

Test objective: Validate the user with user Id and Password.

Requirements Checked: Valid User

Test Environment: Oracle 10g, Access 2007, and Windows Login form.

Action

Inputs

Expected Results

To authenticate user with connecting to oracle and access databases.

Correct User Name and password entered

Open main menu form

Correct user name and wrong password

Display "User name or Password is incorrect"

Incorrect user name and correct password

Display "User name or Password is incorrect"

Incorrect user name and incorrect password

Display "User name or Password is incorrect"

Problems/issues: None

Notes: Successfully Tested and Executed.

Software Engineering by Ian Sommerville 8th Edition.

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=720574&userType=inst