Lecture-06

advertisement
CEN 4021
Software Engineering II
Software Project Planning (POMA)
Overview of goals and measurements
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/
sadjadi@cs.fiu.edu
CEN 4021
6th Lecture
Acknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke
CEN 4021: Software Engineering II
6th Lecture
2
Agenda

Software Project Planning (POMA)
– Overview of goals and measurements
CEN 4021: Software Engineering II
6th Lecture
Overview of Goals and Measurements

During the planning phase the goals for and
measurements of, the key attributes of the product and
services are determined.

Many of the goals for the system are deduced from the
functional and nonfunctional requirements.
CEN 4021: Software Engineering II
6th Lecture
Attributes of good software
CEN 4021: Software Engineering II
6th Lecture
software?

The software should deliver the required functionality.

Maintainability
– Software must evolve to meet changing needs;

Dependability
– Reliable, Secure, Safe, trustworthy;

Efficiency
– Software should not make wasteful use of system resources;

Usability
– Used without undue effort.
– Appropriate interface
– Good documentation
CEN 4021: Software Engineering II
6th Lecture
Functional and non-functional
requirements

Functional requirements
– Statements of services the system should provide, how the system
should react to particular inputs and how the system should
behave in particular situations.
– Describe interaction between the system and its environment.

Non-functional requirements
– constraints on the services or functions offered by the system such
as timing constraints, constraints on the development process,
standards, etc.
– Describes aspects of the system that are not directly related to the
functional behaviour.
CEN 4021: Software Engineering II
6th Lecture
Functional requirements



Describe functionality or system services.
Depend on the type of software, expected users and the
type of system where the software is used.
Functional user requirements may be high-level
statements of what the system should do but functional
system requirements should describe the system services
in detail.
CEN 4021: Software Engineering II
6th Lecture
Non-functional requirements


These define system properties and constraints e.g.
reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
Non-functional requirements may be more critical than
functional requirements. If these are not met, the system is
useless.
CEN 4021: Software Engineering II
6th Lecture
requirements


Usability: the ease of use (e.g., interface, online help,
documentation)
Reliability (Dependability): the ability of a system to
perform its required functions under stated conditions for a
specified period of time (e.g., mean time to failure, ability
to withstand attacks and safety).
CEN 4021: Software Engineering II
6th Lecture
requirements


Performance: Quantifiable attributes of the system (e.g.,
response time, throughput, availability).
Supportability: the ease of changes to the system after
development (e.g., adaptability, maintainability, portability).
CEN 4021: Software Engineering II
6th Lecture
Overview of Goals and Measurements
cont
Example goals:
–
A secure system
–
A fully functional system
–
A high-quality system
–
A user-friendly and attractive system
–
A cost-effective project
–
A project that meets the schedule
(please do not just copy these goals into your project plan)

Note that the above goals are not measurable!

The above goals must be recast as more precise attributes with
metrics, so that the attributes are measurable, tracked, validated,
and verifiable.
CEN 4021: Software Engineering II
6th Lecture
Measurable, Trackable, Validatable and
Verifiable Goals

Goals in the planning phase is derived from G/Q/M (V.
Basili and others)

G/Q/M (Goal/Question/Metric) – A s/w metric paradigm
based on identifying the goals, formulating questions
about the goals in quantifiable terms, and establishing
the metrics to answer the formulated questions.

E.g., user reqs state that the response to queries should
be no more than 2 secs. Goal for the attribute “query
response time” would be set at less than 2 secs.
CEN 4021: Software Engineering II
6th Lecture
Goal/Question/Metric paradigm
1.
Develop a set of goals. Set of corporate, division, or
project goals for productivity and quality of product or
process
2.
Develop a set of questions that characterize that goal.
For each goal the question that must be answered to
determine if the goal is being met
3.
Specify the metric needed to answer the question
4.
Develop mechanisms for data collection. (who, when,
how)
5.
Collect, validate and analyze. Keep simple, avoid
unnecessary recording
CEN 4021: Software Engineering II
6th Lecture
Goal/Question/Metric paradigm
6.
Analyze data to assess conformance to the goals and
make recommendations for future improvements
7.
Provide feedback to stakeholders
CEN 4021: Software Engineering II
6th Lecture
Measurable, Trackable, Validatable and
Verifiable Goals

Measurable attribute: An attribute for which there is a
well-defined metric and a methodology for its
measurements.

Tracking: Keeping a record of the measurement taken
on an attribute.

