Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010132938 | S494.5.D3 P36 2006 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Software Engineering Techniques Applied to Agricultural Systems presents cutting-edge software engineering techniques for designing and implementing better agricultural software systems based on the object-oriented paradigm and the Unified Modeling Language (UML). The book is divided in two parts: the first part presents concepts of the object-oriented paradigm and the UML notation of these concepts, and the second part provides a number of examples of applications that use the material presented in the first part. The examples presented illustrate the techniques discussed, focusing on how to construct better models using objects and UML diagrams. More advanced concepts such as distributed systems and examples of how to build these systems are presented in the last chapter of the book. The book presents a step-by-step approach for modeling agricultural systems, starting with a conceptual diagram representing elements of the system and their relationships. Furthermore, diagrams such as sequential and collaboration diagrams are used to explain the dynamic and static aspects of the software system.
Table of Contents
Preface | p. xi |
Acknowledgments | p. 1 |
Part 1 Concepts and Notations | p. 3 |
Chapter 1 Programming Paradigms | p. 5 |
1 History Of Increasing the Level of Abstraction | p. 5 |
2 Object-Oriented Versus Other Programming Paradigms | p. 9 |
Chapter 2 Basic Principles of the Object-Oriented Paradigm | p. 13 |
1 Abstraction | p. 13 |
2 Encapsulation | p. 17 |
3 Modularity | p. 18 |
Chapter 3 Object-Oriented Concepts and their UML Notation | p. 21 |
1 Object | p. 21 |
2 Classes | p. 22 |
3 Attributes | p. 23 |
4 Operations | p. 24 |
5 Polymorphism | p. 25 |
6 Interfaces | p. 26 |
7 Components | p. 31 |
8 Packages | p. 33 |
9 Systems and Subsystems | p. 33 |
10 Notes | p. 37 |
11 Stereotypes | p. 37 |
Chapter 4 Relationships | p. 41 |
1 Associations | p. 41 |
2 Aggregation | p. 46 |
3 Composition | p. 47 |
4 Dependency | p. 48 |
5 Generalization | p. 49 |
6 Abstract Classes | p. 55 |
7 Abstract Classes Versus Interfaces | p. 58 |
8 Realization | p. 58 |
Chapter 5 Use Cases and Actors | p. 61 |
1 Actors | p. 62 |
2 Use Cases | p. 63 |
2.1 Extend relationship | p. 65 |
2.2 Include relationship | p. 66 |
Chapter 6 UML Diagrams | p. 69 |
1 The Use Case Diagram | p. 69 |
2 Use Cases Versus Functional Decomposition | p. 72 |
3 Interaction Diagrams | p. 74 |
3.1 Need for interaction | p. 74 |
3.2 Sequence diagrams | p. 75 |
3.3 Collaboration diagrams | p. 78 |
3.4 Sequence versus collaboration diagrams | p. 79 |
4 Activity Diagrams | p. 80 |
5 Statechart Diagrams | p. 83 |
Chapter 7 Design Patterns | p. 87 |
1 A Short History of Design Patterns | p. 87 |
2 Fundamental Design Patterns | p. 88 |
2.1 The delegation pattern | p. 88 |
3 Creational Patterns | p. 91 |
3.1 The factory method pattern | p. 91 |
3.2 The abstract factory pattern | p. 93 |
3.3 The singleton pattern | p. 95 |
4 Structural Patterns | p. 97 |
4.1 The adaptor pattern | p. 97 |
4.2 The proxy pattern | p. 101 |
4.3 The iterator pattern | p. 103 |
4.4 The façade pattern | p. 105 |
5 Behavioral Patterns | p. 108 |
5.1 The state pattern | p. 108 |
5.2 The strategy pattern | p. 109 |
Part 2 Applications | p. 113 |
Chapter 8 The Kraalingen Approach to Crop Simulation | p. 115 |
1 System Requirements | p. 117 |
2 The Use Case Model | p. 117 |
2.1 The use case description | p. 119 |
2.2 Basic flow | p. 119 |
2.3 Alternate flow | p. 120 |
2.4 Preconditions | p. 120 |
2.5 Postconditions | p. 120 |
3 The Use Case Realization | p. 121 |
3.1 Sequence diagram for the use case | p. 122 |
3.2 Collaboration diagram for the use case | p. 124 |
4 Conceptual Models | p. 126 |
4.1 Conceptual model for the Kraalingen approach | p. 127 |
5 Discovery Potential Classes | p. 129 |
5.1 Boundary classes | p. 130 |
5.2 Control classes | p. 131 |
5.3 Entity classes | p. 133 |
6 Class Diagram For the Kraalingen Approach | p. 134 |
7 Critique of the Kraalingen Class Diagram | p. 140 |
7.1 Communication boundary-control | p. 141 |
7.2 Communication control-entity | p. 143 |
7.3 Communication entity-entity | p. 146 |
8 Final Class Diagram For the Kraalingen Approach | p. 149 |
9 The Benefits Of Using Interfaces | p. 150 |
10 Implementation of the Kraalingen Model In Java | p. 151 |
10.1 Interface IPlant | p. 151 |
10.2 Interface ISoil | p. 154 |
10.3 Interface IWeather | p. 155 |
10.4 Interface ISimulation Controller | p. 168 |
11 Packaging The Application | p. 172 |
Chapter 9 The Plug And Play Architecture | p. 175 |
1 Definition | p. 175 |
2 Implementation | p. 176 |
3 Reflection | p. 177 |
4 The Plug and Play Simulator Controller | p. 179 |
5 Testing Unit For A Class/Component | p. 183 |
Chapter 10 Soil Water-Balance and Irrigation-Scheduling Models: A Case Study | p. 187 |
1 Introduction | p. 187 |
2 Conceptual Models: Examples | p. 188 |
3 Template For Developing New Models | p. 192 |
4 Analysis of a Water-Balance Model | p. 194 |
5 Analysis of an Irrigation-Scheduling Model (ISM) | p. 196 |
6 The Benefits of a General Template | p. 200 |
Chapter 11 Distributed Models | p. 205 |
1 Introduction | p. 205 |
2 Corba | p. 206 |
2.1 The Interface Definition Language (IDL) | p. 207 |
2.2 The Object Request Broker (ORB) | p. 208 |
2.3 Adaptors | p. 211 |
2.4 A CORBA Soil Server | p. 212 |
2.5 A simple CORBA client | p. 216 |
3 The Remote Method Invocation (RMI) | p. 218 |
3.1 An RMI Soil Server | p. 221 |
3.2 A Simple RMI client | p. 224 |
4 Distributed Crop Simulation Model | p. 225 |
Glossary | p. 233 |
References | p. 239 |
Index | p. 245 |