Software Engineering & Development


2008-08-28 -17:25 -0700

Although I sometimes wonder where System Architecture ends and Software Engineering begins, there are topics that clearly seem to be predominately in the domain of Software Engineering and Development.  Its attention is often very specific to the key aspects of software, looking inward to the implemented artifacts and the organization of computers for the software's operation.  Only a small fraction of software engineering is addressed to construction of programs: programming.  But it is all focused to one degree or another on the lifecycle process around the creation, verification, and delivery of software artifacts using recognized engineering practices.

-- Dennis E. Hamilton
Seattle, Washington
2002 June 8

see also:
Readings in System Architecture & Design
Readings in Trust and Trustworthy Computing
Readings in Computer Science
Readings in Software Tools and Programming 
Readings in Programming Systems and Languages

Astels, David., Miller, Granville., Novak, Miroslav.  A Practical Guide to eXtreme Programming.  Foreword by Scott W. Ambler.  Prentice Hall PTR (Upper Saddle River, NJ: 2002).  ISBN 0-13-067482-6.
     I read a review that suggested going to a bookstore and reading the 27 pages of Part I.  That contains the essentials of XP.  Based on that, one could choose to buy the book or not.  I did that, I didn't need to read that much to choose, and I bought the book.  -- dh:2003-03-18
     Foreword (Scott W. Ambler)

     Part I. The Game
          1. Extreme principles
          2. The players
     Part II. Conceptualizing the System
          3. Creating a vision of the system
          4. Writing user stories
          5. Writing acceptance tests
          6. One simple solution
          7. Watching our words
     Part III. Planning
          8. Providing estimates
          9. Planning releases
          10. Planning iterations
          11. Tactical planning
     Part IV. Development
          12. Pair programming
          13. Test first
          14. Design
          15. Code with intention
          16. Refactoring
          17. Relentless integration
     Part V. Delivery
          18. Delivering the system
     Part VI. Additional Topics
          19. Adopting and adapting XP
          20. Scaling XP
          21. The future of XP
     Appendix: Example

Basili, Victor.  Foreword to Humphrey, Watts S.  A Discipline for Software Engineering.  SEI Series in Software Engineering.  Addison-Wesley (Reading, MA: 1995).  ISBN 0-201-54610-8.  See [Humphrey1995].
Beck, Kent.  Extreme Programming Explained: Embrace Change.  Addison-Wesley (New York: 2000).  ISBN 0-201-61641-6 (alkalyne paper).  xix + 166pp bibliography glossary index
     "Software development projects can be fun, productive, and even daring.  Yet they can consistently deliver value to a business and remain under control.
     "Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements.  This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time.  XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned."  -- from the back cover.
     Foreword (Erich Gamma)

     Section 1. The Problem
          1. Risk: The basic problem
          2. A development episode
          3. Economics of software development
          4. Four variables
          5. Cost of change
          6. Learning to drive
          7. Four values
          8. Basic principles
          9. Back to basics
     Section 2. The Solution
          10. Quick overview
          11. How could this work?
          12. Management strategy
          13. Facilities strategy
          14. Splitting business and technical responsibility
          15. Planning strategy
          16. Development strategy
          17. Design strategy
          18. Testing strategy
     Section 3. Implementing XP
          19. Adopting XP
          20. Retrofitting XP
          21. Lifecycle of an ideal XP project
          22. Rules for people
          23. 20-80 rule
          24. What makes XP hard
          25. When you shouldn't try XP
          26. XP at work
          27. Conclusion
     Annotated Bibliography

Birrell, N.D., Ould, M.A.  A Practical Handbook for Software Development.  Cambridge University Press (Cambridge: 1985).  ISBN 0-521-25462-0.
     This is one of those books that, because of its compactness and its comprehensiveness, I have been reluctant to surrender to the library-donation bin in preparation for one of my several household moves since acquisition in 1986.   What I hadn't realized until just now is that much of what is now formalized in the overall structuring of software engineering (e.g., as portrayed in [Sommerville2001]) is pretty much all here.  The advent of OOA/OOD/OOP and of MDA/MOF/UML are not here, nor is CMM.  But the foundation is.  Remarkable.  [dh:2003-04-30]
     Foreword [Brian Oakley]
     Preface (1983)
     1. The Choices Facing the System Developer
     2. The Software Development Process
     3. Development Techniques
     4. Project Inception
     5. System Definition
     6. System Design
     7. System Production
     8. System Acceptance and Post-Acceptance Development
     9. Project Debriefing
     Other Bibliographies

