0% found this document useful (0 votes)
77 views18 pages

Project 5 (Documentation)

This document outlines the requirements for a student progress monitoring software system. It begins with definitions of software engineering and an overview of the importance of requirements analysis. The document then specifies the project objectives, scope, and functional and non-functional requirements. It discusses methods for verifying and validating requirements, including use case diagrams and descriptions. The document concludes with recommendations for selecting relevant requirements and improving requirements quality.

Uploaded by

sana fiaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views18 pages

Project 5 (Documentation)

This document outlines the requirements for a student progress monitoring software system. It begins with definitions of software engineering and an overview of the importance of requirements analysis. The document then specifies the project objectives, scope, and functional and non-functional requirements. It discusses methods for verifying and validating requirements, including use case diagrams and descriptions. The document concludes with recommendations for selecting relevant requirements and improving requirements quality.

Uploaded by

sana fiaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Assignment

Name
Department Name
Course Code: Course Name
Instructor Name
Due Date

1
Table of Contents
Overview of Software Engineering......................................................................................................1
Definition:..................................................................................................................................... 1
Software........................................................................................................................................ 1
Engineering................................................................................................................................... 1
Software engineering....................................................................................................................2
Important of Requirement Analysis.....................................................................................................2
Summary:..................................................................................................................................... 3
Project objectives............................................................................................................................... 3
Scope of Project................................................................................................................................. 4
Requirements..................................................................................................................................... 4
Functional Requirements:.............................................................................................................4
Functional Requirements of our System:.......................................................................................4
Non-Functional Requirements:.....................................................................................................5
Non-Functional Requirements of our System:...............................................................................5
Verifying Requirements......................................................................................................................6
Inspection of our System:..............................................................................................................7
Demonstration of our System:.......................................................................................................7
Testing of our System:..................................................................................................................7
Analysis of our System:.................................................................................................................8
Validating Requirements....................................................................................................................8
Reviewing the Requirement Specification............................................................................................8
Organizational and Completeness.................................................................................................8
Correctness................................................................................................................................... 9
Quality Attributes......................................................................................................................... 9
Traceability.................................................................................................................................. 9
Prototyping the Requirements............................................................................................................10
Use Case Diagram:......................................................................................................................10
Use Case Description:.................................................................................................................10
Reusing the Requirements.................................................................................................................11
Requirements Reusability............................................................................................................11
Why should requirements be reused...........................................................................................12
The Requirements of this system that can be reused:..................................................................12

1
Functional:............................................................................................................................... 12
Non-Functional:........................................................................................................................12
Conclusion....................................................................................................................................... 13
Main Issues:................................................................................................................................ 13
Recommendation for best practices about Requirement Analysis in Software Engineering
perspectives:................................................................................................................................ 13
A. Recommendations of relevant requirements:...........................................................................13
B. Recommendations for improving the quality of requirements:..................................................14
References:....................................................................................................................................... 15

2
Overview of Software Engineering
Definition:

 [Frits Bauer]: Software Engineering is the establishment and use of sound engineering

principles, methods, tools, that can be used to produce high quality software that is reliable

and works efficiently on real machines.

 [IEEE]: The application of a systematic, disciplined, quantifiable approach to the

development, operation and maintenance of software; that is application of engineering to

software.

The term is made of two words, Software and Engineering

Software is more than just a program code. A program is an executable code which

serves some computational purpose. Software is considered to be collection of executable

programing code, associated libraries and documentations software, when made for a specific

requirement is called software product.

Analysis Design Implementation

User needs &


Expectations
Problem statement Detailed design Software product

Software development process transformations

Engineering on the other hand, is all about developing products, using well defined,

scientific principles and methods.

3
Software engineering is an engineering branch associated with development of software

product using well-defined scientific principles, methods and procedures. The outcome of

software engineering is an efficient and reliable software product.

Important of Requirement Analysis


Software development begins with the understanding of the functional and non-functional

needs of the client. Collaborating with the clients and interpreting their needs in a language that

stakeholders understand is the prime purpose of software requirement analysis. This not only

