Project 5 (Documentation)
Project 5 (Documentation)
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
software.
Software is more than just a program code. A program is an executable code which
programing code, associated libraries and documentations software, when made for a specific
Engineering on the other hand, is all about developing products, using well defined,
3
Software engineering is an engineering branch associated with development of software
product using well-defined scientific principles, methods and procedures. The outcome of
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
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
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
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
Project objectives
The main goal of our software is to monitor the progress of students and alert us
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
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.
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:
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
No Requirements
1 Usability:
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
System should create duplicate copy of database with only have the same record but
System should have different designed interfaces for different modules means
Verifying Requirements
The four fundamental methods of requirements verification are
Inspection
Demonstration
Test
Analysis
the five senses (visual, auditory, olfactory, tactile, taste). It may include simple physical
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.
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
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
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
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
The software requirements are correctly derived from the system requirements.
The requirements provide an adequate basis to proceed with design and construction.
All requirements are complete and correct because one requirement depend on another.
10
Correctness
Quality Attributes
Traceability
By reading each requirement it is clear that what user wants. It’s not about design or
implementation.
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
4 Admin views the CGPA and the students who takes less courses
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
Reusing requirements is a process to save time and effort, but its major benefit comes in
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
reduced chance of forgetting the core features and standards required for the end product.
Functional:
Non-Functional:
Usability
Maintainability
Reliability
Fault tolerance
Recoverable
Data Protection
Security
Interface
Conclusion
Main Issues:
14
Recommendation for best practices about Requirement Analysis in Software Engineering
perspectives:
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
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
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
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
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
information. Simple word lists can be used to identify weak words (e.g., terms that are
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
Engineering.
Sikora, E., Tenbergen, B., Pohl, K. (2011): Requirements Engineering for Embedded
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.
Hamza, M., Walker, R.J. RAISE (2015): Recommending Features and Feature
Approach
17