You are on page 1of 5

COMSATS University Islamabad, Vehari Campus

Department of Computer Science


Midterm Examination: Spring 2022 Instructor’s Name: Manzoor Ahmad
Subject: CSE302-Software Quality Engineering Class: BS(SE)
Total Marks: 25 Total Time: 90 Minutes
Registration #: ___________________ Student’s Name: ________________
• Read the question paper carefully and answer the questions according to their statements.
• Please attempt all following questions.
Question No. 1 Marks (1+2+2)
Write short answers of following:
i) Define Software defects and their types.
Answer:
 The term “defect” generally refers to some problem with the software, either with its external
behaviour or with its internal characteristics. Failures, faults, and errors are collectively referred to as
defects in literature.
 Failure: The inability of a system or component to perform its required functions within specified
performance requirements. The term failure refers to a behavioural deviation from the user
requirement or the product specification.
 Fault: An incorrect step, process, or data definition in a computer program. The term fault refers
to an underlying condition within a software that causes certain failure(s) to occur.
 Error: A human action that produces an incorrect result. The term error refers to a missing or
incorrect human action resulting in certain fault(s) being injected .into a software. We also extend
errors to include error sources, or the root causes for the missing or incorrect actions, such as
human misconceptions, misunderstandings, etc.

ii) Describe reasons of poor software quality.


Answer:
 Poor quality is not an unavoidable attribute of software. It results from known causes. It can be
predicted and controlled, but only if its causes are understood and addressed. With more critical
business processes being implemented in software, quality problems are a primary business risk.
Following five reasons are poor software quality development.
 Lack Of Domain Knowledge
Most developers are not experts in the business domain served by their applications, be it
telecommunications, banking, energy, supply chain, retail, or others. Over time they will learn
more about the domain, but much of this learning will come through correcting defects caused by
their mistaken understanding of the functional requirements.
 Lack Of Technology Knowledge
Most developers are proficient in several computer languages and technologies. However, modern
multi-tier business applications are a complex tangle of many computer languages and different
software platforms. Few developers know all of these languages and technologies, and their
incorrect assumptions about how other technologies work is a prime source of the non-functional
defects that cause damaging outages, data corruption, and security breaches during operation.
 Unrealistic Schedules
When developers are forced to sacrifice sound software development practices to ridiculous
schedules the results are rarely good. The few successful outcomes are based on heroics that are
rarely repeated on future death marches. When working at breakneck pace, stressed developers
make more mistakes and have less time to find them.
 Badly Engineered Software
Two-thirds or more of most software development activity involves changing or enhancing
existing code. Studies have shown that half of the time spent modifying existing software is
expended trying to figure out what is going on in the code. Unnecessarily complex code is often
impenetrable and modifying it leads to numerous mistakes and unanticipated negative side effects.
These newly injected defects cause expensive rework and delayed releases.
 Poor Acquisition Practices
Most large multi-tier applications are built and maintained by distributed teams, some or all of
whom may be outsourced from other companies. Consequently, the acquiring organization often
has little visibility into or control over the quality of the software they are receiving.
iii) Write down Benefits of software quality.
Answer:
 The elimination or reduction of rework can also be used to shorten the cycle time required to produce
a software product, and it can directly translate into reductions in costs. The development of software
is a series of dependencies, where each subsequent step builds on and expands the products of the
previous step. A single requirement could result in many design elements that expand into several
code units. A defect that is prevented or found early keeps the entire tree from needing to be
backtracked, investigated, and potentially reworked. Agile methods reduced these costs by
significantly shortening the development cycle using incremental development and through other
techniques that shorten defect interjection to correction cycle times. If fewer software defects are
delivered into operations, there is a higher probability of failure-free operations & the software
performs reliably at no occurrence. Reliable software reduces both failure and maintenance costs to
the software’s customers and thus reduces the overall cost of ownership of the software product. The
high-quality software is software that has been specified correctly and that meets its specification. If
the software meets the stakeholder’s needs and expectations and is value-added, it is more likely to be
used instead of ending up as “shelfware.”

Question No. 2 Marks (2+6)


Define the hierarchical model for software quality and briefly describe the McCall Model.
Answer:
 A hierarchical model defines a set of aspects of software quality, then decomposes each aspect into a
number of factors, which are in turn decomposed into a number of attributes, and further decomposed
into several metrics. The abstract notion of software quality is characterized by a set of quality-related
properties that are organized into a hierarchical structure to express the positive relationships
between them. Some properties are more abstract, thus are at a higher level of the hierarchical
structure. Some are more concrete, even directly measurable in a quantitative way, thus at a lower
level of the hierarchy. The lower level properties have a positive contribution to the parent property.
 McCall model
 The development of software quality models can be backdated to the 1970s such as the McCall model