Boehm, Barry W.  Foreword to Gilb, Tom., Finzi, Susannah (ed.).  Principles of Software Engineering Management.  Addison-Wesley (Wokingham, England: 1988).  ISBN 0-201-19246-2 pbk.  See [Gilb1988]
Brooks, Frederick P., Jr.  The Mythical Man-Month: Essays on Software Engineering.  Anniversary edition.  Addison Wesley Longman (Boston: 1975, 1995).  ISBN 0-201-83595-9 pbk.
    The original book plus four additional chapters, including the 1986 "No Silver Bullets" paper and retrospectives on the scene as of 1995.
     "Frederick P. Brooks Jr. is the recipient of the ACM's 1999 A. M. Turing Award, the most prestigious technical award in the computing field.  The ACM cites him specifically for his 'landmark contributions to computer architecture, operating systems, and software engineering.'" -- Back cover of the 15th printing, May 2001.
     In his promotion of conceptual integrity and coherence as architectural distinctions, Brooks also predicts the rise of software systems architecture as something at a different level of abstraction than implementation.  And without software engineering, it would not be possible.  dh:2002-06-10.
     Preface to the 20th Anniversary Edition
     Preface to the First Edition

     1. The Tar Pit
     2. The Mythical Man-Month
     3. The Surgical Team
     4. Aristocracy, Democracy, and System Design
     5. The Second-System Effect
     6. Passing the Word
     7. Why Did the Tower of Babel Fail?
     8. Calling the Shot
     9. Ten Pounds in a Five-Pound Sack
     10. The Documentary Hypothesis
     11. Plan to Throw One Away
     12. Sharp Tools
     13. The Whole and the Parts
     14. Hatching a Catastrophe
     15. The Other Face
     16. No Silver Bullet -- Essence and Accident
     17. "No Silver Bullet" Refired
     18. Propositions of The Mythical Man-Month: True or False?
     19. The Mythical Man-Month after 20 Years
     Notes and References
Constantine, Larry L.(ed.)  Beyond Chaos: The Expert Edge in Managing Software Development.  ACM Press Addison-Wesley (Boston: 2001).  ISBN 0-201-71960-6.

     Part I.  It's About People
          1. Dealing with difficult people: changing the changeable (Larry Constantine)
          2. Avoiding feedback traps: improving customer and client communication (Naomi Karten)
          3. These are trained professionals: beyond training to transformation (Larry Constantine)
          4. Maintaining balance: managing working relationships (Sue Petersen)
          5. Job qualifications: on hiring the best (Larry Constantine)
          6. Problem-solving metarules: habits of productive people (Larry Constantine)
     Part II. Project Management
          7. First things first: a project manager's primer (Karl Wiegers)
          8. Money bags and baseball bats: sponsorship rules (Rob Thomsett)
          9. Productivity by the numbers: what can speed up or slow down software development (Capers Jones)
          10. Software waste management: managing data migration (John Boddie)
          11. When in doubt, blame everybody: the responsibility for usability (Lucy Lockwood)
          12. Creating input: from feature fantasies to practical products (Larry Constantine)
          13. Software collaborations: managing the complexities of cooperation (Mary Loomis)
          14. Managing outsourced projects: project management inside out (Steve McConnell)
          15. Tough customers: toward win-win solutions (Ulla Merz)
          16. Avoiding the iceberg: reading the project warning signs (Edward Ziv)
          17. Lemonade from lemons: learning from project failure (Normal L. Kerth)
     Part III. Under Pressure
          18. Death march: surviving a hopeless project (Ed Yourdon)
          19. Web-time development: high-speed software engineering (Dave Thomas)
          20. Taking the crunch out of crunch mode: alternatives to mandatory overtime (Johanna Rothman)
          21. Reducing cycle time: getting through bottlenecks, blocks, and bogs (Dennis J. Frailey)
          22. Dot-com management: surviving the start-up syndrome (Tony Wasserman)
          23. Cutting corners: Shortcuts to model-driven web development (Larry Constantine)
     Part IV.  Quality Required
          24. No more excuses: innovative technology and irrelevant tangents (Peter Coffee)
          25. The mess is your fault: toward the software guild (Michael Vizard)
          26. Seduced by reuse: realizing reusable components (Meilir Page-Jones)
          27. Real-life requirements: caught between quality and deadlines (Larry Constantine)
          28. Rules rule: business rules as requirements (Ellen Gottesdiener)
          29. Taming the wild web: business alignment in web development (Lucy Lockwood)
          30. Calming corporate immune systems: overcoming risk aversion (Gifford Pinchot and Gene Callahan)
          31. Inventing software: breakthroughs on demand (Larry Constantine)
     Part V.  Processes and Practices
          32. Order for free: an organic model for adaptation (Jim Highsmith)
          33. Beyond level five: from optimization to adaptation (Jim Highsmith)
          34. Optimization or adaptation: in pursuit of a paradigm (Sylvain Hamel and Jim Highsmith)
          35. Adaptive software development: an experience report (James Emery)
          36. Creating a culture of commitment: of deadlines, discipline and management maturity (Larry Constantine)
          37. The commando returns: learning from experience in the trenches (David Thielen)
          38. Persistent models: modes as corporate assets (Larry Constantine)
          39. Card magic for managers: low-tech techniques for design and decisions (Ron Jeffries)
          40. Throwaway software: delivering through discards (Dwayne Phillips)
          41. Unified hegemony: beyond universal solutions (Larry Constantine)
     Part VI. Leadership and Teamwork
          42. Scaling up: teamwork in the large (Larry Constantine)
          43. Sustaining teamwork: promoting life-cycle teams (Peter H. Jones)
          44. Managing from below: the Russian embassy method (John Boddie)
          45. On becoming a leader: advice for tomorrow's development managers (Larry Constantine)
     About the Authors
Crichton, Michael.  Airframe.  Ballantine (New York: 1996).  ISBN 0-345-40287-1 pbk.
     This fictional work is recommended for reading by Computer Science, Information Technology, and Software Engineering students.  I chose it because it is a good read and it provides a perspective on a number of aspects of engineering in the world that it is important to appreciate:
     1. The attitude of engineers to their products and the craft involved in the creation of dependable, engineered artifacts.
     2. The noisiness and uncertainty around the interactions involved in the failure of artifacts.  The measures taken to be able to understand and learn from failure when it happens, and to apply those lessons in securing the dependability of other artifacts.
     3. The different views of risk and safety that arise in the world.
     4. The unreliability of anecdotal experience and judgment based on opinion.
     5. That computer software delivers its performance in the world and it is subject to the contingencies of engineered artifacts just the same as physical and mechanical fabrications.
Davis, Alan B.  Foreword to Glass, Robert L.  Facts and Fallacies of Software Engineering.  Addison-Wesley (Boston, MA: 2003) ISBN 0-321-11742-5 pbk (recycled paper).  See [Glass2003]
DeMarco, Tom., Lister, Timothy.  Waltzing with Bears: Managing Risk on Software Projects.  Dorset House (New York: 2003).  ISBN 0-932633-60-9 pbk.
     Authors' Note

     Prologue: The Ethics of Belief
     Part I: Why
          1. Running Toward Risk
          2. Risk Management Is Project Management for Adults
          3. Denver International Airport Reconsidered
          4. The Case for Risk Management
     Part II: Why Not
          5. The Case Against Risk Management
          6. The Onus of Uncertainty
          7. Luck
     Part III: How
          8. Quantifying Uncertainty
          9. Mechanics of Risk Management
          10. Risk Management Prescription
          11. Back to Basics
          12. Tools and Procedures
          13. Core Risks of Software Projects
          14. A Defined Process for Risk Discovery
          15. Risk Management Dynamics
          16. Incrementalism for Risk Mitigation
          17. The Ultimate Risk Management Strategy 
     Part IV: How Much
          18. Value Quantification
          19. Value Is Uncertain, Too
          20. Sensitivity Analysis
          21. Value Offsets Risk
          22. Refining the Risk Management Prescription
     Part V: Whether Or Not
          23. Test for Risk Management
          A. The Ethics of Belief, Part 1
          B. Risk Template