Validation of goal: Comparing a stated goal for an
attribute with the actual measurement taken for the
attribute.

Verification of measurement: Ensuring that the
measurement of an attribute is properly taken and
recorded through repetition, tracing, or some other
means.
CEN 4021: Software Engineering II
6th Lecture
Metrics and Measurements

Metric: The unit used to characterize an attribute.

Measurement: The act of characterizing an attribute,
which may involve multiple steps, utilizing the agreed
upon metric for that attribute.

E.g., Attribute is “elapsed time”, metric “hour” – required
to take the start time and the end time, the compute the
difference.

Planning team may also be required to define metrics
project-related attributed. e.g., productivity, team morale,
tool effectiveness, user satisfaction.
CEN 4021: Software Engineering II
6th Lecture
Metrics and Measurements

The schedule is the most obvious attribute for all
projects i.e., it is a defined set of time goals agreed
upon.

Both the metric and the measurements for schedules
are defined in the calendar.

The cost as an attribute is also relatively easy to
measure. Cost given in terms of some currency is also
a well-defined metric.

Other project attributes and their goals are difficult to
measure, e.g., quality, completeness of functions, and
ease of use.
CEN 4021: Software Engineering II
6th Lecture
Metrics and Measurements

Better system of metrics and measurements are
needed.

activities such as tracking, verification, and validation to
be an art and not a science.
CEN 4021: Software Engineering II
6th Lecture
Metrics and Measurements

The importance of metrics to Software Projects
–
Analyze product errors and defects
–
Assess status
–
Derive a basis for estimates
–
Determine product complexity
–
Establish baselines
–
Experimentally validate best practices
–
Predict quality, schedule, effort, and cost
–
Track project cost
–
Understand when a desired state of quality has been achieved
CEN 4021: Software Engineering II
6th Lecture
Metrics and Measurements

A useful metric is precisely defined (i.e. measurable and
quantifiable)

Terms like “always”, “complex”, “efficient”, or “userfriendly” are not measurable without further definition.

A useful metric should be accountable.

Raw metric and control data (date of observation,
identity of the observer, etc) should be saved along with
the audit trail of the metric analysis process.

Conclusions may then be reconstructed from the data
CEN 4021: Software Engineering II
6th Lecture
Deliverable-related metrics and
measurements

Some s/w deliverable attributes include:
– Quality
– Usability
– Functional completeness
– Maintainability
– Modifiability
– Reliability
– Installability

Requires some thought and insight before a reasonable
goal and metric can be designed
CEN 4021: Software Engineering II
6th Lecture
Deliverable-related metrics and
measurements
Example “Quality”

Required by all s/w eng projects

Usually it is not clearly defined

Quality maybe amount of errors in s/w, how well the
stated functional reqs are met.

It is necessary to identify all the sub-attributes that make
up the quality attribute.

Setting quality goal to “zero known software errors”
makes attaining such a goal almost impossible
CEN 4021: Software Engineering II
6th Lecture
Deliverable-related metrics and
measurements
Zero defect software:
May not be a prudent goal for large commercial products

–
Effort needed to attain this goal may not be worth the cost

Instead quality goal may be expressed in incremental
form (sub-goals)

Level of defect severity:
–
High-level defect
–
Medium-level defect
–
Low-level defect
CEN 4021: Software Engineering II
6th Lecture
Weekly Quality report
Defect Type Problems
(by severity) found
Problems
closed
Problems
still open
Accumulative Quality goal
problems still number
open
High
severity
9
3
5
12
0 open at
release
Medium
severity
Low
severity
CEN 4021: Software Engineering II
6th Lecture
Complex attributes
Complex attribute: whose metric definition requires a
combination of statements and defintions.
 Metric for attributes should be a specific number
 For arithmetic comparison and operation
 What about
– Usability
– Maintainability

No standard goals, metrics or measurements.
CEN 4021: Software Engineering II
6th Lecture
Project and project-related metrics
and measurements

Software project manager is usually required to describe
the project in terms of the following:
– Schedule integrity
– Cost minimization
– Productivity
– Efficiency
– Employee morale
CEN 4021: Software Engineering II
6th Lecture
setting
Setting a goal, its metric and measurement in such a
way that if missed, recovery is immediate without
large cost to resources and other goals.
 Set minor milestones
 Break tasks into sub-goals (e.g. daily milestones/subgoals)
 Slippages are detected early and easily corrected.
CEN 4021: Software Engineering II
6th Lecture
Download