helps development teams to produce robust software but also helps to implement changes by

referring the documentation.

It has been determined that one of the primary reasons why software projects fail is

because the requirements of the project were not captured properly. Current software

applications often operate over multiple platforms and across many locations around the globe.

4
Often during the project lifecycle, the demands keep varying and this can also have an impact in

eliciting proper requirements.

Requirement analysis covers those tasks to determine the needs of a proposed software

solution or product, often involving requirements of various stakeholders associated with the

solution. Requirement analysis is a key component in the software development lifecycle and is

usually the initial step before the project commences.

Requirement analysis is very expensive, requiring huge investments in scarce resources,

systems and associated processes.

Summary:
For the success of a project, it is utmost important to analyze project requirements when

they are gathered as well as throughout the lifecycle of the project. Software Requirements

analysis helps to keep the requirements in line with the need of the business. A good project

requirements analysis process will render a software application that caters to the objectives of

the business set forth.

Project objectives

 The main goal of our software is to monitor the progress of students and alert us

on students who are progressing not well.

 It makes easier to check the students with low CGPA for several semesters.

 Through this system, we can add students, add course, view CGPA, progress,

student who takes less courses and student report, get alert for the students who

are not progressing well.

5
Scope of Project

Computer has become a necessary part of our life. Every business is a lying on computer

now a days as all have more their management system to computer applications due to its fast

processing and record. For checking or monitoring the progress of students. I will create a

desktop application for this. In this system, admin will add the students and courses, view CGPA

and reports of students, view their progress of student for several semesters and also get alert for

the students who are not progressing well, has low CGPA for several semesters and take less

courses.

Requirements
The software requirements are description of features and functionalities of the

target system. Requirements convey the expectations of users from the software

product.

Functional Requirements:

Functional requirements are the major requirements that are to be considered while

developing a system where it defines some of the dos and don’ts in a system. Also, they are

defined to make sure that the application works as intended. Besides, the functional requirements

of software allow individuals to capture the required intended actions for the system. Because of

such reasons, identifying functional requirements plays a vital role in software engineering.

Functional Requirements of our System:

No. Initial Requirements

1 Admin shall register himself.


2 Admin shall login.

6
3 Admin shall forget password incase if he forgets his password.
4 Admin shall add Students
5 Admin shall add course.
6 Admin shall generate reports
7 Admin shall view progress
8 Admin shall view students who take less courses
9 Admin shall view CGPA
10 Admin shall get alert about students who are at risk

Non-Functional Requirements:

Rather than impacting the functionality of an application, Non-functional requirements define

system behavior, features, and general characteristics that affect the user’s experience. Here, non-

functional requirements specify how the system should carry out a certain task. It generally

focuses on the user’s expectations and product properties. So, even if functional requirements are

fulfilled, it is also necessary to ensure that the non-functional requirements are fulfilled as well to

help in optimizing the quality of the product.

Non-Functional Requirements of our System:

No Requirements
1 Usability:

The user should learn how to use system at most 3 hours


2 Maintainability:

System should be closed for 24 hours per week for maintenance.


3 Reliability:

System should print error if any module not working and automatic move to home

screen.
4 Fault tolerance:

7
System should automatically disable module in which error detected and maintain the

working flow of other modules.


5 Recoverable:

System should be recoverable within 24 hours of major failure.


6 Data Protection:

System should create duplicate copy of database with only have the same record but

that is not used in any function.


7 Security:

System should save all record in encrypt form.


8 Interface:

System should have different designed interfaces for different modules means

different windows for student, courses and reports.

Verifying Requirements
The four fundamental methods of requirements verification are

 Inspection

 Demonstration

 Test

 Analysis

Inspection is the nondestructive examination of a product or system using one or more of

the five senses (visual, auditory, olfactory, tactile, taste).  It may include simple physical

manipulation and measurements.

Inspection of our System:

8
 Visually examine the software for screens that were requested, check for the fields

needed for data entry, verify that the necessary buttons exist for initiating required functionality,

etc.

Demonstration is the manipulation of the product or system as it is intended to be used

to verify that the results are as planned or expected.

Demonstration of our System:

Enter all required fields on a screen and select the button to return a specific report. 

Ensure that the report is returned with the type of data needed.

Test is the verification of a product or system using a controlled and predefined series of

inputs, data, or stimuli to ensure that the product or system will produce a very specific and

predefined output as specified by the requirements.

Testing of our System:

Admin login into the system. Enter the Students details, Courses, power steering, and

select the generate report for generating the report of every students. View CGPA to check

progress of students and get alerts for the students who are not progressing well and who take

less courses.

Analysis is the verification of a product or system using models, calculations and testing

equipment.  Analysis allows someone to make predictive statements about the typical

performance of a product or system based on the confirmed test results of a sample set or by

combining the outcome of individual tests to conclude something new about the product or

system.  It is often used to predict the breaking point or failure of a product or system by using

nondestructive tests to extrapolate the failure point.

Analysis of our System:

9
Complete a series of tests in which a specified number of students and courses are added

at the same time.  Measure the response of the system to ensure that the report function generates

report within the time specified. Record the results to capture system degradation. If we are

adding the students detail the system gives us the progress.

Validating Requirements
Validation assesses whether a product actually satisfies the customer needs (doing the right

thing).

We validate that:

 The requirements correctly describe the intended system capabilities and characteristics

that satisfies the various stakeholders’ needs.

 The software requirements are correctly derived from the system requirements.

 The requirements are complete and of high quality.

 All requirements representations are consistent with each other.

 The requirements provide an adequate basis to proceed with design and construction.

 Our system requirements fulfil all the basic needs of customer.

Reviewing the Requirement Specification

Organizational and Completeness

 All requirements are complete and correct because one requirement depend on another.

 All requirements are consistent and have appropriate level of detail.

 The requirements provide an adequate basis for design.

 All external hardware, software, and communication interfaces defined.

10
Correctness

 No requirements are conflict with or duplicate with other requirements.

 Requirements are written in clear, concise, unambiguous language.

 All requirements are verifying by testing, demonstration, review, or analysis.

 Each of the requirement is free from content and grammatical errors.

Quality Attributes

 All performance objectives are properly specified.

 All security and safety considerations are properly specified.

Traceability

 All requirements are uniquely and correctly identified.

 Each software functional requirements are traceable to a higher-level requirement.

By reading each requirement it is clear that what user wants. It’s not about design or

implementation.

Prototyping the Requirements

Use Case Diagram:

11
Use Case Description:

In this scenario, the only main module is generating report to monitor the progress of students.

Because this system is specific not general so we will only write one use case description of the

overall system.

Number UC-ID: 1
Name Student Progress
Summary Admin can add students and courses, and generate report of students to

monitor the progress of students and get alerts on students who are not

performing well.
Priority High
Pre-condition User should authorize and login to the system

12
Post-condition System shows the progress of students
Primary Actor Admin
Secondary Actor Database
Trigger By clicking
Main Scenario Steps Actions

1 Admin adds the student details

2 Admin adds the course details

3 Admin generates the report of students

4 Admin views the CGPA and the students who takes less courses

5 Admin get alert on the students who are at risk

Reusing the Requirements

Requirements Reusability

Requirements reusability is the process of reusing requirements that have already been

authored and implemented before in previous projects. This technique is used by requirements

engineers to ensure that maximum productivity and consistency are achieved throughout the

product development lifecycle. When it comes to industry-specific compliance and standards, the

information gathered and used, is in most cases, exactly the same. Since this phase requires a

significant amount of time and effort, reusability makes perfect sense as the idea is to reduce

time and effort and achieve consistency.

Why should requirements be reused?

Reusing requirements is a process to save time and effort, but its major benefit comes in

the form of requirement standardization as reusing requirements helps create a repository of

previously implemented and tested requirements. Reuse also assists in creating an improved user

13
experience and better consistency in the project development process. It gives companies a

competitive advantage as the final requirements documents is standardized, and there is a

reduced chance of forgetting the core features and standards required for the end product. 

The Requirements of this system that can be reused:

Functional:

 Login in any management system

 Add student and course in any Learning Management System

 Generating reports in any Learning Management System

Non-Functional:

The requirement that can be reused are:

 Usability

 Maintainability

 Reliability

 Fault tolerance

 Recoverable

 Data Protection

 Security

 Interface

Conclusion

Main Issues:

As the requirements are validated. So there is no issue in the assignment.

14
Recommendation for best practices about Requirement Analysis in Software Engineering

perspectives:

A. Recommendations of relevant requirements:

The recommendations in this group are related to the:

1-Identification of actual requirements:

i.e., recognize text that contains “actual” requirements in contrast to the one that does not

bring valuable information. From the technical perspective, a binary classifier will be used in

combination with some basic Natural Language Processing techniques (to identify actions

expressing a need, such as “must”, “have/has to”, etc.).

2. Identification of similar requirements:

For this purpose, different approaches will be investigated. The first one is based on

content-based recommenders that, by taking into account the requirements and current project

metadata, will be able to recommend requirements. The second approach is based on NLP

techniques (such as tokenization, stemming, and stop words removal) that represent each

requirement using a Vector Space Model (VSM) i.e., the text of a requirement is transformed

into a vector in a multi-dimensional space, where each dimension of the space corresponds to a

term. Therefore, we can compute the similarity among two requirements using measures like

Cosine, Dice or Jaccard

3. Identification of related requirements:

Here, content-based (based on semantic and text-based similarities) and collaborative

recommendation approaches (based on context information) will be used taking into account the

available requirement metadata. Another approach is based on Topic Modelling, which can be

used to associate a label (i.e., a topic) to a requirement or a subset of them, and then cluster the

15
requirements in groups of related ones. The clustering can be done at different level of

granularities (e.g., a hierarchy of topics), achieving different levels of relatedness. The previous

identification task can be improved by the use of: a) domain ontologies, especially to identify

synonyms that are domain-specific, and b) semantic models, to specify how requirements are

semantically related among each other.

B. Recommendations for improving the quality of requirements:

In this case, the recommendations are related to:

1.Measure the quality of requirements to identify bad quality requirements:

A set of rules reflecting quality properties will be identified from existing related work.

These rules can then be used against requirements to check their quality, compounding them to

calculate a quality score.

2. Tips for improving the quality of requirements:

The goal of these tips will be related to reducing ambiguity and improving completeness

and adherence to templates. Some examples of tips would be changing some wording (to

standardize the vocabulary or reduce the ambiguity of requirements) or adding missing

information. Simple word lists can be used to identify weak words (e.g., terms that are

considered ambiguous, such as “sometimes” or “usually”) and thesauruses can be used to

identify alternative terms.

References:

 https://youtu.be/ITlyBV4ttts

 https://reqtest.com/requirements-blog/requirements-analysis/

 https://www.outsource2india.com/software/RequirementAnalysis.asp

 https://youtu.be/zHe4VgW080k

16
 https://www.cs.toronto.edu/~sme/CSC340F/2005/assignments/inspections/reqts_checklis

t.pdf

 Hofmann, H., Lehner, F. (2001). Requirements engineering as a success factor in

software projects. IEEE Software, 18(4). pp.58–66

 Johann, T., Maalej, W. (2015): Democratic mass participation of users in Requirements

Engineering.

 Davis, A.M. (2003): The art of requirements triage.

 Sikora, E., Tenbergen, B., Pohl, K. (2011): Requirements Engineering for Embedded

Systems: An Investigation of Industry Needs.

 Méndez, D., Wagner, S. IST (2015).: Naming the pain in requirements engineering: A

design for a global family of surveys and first results from Germany.

 Mobasher, B., Cleland-Huang, J. (2011): Recommender systems in requirements

engineering. Ai Magazine, 32(3), pp. 81–89

 Hamza, M., Walker, R.J. RAISE (2015): Recommending Features and Feature

Relationships from Requirements Documents for Software Product Lines.

 System Requirements Specification (SyRS) 2.0: The Structure-Behavior Coalescence

Approach

17

You might also like