(1977). There are a large number of quality attributes identified for software products or projects in
McCall model. These quality attributes are often classified into a hierarchical structure to highlight
the relationship between them. McCall & his colleagues started with a volume of 55 quality
attributes/factors and then reduced them to11 quality factors and divided software quality attributes
into:
 Product operations
Efficiency, Integrity, Reliability, Usability, & Accuracy
 Product revision
Maintainability, Testability & Flexibility
 Product transition
Interface facility/Interoperability, Portability/Transferability and Reusability
Question No. 3 Marks (10+2)
You are working in an organization (software house) as system analyst. The organization assigned you a task
on request of ‘XYZ Bank limited to write software requirements specification (SRS) for the Banking System.
The organization will also be responsible for the development of the software based on this SRS. The
functionality expected from the software for the Banking System is described below:
The XYZ bank has several automated teller machines (ATMs), which are geographically distributed and
connected via a wide area network to a central server. Each ATM machine has a card reader, a cash
dispenser, a keyboard/display, and a receipt printer. By using the ATM machine, a customer can withdraw
cash from either checking or savings account, query the balance of an account, or transfer funds from one
account to another. A transaction is initiated when a customer inserts an ATM card into the card reader.
Encoded on the magnetic strip on the back of the ATM card are the card number, the start date, and the
expiration date. Assuming the card is recognized, the system validates the ATM card to determine that the
expiration date has not passed, that the user-entered PIN (personal identification number) matches the PIN
maintained by the system, and that the card is not lost or stolen. The customer is allowed three attempts to
enter the correct PIN; the card is confiscated if the third attempt fails. Cards that have been reported lost or
stolen are also confiscated.
Note:
It is assumed that functionality to open and close accounts and to create, update, and delete customer and
debit card records is provided by an existing system and is not part of this (above) problem. The functionality
to start up and close down an ATM by operator to replenish the ATM cash dispenser and for routine
maintenance is also not part of this problem.

Considering the above Banking System problem answer the following questions:
i) Write complete specific requirements of the software for XYZ Bank Limited.
Answer:
1) The XYZ Bank Inc. can have many automated teller machines (ATMs), and the new software
system shall provide functionality on all ATMs.
2) The system shall enable the customers of XYZ Bank Inc., who have valid ATM cards, to perform
three types of transactions; 1) withdrawal of funds, 2) Query of account balance, and 3) transfer of
funds from one bank account to another account in the same bank.
3) An ATM card usage shall be considered valid if it meets the following conditions:
a) The card was issued by an authorized bank.
b) The card is used after the start date, i.e., the date when the card was issued.
c) The card is used before the expiration date, i.e., the date when the card expires.
d) The card has not been reported lost or stolen by the customer, who had been issued that card.
e) The customer provides correct personal identification number (PIN), which matches the PIN
maintained by the system.
4) The system shall confiscate the ATM card if it detects that a lost or stolen card has been inserted
by a customer. The system shall also display an apology to the customer.
5) The system shall allow the customer to enter the correct PIN in no more three attempts. The
failure to provide correct PIN in three attempts shall result in the confiscation of the ATM card.
6) The system shall ask for the transaction type after satisfactory validation of the customer PIN. The
customer shall be given three options: withdrawal transaction, or query transaction, or transfer
transaction.
7) If a customer selects withdrawal transaction, the system shall prompt the customer to enter
account number and amount to be dispensed.
8) For a withdrawal transaction, the system shall determine that sufficient funds exist in the
requested account, that the maximum daily limit has not be exceeded, and that there are sufficient
funds available at the local cash dispenser.
9) If a withdrawal transaction is approved, the requested amount of cash shall be dispensed, a receipt
shall be printed containing information about the transaction, and the card shall be ejected. The
information printed on the receipt includes transaction number, transaction type, amount
withdrawn, and account balance.
10) If a customer selects query transaction, the system shall prompt the customer to enter account
number.
11) If a query transaction is approved, the system shall print a receipt and eject the card. The
information contained on the receipt includes transaction number, transaction type, and account
balance.
12) If a customer selects transfer transaction, the system shall prompt the customer to enter from
account number, to account number, and amount to be transferred.
13) The system shall check if there are enough funds available in the from account, which are being
requested for transfer to the to account.
14) If the transfer transaction is approved, a receipt shall be printed and card shall be ejected. The
information printed on the receipt includes transaction number, transaction type, amount
transferred, and account balance.
15) 15.The system shall cancel any transaction if it has not been completed if the customer presses the
Cancel button

ii) Draw use case diagram for ATM customer.


Answer:

BEST OF LUCK

You might also like