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:
At the end of each chapter, key points are encapsulated in FAQs and exercises for easy referencing and team training.
Click below for Sample Chapter(s) related to this title:
Sample Chapter 3
(NOTE: Each chapter concludes with FAQs, Exercises, References and End Notes.)
Foreword by Dr. Vicki P. Rainey.
I. SETTING THE SCENE FOR SOFTWARE QUALITY ASSURANCE.1. The Quality Game.
Elusive Software Quality.
Quality and Objective Effort.
Nature of Software.
Assuring Quality: a Distinct Activity.
Pressures on Quality.
Quality Software Process.
What constitutes a Process?.
A Sample Cooking Process.
The Orthogonal Process Relationship.
Process in Software Context.
Quality Assurance and Testing: Lets not confuse them.
Modeling and Quality.
Purpose of Modeling.
Understanding Modeling Spaces in Software.
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 Assurance of Software Process: Necessity, Sufficiency, Malleability.
Quality of Process—Necessity.
Quality of Process—Sufficiency.
Many technical texts focus on the what, when, and how, but neglect the who. In this work, Unhelkar recognizes the importance of the sociological aspect of system development. In my own experience, I have seen system-integration program managers begin to recognize the psychological traits and attitudes of the program developers as valid parameters in determining and managing the program constraints of cost, schedule, and quality.
Traditionally, system development has been organized around technology and methodology. Nonquantifiable aspects of program success such as communication have been overlooked, despite the fact that poor communication accounts for a large percentage of project failures. Program managers focus on the triple constraints--quality, schedule, and cost. Unhelkar inspires the reader to also look at the second tier beneath each of these constraints--people, technology, and process. While making it clear that UML is not a process, the text addresses process-components with their respective roles, responsibilities, activities, tasks, and deliverables that produce UML-based artifacts.
Unhelkar has validly recognized that people are the key to building quality systems, and that training, organizing, empowering, and managing people are essential to producing a quality product. Emphasis on the human factors related to system developers and system users is found throughout the text. For example, Unhelkar states, "Proper study of quality would have to delve into other branches of science such as psychology, sociology, and social sciences."
To develop a system, many competencies--both engineering and nonengineering--are required. Some of the less-technical competencies addressed include understanding the user, establishing trust relationships, evaluating and selecting component suppliers, developing cost estimations, preparing test plans, balancing cost and quality, balancing reuse against customer requirements and system quality/cost/schedule, creating and managing schedules, managing system configuration, developing flexible designs, and selecting and using appropriate metrics.
Obviously, finding individual engineers capable of fulfilling all the required roles in system development is a difficult task, if not an impossible one. The solution lies in the ability to form teams composed of members whose skills are complementary and cover the gamut of necessary roles. Issues that affect the ability to form such complementary and effective teams include project size, geographical distribution of team members, and inherent communication issues arising from the possible lack of face-to-face interactions.
The text addresses ways to assemble teams, the value of diversity, and issues arising in a virtual environment. Unhelkar also touches on profiling team members to help each one determine roles best aligned with their skills and interests. Domain expertise and mentoring are addressed and presented as tools to aid in team coalescence.
Unhelkar's belief in the value of mentoring is demonstrated in his approach to writing this text. He does not seem interested in impressing the reader with his technical jargon, but rather, he sets the stage for learning about the UML and its relation to quality by virtue of its application within the framework of a process. His analogies and examples are entertaining as well as instructive as he steps logically through the text material.
As a mentor to system-development professionals, he clarifies who should develop or review UML models of the problem space, the solution space, and the background space (architecture) of the system. He provides commonsense suggestions for determining the applicability of UML to a project, and for planning UML training and mentoring. His instruction is encapsulated in FAQs and exercises at the end of each chapter. As a result, the text can serve as an excellent seminal reference for practitioners, academics, and researchers. The text might also be selected as an excellent basis for a class or a self-study group as well as an ideal textbook used in a transdisciplinary or interdisciplinary engineering curriculum.
Unhelkar's practical understanding of issues that confront those who build systems adds a dimension to the text that is lacking in many technical writings. I applaud this unique blend of theory and practice and highly recommend this text as a reference for software-system projects, software engineering courses, and research in the areas of quality, modeling, and process. My best wishes are with the author for this influential work, and I offer encouragement for him to pursue future projects, especially in the areas of product integration, metrics, cost estimation, and sociological/psychological factors affecting project success. I believe that my enthusiasm for Process Quality Assurance for UML-Based Projects will be shared by all who read it.
Vicki P. Rainey, Ph.D.
Director, Software Engineering
Raytheon--Garland Texas Site
Click below to download the Index file related to this title: