From: russ@bse.com (Russell Hopler) Subject: Re: FAQ 3: Software engineering readings-additions Date: Mon, 3 Jan 94 14:44:43 EDT Organization: Berard Software Engineering, Inc. Dear Colleague, Berard Software Engineering, Inc. (BSE) is pleased to present: A Project Management Handbook for Object-Oriented Software Development, Volume 1. This handbook has been developed specifically to give the project manager a better understanding of how to manage an OO effort. The handbook is based on BSE's experience in consulting and training literally thousands of developers in OO software engineering. Further, the handbook reflects BSE's experience in helping other organizations develop similar handbooks. There are some other things we want you to know about this handbook - The handbook covers the entire development life-cycle, including pre- and post- development activities, i.e., it is not focused strictly on analysis or strictly on design. - The handbook provides a "tailorable" approach to project management. Specifically, a manager or an organization is given guidance on how to tailor the management approach to specific projects and/or organizations. - The personnel roles for an object-oriented software development effort are presented. Each of the primary roles is described in terms of both the necessary characteristics, and the responsibilities, of the people filling the role. - A large number of project management documents are described and discussed, and templates for many of these documents are included. - Reusability, software quality assurance, software quality control, and independent verification and validation are also covered from a management perspective in the handbook. - The handbook describes techniques for information gathering, task and concept analysis, and process tracing. - The handbook provides a good amount of general software project management advice, e.g., traps to avoid and how to motivate project staff. - Problems commonly encountered by those managing object-oriented development efforts are discussed, along with suggested solutions for each. Enclosed, please find the Table of Contents from the handbook and an order form. If you have any questions, suggestions, or comments, please feel free to contact me at (301) 417-9884. Russ Hopler --------------------------------------------------------------------- -A Project Management Handbook For Object-Oriented Software Development -- Table of Contents -- INTRODUCTION 1-1 Motivations for this Handbook 1-1 Scope 1-1 Audience 1-1 This Handbook Provides 1-2 Approach to Using this Handbook 1-3 Methodology Selection and Integration 1-3 Motivations for Taking an Object-Oriented Approach to Project Management1-4 Why Does an Object-Oriented Project Need a Different Project Management Approach than Other Development Approaches? 1-5 FUNDAMENTALS 2-1 Object-Oriented Thinking As It Was 2-1 Management Misconceptions 2-1 Things That The Project Manager Must Understand 2-3 Object-Oriented Thinking As It Is Becoming 2-6 While Object-Oriented Technology Is Evolving, The Need For Management Understanding Is Growing 2-7 There Are Three Choices In Dealing With New Roles And Responsibilities 2-8 People Are Not Interchangeable 2-8 Employee Turnover Impacts Project Schedule and Cost 2-9 Team And Project Manager Factors Cannot Be Ignored 2-9 Some Common Myths About Object-Oriented Technology 2-10 Beware of Project Traps 2-10 Consequences of Poor Object-Oriented Technology Adoption 2-11 Action Items For The Project Manager 2-12 Each Project Member Requires A Basic Foundation 2-15 Characteristics of the Successful Project 2-17 Software Project Life Cycles 2-19 Software Project Management 2-21 PROJECT DELIVERABLES 3-1 Analysis Log 3-2 Business Impacts 3-3 Change Request Form 3-4 Computer System Operator's Manual 3-5 Consequence of Failure Factor 3-6 Key Project Individuals Factors List 3-6 Kit Specification 3-7 Likelihood of Failure Factor 3-10 List of Requirements Information 3-10 List of Sources of Requirements Information 3-11 Object and Class Specification 3-12 Object and Class Specification Example 3-19 Object and Class Specification Precursor 3-31 The Object Message Diagram 3-32 Object-Oriented Design Specification 3-34 Object-Oriented Requirements Specification 3-37 Object-Oriented Requirements Specification 3-42 Outline Project Plan 3-43 Outline Project Plan Risk Assessment 3-44 Petri Net Graph 3-45 Project Approval Notice 3-47 Project Candidate Assessment Form 3-48 Project Development Folder 3-49 Project Feasibility Determination 3-49 Project Feasibility Study 3-50 Project Manager Assignment 3-51 Project Manager Candidate Assessment Form 3-52 Project Plans 3-53 Project Position Description 3-54 Project Procedures 3-55 Project Proposal 3-56 Project Resources List 3-58 Project Risk Factor 3-59 Project Staff Assessment Form 3-60 Project Staff List 3-61 Reference Manual 3-62 Requirements Information Forms 3-63 Semantic Network 3-64 Short Map 3-67 Software User's Manual 3-70 Source of Requirements Information Characteristics Forms 3-71 System Maintenance 3-72 System of Interacting Objects Specification 3-73 Systems Development Request 3-74 System Installation 3-75 Tutorial 3-76 Value Contribution Model 3-77 PROJECT ROLES 4-1 Defining A Project Role 4-1 The Object-Oriented Requirements Analyst 4-3 The Object-Oriented Designer 4-9 The Project Manager 4-14 The Software Quality Assurance (SQA) Analyst 4-27 The Domain Analyst 4-31 The Tester of Object-Oriented Software 4-34 Project Librarian 4-38 Other Roles 4-43 PROJECT FORMULATION 5-1 K1050 Assess Feasibility 5-2 K1100 Develop Outline Project Plan 5-7 K1150 Assess Project Risk 5-10 K1200 Refine Project Reporting 5-14 K1250 Refine Project Deliverables 5-16 K1300 Refine Project Relationships 5-18 K1350 Refine Project Schedule And Cost 5-22 K1400 Refine Project Management Approach 5-23 K1450 Prepare And Submit Project Proposal 5-25 PROJECT BUILDUP 6-1 K2050 Assign Project Manager 6-2 K2100 Select Project Staff 6-5 K2150 Staff The Project 6-7 K2200 Prepare Project Plans, Policies, Standards, And Procedures 6-8 K2250 Establish The Project Library 6-10 OBJECT-ORIENTED REQUIREMENTS ANALYSIS 7-1 K3050 Identify And Characterize Sources Of Requirements Information 7-3 K3100 Collect And Characterize Requirements Information 7-6 K3150 Identify Candidate Objects 7-9 K3200 Model Aspects Of The Problem 7-11 K3250 Verify Problem Models 7-13 K3300 Model Aspects Of The Problem's Solution 7-14 K3350 Verify Solution Models 7-16 K3400 Relocalize Information Around Candidate Objects 7-17 K3450 Select Objects 7-19 K3500 Create Objects 7-21 K3550 Verify Objects 7-24 K3600 Update The Object-Oriented Requirements Specification 7-27 K3650 Verify The Object-Oriented Requirements Specification 7-30 K3700 Conduct Requirements Specification Review 7-33 OBJECT-ORIENTED DESIGN 8-1 K4050 Develop Object-Oriented Models Of The Solution 8-2 K4100 Verify Solution Model 8-4 K4150 Identify Design Objects 8-6 K4200 Identify Operations Of Interest 8-7 K4250 Select Objects 8-9 K4300 Create Objects 8-11 K4350 Verify Objects 8-14 K4400 Update The Object-Oriented Design Specification 8-17 K4450 Verify The Object-Oriented Design Specification 8-20 K4500 Conduct Design Specification Review 8-21 K4550 Decide Programming Language Implementation Issues 8-22 K4600 Establish The Implementation Visibility For Object-Oriented Items 8-23 K4650 Implement Object-Oriented Items 8-25 PROJECT TESTING 9-1 K5050 Prepare Test Case 9-2 K5100 Execute Test Case 9-4 K5150 Prepare And Submit Test Report 9-5 PROJECT COMPLETION 10-1 K6050 Refine Plans To Transfer Responsibility From Project Team To User Or Coding Staff 10-2 K6100 Transfer Responsibility 10-3 K6150 Establish Follow-Up System 10-4 K6200 Conduct Post-Mortem 10-5 K6250 Reassign Staff 10-7 PROJECT MANAGEMENT 11-1 K7050 Prepare And Conduct Periodic Reviews 11-2 K7100 Evaluate Change Request 11-4 SOFTWARE QUALITY ASSURANCE 12-1 K8050 Conduct Executive Project Evaluation 12-2 K8100 Conduct Project Formulation Review 12-4 K8150 Conduct Project Initiation Review 12-6 K8200 Conduct Object-Oriented Requirements Analysis Review 12-8 K8250 Conduct Object-Oriented Design Review 12-10 K8300 Conduct Object-Oriented Testing Review 12-12 K8350 Conduct In-Process Review 12-14 PROJECT TECHNIQUES 13-1 Overview 13-1 The Unstructured Interview 13-2 The Structured Interview 13-2 Task Analysis 13-3 Process Tracing and Protocol Analysis 13-3 Simulations and Automated Tool 13-3 Multiple Expert Techniques 13-3 Concept Analysis 13-4 COMPONENT RELATIONSHIPS 14-1 Deliverables Mapped to Kernels 14-1 Roles Mapped to Kernels 14-10 ASSEMBLING THE COMPONENTS 15-1 Understand the Project at Hand 15-1 Identifying Project-Appropriate Kernels 15-3 Relating the Kernels 15-3 Modeling the Project 15-3 Executing the Plan 15-3 Monitoring Progress 15-13 Handling Change 15-21 Completing the Project 15-22 OTHER ISSUES IN OBJECT-ORIENTED PROJECT MANAGEMENT 16-1 Software Configuration Management (SCM) 16-1 Personnel 16-2 Independent Verification and Validation (IV&V) 16-4 Domain Analysis 16-5 Reusability 16-6 Estimating 16-7 PROJECT MANAGEMENT TOOLS 17-1 Attributes of Available Project Management Tools 17-1 The Future of Object-Oriented Project Management Tools 17-2 Selecting Object-Oriented CASE Products 17-3 COMMON ISSUES WITH MANAGING AN OBJECT-ORIENTED EFFORT 18-1 THE FUTURE OF OBJECT-ORIENTED PROJECT MANAGEMENT 19-1 A COMPARISON OF OBJECT-ORIENTED METHODS 20-1 Introduction 20-1 Concepts 20-15 Notations 20-27 Process 20-34 Pragmatics 20-52 Support for Software Engineering Principles and Goals 20-58 Marketability 20-64 Final Comments 20-69 GLOSSARY 21-1 BIBLIOGRAPHY FOR MANAGERS 22-1 Object-Oriented Programming 22-1 Object-Oriented Requirements Analysis 22-2 Object-Oriented Design/Development 22-2 Object-Oriented Databases 22-4 Object-Oriented Computer Hardware 22-5 Object-Oriented Metrics 22-5 General Object-Oriented Technology References 22-6 General Project Management References 22-7 INDEX 23-1 also PRODUCTS: * A Comparison of Object-Oriented Methodologies * Essays On OOSE Book * A Complete Object-Oriented Design Example COURSES: * Object-Oriented Software Engineering (OOSE) * Object-Oriented Requirements Analysis (OORA) * Object-Oriented Design (OOD) * Object-Oriented Domain Analysis (OODA) * Testing Object-Oriented Software (TOOS) * Object-Oriented Project Management (OOPM) * Object-Oriented Enterprise Modeling (OOEM) * Object-Oriented Enterprise Modeling Using ZOOM (ZOOMING) "It's not that what you don't know will hurt you, it's what you think you know that can be devistating." - Gene Landrum, Profiles of Genius. -------------------------------------------------------------------- Russel Hopler | Phone: (301) 417-9884 Berard Software Eng., Inc. | FAX: (301) 417-0021 902 Wind River Lane,Ste 203 | Email: russ@bse.com Gaithersburg, MD 20878 | --------------------------------------------------------------------