Professional Documents
Culture Documents
For
Software Engineering
&&
Architecture and Design
is not absolute
is multidimensional, can be difficult to quantify
has aspects that are not easy to measure
assessment is subject to constraints (e.g., cost)
is about acceptable compromises
criteria are not independent, can conflict
correctness
efficiency
flexibility
integrity
interoperability
maintainability
portability
reliability
reusability
testability
usability
What is SQA?
Monitoring processes and products throughout
the software development lifecycle to ensure
the quality of the delivered product(s)
Monitoring the processes
Provides management with objective feedback
regarding process compliance to approved plans,
procedures, standards, and analyses
Process Assessment
Use of standards and process models has a positive
impact on the quality of the software product
Disciplined, controlled development process
Examples include:
ISO 9001
CMM
CMU SEI, 5 levels
SPICE
Developing a standard for software process assessment
ISO joint committee, Europe, Australia
Product Assessment
Reviews, inspections, walkthroughs
Specialized techniques available:
How to review/assess requirements, architecture,
detailed designs, code
Testing
Simulation
Protoyping
Formal verification
Model checking, theorem proving
Product Assessment
Reviews, inspections, walkthroughs of
Plans, reports, models, standards
Project management, quality assurance, training,
test plan(s)
Requirements, analysis, architecture, detailed
design model, test cases
Issue or problem reports
Metric reports
Traceability reports
Documentation, coding standards
Software Reviews
They may include managerial reviews, acquirer-supplier reviews,
technical reviews, inspections, walkthroughs, and audits.
Inspection:
A formal evaluation technique in which an artifact (e.g., software
requirements, design, or code) is examined in detail by a person or group
other than the originator
detect faults, violations of development standards, and other problems.
review members are peers (equals) of the designer or programmer.
data is collected during inspections for later analysis and to assist in future
inspections.
Note
Introduced by Fagan, 1976.
Fagan, M., Design and Code Inspections to Reduce Errors in Program
Development, IBM Systems Journal, 15, 3 (1976), pp. 182-211
Fagan, M., Advances in Software Inspections, IEEE Transactions on Software
Engineering, 12, 7(July 1986), pp. 744-751
Defect Checklists
Useful to support reviews, inspections, walkthroughs
Expertise is captured in a list format
Less experienced people can use
Straightforward to use (each check should be clear, simple to assess/apply)
Metrics
Metrics for each artifact
e.g., Requirements
Number of requirements
Number of changes per requirement
Called churn rate
Characterization of defects
Not testable, ambiguous, inconsistent, incorrect,
incomplete redundant, infeasible,
Major or minor defect
Phase defect detected
Cost to fix
What techniques?
e.g., formal peer review for deliverables,
checklists for defect detection, ...
Media Control
Identify the media for each intermediate and
deliverable artifact
Documentation required to store the media, including
the backup and restore process
Protect computer program physical media from:
unauthorized access
inadvertent damage
degradation