程序代写案例-CPTS 583

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
SOFTWARE QUALITY
CPTS 583
Midterm exam review
1
Logistics
• Proctoring
• Zoom
• Time
• Lecture time
• Thursday, March 4
• GC students: schedule with me if needed
• Setting
• Close-book
• Cheat sheets: two sheets / both sides
2
Exam format
• Total: 100 points
• Composition
• 10 essay questions, 5 pts each
• 4 more sophisticated essay questions, 8 pts each
• 1 analytics question, 8 pts
• 1 computation question, 10 pts
• Grading guidelines
• Essay questions
• Rationale/main idea
• Justification
• Analytics and computation questions
• Steps
• Results
3
What is software quality?
• Software
Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a
computer system. (IEEE definition)
4
What is software quality?
• Software quality
By IEEE:
(1) The degree to which a system, component, or process
meets specified requirements.
(2) The degree to which a system, component, or process
meets customer or user needs or expectations.
5
Software quality perspectives
• Different roles
Consumer
Third party/indirect users
Generalized users
Software quality perspectives
Various perspectives:
- Customer : Complete requirements (Functional and non
functional)
- Project manager: Cost and schedule
- Maintenance engineer: Detection and correction times
Quality perspective
• Vary with different software
General-purpose system
(functionality)
End-user / Web / GUI
applications
(usability)Embedded software
(interoperability)
Safety-critical systems
(safety, reliability)
What is software quality?
• Six characteristics (as per ISO/IEC 9126)
9
What is software quality?
• Six characteristics (as per ISO/IEC 9126)
10
Software quality: scope
Software quality engineering (SQE)
Software quality assurance
(SQA)
Software testing
11
Software correctness
• High quality -> few defect
• Defect
• Error – Fault – Failure
• Correctness: an attribute of Quality
Error—a quality problem found before the software is released to
end users
Fault/Failure—a quality problem found only after the software has
been released to end-users
Software correctness
Software correctness
The nine causes of software errors are:
1. Faulty requirements definition
2. Client-developer communication failures
3. Deliberate deviations from software requirements
4. Logical design errors
5. Coding errors
6. Non-compliance with documentation and coding
instructions
7. Shortcomings of the testing process
8. User interface and procedure errors
9. Documentation errors
Quality assurance
• Quality assurance (QA)
• Focus - correctness
• What - Dealing with defects
• When - Earlier the QA, lower the cost
• Post-release versus pre-release
SQA is:
(1). A planned and systematic pattern of all
actions necessary to provide adequate
confidence that an item or product conforms to
established technical requirements.
(2). A set of activities designed to evaluate the
process by which the products are developed or
manufactured. Contrast with quality control.
Quality assurance
• How?
• How to deal with defects?
Prevention
Removal
Containment
Quality assurance
Software Quality Management
Quality Planning
Quality Assurance
Quality Control
Quality Management Activities
• Quality planning
• selecting and modifying applicable quality standards
and procedures for a particular project
• Quality assurance
• establishing organizational quality standards and
procedures
• Quality control
• ensuring quality standards and procedures are
followed by development team
Quality Management Activities
Quality Management along the way
• The quality of a developed product is influenced by the
quality of the production process
• Particularly important in software development as some
product quality attributes are hard to assess
• Relationship between software processes and product
quality: complex yet poorly understood
Process and product quality
Process-based quality
Elements of a software quality plan
✓Product/process introduction/description
✓Quality goals
✓Review activities
✓Tests
✓Configuration tools/procedures
Quality Goals
❑ Quantitative measures usually preferred to qualitative
measures when choosing goals
❑easier to assess objectively during testing.
❑ Quality goals should reflect the major acceptance
criteria found in the requirement’s document (i.e. RFP)
❑correctness, reliability, robustness, maintainability….
❑ RFP is often used to measure successful achievement of
the customer’s quality requirements.
Quality planning in practice
• Preparing plans can be a hassle
• Too many
• Too bureaucratic
• Agile versus heavy-weight planning
• Avoid being “plan-centric”
• Heavy-weight plan may be unnecessary or infeasible
Quality planning for small projects
• A project of short duration (e.g., 10 days)
• A project to be worked on by a small team (e.g., 3
professionals)
• A project that would not cost much even timeline failed to
be observed
• ……
Quality planning for small projects
• Simplified/reduced quality plan
• Quality goals
• Reduction is NOT dismissal
• Advantages of quality planning
• Even for small projects!
Cost of software quality
• Balancing cost and quality
Cost of software quality
• Why should we estimate the cost?
• Put the quality cost under control
• Plan and manage budget
• Adjust quality assurance methodology and/or plan
Cost of software quality
• What are the costs?
Traditional Costs of Quality (CoQ)
• Cost of defect prevention
• E.g., process improvement, root-cause analysis, training, etc.
• Cost of defect detection
• E.g., inspection, testing
• Cost of failures
• Internal (pre-release)
• External (post-release)
15-40%
Cost of software quality
• What are the costs?
Costs of Software Quality (CoSQ)
• CoQ
• Defect Detection -> Appraisal
• Additional costs specific to Software quality
• Managerial control costs
• Managerial failure costs
CoSQ model
Cost of
software
quality
Prevention costs
Appraisal costs
Internal failure costs
External failure costs
Control
costs
Failure of
control
costs
Managerial control
costs
Managerial failure
costs
Good quality
Bad quality
Software Cost Estimation
• COCOMO (COnstructive COst MOdel)
• To tune software process (lifecycle practices)
• To support continuous model improvement
• Different levels of detail and accuracy
Early in project
After requirements
After design
Software Cost with COCOMO
• Different modes for various development settings
1. Organic mode
• Low complexity, high flexibility
2. Semi-detached mode
• Intermediate complexity, mostly less rigid requirements
3. Embedded mode
• High complexity, tight constraints
Software Cost with COCOMO
• Effort (in Man Months)
• Development time (in months)
E = a(KDSI)b * EAF (MM)
Thousand (K) lines of Delivered
Source Instructions
Effort Adjustment Factor
D = c(E)d (months)
The McCall quality factor model
Software quality factors
Product operation factors
Product revision factors
Product transition factors
The McCall quality factor model
Trading off between factors
• 11 factors
• All to be considered
Usability
Efficiency
Usability
Efficiency
Trading off between factors
• Factors with (negative mutual) influence
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Flexibility
Testability
Portability
Reusability
Interoperability
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Flexibility
Testability
Portability
Reusability
Interoperability
Trading off between factors
• Factors with (positive mutual) influence
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Flexibility
Testability
Portability
Reusability
Interoperability
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Flexibility
Testability
Portability
Reusability
Interoperability
Trading off between factors
• Tradeoffs between conflicting factors
In practice:
--- prioritization
--- compromise
State of the art:
--- modeling and tracking
--- creating facts & knowledge
McCall
Boehm’s model
Level I
characteristics
Level II
characteristics
Level III
characteristics
ISO/IEC 9126
✓✓


CMM
• Capability Maturity Model (CMM)
CMM

欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468