Codecharts : Roadmaps and Blueprints for Object-Oriented Programs

個数:

Codecharts : Roadmaps and Blueprints for Object-Oriented Programs

  • 提携先の海外書籍取次会社に在庫がございます。通常3週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合は、ご注文数量が揃ってからまとめて発送いたします。
    3. 美品のご指定は承りかねます。

    ●3Dセキュア導入とクレジットカードによるお支払いについて
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Hardcover:ハードカバー版/ページ数 243 p.
  • 言語 ENG
  • 商品コード 9780470626948
  • DDC分類 005.117

Full Description

NEW LANGUAGE VISUALIZES PROGRAM ABSTRACTIONS CLEARLY AND PRECISELY Popular software modelling notations visualize implementation minutiae but fail to scale, to capture design abstractions, and to deliver effective tool support. Tailored to overcome these limitations, Codecharts can elegantly model roadmaps and blueprints for Java, C++, and C# programs of any size clearly, precisely, and at any level of abstraction. More practically, significant productivity gains for programmers using tools supporting Codecharts have been demonstrated in controlled experiments.

Hundreds of figures and examples in this book illustrate how Codecharts are used to:



Visualize the building-blocks of object-oriented design


Create bird's-eye roadmaps of large programs with minimal symbols and no clutter


Model blueprints of patterns, frameworks, and other design decisions


Be exactly sure what diagrams claim about programs and reason rigorously about them



Tools supporting Codecharts are also shown here to:



Recover design from plain Java and visualize the program's roadmap


Verify conformance to design decision with a click of a button



This classroom-tested book includes two main parts:

Practice (Part I) offers experienced programmers, software designers and software engineering students practical tools for representing and communicating object-oriented design. It demonstrates how to model programs, patterns, libraries, and frameworks using examples from JDK, Java 3D, JUnit, JDOM, Enterprise JavaBeans, and the Composite, Iterator, Factory Method, Abstract Factory, and Proxy design patterns.

Theory (Part II) offers a mathematical foundation for Codecharts to graduate students and researchers studying software design, modelling, specification, and verification. It defines a formal semantics and a satisfies relation for design verification, and uses them to reason about the relations between patterns and programs (e.g., "java.awt implements Composite" and "Factory Method is an abstraction of Iterator").

Contents

Preface xi

Acknowledgements xiii

Guide to the Reader xv

Codecharts xix

Propositions xxv

Prologue 1

1. Motivation 3

2. Design Description Languages 7

2.1 Theory Versus Practice 9

2.2 Decidability 11

2.3 Abstraction 12

2.4 Elegance 16

3. An Overview of Codecharts 19

3.1 Object-Orientation 19

3.2 Visualization 23

3.3 Rigour 26

3.4 Automated Verifiability 28

3.5 Scalability 30

3.6 Genericity 32

3.7 Minimality 33

3.8 Information Neglect 34

4.UML Versus Codecharts 37

5.Historical Notes 43

Part I: Practice 45

6. Modelling Small Programs 47

6.1 Modelling Individual Classes 49

6.2 Modelling Individual Methods 50

6.3 Modelling Properties 53

6.4 Modelling Implementation Minutia 55

6.5 Modelling Simple Relations 56

6.6 Modelling Indirect Relations 64

6.7 Subtyping 66

7. Modelling Large Programs 71

7.1 Modelling Sets of Classes 75

7.2 Modelling Total Relations Between Sets 77

7.3 Modelling Sets of Methods (Clans) 81

7.4 Modelling Isomorphic Relations 83

7.5 Modelling Sets of Methods (Tribes) 85

7.6 Modelling Class Hierarchies 90

7.7 Modelling Methods in Hierarchies 93

7.8 Modelling Properties of Sets 97

7.9 Case Study: Total Versus. Isomorphic 98

7.10 Case Study: JDOM 101

7.11 Case Study: Java 3D 103

8. Modelling Industry-Scale Programs 109

8.1 Modelling Sets of Hierarchies 111

8.2 Modelling Sets of Sets of Methods (Clans) 112

8.3 Modelling Sets of Sets of Methods (Tribes) 115

8.4 Modelling Total Relations Revisited 118

8.5 Modelling Isomorphic Relations Revisited 120

9. Modelling Design Motifs 127

10. Modelling Application Frameworks 133

10.1 Case Study: Enterprise JavaBeans 135

10.2 Case Study: JUnit 136

11. Modelling Design Patterns 139

11.1 Case Study: The Composite Pattern 140

11.2 Case Study: The Iterator Pattern 145

11.3 Case Study: The Factory Method Pattern 149

11.4 Case Study: The Abstract Factory Pattern 154

11.5 Concluding Remarks 157

12. Modelling Early Design Revisited 159

13. Advanced Modelling Techniques 161

13.1 Ad Hoc Symbols 161

13.2 Modelling Information Hiding 164

Part II: Theory 167

14. Abstract Semantics 169

14.1 Finite Structures 170

14.2 Abstract Semantics Functions 174

14.3 Design Models 174

14.4 Program Modelling Revisited 177

15. Verification 179

15.1 Verifying Closed Specifications 180

15.2 Verifying Open Specifications 183

15.3 Verifying Pattern Implementations 186

15.4 Tool Support for Automated Verification 188

16. Schemas 191

17. LePUS3 in Classical Logic 195

17.1 LePUS3 and Class-Z as First-Order Languages 195

17.2 Specifications in the Predicate Logic 196

17.3 The Axioms of Class-Based Programs 198

18. Reasoning about Charts 201

Appendix I: The Gang of Four Companion 213

Appendix II: Formal Definitions 229

Appendix III: UML Quick Reference 233

References 235

Index 239

最近チェックした商品