Spin 11534631

springeronline.com

To our children: Dea Petraq Papajorgji and

Miltiades Panos Pardalos

Contents

Preface xi

Acknowledgments 1

PART 1: CONCEPTS AND NOTATIONS 3

Chapter 1 PROGRAMMING PARADIGMS 5

1. History of increasing the level of abstraction 5

2. Object-oriented versus other programming paradigms 9

Chapter 2 BASIC PRINCIPLES OF THE OBJECT-ORIENTED

PARADIGM 13

1. Abstraction 13

2. Encapsulation 17

3. Modularity 18

Chapter 3 OBJECT-ORIENTED CONCEPTS AND THEIR UML

NOTATION 21

1. Object 21

2. Classes 22

3. Attributes 23

4. Operations 24

5. Polymorphism 25

6. Interfaces 26

7. Components 31

8. Packages 33

9. Systems and subsystems 33

10. Notes 37

11. Stereotypes 37

Chapter 4 RELATIONSHIPS 41

1. Associations 41

2. Aggregation 46

3. Composition 47

4. Dependency 48

5. Generalization 49

6. Abstract classes 55

7. Abstract classes versus interfaces 58

8. Realization 58

Chapter 5 USE CASES AND ACTORS 61

1. Actors 62

2. Use cases 63

2.1 Extend relationship 65

2.2 Include relationship 66

Chapter 6 UML DIAGRAMS 69

1. The use case diagram 69

2. Use cases versus functional decomposition 72

3. Interaction diagrams 74

3.1 Need for interaction 74

3.2 Sequence diagrams 75

3.3 Collaboration diagrams 78

3.4 Sequence versus collaboration diagrams 79

4. Activity diagrams 80

5. statechart diagrams 83

Chapter 7 DESIGN PATTERNS 87

1. A short history of design patterns 87

2. Fundamental design patterns 88 2.1 The delegation pattern 88

3. Creational patterns 91

3.1 The factory method pattern 91

3.2 The abstract factory pattern 93

3.3 The singleton pattern 95

4. Structural patterns 97

4.1 The adaptor pattern 97

4.2 The proxy pattern 101

4.3 The iterator pattern 103

4.4 The fa├žade pattern 105

5. Behavioral patterns 108

5.1 The state pattern 108

5.2 The strategy pattern 109

PART 2: APPLICATIONS 113

Chapter 8 THE KRAALINGEN APPROACH TO CROP SIMULATION 115

1. system requirements 117

2. The use case model 117

2.1 The use case description 119

2.2 Basic flow 119

2.3 Alternate flow 120

2.4 Preconditions 120

2.5 Postconditions 120

3. The use case realization 121

3.1 Sequence diagram for the use case 122

3.2 Collaboration diagram for the use case 124

4. Conceptual models 126 4.1 Conceptual model for the Kraalingen approach 127

5. Discover potential classes 129

5.1 Boundary classes 130

5.2 Control classes 131

5.3 Entity classes 133

6. Class diagram for the Kraalingen approach 134

7. Critique of the Kraalingen class diagram 140

7.1 Communication boundary-control 141

7.2 Communication control-entity 143

7.3 Communication entity-entity 146

8. Final class diagram for the Kraalingen approach 149

9. The benefits of using interfaces 150

10. Implementation of the Kraalingen model in Java 151

10.1 Interface IPlant 151

10.2 Interface ISoil 154

10.3 Interface IWeather 155

10.4 Interface ISimulationController 168

11. Packaging the application 172

Chapter 9 THE PLUG AND PLAY ARCHITECTURE 175

1. Definition 175

2. Implementation 176

3. Reflection 177

4. The plug and play SimulatorController 179

5. Testing unit for a class/component 183

Chapter 10 SOIL WATER-BALANCE AND IRRIGATION-SCHEDULING MODELS: A CASE STUDY 187

1. Introduction 187

2. Conceptual models : examples 18 8

3. template for developing new models 192

4. Analysis of a water-balance model 194

5. Analysis of an irrigation-scheduling model (ISM) 196

6. The benefits of a general template 200

Chapter 11 DISTRIBUTED MODELS 205

1. Introduction 205

2. CORBA 206

2.1 The Interface Definition Language (IDL) 207

2.2 The Object Request Broker (ORB) 208

2.3 Adaptors 211

2.4 A CORBA Soil Server 212

2.5 A simple CORBA client 216

3. The remote method invocation (RMI) 218

3.1 An RMI Soil Server 221

3.2 A Simple RMI client 224

4. Distributed crop simulation model 225

GLOSSARY 233

REFERENCES 239

0 0

Post a comment