Gamma, Erich., Helm, Richard., Johnson, Ralph., Vlissides, John.  Design Patterns CD: Elements of Reusable Object-Oriented Software.  Addison-Wesley (Boston: 1998).  ISBN 0-201-30952-1.
     dh:2003-03-01: I thought I was being very clever when I found this in the bookstore.  It is a CD-ROM version of the acclaimed text, with all of the patterns ready to use.  It was also less expensive than the print edition.  And I can carry it around with my laptop and study and review while on my travels.  That's the idea.
     I am startled, on looking into the material, that I don't have a clue what a design pattern "is," and I thought I had a good intuition about it.  So there is more work to do.  The level at which these patterns are applied seems peculiar, and I am as mystified by having code portray patterns as I am in having code portray algorithms.  Maybe it is the same difficulty.  I have much to learn.
Gilb, Tom., Finzi, Susannah (ed.).  Principles of Software Engineering Management.  Addison-Wesley (Wokingham, England: 1988).  ISBN 0-201-19246-2 pbk.  Foreword by Barry Boehm.

     Part I: Why Do It?
          1. The pre-natal death of the Corporate Information System (CIS) project
          2. Overview
          3. What is the real problem?
          4. What is a solution, and what is not?
          5. Evaluating Solutions
          6. Estimating the risk
          7. An introduction to the 'evolutionary delivery' method
     Part II: How To Do It
          8. Functional specification
          9.Attribute specification
          10. Solutions: how to find and specify them
          11. Solution evaluation
          12. The inspection process: early quality and process control
          13. Evolutionary delivery planning and implementation
     Part III: Advanced Insights and Practical Experiences
          14. The management of software productivity
          15. Some deeper and broader perspectives on evolutionary delivery and related technology
          16. Ten principles for estimating software attributes
          17. Deadline pressure: how to beat it
          18. How to get reliable software systems
          19. Software engineering templates
          20. Principles for motivating your colleagues to use quality metrics
          21. The Omega project: inspection experience
          22. The production planning case
Oskarsson, Östen., Glass, Robert L. An ISO 9000 Approach to Building Quality Software. Prentice Hall PTR (Upper Saddle River, NJ: 1995). ISBN 0-13-228925-3.  See [Oskarsson1996]
Glass, Robert L.  Facts and Fallacies of Software Engineering.  Foreword by Alan B. Davis.  Addison-Wesley (Boston, MA: 2003) ISBN 0-321-11742-5 pbk (recycled paper).
     This is an amazing compilation.  My copy is stuffed with "stickies" with little notes saying "use this" or "but what about ...?" or "get that book" for much of the material.  Not only is it  a powerful compilation, it weaves its observations through a set of sources and topics that provide a wonderful checklist of areas to deal with in the practice of systems engineering for computer-based systems.  In addition, the wisdom expressed here is a potent source for the education and training of software engineers, their management, and the management of their clientele.  Recently I was despairing of how the teaching of programming does not seem to have improved all that much over the 45 years I have been observing it, especially compared to the increase in complexity of the technology and conceptual breadth of the subject.  Then I opened up to Fallacy 10, in Chapter 7, and there it was.  Of course ...!
     This thin book (195pp) is loaded with powerful insights.  The challenge for all of us is to reflect them in practice.
     Foreword (Alan B. Davis)
     Part I.  55 Facts
          1. About Management
          2. About the Life Cycle
          3. About Quality
          4. About Research
     Part II.  5+5 Fallacies
          5. About Management
          6. About the Life Cycle
          7. About Education
     About the Author

Gamma, Erich., Helm, Richard., Johnson, Ralph., Vlissides, John.  Design Patterns CD: Elements of Reusable Object-Oriented Software.  Addison-Wesley (Boston: 1998).  ISBN 0-201-30952-1.  See [Gamma1998]
Humphrey, Watts S.  A Discipline for Software Engineering.  SEI Series in Software Engineering.  Addison-Wesley (Reading, MA: 1995).  ISBN 0-201-54610-8.  Foreword by Vic Basili.

     1. The Personal Software Process Strategy
     2. The Baseline Personal Process
     3. Planning I - The Planning Process
     4. Planning II - Measuring Software Size
     5. Planning III - Estimating Software Size
     6. Planning IV - Resource and Schedule Estimating
     7. Measurements in the Personal Software Process
     8. Design and Code Reviews
     9. Software Quality Management
     10. Software Design
     11. Scaling Up the Personal Software Process
     12. Design Verification
     13. Defining the Software Process
     14. Using the Personal Software Process
     Appendix A.  Statistical Methods for the Personal Software Process
     Appendix B.  Software Design Notation
     Appendix C.  The Personal Software Process Contents
     Appendix D.  The Personal Software Process Exercises
     PSP Support Materials Available on Diskette (order form)
Humphrey, Watts S.  Introduction to the Personal Software Process.  SEI Series in Software Engineering.  Addison-Wesley (Reading, MA: 1997).  ISBN 0-201-65809-7 pbk.  Forewords by Thomas B. Hilburn, Aboalfazl Salami, Massood Towhidnejad, Ben Bishop, Andrew Henderson, and Michael Patrick.
     Faculty Foreword
     Student Foreword

     1. The Software Engineer's Job
     2. Time Management
     3. Tracking Time
     4. Period and Product Planning
     5. Product Planning
     6. Product Size
     7. Managing Your Time
     8. Managing Commitments
     9. Managing Schedules
     10. The Project Plan
     11. The Software Development Process
     12. Defects
     13. Finding Defects
     14. The Code Review Checklist
     15. Projecting Defects
     16. The Economics of Defect Removal
     17. Design Defects
     18. Product Quality
     19. Process Quality
     20. A Personal Commitment to Quality
     Supplements Page
     Books by Watts S. Humphrey
Gamma, Erich., Helm, Richard., Johnson, Ralph., Vlissides, John.  Design Patterns CD: Elements of Reusable Object-Oriented Software.  Addison-Wesley (Boston: 1998).  ISBN 0-201-30952-1.  See [Gamma1998]
Knuth, Donald E.  The IBM 650: An Appreciation from the Field.  Annals of the History of Computing 8, 1 (Jan. 1986), 50-55.  Reprinted in [Knuth1996: Chapter 13].  Archived on-line at <>.
     This reminiscent is about what it was like to become a computer programmer at a time when we were all amateurs and beginners.  It underscores how the inquisitive develop their mastery of computers, and it yields a glimpse of how one notable master programmer constantly examines his own experiences and observations for broader lessons and insights.  I can testify to the similarities in my own experience (though my pet IBM 650 was at the University of Washington).  But the key element, in the context of software engineering, is in how programming is learned and in how this particular avenue is still practiced, especially by amateurs (including engineers trained in other fields) no matter how it might be channeled by constraints in the training methodologies and the on-the-job development approaches of today.  
     In the current struggles between the subcultures of proprietary development and of the open-source movement, it is notable that so many of us from the era of the IBM 650 are completely in the debt of Stan Poley  for assuring that the documentation, flow charts, and source code of the SOAP II assembly program were printed in the manual.  I had the privilege of acknowledging Stan (who was trained in structural engineering and devoted to developing the IBM STRESS system) personally for that amazingly singular contribution and I want to point out here that we are all in his debt in ways we may never know -- what must have seemed such a small thing and what a momentous difference it made.  dh:2003-03-22.
DeMarco, Tom., Lister, Timothy.  Waltzing with Bears: Managing Risk on Software Projects.  Dorset House (New York: 2003).  ISBN 0-932633-60-9 pbk.  See [DeMarco2003].
McConnell, Steve.  Code Complete: A Practical Handbook of Software Construction.  Microsoft Press (Redmond, WA: 1993).  ISBN 1-55615-484-4 pbk.
     This book provides a developer's view of programming practice and software engineering.  There are some great checklists and guidelines to different stages of program development.  It provides a welcome source for information that seems to have been stepped beyond in the introduction of Object-Oriented Technologies and which also shows up as missing in OOT.  I welcome having a respected resource where these time-worn practices are not lost.
     I look forward to applying this to some projects, such as nfoWare development, that I propose to promote an engineered approach to programming, eBooks, and web presences. I also see that the section on Data may provide some material that I can refer to and reconcile with in Situating Data. -- dh:2004-01-11
     Reference Tables

     Laying the Foundation
          1. Welcome to Software Construction
          2. Metaphors for a Richer Understanding of Programming
          3. Prerequisites to Construction
          4. Steps in Building a Routine
          5. Characteristics of High-Quality Routines
          6. Three out of Four Programmers Surveyed Prefer Modules
          7. High-Level Design in Construction
          8. Creating Data
          9. The Power of Data Names
          10. General Issues in Using Variables
          11. Fundamental Data Types
          12. Complex Data Types
          13. Organizing Straight-Line Code
          14. Using Conditionals
          15. Controlling Loops
          16. Unusual Control Structures
          17. General Control Issues
     Constant Considerations
          18. Layout and Style
          19. Self-Documenting Code
          20. Programming Tools
          21. How Program Size Affects Construction
          22. Managing Construction
     Quality Improvement
          23. The Software-Quality Landscape
          24. Reviews
          25. Unit Testing
          26. Debugging
     Final Steps
          27. System Integration
          28. Code-Tuning Strategies
          29. Code-Tuning Techniques
          30. Software Evolution
     Software Craftsmanship
          31. Personal Character
          32. Themes in Software Craftsmanship
          33. Where to Go for More Information

McConnell, Steve.  Rapid Development: Taming Wild Software Schedules.  Microsoft Press (Redmond, WA: 1996).  ISBN 1-55615-900-5 pbk.
     I have become jaded about software-engineering books.  I will read short books on areas of specific interest, such as After the Gold Rush, but I have been avoiding the many thick books on software development.  Preparing to take an on-line course on Software Engineering, I was anxiously looking for books that dealt with measurement and also customer requirements on customer terms.  It had become a hot button for me, and I was beginning to think the topics had disappeared.  The presence of sensible coverage and a comprehensive index convinced me to add this book to my armload that particular day.  I got far more than I was expecting, and the mini-encyclopedia treatment of best practices is worth the whole ride.  On top of that, the main chapters are a joy to read.  In picking up the 600 page book to review the content for this entry, I started nosing around and, naturally, started reading.  The book works that well.  Just open it up, and start reading.  Then see how to apply it in your world.  -- dh:2003-07-31  
     PS: With regard to focus, I find that a powerful way to view the elements of software engineering, including rapid development, is from the perspective of risk management.  And the chapter on classic mistakes provides a great selection of the kinds of risks that there are to manage, along with many more identified in the plentiful case studies.  And there is the ultimate risk of all, producing an unmaintainable product that doesn't suit the purpose for which it was required and which is a major defect just waiting to go off.  -- dh:2003-07-31.
     Case Studies (index to the 27 in the book)
     Reference Tables
     Part I. Efficient Development
          1. Welcome to Rapid Development
          2. Rapid-Development Strategy
          3. Classic Mistakes
          4. Software-Development Fundamentals
          5. Risk Management
     Part II.  Rapid Development
          6. Core Issues in Rapid Development
          7. Lifecycle Planning
          8. Estimation
          9. Scheduling
          10. Customer-Oriented Development
          11. Motivation
          12. Teamwork
          13. Team Structure
          14. Feature-Set Control
          15. Productivity Tools
          16. Project Recovery
     Part III.  Best Practices
          17-43 [individual best-practice chapters, from Change Boards to Voluntary Overtime]
McConnell, Steve.  After the Goldrush: Creating a True Profession of Software Engineering.  Microsoft Press (Redmond, WA: 1999).  ISBN 0-7356-0877-6 pbk.
     There is a companion Software Engineering Profession Web Site.  The author provides a web page with a few sample chapters of this now out-of-print book.  [McConnell2004] is the second edition.

     I. The Tar Pit
          1. Software Dinosaurs
          2. Fool's Gold
          3. Orphans Preferred
          4. Software Engineering is Not Computer Science
     II. Prospecting
          5. After the Gold Rush
          6. Engineering a Profession
          7. Ptolemaic Reasoning
          8. Body of Knowledge
          9. Novum Organum
     III. Through the Pillars
          10. Stinking Badges
          11. Architects and Carpenters
          12. Hard Knocks
          13. The Professional's Code
          14. Alchemy
McConnell, Steve.  Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers.  Addison Wesley (Boston, MA: 2004).  ISBN 0-321-19367-9 pbk.
     This is the follow-on to After the Gold Rush [McConnell1999].  The author provides a web page with sample chapters and identification of the new material (*, below).

     Part I: The Software Tar Pit
          1. Wrestling with Dinosaurs
          2. Fool's Gold
          3. Cargo Cult Software Engineering*
          4. Software Engineering, Not Computer Science
          5. Body of Knowledge
          6. Novum Organum
     Part II: Individual Professionalism
          7. Orphans Preferred
          8. Raising Your Software Consciousness*
          9. Building the Community*
          10. Architects and Carpenters
          11. Program Writing*
     Part III: Organizational Professionalism
          12. Software Gold Rushes
          13. Business Case for Better Software Practices*
          14. Ptolemaic Reasoning
          15. Quantifying Personnel Factors*
          16. Construx's Professional Development Program*
     Part IV: Industry Professionalism
          17. Engineering a Profession
          18. Hard Knocks
          19. Stinking Badges
          20. The Professional's Code
          21. Alchemy
     About the Author
     Software Profession Web Site

