G11 Assignment 1
G11 Assignment 1
G11 Assignment 1
Group - 11
K Ashrith (2021CSB066)
Souvik Dawn (2021CSB067)
Ranjan Kumar (2021CSB068)
Bezawada Hamsa Tejaswini (2021CSB069)
Prayas Mazumdar (2021CSB071)
Feasibility study
In software engineering, a feasibility study is an important step in the
initial planning and design phase of a proposed software project. The
primary goal of a feasibility study is to assess the practicality, viability,
and potential success of the proposed software solution. It involves a
comprehensive analysis of various aspects related to the project, thereby
helping stakeholders make decisions before investing time and
resources.
1. Technical Feasibility
Technical feasibility assesses if a project has the necessary technological
resources for success. This study not only examines current hardware
and software but also evaluates the skills of the development team. It
ensures that the chosen technology is easy to maintain and upgrade,
critical for the seamless progress of software projects. In essence,
technical feasibility acts as a project’s tech compass, confirming that the
technological foundation is sturdy enough to support the envisioned
development journey.
2. Operational Feasibility
Operational feasibility analyzes the level of service delivery according to
requirements and the ease of operating and maintaining the product
after deployment. Along with these other operational areas, it
determines the product’s usability, whether the software development
team’s decisions for the proposed solution are acceptable, and so on.
● Determine if the expected issue in the user request is a high
priority.
● Determine if the organization is satisfied with alternative
solutions proposed by the software development team.
● Determine if the solution proposed by the software development
team is acceptable.
● Analyze whether users are comfortable with new software.
3. Economic Feasibility
Project costs and benefits are analyzed in a profitability study. This
means that as part of this feasibility study, a detailed analysis of the costs
of the development project will be made. This includes all costs
necessary for the final development, such as hardware and software
resources required, design and development costs, operating costs, etc. It
is then analyzed whether the project is financially beneficial to the
organization.
● The costs incurred in software development generate long-term
benefits for an organization.
● Costs required to conduct a complete software study (e.g.,
requirements extraction and requirements analysis).
● Hardware, software, development team, and training costs.
4. Legal Feasibility
5. Schedule Feasibility
EXAMPLE:
Financial projections showed the cost and scope of the project and
how the school planned to raise the needed funds, which included
issuing a bond to investors and tapping into the
school's endowment. The projections also showed how the
expanded facility would allow more students to be enrolled in the
science programs, increasing revenue from tuition and fees.
The feasibility study demonstrated that the project was viable,
paving the way to enacting the modernization and expansion plans
of the science building.
CONCLUSION:
A pre-feasibility study can save time and money when planning new
software projects because it helps plan them efficiently. This project
helps determine whether a new system is technically viable before
investing in its development. Therefore, it is crucial in software
engineering.
Resources:
https://ellow.io/define-feasibility-study-in-software-engineering/
https://www.shiksha.com/online-courses/articles/feasibility-study-in-s
oftware-engineering/#:~:text=In%20software%20engineering%2C%20t
he%20feasibility,before%20investing%20in%20its%20development.
https://www.investopedia.com/terms/f/feasibility-study.asp#toc-examp
les-of-a-feasibility-study
Requirement analysis
The final step in the requirements analysis process, which combines both
validation and verification, is critical to ensuring that the project is on
the right track.
Validation is about confirming that the requirements actually
meet the needs of the stakeholders and the goals of the project.
It’s like asking, “Are we building the right thing?” Here, the team reviews
the requirements with the stakeholders to make sure they are in line with
their expectations and the goals of the project.
In addition to the validation aspect of the final step in the requirements
analysis process, there’s an important component known as the Proof of
Concept (PoC). A proof of concept is a small project or experiment
conducted to test whether a particular idea or aspect of the software is
technically feasible.
It allows the development team to explore whether the ambitious goals
can actually be achieved with current technology and within the
constraints of the project, such as time and budget.
Verification, on the other hand, is about making sure that
the requirements are documented correctly and consistently.
It’s like proofreading and quality checking the requirements document.
The team reviews the document to ensure that all requirements are clear,
unambiguous, and consistent.
Software
Design Part
Software design is a mechanism to transform user requirements into
some suitable form, which helps the programmer in software coding and
implementation. It deals with representing the client's requirement, as
described in SRS (Software Requirement Specification) document, into a
form, i.e., easily implementable using programming language.
Example:
Design the library classes/data structures from the data items in the
object model for the library problem. The data design and the
architectural phases have been combined in this example. The
concentration in this example is on the loan and checkout functionality,
with little regard for the other necessary tasks, such as administration,
cataloging, assigning overdue fines, retiring books, and patron
maintenance.
The domain entity ‘‘book’’ is probably not going to continue into the
design. It will be combined with ‘‘copy’’ into a class/data structure that
stores all the information about a copy. It will probably use the ISBN and
a copy number as the unique identifier. The patron information will be
stored in a second data structure. Each record is probably identified by
an unique patron ID number. The loan information may or may not be a
separate data structure. If borrowing information needs to be saved
beyond the return of the book, then it had better be a separate class/data
structure. Otherwise, the patron ID can be part of the copy class/data
structure along with the due date of the book.
Note in Fig. 9-2 that many data items have been added that are more in
the
implementation/solution space than in the problem/domain space. It
can be argued that ‘‘ISBN’’ is part of the problem space instead of the
solution space, but many library systems do not allow normal users to
search by ISBN.
SOFTWARE
CODING PART
Goals of Coding
Example:
Bad: cost=price+(price*sales_tax)
fprintf(stdout ,"The total cost is %5.2f\n",cost);
Better: cost = price + ( price * sales_tax )
fprintf (stdout,"The total cost is %5.2f\n",cost);
Example :
Client code :
Server code :
This code is properly documented and readable . Since it is a python
code it is indented .
Example 2:
#include <stdio.h>
int main() {
pid = fork();
if (pid < 0) {
// Fork failed
return 1;
} else if (pid == 0) {
// Child process
} else {
// Parent process
wait(NULL);
return 0;
Testing
3. Types of Testing:
a. Unit Testing:
b. Integration Testing:
c. System Testing:
4. Blackbox Testing:
6. Advantages of Testing:
7. Conclusion:
Resources:
https://www.betsol.com/blog/7-stages-of-sdlc-how-to-keep-developme
nt-teams-running/
https://www.knowledgehut.com/blog/software-testing/sdlc-in-software
-testing#the-six-phases-of-the-sdlc%C2%A0%C2%A0
Maintenance