Software Engineering Assignment
Software Engineering Assignment
Week-2
ROHIT SAINI
20103333
B3
1. Using the same software process is not necessarily the best way to develop all programs.
Consider how the waterfall model and the increment model suit for developing
a. the control system for a power plant
b. the web service of a bookstore
c. a general purpose image processing system
d. university attendance-grading system for students.
Ans 1:
(a) If we consider the development of the control system for a power plant we are assuming
that the software we are developing is a general software, the power plant we are aiming
for does not hold any major statistical difference between existing power plants.The
functionalities added will be almost similar to the existing systems around. So we have a
clear picture about how to develop the software and there are not many specifications
needed for this software development.
So, we’ll use the waterfall model for the development of the same software as most of
the software will be almost the same as the standard softwares available.
(b) In case of development of the web service of a bookstore we have to consult the user
after every phase of the development of the website and we have to take feedback from
the client and apply changes accordingly and then further continue with the development.
So to implement this type of software it is best suitable to use an incremental model of
development as in it each module goes through the requirements, design, implementation
and testing phases.
(c) If we consider the development of a general purpose image processing system we don't
have to be anything specific and work on the standard model of creating a general Image
processing system with all the functionalities and doesn't have to consult the client
multiple times, instead just provide the end product of the software. So, we’ll use the
waterfall model for the development of the same software as most of the software will
be almost the same as the standard softwares available and there is no overlapping in the
phases.
(d) University attendance-grading system for students does not have any specific task as
there are thousands of universities around the world who use the student attendance
marking system and we are assuming here that our client university has not asked us to
add any specific functionality into our software so we can proceed our development with
Waterfall methodology.
2. Provide two real examples of software projects that would be amenable to the Waterfall
model. Be specific.
Ans 2:
The Waterfall model is a linear software development process that is well-suited to
projects with little to no risk and a defined scope. Some examples of projects that are often
developed using the Waterfall model include:
● Hospital Management System: Hospital management systems are software projects that
use the Waterfall model to create software that can help hospital administrators manage
patient information, monitor vital signs, and provide medical advice. It helps to ensure
that the project is completed on time, within budget, and with the desired quality. It offers
clear and defined steps for each phase of the development process and helps to ensure
that the project is completed in the correct order.
● Supply Chain Management: These software projects that use the Waterfall model to
create software that can help businesses manage their inventory, track shipments, and
automate restocking processes. The Waterfall methodology offers structure, organization,
and collaboration to ensure that the end goal is achieved successfully and efficiently.
3. Provide two real examples of software projects that would be amenable to the Prototyping
model. Be specific.
Ans 3:
Prototyping is a software development model that involves creating a prototype of a
product or system. The main goal of this model is to quickly create a prototype of the system and
then later use it to test various features and functionalities.
● Search Engine: A search engine can be prototyped to test out the features and
functionality of the engine before being released to the public. Using the prototype model
for developing a search engine is a great choice due to the efficient workflow that it
offers. The model allows developers to quickly create a prototype of the search engine
which can then be tested and adjusted according to user feedback. With the prototype
model, it is possible to quickly identify any issues or areas for improvement in the search
engine.
● Online Banking System: An online banking system is an ideal candidate for the
prototyping model, as it allows the customer to test out the features of the system before
it is fully implemented. Prototype model is an ideal choice for the development of an
online banking system as it is cost-effective and allows for rapid and iterative
development. The prototype model allows the developers to rapidly create a working
model with limited resources and then refine it over time. This iterative process allows
for rapid and proactive changes as the requirements change and evolve. The use of the
prototype model also allows the developers to identify any potential risks and
vulnerabilities that the system may have. This allows the developers to address any
security issues more quickly and effectively.
4. Provide two real examples of software projects that would be amenable to the Increment
model. Be specific.
Ans 4:
The incremental model is an iterative software development process that involves
breaking down a large project into multiple smaller, iterative phases or increments. This
approach is popular for large or complex projects that require a lot of planning and coordination,
as it allows for the completion of smaller, more manageable tasks rather than one large task.
● IoT Platform: An IoT platform could be built using the Increment model, with each
increment focusing on different aspects such as device onboarding, data collection,
analytics, and automation. This way, each increment can be built and tested separately,
ensuring only the most robust and reliable features make it to the final product.
● Network Management System: A network management system could be built using the
Increment model, with each increment focusing on different aspects such as device
monitoring, network troubleshooting, user authentication, and performance tracking. This
way, each increment can be built and tested separately, ensuring the system is completely
reliable and secure when it is released.