Astels, David., Miller, Granville., Novak, Miroslav.  A Practical Guide to eXtreme Programming.  Foreword by Scott W. Ambler.  Prentice Hall PTR (Upper Saddle River, NJ: 2002).  ISBN 0-13-067482-6.  See [Astels2002]
Astels, David., Miller, Granville., Novak, Miroslav.  A Practical Guide to eXtreme Programming.  Foreword by Scott W. Ambler.  Prentice Hall PTR (Upper Saddle River, NJ: 2002).  ISBN 0-13-067482-6.  See [Astels2002]
Oskarsson, Östen., Glass, Robert L. An ISO 9000 Approach to Building Quality Software. Prentice Hall PTR (Upper Saddle River, NJ: 1996). ISBN 0-13-228925-3.
     This book is a gold mine. It will not answer the question for you (whatever your personal concern about quality processes might be). Glass thinks software quality is primarily a technical question, not a process quality one, and Oskarsson thinks that ISO 9000 is a marvelous approach. Their meshing and contrasting of these views is a great contribution. The final summary on how these two friends put the book together, what they agree are the key points, and what they leave us to deal with is worth the price of the book. -- dh:2003-03-27
     About the Authors

     Part 1: ISO 9000 and Software
          1. Background on ISO 9000
          2. The use of ISO 9001 with software development
          3. Interpreting the requirements in ISO 9001 for software development and maintenance
          4. Some specific issues
          5. Comparisons with other schemes
          6. Building a quality system for software
     Part 2: Applying ISO 9000 to Software Projects
          7. Project differences and quality: different strokes for different folks
          8. The quality system and the life cycle
     Part 3: Summary
Birrell, N.D., Ould, M.A.  A Practical Handbook for Software Development.  Cambridge University Press (Cambridge: 1985).  ISBN 0-521-25462-0.  See [Birrell1985]
Project Management Institute.  A Guide to the Project Management Body of Knowledge.  2000 Edition PMBOK Guide.  Approved American National Standard ANSI/PMI 99-001-2000.   PMI (Newtown Square, PA: 2000).  ISBN 1-880410-23-0 pbk.
     Although project management is a generic activity, it is heavily used (and not) in the management of sofware engineering and development, the creation of information technology solutions, and in the deployment of computer-based applications.  Project management is fundamentally simple.  We do it all of the time, when we take the time to be self-conscious about it and notice what our projects are.  At the same time, disciplined project management, consciously undertaken, has developed a substantial body of knowledge, and there is an established body of knowledge and certification procedures for project management itself.  This guide covers the content of project management as a professionalized activity.  -- dh:2003-03-27
     List of Figures
     Preface to the 2000 Edition
     Section I.  The Project Management Framework
          1. Introduction
          2. The project management context
          3. Project management processes
     Section II.  The Project Management Knowledge Areas
          4. Project integration management
          5. Project scope management
          6. Project time management
          7. Project cost management
          8. Project quality management
          9. Project human resource management
          10. Project communications management
          11. Project risk management
          12. Project procurement management
     Section III.  Appendices
          A. The Project Management Institute standards-setting process
          B.  Evolution of PMI's A Guide to the Project Management Body of Knowledge
          C.  Contributors and Reviewers of PMBOK Guide 2000 Edition
          D.  Notes
          E.  Application area extensions
          F.  Additional sources of information on project management
          G.  Summary of project management knowledge areas
     Section IV.  Glossary and Index
