Process Quality Assurance for UML-Based Projects

Process Quality Assurance for UML-Based Projects

by Bhuvan Unhelkar
     
 

Software quality, by its very nature, is elusive. Add to that the issue of ever-changing user requirements and the vagaries of software project management and "quality" can easily become a mere word on a distant horizon. This highly acclaimed book demonstrates how the Unified Modeling Language (UML) can be used within a process framework to help reduce complexity,

See more details below

Overview

Software quality, by its very nature, is elusive. Add to that the issue of ever-changing user requirements and the vagaries of software project management and "quality" can easily become a mere word on a distant horizon. This highly acclaimed book demonstrates how the Unified Modeling Language (UML) can be used within a process framework to help reduce complexity, clarify requirements, and add structure to project management in order to yield software quality here and now.

Process Quality Assurance for UML-Based Projects focuses on the crucial process aspect of software quality. In an easy, entertaining way, the author outlines common-sense strategies for determining the applicability of UML to a project, creating and managing project teams, identifying levels of quality standards, applying quality techniques, and estimating and testing in UML-based projects.

With this book you will be able to:

  • Understand the elusive nature of software quality, the pressures on software quality, and the importance of processes and modeling in enhancing software quality
  • Divide modeling into three distinct but related spaces--problem, solution, and background space--and correlate the roles of business analyst, system designer, and system architect to these modeling spaces respectively
  • Understand quality discussions applicable to small, medium, and large projects
  • Appreciate the sociological aspect of quality management in software projects, including the value of transactional analysis (TA) in team formation and motivation
  • Relate to an iterative and incremental process based on the concepts of process-components and related activities, tasks, roles, and deliverables
  • Move your organization forward in terms of CMM process maturity
  • Gain valuable and practical insights into process and project metrics, measurements, and estimations
  • Appreciate the strategic aspect of testing as it relates to quality assurance
  • Understand quality discussions applicable to new developments, integration, package implementation, outsourcing, data warehousing, and educational projects
  • Access extremely well-referenced work by leading practitioners, researchers, and academicians
  • Estimate and refine process and project metrics

At the end of each chapter, key points are encapsulated in FAQs and exercises for easy referencing and team training.

0201758210B08132002

Read More

Product Details

ISBN-13:
9780201758214
Publisher:
Addison-Wesley
Publication date:
10/28/2002
Series:
Object Technology Series
Edition description:
New Edition
Pages:
394
Product dimensions:
7.40(w) x 9.20(h) x 0.90(d)

Table of Contents

(NOTE: Each chapter concludes with FAQs, Exercises, References and End Notes.)

Foreword by Dr. Vicki P. Rainey.

Preface.

Acknowledgments.

I. SETTING THE SCENE FOR SOFTWARE QUALITY ASSURANCE.

1. The Quality Game.

Elusive Software Quality.

Defining Quality!.

Quality and Objective Effort.

Nature of Software.

Assuring Quality: a Distinct Activity.

Pressures on Quality.

Budget.

Time.

Functionality.

Quality.

Quality Levels.

Data Quality.

Code Quality.

Model Quality.

Process Quality.

Management Quality.

Quality Environment.

Quality Software Process.

What constitutes a Process?.

A Sample Cooking Process.

The Orthogonal Process Relationship.

Process in Software Context.

Software Process.

Quality Process.

Quality Assurance and Testing: Lets not confuse them.

Modeling and Quality.

Purpose of Modeling.

Modeling Caveats.

Understanding Modeling Spaces in Software.

Problem Space.

Solution Space.

Background Space.

UML and Quality.

A Brief History of UML.

Quality of UML versus Quality by UML.

Quality by UML.

Quality of Visualization.

Quality of Specification.

Quality of Construction.

Quality of Documentation.

Quality Assurance Techniques of Syntax, Semantics, Aesthetics.

Quality Models—Syntax.

Quality Models—Semantics.

Quality Models—Aesthetics.

Quality Assurance of Software Process: Necessity, Sufficiency, Malleability.

Quality of Process—Necessity.

Quality of Process—Sufficiency.

Quality of Process—Malleability.

Reuse, Patterns and Quality.

Increasing Productivity through Reuse.

Reusing Expert Knowledge and Experience.

Applying Standards.

Quality and Usability.

Principles of Usability.

Navigability of Interfaces.

GUI Design and Quality.

UML-based Projects—types.

Development.

Integration (with Legacy).

Package Implementation (CRM, ERP).

Outsourcing.

Data Warehousing/Conversion.

Educational.

UML-Based Projects—Size and Scalability.

Small Projects.

Medium Projects.

Large Projects.

Putting it all Together (Key Points).

Bibliographic Notes.

Frequently Asked Questions (FAQs).

Exercises.

References.

II. ORGANIZING AND ENACTING THE PROCESS FOR QUALITY.

2. Quality Environment: Managing the Quality Function.

Quality Management.

Quality Environment.

Non-Technical Management.

Process and Quality.

Team Organization.

Organizing the Roles in the Problem Space.

Business Analyst.

User.

End User.

Domain Expert.

Prototyper in Problem Space.

Organizing the Roles in the Solution Space.

System Designer.

Data Modeler.

Interface Designer.

Programmer.

Tester.

Prototyper in Solution Space.

Organizing the Roles in the Background Space.

System Architect.

Prototyper in Background Space.

Database Manager.

Common Roles.

Project Manager.

Steering Committee.

Business Sponser.

Organizing the Quality Team.

Quality Manager.

Quality Analyst.

Process Engineer.

User.

Tester.

The Quality Environment.

E-factor and Quality.

Soft Issues Specific to UML-based projects.

Communication in a Quality Environment.

Telecommuting.

Project Sociology.

Four models for Project Teams.

The Best Fit Approach to Creating a Homogeneous Team.

Flattening the Pyramid.

People in Reusability.

Parallel Development Teams.

Transactional Analysis in Software Projects.

A Brief History of TA.

The Parent, Adult, and Child Ego States.

The Life Positions.

Games.

Games in an OO Project.

Use It or Lose It.

Cowboy Programming.

Flour Mix.

Meetingitis.

Deadline.

Popular Quality techniques.

Walkthroughs.

Inspections.

Reviews.

Audits.

Checklists.

Interviews.

Workshops.

Standards and Quality.

Areas of application of standards.

Project, Organizational and Industrial Standards.

Process Maturity: The CMM Standards.

The Capability Maturity Model.

Personal Software Process Maturity.

Applying CMM in UML-based Projects.

Process Checks.

Checking What is Necessary.

Checking What Would Be Sufficient.

Checking the Malleability of a Process.

The Planning Deliverables.

Project Organizational Plan.

The Quality Plan.

Test Plan.

Bibliographic Notes.

Frequently Asked Questions. (FAQs).

Exercises.

References.

3. The Quality Process Architecture.

The Process Backbone.

The Three Dimensions of a Process.

“What” of a Process.

“How” of a Process.

“Who” of a Process.

The Process Metamodel.

Describing the Process Metamodel.

Process Ingredients.

The Role Element in a Process.

The Activity Element in a Process.

The Task Element in a Process.

The Deliverable Element in a Process.

A Process-Component.

Iterations.

Putting Together a Process-Component: A Baking Process.

Quality Software Process.

The Software Process.

The Quality Process.

Rigorous Process.

Process Maturity.

Malleable Process.

Process Timings.

The Software Process.

Business Evaluation Process-Component.

Roles in Business Evaluation.

Activities and Tasks in Business Evaluation.

Deliverables in Business Evaluation.

Quality Comments on Business Evaluation.

Project Management Process-Component.

Roles in Project Management.

Activities and Tasks in Project Management.

Deliverables in Project Management.

Quality Comments on Project Management.

Process Configuration Process-Component.

Roles in Process Configuration.

Activities and Tasks in Process Configuration.

Deliverables in Process Configuration.

Quality Comments on Process Configuration.

Requirements Modeling Process-Component.

Roles in Requirements Modeling.

Activities and Tasks in Requirements Modeling.

Deliverables in Requirements Modeling.

Quality Comments on Requirements Modeling.

Interface Modeling and Design Process-Component.

Roles in Interface Modeling.

Activities and Tasks in Interface Modeling.

Deliverables in Interface Modeling.

Quality Comments on Interface Modeling.

System Design Process-Component.

Roles in System Design.

Activities and Tasks in System Design.

Deliverables in System Design.

Quality Comments on System Design.

Persistence Design Process-Component.

Roles in Persistence Design.

Activities and Tasks in Persistence Design.

Deliverables in Persistence Design.

Quality Comments on Persistence Design.

Implementation Process-Component.

Roles in Implementation.

Activities and Tasks in Implementation.

Deliverables in Implementation.

Quality Comments on Implementation.

Prototyping Process-Component.

Roles in Prototyping.

Activities and Tasks in Prototyping.

Deliverables in Prototyping.

Quality Comments on Prototyping.

Change Management Process-Component.

Roles in Change Management.

Activities and Tasks in Change Management.

Deliverables in Change Management.

Quality Comments on Change Management.

Enterprise Architecture Process-Component.

Roles in Enterprise Architecture.

Activities and Tasks in Enterprise Architecture.

Deliverables in Enterprise Architecture.

Quality Comments on Enterprise Architecture.

System Architecture Process-Component.

Roles in System Architecture.

Activities and Tasks in System Architecture.

Deliverables in System Architecture.

Quality Comments on System Architecture.

Deployment Process-Component.

Roles in Deployment.

Activities and Tasks in Deployment.

Deliverables in Deployment.

Quality Comments on Deployment.

Training Process-Component.

Roles in Training.

Activities and Tasks in Training.

Deliverables in Training.

Quality Comments on Training.

Reuse Process-Component.

Roles in Reuse.

Activities and Tasks in Reuse.

Deliverables in Reuse.

Quality Comments on Reuse.

The Quality Process.

Quality Management Process-Component.

Roles in Quality Management.

Activities and Tasks in Quality Management.

Deliverables in Quality Management.

Quality Comments on Quality Management.

Quality Assurance Process-Component.

Roles in Quality Assurance.

Activities and Tasks in Quality Assurance.

Deliverables in Quality Assurance.

Quality Comments on Quality Assurance.

Quality Control Process-Component.

Roles in Quality Control.

Activities and Tasks in Quality Control.

Deliverables in Quality Control.

Quality Comments on Quality Control.

Bibliographic Notes.

Frequently Asked Questions(FAQs).

Exercises.

References.

4. Enacting the Quality Software Process.

Configuration of a Process.

The Waterfall-Based SDLC.

The Spiral-Based SDLC.

The Fountain-Based SDLC.

The Iterative, Incremental, and Parallel Development Process.

Need for Iterations and Increments.

Initial.

Major.

Final.

Parallel Developments within a Lifecycle.

Maintenance or Ongoing Iteration.

Adoption of the Software Process.

Ascertain Current Process State.

Crucial Pilot Project.

Point of Adoption.

Separating UML from the Process.

Keeping All CASE Tool Implementations Separate.

Training and Mentoring. BHEADS = Access to the Process.

Enacting the Quality Process.

Creating Iterations and Increments in Lucky Insurance's Development.

An Iterative Project Task Plan.

Iterative Project Management Tools.

Tracking Quality throughout the Process.

Importance of Road Factors in Process Enactment.

Quality Activities at the End of the Initial Iteration.

Quality Activities at the End of the Major Iteration.

Quality Activities at the End of the Final Iteration.

Frequently Asked Questions (FAQs).

Exercises.

References.

5. Estimates and Metrics for UML-Based Projects.

About Estimates and Measures in Software Projects.

Relating Estimates to Quality.

Measurements and Estimates.

Measuring the Technological Dimension.

Measuring the Methodological Dimension.

Measuring the Sociological Dimension.

Project Metrics and Estimates.

Project Size and Type.

Project Time, Budgets, and People.

Caveats in Project Estimates.

Measurement of Processes.

Why Measure Processes?

Measuring Process-Components in Deployment.

Measuring Process-Components in Enactment.

Refining the Project Estimations at the End of Each Iteration.

Quality Metrics.

Measuring Size of Software.

Traditional Measures of Software.

Additional Measures of Software.

Object-Oriented Measures of Software.

Measures of UML Artifacts, Diagrams, and Models.

Measuring Size and Complexity of Use Cases and Use Case Diagrams.

Measuring Size and Complexity of Classes.

Measurement of a Component.

Testing Metrics.

Applying Metrics and Estimates to Lucky Insurance's Project.

Considering Metrics and Estimates Specific to Lucky Insurance's Project.

Project and Process Metrics in Enactment.

Measuring Process-Components for Enactment.

Applying Process and Project Metrics to Lucky Insurance's Project.

Arriving at the Productivity Factor for Lucky Insurance's Project.

Refining Estimates Based on the Productivity Factor for Subsequent Iterations.

Prophetic Statements on Estimates and Metrics.

Bibliographic Notes.

Frequently Asked Questions (FAQs).

Exercises.

References.

III. TESTING THE PRODUCT: QUALITY CONTROL.

6. Quality Control of Software Products.

Testing in Context.

Testing Approaches in UML-Based Projects.

Black Box.

White Box.

Manual Testing.

Automated Testing.

Vertical Testing.

Horizontal Testing.

Equivalence Partitioning.

Boundary Value.

Testing Architecture.

Unit Test.

Component Test.

System Test.

Acceptance Test.

Regression Test.

Operational Testing.

Performance (Stress and Volume) Testing.

Security Testing.

Scalability Testing.

Test Planning.

A Good Test Plan.

Analyzing Risks in Testing.

Test Environment.

Test Resources.

Development Environment.

Test Environment.

Test Schedules.

Test Cycles.

Reusability in Testing.

Test Design.

Description of Test Designs.

Sources for Test Designs.

Format for Test Designs.

Test Cases.

Description of Test Cases.

Designing the Test Cases.

Format for Test Cases.

Example Test Case.

Verifying the Test Cases.

Modifying the Test Cases.

Test Execution.

Getting Ready.

Acceptance Criteria.

Execute Test Suites.

Record Incident Reports.

Recording and Analyzing Test Results.

Software Incidents.

Recording Test Results.

Analyzing Results.

Reporting.

Bibliographic Notes.

Frequently Asked Questions (FAQs).

Exercises.

References.

Glossary of Acronyms and Important Terms 345

Bibliography 349

UML CASE Tools 355

Process Tools Using UML 365

Epilogue 373

Index 375 0201758210T10042002

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >