The Project Manager's Guide to Software Engineering's Best Practices / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 98%)
Other sellers (Paperback)
  • All (18) from $1.99   
  • New (6) from $89.42   
  • Used (12) from $1.99   
Close
Sort by
Page 2 of 2
Showing 11 – 18 of 18 (2 pages)
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$90.00
Seller since 2009

Feedback rating:

(3499)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Good
SOME HIGHLIGHTING AND PRICE STICKER

Ships from: Columbia, MO

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$97.61
Seller since 2008

Feedback rating:

(4580)

Condition: New
New Book. Shipped from UK within 10 to 14 business days. Established seller since 2000.

Ships from: Horcott Rd, Fairford, United Kingdom

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$99.40
Seller since 2008

Feedback rating:

(18036)

Condition: New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$116.85
Seller since 2009

Feedback rating:

(10832)

Condition: New
New Book. Shipped from US within 4 to 14 business days. Established seller since 2000

Ships from: Secaucus, NJ

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$120.17
Seller since 2008

Feedback rating:

(4580)

Condition: New
New Book. Shipped from UK within 4 to 14 business days. Established seller since 2000.

Ships from: Horcott Rd, Fairford, United Kingdom

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$132.90
Seller since 2008

Feedback rating:

(18036)

Condition: Like New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$168.47
Seller since 2006

Feedback rating:

(319)

Condition: New
ABSOLUTELY BRAND NEW! Ships out within 24 hours! Multiple quantities available! International and expedited shipping available.

Ships from: Camden, NY

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$168.47
Seller since 2006

Feedback rating:

(319)

Condition: Like New
ABSOLUTELY BRAND NEW! Ships out within 24 hours! Multiple quantities available! International and expedited shipping available.

Ships from: Camden, NY

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 2 of 2
Showing 11 – 18 of 18 (2 pages)
Close
Sort by

Overview

Since the earliest days of the computer industry, managing a software project has been a complex and demanding activity. While the technical content of software products and the technical methods used to build them have changed over time, the fundamental issues that determine the success or failure of software projects have remain fairly constant. That is, the same fundamental management mistakes continue to be made. To cite a few examples; requirements are unclear at the beginning of projects and are not managed during the project, the product is not tested adequately, schedules are misestimated or not tracked in sufficient detail. The contents of this book, together with the underlying IEEE Standards, are dedicated to helping the reader in their work: The continuing quest to produce quality software products in a predictable manner.

This book, containing all original material, is based on the proposition that the IEEE Software Engineering Standards capture many of the fundamental 'best practices' of software project management. It is written to assist the reader in applying those standards to their projects and company. To meet this goal, the authors discuss and elaborate the standards that bear on the three key management areas of: Software systems engineering, Processes for developing software products, Planning and control of software project activities.

The body of the book is correspondingly organized into three parts. Software Systems Engineering, which argues that software development projects are most successful when developed using a systems level viewpoint. Process Management and Control, which describes the key activities needed to define, support, and manage a project's software development processes. Project Planning and Management completes the book, integrating the elements of cost and schedule estimation and control, risk management, and the role metrics play in performing those tasks.

Read More Show Less

Product Details

  • ISBN-13: 9780769511993
  • Publisher: Wiley
  • Publication date: 5/11/2002
  • Series: Practitioners Series , #22
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 552
  • Product dimensions: 6.81 (w) x 10.06 (h) x 1.07 (d)

Meet the Author

Mark J. Christensen, Ph.D., is an independent consultant based in St. Charles, Illinois, USA. Dr. Christensen serves a national client base, offering process and project evaluation services, and project management training. His customers include industrial, governmental, and academic organizations.
Dr. Christensen is a member of the Association for Computing Machinery (ACM) and the IEEE Computer Society (IEEE CS). He chairs the Press Operations Committee of the Computer Society. He is co-author with Dr. Richard Thayer of an upcoming book (1st Quarter 2002) describing how to apply the IEEE Software Engineering Standards to the Management of software projects.
He holds a BS degree in physics and mathematics from Wayne State University and an MS in physics from Purdue, where he was a Woodrow Wilson Fellow. His doctorate from Wayne State is in probability theory.

