CSE 314 Principles of Software Engineering Assignment No 3
CSE 314 Principles of Software Engineering Assignment No 3
CSE 314 Principles of Software Engineering Assignment No 3
RE1801A19
10809161
CSE314
Home Work 3
Part A:
Q1. What are software metrics? why they are being used?
A1. A software metric is a measure of some property of a piece of software or its specifications.
Since quantitative methods have proved so powerful in the other sciences, computer science
practitioners and theoreticians have worked hard to bring similar approaches to software
development. Tom DeMarco stated, “You can’t control what you can't measure.” Some software
development practitioners are likely to point out that naive and simplistic measurements can
cause more harm than good. Others have noted that metrics have become an integral part of the
software development process. The difficulty is in determining which metrics matter, and what
they mean.
Software metrics are used to give programmers feedback about their program. Metrics can be
used as guidelines for when to refactor. They provide a way to measure the progress of code
during development.
A2. Halstead proposed the first analytic laws for computer science by using a set of primitive
measures. these can be derived once the design phase is complected and the code is generated.
these measures are listed below
N = n1log2 n1 + n2log2 n2
Program volume (V) can be calculated by using equation:
V = N log2(n1+n2)
Note that the program volume depends on the programming language used and respesents the
volume of information (in bits) required to specify a program.
Where value of L must be less than 1. Volume ratio can be also calculated by
L = 2/n1 * n2/N2
D = (n1/2)*(N2/n2)
E=D*V
.
Q3. Differentiate between data structure metric and information flow metric?
A3. A metric tree is any tree data structure specialized to index data in metric spaces. Metric
trees exploit properties of metric spaces such as the triangle inequality to make accesses to the
data more efficient. Examples include the M-tree, vp-trees, cover trees, and bk trees.
Whereas in information flow metric The informal analysis of PWC in suggests that information
flow corresponds to an improvement in the accuracy of an attacker’s belief. We use change in
accuracy, as measured by belief distance D, to quantify information flow.
Part B:
Q4. Discuss in detail about CMM and ISO9001 quality standards which are used to categorize
the level of development process a software company is maintaining.
A4. CMM (Capability Maturity Model) is a model of process maturity for software development
- an evolutionary model of the progress of a company’s abilities to develop software.In
November 1986, the American Software Engineering Institute (SEI) in cooperation with Mitre
Corporation created the Capability Maturity Model for Software. Development of this model was
necessary so that the U.S. federal government could objectively evaluate software providers and
their abilities to manage large projects. Many companies had been completing their projects with
significant overruns in schedule and budget. The development and application of CMM helps to
solve this problem.
The key concept of the standard is organizational maturity. A mature organization has clearly
defined procedures for software development and project management. These procedures are
adjusted and perfected as required.
In any software development company there are standards for processes of development, testing,
and software application; and rules for appearance of final program code, components,
interfaces, etc.
The CMM model defines five levels of organizational maturity
ISO 9001 is the internationally recognised standard for the quality management of businesses. It
• applies to the processes that create and control the products and services an organisation
supplies
• prescribes systematic control of activities to ensure that the needs and expectations of
customers are met
• is designed and intended to apply to virtually any product or service, made by any
process anywhere in the world
A5. Some of the important differences between software and hardware reliability are:
• Failure does not occur if the software is not used. However in hardware
reliability, material deterioration can cause failure even when the system is not
in use.
• In software reliability, failures are caused by incorrect logic, incorrect
statements, or incorrect input data. In hardware reliability, failures are caused
by material deterioration, random failures, design errors, misuse, and
environmental factors.
• Software failures are rarely preceded by warnings while hardware failures are
usually preceded by warnings.
• Software essentially requires infinite testing, whereas hardware can usually
be tested exhaustively.
• Software does not wear out, and hardware does.
A6. Reliability is the probability of a device performing adequately for the period of time
intended under the operating conditions encountered. Reliability modelling is the process of
predicting or understanding the reliability of a component or system. Two separate fields of
investigation are common: The physics of failure approach uses an understanding of the failure
mechanisms involved, such as crack propagation or chemical corrosion; The parts stress
modelling approach is an empirical method for prediction based on counting the number and
type of components of the system, and the stress they undergo during operation.
Reliability Model
The system works if A works and B works and C works and D works.
For example, if
In terms of time,
Suppose that
Observe that for the constant failure rate (exponential) model, a Weibull distribution can be
used: