Ivar Jacobson

The Essentials of Modern Software Engineering


Скачать книгу

publication in the ACM Books series, #25

      Editor in Chief: M. Tamer Özsu, University of Waterloo

      Area Editor: Bashar Nuseibeh, The Open University

      This book was typeset in Arnhem Pro 10/14 and Flama using ZzTEX.

      First Edition

      10 9 8 7 6 5 4 3 2 1

      In every block of marble I see a statue as plain as though it stood before me, shaped and perfect in attitude and action. I have only to hew away the rough walls that imprison the lovely apparition to reveal it to the other eyes as mine see it. —Michelangelo

      Standing on the shoulders of a giant …

      We are liberating the essence from the burden of the whole. —Ivar Jacobson

       Contents

Foreword by Ian Sommerville
Foreword by Grady Booch
Preface
PART ITHE ESSENCE OF SOFTWARE ENGINEERING
Chapter 1From Programming to Software Engineering1.1 Beginning with Programming1.2 Programming Is Not Software Engineering1.3 From Internship to Industry1.4 Journey into the Software Engineering ProfessionWhat Should You Now Be Able to Accomplish?
Chapter 2Software Engineering Methods and Practices2.1 Software Engineering Challenges2.2 The Rise of Software Engineering Methods and Practices2.3 The SEMAT Initiative2.4 Essence: The OMG StandardWhat Should You Now Be Able to Accomplish?
Chapter 3Essence in a Nutshell3.1 The Ideas3.2 Methods Are Compositions of Practices3.3 There Is a Common Ground3.4 Focus on the Essentials3.5 Providing an Engaging User ExperienceWhat Should You Now Be Able to Accomplish?
Chapter 4Identifying the Key Elements of Software Engineering4.1 Getting to the Basics4.2 Software Engineering Is about Delivering Value to Customers4.3 Software Engineering Delivers Value through a Solution4.4 Software Engineering Is Also about EndeavorsWhat Should You Now Be Able to Accomplish?
Chapter 5The Language of Software Engineering5.1 A Simple Practice Example5.2 The Things to Work With5.3 Competencies5.4 Things to Do5.5 Essentializing PracticesWhat Should You Now Be Able to Accomplish?
Chapter 6The Kernel of Software Engineering6.1 Organizing with the Essence Kernel6.2 The Essential Things to Work With: The Alphas6.3 The Essential Things to Do: The Activities6.4 Competencies6.5 PatternsWhat Should You Now Be Able to Accomplish?
Chapter 7Reflection on Theory7.1 Where’s the Theory for Software Engineering?7.2 Uses of Theory7.3 Essence Is a General, Descriptive Theory of Software Engineering7.4 Toward a General Predictive Theory of Software Engineering7.5 A Theoretical Foundation Helps You GrowWhat Should You Now Be Able to Accomplish?Postlude to Part IRecommended Additional Reading
Chapter 8Applying Essence in the Small—Playing Serious Games8.1 Progress Poker8.2 Chasing the State8.3 Objective Go8.4 Checkpoint Construction8.5 ReflectionWhat Should You Now Be Able to Accomplish?
PART IIDEVELOPING SOFTWARE WITH ESSENCE
Chapter 9Kick-Starting Development Using Essence9.1 Understand the Context Through the Lens of Essence9.2 Agreeing on the Development Scope and Checkpoints9.3 Agreeing on the Most Important Things to WatchWhat Should You Now Be Able to Accomplish?
Chapter 10Developing with Essence10.1 Planning with Essence10.2 Doing and Checking with Essence10.3 Adapting a Team’s Way of Working with Essence10.4 How the Kernel Helps Adapt Their Way of WorkingWhat Should You Now Be Able to Accomplish?
Chapter 11The Development Journey11.1 Visualizing the Journey11.2 Ensuring Progress and Health11.3 Dealing with AnomaliesWhat Should You Now Be Able to Accomplish?
Chapter 12Reflection on the Kernel12.1 Validity of the Kernel12.2 Applying the Kernel EffectivelyWhat Should