Richard H. Thayer, Ph.D., is consultant in the field of software engineering and project management. Prior to this hew was a Professor of Software Engineering at California State University, Sacramento, California, United States of America. Dr. Thayer travels widely where he consults and lectures on software engineering, project management, software engineering standards, software requirements engineering, and software quality assurance. He is a Visiting Researcher and Lecturer at the University of Strathclyde, Glasgow, Scotland. His technical interests lay in software project management and software engineering standards.
Dr. Thayer is a Fellow of the IEEE, a member of the IEEE Computer Society, and the IEEE Software Engineering Standards Committee. He is a principle author for a Standard for a Concept of Operations (ConOps) document (IEEE std 1362-1998) and a principle author of the Standard for Software project Management Plans (IEEE std 1058-1998).
He is also an Associate Fellow of the American Institute of Aeronautics and Astronautics (AIAA) where he served on the AIAA Technical Committee on Computer Systems, and he is a member of the Association for Computing Machinery (ACM). He is also a registered professional engineer.
He holds a BSEE degree and an MS degree from the University of Illinois at Urbana (1962) and a Ph.D. from the University of California at Santa Barbara (1979) each in Electrical Engineering.

Read More Show Less

Read an Excerpt

The Project Manager's Guide to Software Engineering's Best Practices


By Mark Christensen Richard H. Thayer

John Wiley & Sons

ISBN: 0-7695-1199-6


Chapter One

Software Systems Engineering

1.1 Introduction

This chapter describes the application of systems engineering principles to the development of a computer software system. The activities, tasks, and procedures that make up these principles are known as software systems engineering (SwSE). The purpose of this chapter is to identify SwSE processes and tools, describe them, and reflect on their contribution to the software development process.

Systems have become larger and more complex than ever before. The hardware and software that makes up those systems have, correspondingly, grown in capacity and complexity at nearly an exponential rate. In some cases, the physical and logical boundaries of systems are no longer clear-cut (witness the increasing interdependencies of internet-based systems), and other classes of systems having clear boundaries are growing in their complexity as well (witness the increasing functionality and integration of modern aircraft and automotive systems). The workstation sitting on virtually everyone's desk or the wireless device in their pockets reflects this trend: Microsoft Word has grown in size from a product that would fit on a 360-Kbyte diskette to a product that will only fit on a 600-Mbyte CD, and desktop operating systems have grown from requiring a few tens of thousands of bytes of memory to well over 8 million.

Hardware capacity has grown to the point where the size and capability of a software program are no longer determined by the capabilities of the computing platforms. Likewise, efficiency of implementation no longer ranks among the primary design goals for most development projects. This has fueled demand for larger and larger systems, of which the software is often the most critical component. The trend is, and will continue to be for some time, to develop extremely large and complex software systems.

The majority of these large software systems are not delivered on the desired date for the expected cost. All too often, when they are delivered, they do not completely satisfy the customer's desires or the producer's promises. This phenomenon, when combined with the shortage of adequately skilled software engineers, has come to be regarded as the "software crisis" [Gibbs l994, Royce 1991]. In response to this so-called crisis, engineering practices have been increasingly introduced into software development efforts. Some of these practices are straightforward adaptations of engineering practices that have been used to develop nonsoftware products for some time, whereas others are more novel.

As these practices are applied during the development of a product, it is not sufficient to simply mechanically track project status. Monitoring the resources used, the schedules met, or the milestones accomplished will not provide sufficient feedback as to the health of the project. The technical processes and products must be actively managed. Systems engineering provides the tools needed to perform the technical management of systems under development.

Engineering practices applied to software products consist primarily of (1) processes for the systematic development of the software elements of the system and (2) representation methods and tools, used to describe the products and their attributes. Examples include the following:

Life cycle development processes-These divide the project into phases.

Managing software as a distinct and separate element of a project-Ensures that adequate support and oversight are applied to the effort.

Use of intermediate products (specifications and descriptions)- Takes advantage of, for example, requirements specifications and design descriptions.

Software-specific analysis, representation methods, and design tools-Makes use of, for example, structured and object-oriented techniques.

Reviews and audits-Used to provide visibility to the ongoing development activities and their products.

Verification, validation, and testing-Confirms that the products of the development effort conform to their requirements.

Configuration management and quality assurance-Provides confidence that the developmental activities are being conducted as planned and that the results are available and reproducible.

Prototyping-Explores requirements, evaluates alternative approaches, and determines the feasibility of proposed solutions.

Use of off-the-shelf components-Leverages existing technologies and improves interoperability with other products used in the application domain.