Royce, Walker.  Software Project Management: A Unified Framework.  Forward by Barry Boehm.  Addison-Wesley (Boston: 1998).  ISBN 0-201-30958-0.
     List of Figures
     List of Tables
     Foreword (Barry Boehm)
     Part I.  Software Management Renaissance
          1. Conventional software management
          2. Evolution of software economics
          3. Improving software economics
          4. The old way and the new
     Part II. A Software Management Process Framework
          5. Life-cycle phases
          6. Artifacts of the process
          7. Model-based software architectures
          8. Workflows of the process
          9. Checkpoints of the process
     Part III. Software Management Disciplines
          10. Iterative process planning
          11. Project organizations and responsibilities
          12. Process automation
          13. Project control and process instrumentation
          14. Tailoring the process
     Part IV. Looking Forward
          15. Modern project profiles
          16. Next-generation software economics
          17. Modern process transitions
     Part V. Case Studies and Backup Material
          A. The state of the practice in software management
          B.  The COCOMO cost estimation model
          C.  Change metrics
          D. CCPDS-R case study
          E. Project improvement and mapping to the CMM
Schwalbe, Kathy.  Information Technology Project Management, ed.3.  Thomson Course Technology (Boston, MA: 2004).  ISBN 0-619-15984-7 pbk + CD-ROM.
     This book is used in the IT Project Management module that is part of my M.Sc in IT on-line degree program.  There is a companion web site for the book.  It's appeal for me is that it is tied to the Project Management Body of Knowledge (PMBOK) with hands-on application of Microsoft Project.  I'm also digging into this as I begin my project dissertation, so this material is all the more valuable and timely. -- dh:2004-10-13.
     1. Introduction to Project Management
     2. The Project Management and Information Technology Context
     3. The Project Management Process Groups: A Case Study
     4. Project Integration Management
     5. Project Scope Management
     6. Project Time Management
     7. Project Cost Management
     8. Project Quality Management
     9. Project Human Resource Management
     10. Project Communications Management
     11. Project Risk Management
     12. Project Procurement Management
     Appendix A.  A Guide to Using Microsoft Project 2002
     Appendix B.  Advice for the Project Management Professional (PMP) Exam and Related Certificates
     Appendix C. Running Cases
     Appendix D. Templates

Sommerville, Ian.  Software Engineering, ed.6.  Addison-Wesley (Boston: 2001).  ISBN 0-201-39815-X.  xx + 677 pp, index.
     There is a companion web site for the book.
     This is the textbook for the University of Liverpool on-line M.Sc in IT Software Engineering modules commencing on March 20, 2003.  It will be interesting to see how we manage to cover this expanse in eight weeks.
     "Although the book is intended as a general introduction to software engineering, it is oriented towards my own interests in system requirements engineering and critical systems.  I think these are particularly important for software engineering in the 21st century where the challenge we face is to ensure that our software meets the real needs of its users without causing damage to them or to the environment." -- from the Preface, v-vi.
     Part 1.  Overview
          1. Introduction
          2. Computer-based system engineering
          3. Software processes
          4. Project management
     Part 2.  Requirements
          5. Software requirements
          6. Requirements engineering processes
          7. System models
          8. Software prototyping
          9. Formal specification
     Part 3. Design
          10. Architectural design
          11. Distributed system architectures
          12. Object-oriented design
          13. Real-time software design
          14. Design with reuse
          15. User interface design
     Part 4. Critical Systems
          16. Dependability
          17. Critical systems specifications
          18. Critical systems development
     Part 5. Verification and Validation
          19. Verification and validation
          20. Software testing
          21. Critical systems validation
     Part 6. Management
          22. Managing people
          23. Software cost estimation
          24. Quality management
          25. Process improvement
     Part 7. Evolution
          26. Legacy systems
          27. Software change
          28. Software re-engineering
          29. Configuration management

TechRepublic.  IT Professional's Guide to Project Management.  TechRepublic (Louisville, KY: 1999-2001).  ISBN 1-931490-16-3 with CD-ROM.
     Introduction to Enterprise Project Management
          Project planning and development
          Cost estimation and budgeting
     Best Practices
          Scope definition and task management
          Staff management
          Professional development
          Forms and templates
          Microsoft project tips
     Appendix A
          Case studies
     Appendix B
          Extended case study and sample documentation
          Documentation tools
Gamma, Erich., Helm, Richard., Johnson, Ralph., Vlissides, John.  Design Patterns CD: Elements of Reusable Object-Oriented Software.  Addison-Wesley (Boston: 1998).  ISBN 0-201-30952-1.  See [Gamma1998]
Yourdon, Ed.  Review of A Discipline for Software EngineeringThe American Programmer.  April 1995.  

Hard Hat Area You are navigating Orcmid's Lair

created 2002-06-08-23:52 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 08-08-28 17:27 $
$$Revision: 52 $