Answers Chapter 6 - Software Engineering
Answers Chapter 6 - Software Engineering
6.4 Rewrite the previous description using the structured approach described in this.
chapter. Appropriately resolve the identified ambiguities.
Function Issue train tickets
Description An automatic ticket vending system sells tickets for
train
Entries Identificación personal (DNI), destino, origen, tarjeta de crédito
Source Source: Memory readings of the system's location
automatic
Outputs Ticket
Action If all the data is entered correctly and when the card
Once credit has been validated, the ticket is issued.
Requirements None
Precondition None
Postcondition Your credit card account is charged.
Side effects None
6.5 Draw a sequence diagram that shows the actions carried out in the system.
ticket dispenser. You can make some reasonable assumptions about the system. Put
special attention to the specification of user errors.
Software Engineering
Software Engineering
6.6 Using the technique suggested here, in which natural language is presented in a form
standard, draft plausible user requirements for the following functions:
The function of dispensing money at an ATM of a bank.
Cash dispenser
1.1. The system must provide an installation that allows issuing a specific amount of
cash to the clients. The client requests the amount, but the system can reduce this amount if
the client's daily limit or the overdraft limit is reached.
1.1.1. The sequence of actions to dispense cash must be:
The customer enters the required amount of cash
The system verifies this with the daily limits of the card and the overdraft limit.
of the client.
3. If the amount violates any of these limits, a message is issued informing you of this.
customer of the maximum allowed amount and the transaction is canceled.
4. If the amount is within the limits, the requested cash should be disbursed.
5. The customer's account balance and the daily card limit must be reduced by the
amount of cash dispensed.
Specification: ATM / Client Functionality / FS. Section 2.1
credit.
Justification: The allowed amount of fuel depends on the credit limit, but
customers may want to 'fill' instead of having a specific amount of
combustible. By specifying a maximum, the system can verify if the credit is
available. Please note that the definition does not specify how they should be provided
the credit card details.
4. The pump is activated and fuel is delivered, under the customer's control.
5. The transaction is finalized when the nozzle of the pump is returned to its case for 15
seconds or when the fuel or cash limit of the customers is reached.
Justification: The termination should not be immediate when the nozzle is returned, since
that the customer may want to restart the transaction, e.g. to fill a can of
fuel and the car's fuel tank. If there is a pump screen
available, it may be appropriate to issue a message 'Please wait for your receipt'.
A receipt is printed for the customer.
The fuel stock is updated.
Specification: PUMP_SYS / FS. Section 1
6.7 Describe four types of non-functional requirements that may exist in a system. Give
examples of each of these types of requirements.
Requirement no Description Example
functional
Performance Set of performance requirements The system must process at least 150
outside the limits of the performance transactions per second.
expected from the system. These
they can be expressed in different The maximum response time for the
forms depending on the type of any user's request must be
system, for example. number of of 2 seconds.
transactions processed by
second, user response time
requests, etc.
Usability Define the requirements that are All operations that are
they are related to usability of the potentially destructive must
system for end users. include an undo function that
allow users to revert their
action.
the general safe operation of the system. agreement with Health Regulations and
Security XYZ 123.
6.8 Redacte un conjunto de requerimientos no funcionales para el sistema expendedor de billetes,
specifying your skill and your response time.
The possible non-functional requirements for the ticket issuance system include:
1. Between 06:00 and 23:00 on any day, the total system downtime must not exceed
the 5 minutes.
2. Between 06:00 and 23:00 on any day, the recovery time after a system failure
must not exceed 2 minutes.
3. Between 11:00 PM and 6:00 AM on any day, the total system downtime must not exceed
the 20 minutes.
All of these are availability requirements; please note that they vary depending on the time of day.
The failures when most people travel are less acceptable than the failures when
there are few customers.
4. After the customer presses a button on the machine, the screen must update in 0.5
seconds.
5. The ticket issuance time after receiving the credit card validation should not
exceed 10 seconds.
6. When validating credit cards, the screen must provide a status message for the
clients that indicate that an activity is being carried out.
This tells the customer that the validation activity that can take a long time is still ongoing.
in progress and that the system has simply not failed.
7. The maximum acceptable failure rate for ticket issuance requests is 1:10000.
Please note that this is really ROCOF. I have not specified the acceptable number of tickets.
incorrect, as this depends on whether the system includes tracking installations that allow
register the customers' requests. If so, a relatively high failure rate is acceptable now
that customers can complain and obtain refunds. If not, only a very low failure rate is accepted.
low
6.9 Suggest the way in which an engineer responsible for preparing the specification of
system requirements could control the relationships between functional requirements and
non-functional.
Tracking the relationships between functional and non-functional requirements is difficult.
because non-functional requirements are sometimes system-level requirements instead of requirements
which are specific to a single function or group of functions.
An approach that can be used is to explicitly identify non-functional requirements at the level of
system and list them separately. All system requirements that are necessary must be listed.
relevant for each functional requirement. Then, produce a requirements table as shown in
continuation.
Software Engineering
Please note that in this example, the non-functional requirement of the system would normally have
priority over the timing requirement that applies to the specific operation.
6.10 He has obtained a job with a software user who has hired his previous one.
company to develop a system. You discover that your company's interpretation
The current requirements are different from those taken by your previous company. Comment on what
I would do in such a situation. You know that your company's costs will increase if the
ambiguities are not resolved. It also has a confidentiality responsibility for its
previous company.
In such a situation, I would focus on implementing considering the best interpretation.
so that costs are reduced while ensuring that all requirements are met
from the user.