Quality Final TB

You might also like

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

Quality Final TB

CH6 (Practical Part):


1- Compute The Functional Points (FP ‫)ممكن يطلب منك ترسم الرسمة‬:

a. Find out the number of items/attributes of different types.


• External input = Document file, Personal dictionary.
• External output = Word processed message, Errors message, Report on misspelt
• words.
• External inquiries = Word processed message, Errors message.
• External files = Document file, personal dictionary.
• Internal files = Dictionary.
b. Assign subjective “complexity” rating: simple, average, or complex.
• Let’s assume that they are all complex.
c. Assign weight to the items.

d. Compute UFC (Unadjusted Function point Count):


• UFC = External input (complex weight) + External output (complex weight) + External inquiries
(complex weight) + External files (complex weight) + Internal files (complex weight).
• UFC = 2(6) + 3(7) + 2(6) + 2(15) + 1(10) = 85.

e. Compute TCF:
Quality Final TB

• TCF = 0.65 + 0.01 (14 factor * 0 (irrelevant) or 3 (average) or 5 (essential) depending on the
question).
• TCF = 0.65 + 0.01(14 * 3) = 1.07.
f. Compute FP:
• FP = UFC * TCF.
• FP = 85 * 1.07 = 90.95.

2- Compute The Functional Points (FP):


• Number of external inputs = 24
• Number of external outputs = 46
• Number of external inquiries = 8
• Number of external files = 2
• Number of internal files = 4
• Suppose the complexity rating/weight is average for each item.
• Suppose the technical complexity factor is irrelevant for F1, F2 and F3, average for F4 to
F10 and essential for F11 to F14.
a. Write the complexity weight for each item and then Compute UFC (Unadjusted Function
point Count)
• UCF = 96 + 230 + 32 + 20 + 28 = 406
b. Write the values of Technical Complexity Factors (from F1 to F14) and then Compute TCF:
• TCF = 0.65 + 0.01(21 + 20) = 1.06
c. Compute FP (write formula also)
• FP = UCF * TCF ➔ FP = 406 * 1.06 = 430
Quality Final TB

3- Suppose we have a software project with an estimated function point count of 100. Based on
historical data or industry standards, we've determined that, on average, one function point
corresponds to approximately 50 lines of code.
• Function Points: 100
• Productivity Factor: 50 lines of code per function point
• Estimated Lines of Code = Function Points * Productivity Factor
• Estimated Lines of Code = 100 * 50
• Estimated Lines of Code = 5000 LOC

4- Let's say we have a software project estimated to have a size of 50 thousand lines of code
(KLOC). We'll use the following values for A and B, based on the type of project and team
experience:
• Development mode: Organic
• Experience level: Nominal.

a. Compute the effort:


• E = a S b = 3.2 ∗ 501.05 ≈194.56 person-months
b. Compute the time required if you have 5 persons only:
• Time = E / number of people available
• Time = 194.56 / 5 = 38 month
c. Compute the cost required if each person would take 2000$ each month:

• 5 * 2000 = 10000 per month.


• 10000 * 38 = 380000 for the 38 months.
Quality Final TB

CH6 (Theory Part):

Title Definition

Function Points Measure functionality of software products. It measures the software's


size and complexity.
External inputs Provided by the user that describe data, data goes “into” the application.

External outputs Provided to the user that generate data, data comes “out” of the
system.
External inquiries Interactive inputs requiring a response.

External files For example, shared databases (outside the system).

Internal files Logical master files in the system.

UFC Unadjusted Function point Count.


TCF Technical Complexity Factor (also called General System Characteristics:
GSC).
Important points for FP Quality density = defects/FP.
Productivity = person-months/FP.
It is possible to estimate lines of code (LOC) based on function points.
Function Points can be • Estimating effort.
used for different • Measuring software productivity.
purposes • Project planning and control.
• Cost estimation.
• Requirements management.
COCOMO Constructive cost model
The Constructive Cost • Software cost estimation.
Model (COCOMO) (also • Development effort and time.
called Basic Cocomo) is
used for:
COCOMO applies to three • Organic projects – “small” teams with “good” experience working
classes/types of software with “less than rigid” requirements.
projects: • Semi-detached projects – “medium” teams with mixed experience
working with a mix of rigid and less than rigid requirements.
• Embedded projects – developed within a set of “tight” constraints. It
is also a combination of organic and semi-detached projects.
Quality Final TB

CH7 (Practical Part):


1- In the figure:
• What is the in-degree of node 50? 1 (40)
• What is the out-degree of node 50? 2 (80, 60)
• What is the path from node 30 to node 80?
o (30,40,50,80) = simple path
o (30,40,50,60,40,50,80) not simple path
• What are predicate nodes? 50 and 80
• What are procedure nodes? All without 120

2- Draw flowgraph for the given code below.


Quality Final TB

• Based on the results, describe:

3- Based on the graphs given below draw a single graph by using “Sequence” operation. Perform
“Sequencing” of graph D1 with graph D3.

4- Based on the following graphs draw a single graph by using “Nesting” operation. Perform
“Nesting” of graph D1 on graph D3.
Quality Final TB

5- Based on the following graphs draw a single graph by using both the “Nesting.” and
“Sequencing” operations as follows:
• First, nest D1 and D2.
• Then, nest D0 and D3.
• Then, sequence the resulting graphs.

6- Compute The Cyclomatic complexity for the following.

• M=e-n+p
• e = number of edges, n = number of nodes, P = Number of predicate nodes
• M=8-7+2=3
Quality Final TB

7- Compare between Coupling and Cohesion:

CH7 (Theory Part):

Title Definition
Control flow structure The control flow addresses the sequence in which instructions are
executed in a program.
Data flow structure Data flow follows the trail of a data item as it is created or handled by
a program.
Nonnegativity System complexity cannot be negative.
System length cannot be negative.
Module coupling cannot be negative.
Module cohesion is normalized so that it is between zero and one.
• Minimum cohesion = 0 (no cohesion) and
• Maximum cohesion = 1
Null value The complexity of a system with no links is zero.
A system with no links has zero length.
A module without links to elements that are external to the module
has zero coupling.
A module whose elements have no links between them has zero
cohesion.
Symmetry The complexity of a system does not depend on how links are
represented.
The in-degree Of a node is the number of arcs arriving at the node.
Quality Final TB

The out-degree Is the number of arcs that leave the node.


A path Is a sequence of consecutive (directed) edges.

A simple path Is one in which there are no repeated edges.

procedure nodes Out-degree equal to 1 only.

predicate nodes Out-degree more than 1.

flowgraph is When we associate with it the actual code that it represents.


“parameterized”
Sequencing Then the sequence of F1 and F2 is the flowgraph formed by merging
the stop node of F1 with the start node of F2.
Nesting Then the nesting of F2 onto F1 at x is the flowgraph formed from F1 by
replacing the arc from x with the whole of F2.
McCabe’s Cyclomatic It is used for measuring the complexity of a software program.
Complexity Measure
Independent path A path that has at least one edge which has not been traversed before
in any other paths.

CH8 (Practical Part):


1- Example: (McCall Model)
• Unambiguous references (input, function, output) [R,D,I].
• All data references defined, computed, or obtained from external source [R,D,I].
• All defined functions used [R,D,I].
• All referenced functions defined [R,D,I].
• All conditions and processing defined for each decision point [R,D,I].
• All defined and referenced calling sequence parameters agree [D,I].
• All problem reports resolved [R,D,I].
• Design agrees with requirements [D].
• Code agrees with design [I].
Quality Final TB

a. we have 4 yes for R, 5 yes for D and 2 yes for I, then what would be the result for
completeness metric?
• (4/6 + 5/8 + 2/8) / 3 = 0.51
b. we have 6 yes for R, 4 yes for D and 4 yes for I, then what would be the result for
traceability metric?
• (6/6 + 4/8 + 4/8) / 3 = 0.66
c. we have 2 yes for R, 2 yes for D and 2 yes for I, then what would be the result for
consistency metric?
• (2/6 + 2/8 + 2/8) / 3 = 0.27
d. Finally, what would be the result of correctness metric?

• 0.51 + 0.66 + 0.27 / 3 = 0.48

2- Measuring Effectiveness / Task Success / Task Completion Rate*:

a. Calculate the avg success rate (in %) for each. Answer on the table.
b. Calculate avg success rate (in %) for each participant. Answer on the table.
c. Draw graph which shows percentage of tasks completed by each participant.
Quality Final TB

d. Draw graph which shows percentage of each task completed.

e. Compare task success rates and find out which tasks are more problematic. 2 and 3

CH8 (Theory Part):

Title Definition

quality factors high-level external attributes.


Quality Final TB

quality subfactors Lower-level attributes.


portability The ability to move an application from one host environment to
another.
Portability = 1 − ET/ER
ET is a measure of the resources needed to move the system to the
target environment.
ER is a measure of the resources needed to create the system for the
resident environment.
integrity The assurance that modifications can be made only by authorized
users
Types of defects Known defects: That have been discovered through testing,
inspection.
latent defects: That may be present in the system but of which we are
as yet unaware.
Defect density Number of known defects / Product size
System spoilage Time to fix post-release defects / Total system development time

Usability Also includes the subjective characteristic of user satisfaction.


Usability is an indirect measure.
Effectiveness Degree to which users can correctly complete tasks (Task Success).
Types of errors Mental error: Misunderstanding a system option.
physical errors: Problems in accurately pointing and selecting an
option.
Efficiency It is the effort/time required to complete tasks (Time-on-Task).
Satisfaction The degree to which the user was happy with his or her experience
while performing the task.
Measured using standard questionnaires.
accessibility People with disabilities can use a system with accessibility.

Universality Is related to the effects of varying cultural norms.


Trustfulness Indicates the relative level of trust that users should have in the
system.
Maintainability Is the degree of effectiveness and efficiency with which a product or
system can be modified by the intended maintainers.”
Maintenance Types: Corrective maintenance: It involves finding and fixing faults in software
products.
Adaptive maintenance: The system changes in some way (the
hardware is changed, or some part of the software is upgraded)
Quality Final TB

Preventive maintenance: Developers discover faults by combing the


code to find faults before they become failures (before the user sees
them).
Perfective maintenance: rewriting documentation or comments, or
renaming a variable or routine
Perfective vs preventive In that the maintainers are not looking for faults.
They are looking for situations that may lead to misinterpretation or
misuse.
Perfective maintenance may also involve the addition of new
functionality.
How to measure Measure the maintenance process;
maintainability?
Mean time to repair (MTTR) It is the average time it takes the maintenance team to implement a
change.

CH9 (Theory Part):

Title Definition
Fault In a software product occurs due to a human error or mistake.
Is the encoding of an error in the software.
Failure Is the departure of a system from its required behavior.
Is the manifestation of a fault during software execution.
Examples on faults and
failures

An error Is a mistake made by a human designer.


Bugs Refer to faults occurring in the code, but in some cases are used to
describe failures.
Crashes Are a special type of failure, where the system ceases to function.

Reliability The probability of failure-free operation of a computer program in a


specified environment for a specified time
MTBF (mean time between failure) = MTTF + MTTR
MTBF can be • Time span between failures but does not provide us with a projected
problematic for two failure rate.
reasons • MTBF can be misinterpreted to mean average life span.
Quality Final TB

Failures In Time (FIT) A statistical measure of how many failures a component will have over 1
billion hours of operation.
1 FIT is equivalent to one failure in every billion hours of operation.
Software availability Is the probability that a program is operating according to requirements at
a given point in time.
Availability = (MTTF / MTTF + MTTR) * × 100%
Availability = uptime / (uptime + downtime)
Example*: let’s say you’re trying to calculate the availability of a critical
production asset. That asset ran for 200 hours in a single month. That
asset also had two hours of unplanned downtime because of a
breakdown, and eight hours of downtime for maintenance. That equals 10
hours of total downtime. Thus:
Availability = uptime / (uptime + downtime)
Availability = 200 ÷ (200 + 10)
Availability = 200 ÷ 210
Availability = 0.952
Availability = 95.2%
Software safety Is a software quality assurance activity that focuses on the identification
and assessment of potential hazards
Time on Task Time on a task is simply the time elapsed between the start of a task and
the end of a task, usually expressed in minutes and seconds.
action Can take many forms, such as clicking a link on a web page, pressing a
button.
The goal is to increase productivity by minimizing the number of actions
required to complete a task
There are at least two Cognitive effort involves finding the right place to perform an action (e.g.,
types of effort: finding a link on a web page), deciding what action is necessary (should I
Cognitive and Physical click this link?), and interpreting the results of the action.
Physical effort involves the physical activity required to take action, such
as moving a mouse, inputting text on a keyboard, turning on a switch, and
many others.
Lostness Studying behavior on the web

N: the number of different web pages visited while performing the task
S: the total number of pages visited while performing the task, counting
revisits to the same page
R: the minimum (optimum) number of pages that must be visited to
accomplish the task
A perfect lostness score would be 0.
Lostness score less than 0.4 did not exhibit any observable characteristics
of being lost.
Quality Final TB

However, a lostness score greater than 0.5 did appear to be lost.

CH10 (Theory Part):

ACM/IEEE Code:Eight Principles


1: PUBLIC – Software engineers shall act consistently with the public interest.
2: CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests
of their client and employer consistent with the public interest.
3: PRODUCT - Software engineers shall ensure that their products and related modifications
meet the highest professional standards possible.
4: JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
5: MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote
an ethical approach to the management of software development and maintenance.
6: PROFESSION - Software engineers shall advance the integrity and reputation of the profession
consistent with the public interest.
7: COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8: SELF - Software engineers shall participate in lifelong learning regarding the practice of their
profession and shall promote an ethical approach to the practice of the profession.
IEEE Code of Ethics
I. To uphold the highest standards of integrity, responsible behavior, and ethical conduct in
professional activities.
Quality Final TB

1. to hold paramount (supreme), the safety, health, and welfare of the public, to strive to
comply with ethical design and sustainable development practices, to protect the privacy of
others, and to disclose promptly factors that might endanger the public or the environment.
2. to improve the understanding by individuals and society of the capabilities and societal
implications of conventional and emerging technologies, including intelligent systems.
3. to avoid real or perceived conflicts of interest whenever possible, and to disclose them to
affected parties when they do exist
4. to avoid unlawful conduct in professional activities, and to reject bribery in all its forms.
5. to seek, accept, and offer honest criticism of technical work, to acknowledge and correct
errors, to be honest, and realistic in stating claims or estimates based on available data, and to
credit properly the contributions of others.
6. to maintain and improve our technical competence and to undertake technological tasks for
others only if qualified by training or experience, or after full disclosure of pertinent limitations
II. To treat all persons fairly and with respect, to avoid harassment or discrimination, and to
avoid injuring others.
7. to treat all persons fairly and with respect, and to not engage in discrimination based on
characteristics such as race, religion, gender, disability, age, national origin, sexual orientation,
gender identity, or gender expression.
8. to not engage in harassment of any kind, including sexual harassment or bullying behavior.
9. to avoid injuring others, their property, reputation, or employment by false or malicious
actions, rumors, or any other verbal or physical abuses.
III. To strive to ensure this code is upheld by colleagues and coworkers.
10. to support colleagues and coworkers in following this code of ethics, to strive to ensure the
code is upheld, and to not retaliate against individuals reporting a violation.

You might also like