Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Software Engineering

1. Differentiate between generic software product development and custom software


development by distinguishing the usage, reason of development, software owner, the
software specification, and the decision of change. Support your answer with an
example.
Generic software development is being undertaken by the company that owns the resulting
product. Usually, this product has a reliable need in the market over a period of time and fit
for most of the business needs.
Custom software development is being done as a work-for-hire project for a particular
client (the group of people or another company). The list of requirements, product’s idea,
need and money on development come from the client/customer. Usually, it takes a lot of
time to develop a custom product.

2. Read carefully and understand the below scenario to solve the questions 7, 8, and 9:
Pizza restaurant looking for developing a mobile application that the customer can order
pizza online. The new customer has to sign-up to the application by providing his/her
personal information (name, suggested username and password, phone number, and
address). To place an order, the customer has to log in, provide the number of pizza pieces,
the size, and the topping flavors. The application will allow online payment and cash-on-
delivery options. The application needs an internet connection to be used. It should perform
smoothly, and be reliable, secure, and easy to use.

A. From the above scenario, analyze the functional requirements, which


represent the major tasks that the user can do over the application.

functional requirements - Customers


The user must be able to customize a pizza.
The user must be able to customize a pizza.
The user must be able to add a custom pizza to an order.
The user must be able to view a list of available non-pizza products.
The user must be able to add non-pizza products to an order.
The user must be able to see a list of custom pizzas and non-pizza products that are added
to the order.
Software Engineering

The user must be able to change the amount of a custom pizza.


The user must be able to change the amount of a non-pizza product.
The user must be able to delete a custom pizza from an order.
The user must be able to delete a non-pizza product from an order.
The user must be able to see the total price of an order.
The user must be able to choose a delivery date and time that is up to two weeks ahead.
The user must be able to add the name and address of the customer.
The user must be able to clear the current order to start a new one.
The user must be able to confirm the order

Employees
The employee must be able to log in and out.
The employee must be able to view a list of available orders and their custom pizzas. The
employee
must be able to mark orders as “prepared”.
The employee must be able to mark order as “delivered” .
The employee must be able to mark order as “failure to deliver”.
Only users with respective rights (employee) must be able to use all these “Employees” features.

Administrators
The administrator must be able to log in and out.
The administrator must be able to add/delete/edit orders.
The administrator must be able to add/delete/edit ingredients.
The administrator must be able to add/delete/edit non-pizza products.
The administrator must be able to add/delete/edit other users.
The administrator must be able to view an order log.
Only users with respective rights (administrators) must be able to use all these “Administrators”
features.
Software Engineering

B. From the above scenario, analyze and explain the non-functional


requirements that can be derived from the text.
Non-functional requirements
As an operational requirement, the system will run as a database with a application as user
interface. As performance requirement the system must be accessible 24 hours a day, seven days
a week.

3. Use-cases developed to identify system interactions can be used as a basis for system
testing. From the above-mentioned scenario about a mobile pizza ordering
application, design the following diagrams:
A. Design the use-case diagram to represent all tasks that the customer can be
able to do over the application.
Software Engineering

B. Design the activity diagram to represent the pizza ordering operation.


Software Engineering
4. Describe the meaning and the application of the regression testing.
Then, explain how the use of the automated tests and testing frameworks such as JUnit
simplifies regression testing?
Regression testing is testing the system to check that changes have not ‘broken’ previously
working code. In a manual testing process, regression testing is expensive but, with automated
testing, it is simple and straightforward. All tests are rerun every time a change is made to the
program. Tests must run ‘successfully’ before the change is committed.
5. Explain the concept of Development testing. Then, differentiate between unit
testing, component testing, and system testing.
[5 Point]
The unit testing and system testing are the interdependent activities of the software testing. Unit
testing is the method of testing various isolated software components separately. But when it
comes to system testing, it is the technique in which the entire system is exercised with a series of
the different tests. In the software testing process, the unit testing is situated in the innermost part
of the spiral, on the other hand, system testing is shown in the outermost part of the spiral

You might also like