Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Metrics - Principles of Software Development - Lecture Notes, Study notes of Software Engineering

Main points of this lecture are: Metrics, Transaction Versus Transform Flow, Dominance, Choosing Modules, Example of Cohesion, Principles of Top-Level Design, Module Decomposition, Kinds of Information Flow, Concept of Project Metric, Software Product

Typology: Study notes

2012/2013

Uploaded on 04/23/2013

ashakiran
ashakiran 🇮🇳

4.5

(27)

268 documents

1 / 37

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Transform: potentially asynchronous
operation that takes data A and produces
data B.
Transaction: command: A is a directive, and
the output is not a transform of A, but rather,
the result of executing the command A.
Transaction versus transform flow
Wednesday, September 19, 2012
4:32 PM
Metrics Page 1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Partial preview of the text

Download Metrics - Principles of Software Development - Lecture Notes and more Study notes Software Engineering in PDF only on Docsity!

Transform: potentially asynchronous

operation that takes data A and produces

data B.

Transaction: command: A is a directive, and

the output is not a transform of A, but rather,

the result of executing the command A.

Transaction versus transform flow Wednesday, September 19, 2012 4:32 PM Docsity.com

A - > B - > C

Dominance: B, e.g., describes the whole operation. A is preparation, C is postprocessing. Lack of dominance: A, B, C are just steps in a process. In choosing modules and submodules, look for cohesion Dominance Wednesday, September 19, 2012 4:34 PM Docsity.com

From last time: transaction flow data flow inheritance (condition flow) Segregate the kinds of information flow transaction center transform center root class overarching goal (control module) Seek one or more "centers" from which to decompose modules (with some judgement calls as to which centers dominate the design) Build a basic module decomposition outward from the "centers" Refine that decomposition by creating submodules for the centers. General principles of module decomposition Assign modules to workgroups in a manner that achieves balance between workloads. How does one do that? Finally, General principles of top-level design Tuesday, October 13, 2009 2:35 PM Docsity.com

○ Can it be done in the allocated time?

○^ Will it do what we want at the end?

How does one know that a project is reasonable?

○^ Is value sufficiently greater than cost?

○ Is cost similar to those of other similar projects?

But at a deeper level,

Reading: SEPA Chapter 23, MMM Chapter 9.

How does one know a project is reasonable? Monday, September 28, 2009 12:11 PM Docsity.com

 a function μ() satisfying μ(P)>=0 for all products P. When μ(P)<μ(Q), product P is "less complex than" product Q.

 cost(P) = cost of developing P. LOC(P) = lines of code in some version of P in some language.

Function_points(P) = complexity factors in P's description.

 Branch_complexity(P) = # if statements + 1  Common examples: A product metric is a measure of the complexity of a software product. It is Metrics Monday, September 28, 2009 12:22 PM Docsity.com

Allow one to compare the complexity of

two projects.

How good are the programmers?

How much experience do they have?

How big is the organization?

Are not easily converted into one another,

because conversion requires context:

Some simple claims about metrics

Some simple claims about metrics Wednesday, September 19, 2012 10:30 AM Docsity.com

White-box: computed with knowledge of

the implementation (source code).

Black-box: computed without knowledge

of implementation (just requirements)

Another characterization of metrics

Another characterization of metrics Wednesday, September 19, 2012 10:26 AM Docsity.com

 Hard and soft metrics often vary together. If something is more usable, then it may take more lines of code.  There is thus a naive "covariance" relationship between hard and soft concepts.  A key idea in metrics: "covariance". Covariance Monday, September 28, 2009 12:31 PM Docsity.com

 LOC: only meaningful after program is written. "Function points": a way of estimating complexity from requirements.

Metrics apply to different phases of the engineering process: Kinds of metrics cont'd Monday, September 28, 2009 12:33 PM Docsity.com

how many functions (capabilities) are there?

how many discernable subsystems comprise the

system?

how many actors are there?

how many branches in the control-flow diagram?

how many data exchanges are there?

how complex are the data structures?

Kinds of requirements metrics

Requirements metrics Monday, September 28, 2009 12:35 PM Docsity.com

lines of code (LOC): how many lines of code were necessary to implement the project?

cyclomatic complexity : how many branches were taken in the code? (plus one, see below!)

time spent implementing : person-hours spent actually implementing the project.

Metrics that measure implementations Implementation metrics Monday, September 28, 2009 12:37 PM Docsity.com

While people like to think of project complexity in terms of the number of hours to implement it

Project implementation time is very sensitive to how the project is managed.

 "Adding people to a late project makes it later." Brooks Chapter 2: the Mythical Man-Month The "Mythical Man-Month" Monday, September 28, 2009 12:42 PM Docsity.com

branches in the requirements must lead to branches in the design , which lead to branches in the implementation.

data exchanges in the requirements must be in the design, and thus in the implementation.

Thus there is an imprecise relationship between the metrics applicable to various stages of the project.

There is a complex relationship between requirements metrics and the Jackson duality principle. Understanding metrics Monday, September 28, 2009 12:34 PM Docsity.com

You only know the real cost of the project when it is

done.

But management wants some estimate of the cost

long before it is done.

Cost can be estimated from complexity as it arises

in each phase of the process

As implementation progresses, cost estimates

become more accurate.

At the end, you know the cost, which is the hardest

known measure of complexity.

The metrics "game"

The metrics "game" Monday, September 28, 2009 12:45 PM Docsity.com