This chapter is not based on any single IEEE software engineering standard but instead is derived from a collection of standards that support software systems engineering. This chapter also supports IEEE Standard 1220-1998, IEEE Standard for the Application and Management of the Systems Engineering Process, and IEEE Standard 1233-1998, IEEE Guide for Developing System Requirements Specifications.

1.2 Objectives

In this chapter you will learn:

How the software systems engineering process is used to manage the technical effort of a project.

How software systems engineering affects all phases of the development life cycle.

The relationship between product systems engineering and software systems engineering.

The relationship between software systems engineering and project management.

The activities that make up software systems engineering.

The role of software systems engineering in the software requirements analysis process.

The role of software systems engineering in the software design process.

The activities of software systems engineering that support the planning of the project.

The activities of software systems engineering that support control of the project.

How software systems engineering supports verification, validation, and testing.

1.3 Systems Engineering Concepts

1.3.1 Overview of Systems

Before describing the processes and methods that make up systems engineering, the term system should be defined. The IEEE standards define a system as:

A collection of components organized to accomplish a specific function or set of functions. [IEEE Standard 610.12-1990]

Equivalently, a system is a collection of related or associated entities that together accomplish of one or more specific objectives. The key words are related, together, and specific objectives. A mere assemblage of isolated entities or elements with no common objective would not be a system. They might, instead be parts of other systems or completely autonomous items. This concept is illustrated in Figure 1.1.

A man-made system is a collection of hardware, software, people, facilities, procedures, and other factors organized to accomplish a common objective. A software system is, therefore, a man-made system or subsystem made up of a collection of programs and documents that together accomplish some specific requirements. Thus, one software system may operate entirely on a conventional desktop or data processing environment, whereas another might in fact be a subsystem of a larger system composed of sensors, mechanical and optical devices, and computers.

1.3.2 Systems Engineering

Systems engineering (SE) is the practical application of the scientific, engineering, and management skills required to transform a user's need into a description of a system configuration that best satisfies that need in an effective and efficient way. The products of SE activities are largely documents, not physical artifacts. The single product that is not a document is the final system itself. The document products are used to ensure that the system is developed in an orderly, technically sound manner and is acceptable to the customer. Examples of such documents include these:

The top-level architecture of the system, identifying its topology, its subsystems, and their interactions;

Specifications for the system and its subsystems;

The logistical and maintenance concepts needed to sustain the system;

Trade studies and analyses used to select between different design and implementation approaches for the system and subsystems;

Evaluations of intermediate products of the subsequent development activities;

Integration of the subsystems to form a whole;

System-level test plans, execution of those tests (which results in the final system), and reports of actual performance;

Assessments and interpretation of technical anomalies uncovered as the project evolves; and

Technical oversight of the various suppliers, both internal and external, producing subsystems, or components that will be integrated into the product.

According to H. C. Alberts [Alberts 1988], a professor at the Defense System Management College in Fort Belvoir, Virginia, who teaches SE, the term SE was first proposed in 1956 by H. Hitch, chairman of the Aeronautical Engineering Department at Penn State University. Based on experience gained during the Second World War while developing large, complex systems, such as high-altitude bombers, surface ships, submarines, tanks, and their attendant manufacturing and support systems, Hitch was trying to develop an engineering discipline that could concentrate on the development of large systems that used many diverse engineering disciplines to develop a system with an expected long life. In 1961 the first formal educational program in systems engineering was established at the University of Arizona, followed by a select group of other universities. These principles were first systematically applied to large systems developments in the 1960s and 1970s, such as the Apollo moon program [Chapman et al. 1992] and the USAF/USN Ballistic Missile Program [Dorfman 2001].

Systems engineering provides the overall technical management of a system development project. IEEE Standard 1220-1998 defines the environment and processes that comprise systems engineering. A variety of definitions can be given for systems engineering, all of which contain the same essential features:

Systems engineering is the management function that controls the total system development effort for the purpose of achieving an optimum balance of all system elements. It is a process that transforms an operational need into a description of system parameters and integrates those parameters to optimize the overall system effectiveness. [DSMC 1989]

The systems engineering process is the integrated sequence of activities and decisions that transforms a defined need into an operational, life-cycle-optimized system that achieves an integrated and optimal balance of its components. [USAF 1985]

The principle top-level function of systems engineering is to ensure that the system satisfies its requirements throughout its life cycle. Everything else follows from this function. [Wymore 1993]

Thus, SE is a generic problem-solving process that provides mechanisms for defining, describing, and evolving both the product and the processes needed to build the product. This process should be applied throughout the system life cycle to all activities associated with product development, verification/test, manufacturing, training, operation and use, support, distribution, and disposal [IEEE 1220-1998].

Systems engineering defines the plan to be followed in managing a project's technical activities. It identifies the system life cycle model for the project, along with the necessary processes. Likewise, systems engineering defines the environment or framework within which those processes will operate, together with the interfaces between them, the products, and the approach used to manage risk throughout the development of the project. Finally, systems engineering produces the technical baseline for all development, both software and hardware. The requirements specified for the system must be divided into those allocated to the software subsystem and those allocated to the hardware subsystem (or both or neither). Based on the requirements allocated to each subsystem it must be designed, implemented, and tested using the applicable software and hardware engineering processes and, ultimately, integrated with the other subsystems to create the system.

The emphasis of the systems engineering effort for a given project is determined by the nature of the product and what phase of the product life cycle is currently ongoing. Thus the generic systems engineering effort would be intense in the early stages of the product development life cycle as the concept of operations document, system architecture, software requirements specification, hardware requirements specification, and draft acceptance test plans were being first created. Concurrently the maintenance and support concepts would be elaborated. As the hardware and software items are actually being designed and implemented, the systems engineering effort would consist primarily of the verification and validation that the items being produced will satisfy their intended requirements and use. Later, as the items are integrated, the systems effort would be dominated by the integration of the items and, ultimately, by the system-level testing that will lead to acceptance.

Figure 1.2 presents a conceptual view of the relative systems engineering effort applied during a typical program.

1.3.3 Functions of Systems Engineering

Systems engineering includes the following functions:

Problem definition-Determine the product expectations, needs, and constraints by collecting and analyzing requirements. Work closely with the customer to establish the operational needs,

Solution analysis-Determine what options exist to satisfy the requirements and constraints; study and analyze the possible solutions. Select the optimum one, balancing immediate needs, implementation options, long-term suitability, and operational utility.

Process planning-Determine the major technical tasks to be accomplished, the effort required to perform those tasks, the priority of tasks, and the potential risks to the project.

Process control-Determine the methods for controlling the technical activities of the project and the process, measure progress, review intermediate products, and take corrective action when necessary.

Product evaluation-Determine the quality and quantity of delivered products through evaluations consisting of, but not limited to, testing, demonstration, analysis, examination, and inspection.

At this point it is important to distinguish between systems engineering and project management. First, systems engineering is fundamentally a capability that an organization does or does not possess. It may or may not be a specific, identifiable entity within a company. Depending on the product being developed there may or may not be a group with the term "Systems Engineering" in its title. Likewise, for a particular project, there may or may not be someone with the title "project system engineer." The functions listed above are often performed by a combination of the system architect, the lead designer, and the process architect.

This is not the case with project management: Every project should have someone with the title "project manager" or "software engineering project manager" whose primary functions are described in Chapter 12. Some of the functions listed above also appear on the list of tasks to be performed by software engineering project management. This is especially true for those functions associated with process planning and control. The distinction is that project management is concerned with the process planning (e.g., scheduling) and control for all of the activities of the project, whereas systems engineering is concerned with the technical activities of the product development and sustainment. In this sense systems engineering is an agent of project management in this area of activity. However, systems engineering is primarily concerned with the methods that will be applied to accomplishing those tasks. In that sense systems engineering goes beyond the traditional concerns of project management.

(Continues...)



Excerpted from The Project Manager's Guide to Software Engineering's Best Practices by Mark Christensen Richard H. Thayer Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Table of Contents

Foreword.

Preface.

Acknowledgements.

Reviewers.

I: Software Systems Engineering.

1. Software Systems Engineering.

2. Concept of Operations.

3. Software Requirements Specification.

4. Software User Documentation.

5. Software Verification and Validation.

6. Software Maintenance.

II: Process Management and Control.

7. Software Life Cycle Process Management.

8. Software Process Improvement.

9. Software Configuration Management.

10. Software Quality Assurance.

11. Software Reviews.

III: Project Planning and Management.

12. Software Cost and Schedule.

13. Software Engineering Project Management.

14. Software Risk Management.

15. Software Metrics.

A. The Work Breakdown Structure.

B. Representing Project Schedules.

Index.

About the Authors.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)