Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010015774 | TA168 H64 2001 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
This book is based on a very successful IEE course which is in turn based on many years research into modelling and the Unified Modelling Language (UML) by the author. The UML is the new industry standard for modelling software-intensive systems and this book looks at several applications where the UML can be used as part of a generic approach to aid many kinds of problem solving and information modelling. These include: modelling standards, processes and procedures, requirements engineering, implementation of processes, assessment of tools, defining a quality system, lifecycles and lifecycle models and software. The book is intended to bring UML to the wider audience of systems engineers, and its application to real examples for non-software applications; a problem which is widely acknowledged in other texts, but rarely addressed.
Author Notes
Jon Holt set up Brass Bullet Ltd in 1997
Table of Contents
Foreword | p. xvii |
Preface | p. xix |
Acknowledgements | p. xxi |
List of figures | p. xxiii |
Part I. Problems | |
Chapter 1 Systems engineering | |
1.1 Problems with systems | p. 3 |
1.1.1 Defining systems engineering--first attempt | p. 3 |
1.1.2 The need for systems engineering | p. 3 |
1.1.3 Disasters and failures | p. 5 |
1.1.4 Causes of problems | p. 5 |
1.1.5 Defining a system | p. 6 |
1.1.6 Defining systems engineering--second attempt | p. 7 |
1.1.7 Summary | p. 7 |
1.2 Complexity, communication and understanding | p. 8 |
1.2.1 Introduction | p. 8 |
1.2.2 Complexity | p. 9 |
1.2.2.1 Essential complexity | p. 9 |
1.2.2.2 Accidental complexity | p. 10 |
1.2.3 Minimising complexity | p. 11 |
1.2.4 Communications | p. 11 |
1.2.4.1 Introduction | p. 11 |
1.2.4.2 Languages | p. 12 |
1.2.4.3 Common languages | p. 13 |
1.2.5 A good approach | p. 14 |
1.2.5.1 Summary | p. 15 |
1.3 Quality | p. 15 |
1.3.1 Introduction | p. 15 |
1.3.2 The need for quality | p. 17 |
1.3.3 Level of responsibility | p. 17 |
1.3.4 Requirements for systems professionals | p. 18 |
1.3.5 Processes and quality | p. 19 |
1.3.6 Standards | p. 20 |
1.3.7 Problems with standards | p. 21 |
1.3.8 Consequences of problems with standards | p. 22 |
1.3.9 Compliance with standards | p. 22 |
1.3.10 Processes | p. 23 |
1.3.11 Summary | p. 24 |
1.4 Conclusions | p. 25 |
1.5 Further discussion | p. 25 |
1.6 References | p. 26 |
Part II. Talking the language | |
Chapter 2 Modelling | |
2.1 Introduction to modelling | p. 29 |
2.1.1 The importance of modelling | p. 29 |
2.1.1.1 The kennel (doghouse) | p. 29 |
2.1.1.2 The house | p. 30 |
2.1.1.3 The office block | p. 31 |
2.1.1.4 The point | p. 32 |
2.1.2 Why projects fail | p. 33 |
2.1.3 Modelling | p. 34 |
2.1.4 Defining a 'model' | p. 35 |
2.1.5 Principles of modelling | p. 35 |
2.1.5.1 The choice of model | p. 35 |
2.1.5.2 Abstraction of the model | p. 36 |
2.1.5.3 Connection to reality | p. 36 |
2.1.5.4 Independent views of the same system | p. 37 |
2.2 The UML | p. 37 |
2.2.1 Introduction | p. 37 |
2.2.2 Types of model | p. 37 |
2.2.3 Views vs. models | p. 39 |
2.2.4 Extending the UML | p. 40 |
2.2.5 Background of the UML | p. 40 |
2.2.5.1 History of the UML | p. 42 |
2.2.5.2 Traditional modelling techniques | p. 42 |
2.2.5.3 Object-oriented modelling techniques | p. 42 |
2.2.5.4 Unification of different modelling techniques | p. 43 |
2.2.6 A non-proprietary language | p. 44 |
2.3 Conclusions | p. 44 |
2.4 Further discussion | p. 45 |
2.5 References | p. 46 |
Chapter 3 Static Modelling | |
3.1 Introduction | p. 48 |
3.1.1 Static modelling using class diagrams | p. 49 |
3.1.1.1 Modelling classes and relationships | p. 49 |
3.1.2 Basic modelling | p. 49 |
3.1.2.1 Adding more detail to classes | p. 53 |
3.1.2.2 Adding more detail to relationships | p. 54 |
3.1.2.3 Aggregation and composition | p. 54 |
3.1.2.4 Specialisation and generalisation | p. 56 |
3.1.2.5 Instantiation | p. 60 |
3.1.3 Other static diagrams | p. 61 |
3.1.4 Conclusion | p. 62 |
3.2 Further discussion | p. 63 |
3.3 References | p. 64 |
Chapter 4 Behavioural Modelling | |
4.1 Introduction | p. 65 |
4.1.1 Behavioural modelling using statecharts | p. 67 |
4.1.1.1 Introduction | p. 67 |
4.1.1.2 Basic modelling | p. 67 |
4.1.2 Behavioural modelling--a simple example | p. 69 |
4.1.2.1 Introduction | p. 69 |
4.1.2.2 Simple behaviour | p. 70 |
4.1.2.3 Adding more detail | p. 71 |
4.1.2.4 Ensuring consistency | p. 72 |
4.1.3 Solving the inconsistency | p. 74 |
4.1.3.1 Changing the statechart | p. 74 |
4.1.3.2 Changing the class diagram | p. 75 |
4.2 Styles of behavioural modelling | p. 76 |
4.2.1 Actions and activities | p. 76 |
4.2.1.1 Activity-based statecharts | p. 76 |
4.2.1.2 Action-based statecharts | p. 77 |
4.2.2 Comparing the approaches | p. 78 |
4.3 Other behavioural models | p. 78 |
4.4 Conclusions | p. 79 |
4.5 Further discussion | p. 80 |
4.6 References | p. 80 |
Chapter 5 The UML diagrams | |
5.1 Introduction | p. 81 |
5.2 Class diagrams | p. 82 |
5.2.1 Overview | p. 82 |
5.2.2 Diagram elements | p. 83 |
5.2.3 Example diagrams and modelling--class diagrams | p. 84 |
5.2.4 Using class diagrams | p. 88 |
5.3 Object diagrams | p. 88 |
5.3.1 Overview | p. 88 |
5.3.2 Diagram elements | p. 89 |
5.3.3 Example diagrams and modelling--object diagrams | p. 90 |
5.3.4 Using object diagrams | p. 93 |
5.4 Statechart diagrams | p. 94 |
5.4.1 Overview | p. 94 |
5.4.2 Diagram elements | p. 95 |
5.4.3 Example diagrams and modelling--statecharts | p. 97 |
5.4.4 Using statecharts | p. 100 |
5.5 Interaction diagrams | p. 101 |
5.5.1 Introduction | p. 101 |
5.5.2 Overview--collaboration diagrams | p. 101 |
5.5.3 Diagram elements--collaboration diagrams | p. 102 |
5.5.4 Examples and modelling--collaboration diagrams | p. 103 |
5.5.5 Using collaboration diagrams | p. 106 |
5.5.6 Overview--sequence diagrams | p. 107 |
5.5.7 Diagram elements--sequence diagrams | p. 107 |
5.5.8 Example and modelling--sequence diagrams | p. 108 |
5.5.9 Using sequence diagrams | p. 110 |
5.5.10 Sequence diagrams vs. collaboration diagrams | p. 111 |
5.6 Activity diagrams | p. 112 |
5.6.1 Overview | p. 112 |
5.6.2 Diagram elements | p. 112 |
5.6.3 Examples and modelling | p. 113 |
5.6.4 Using activity diagrams | p. 118 |
5.7 Use case diagrams | p. 119 |
5.7.1 Overview | p. 119 |
5.7.2 Diagram elements | p. 119 |
5.7.3 Examples and modelling | p. 121 |
5.7.4 Using use case diagrams | p. 125 |
5.8 Component diagrams | p. 126 |
5.8.1 Overview | p. 126 |
5.8.2 Diagram elements | p. 126 |
5.8.3 Examples and modelling | p. 127 |
5.8.4 Using component diagrams | p. 130 |
5.9 Deployment diagrams | p. 131 |
5.9.1 Overview | p. 131 |
5.9.2 Diagram elements | p. 131 |
5.9.3 Examples and modelling | p. 132 |
5.9.4 Using deployment diagrams | p. 135 |
5.10 Summary and conclusions | p. 136 |
5.10.1 Summary | p. 136 |
5.11 Conclusions | p. 137 |
5.12 Further discussion | p. 138 |
5.13 References | p. 139 |
Part III. Solutions | |
Chapter 6 Modelling standards, processes and procedures | |
6.1 Introduction | p. 143 |
6.1.1 Introduction | p. 143 |
6.2 Standards | p. 144 |
6.2.1 Standards, standards, standards | p. 144 |
6.2.2 Requirements for using standards | p. 147 |
6.3 Analysing standards | p. 147 |
6.3.1 Aspects of modelling using the UML | p. 148 |
6.3.2 Modelling example | p. 148 |
6.3.3 EIA 632 Processes for engineering a system | p. 149 |
6.3.4 ISO 15504 Software process improvement and capability determination (SPICE) | p. 151 |
6.3.5 Comparing models | p. 154 |
6.3.5.1 Highlighting complexity | p. 156 |
6.3.5.2 Continued analysis | p. 158 |
6.3.6 Other standards and processes | p. 159 |
6.3.6.1 Introduction | p. 159 |
6.3.6.2 ISO 15288 Life cycle management - system life cycle processes | p. 159 |
6.3.6.3 IEC 61508 Functional safety of electrical/electronic/programmable electronic safety-related systems | p. 160 |
6.3.6.4 IEEE 1220 Application and management of the systems engineering process | p. 161 |
6.3.6.5 The Rational Unified Process (RUP) | p. 162 |
6.3.6.6 EIA 731 Systems engineering capability model | p. 162 |
6.3.7 Summary | p. 163 |
6.4 Defining new processes using the UML | p. 164 |
6.4.1 A new procedure | p. 164 |
6.4.2 Completing the model | p. 172 |
6.4.3 Summary | p. 173 |
6.5 Life cycles and life cycle models | p. 174 |
6.5.1 Choosing a life cycle model | p. 176 |
6.5.2 Summary | p. 178 |
6.6 Tailoring the process | p. 179 |
6.6.1.1 Creating a life cycle | p. 181 |
6.6.1.2 Summary | p. 182 |
6.7 Defining deliverables | p. 182 |
6.7.1 Deliverables by type | p. 183 |
6.7.2 Deliverables by process | p. 184 |
6.7.3 Deliverables by structure | p. 185 |
6.8 Implementing the systems engineering process using a tool | p. 185 |
6.8.1 Uses for a tool | p. 187 |
6.8.2 The information model | p. 188 |
6.8.3 The assumption model | p. 190 |
6.8.4 The implementation model | p. 190 |
6.8.5 Summary | p. 192 |
6.9 Conclusions | p. 192 |
6.10 Further discussion | p. 192 |
6.11 References | p. 193 |
Chapter 7 Modelling requirements | |
7.1 Introduction | p. 194 |
7.2 Requirements engineering basics | p. 195 |
7.2.1 Introduction | p. 195 |
7.2.2 The requirements phase | p. 195 |
7.2.3 Capturing requirements | p. 197 |
7.2.4 Requirements | p. 200 |
7.2.4.1 Overview | p. 200 |
7.2.4.2 Business requirements | p. 200 |
7.2.4.3 Functional requirements | p. 202 |
7.2.4.4 Non-functional requirements | p. 202 |
7.2.4.5 Properties of requirements | p. 203 |
7.2.5 Stakeholders | p. 205 |
7.2.5.1 Overview | p. 205 |
7.2.5.2 Types of stakeholder | p. 205 |
7.2.6 Summary | p. 208 |
7.3 Using use case diagrams (usefully) | p. 209 |
7.4 Context modelling | p. 210 |
7.4.1 Types of context | p. 210 |
7.4.1.1 Business context | p. 211 |
7.4.1.2 System context | p. 212 |
7.4.2 Practical context modelling | p. 213 |
7.4.3 Summary | p. 217 |
7.5 Requirements modelling | p. 218 |
7.5.1 Introduction | p. 218 |
7.5.2 Modelling requirements | p. 218 |
7.5.3 Describing use cases | p. 224 |
7.5.3.1 Overview | p. 224 |
7.5.3.2 Confusion with visual use case descriptions | p. 225 |
7.5.3.3 Text descriptions if use cases | p. 226 |
7.5.3.4 Statechart description of a use case | p. 226 |
7.5.3.5 The better approach | p. 227 |
7.6 Modelling scenarios | p. 228 |
7.6.1 Scenarios in the UML | p. 229 |
7.6.2 Example scenarios | p. 229 |
7.6.3 Collaboration vs. sequence diagrams | p. 233 |
7.6.4 Wrapping up scenarios | p. 234 |
7.7 Documenting requirements | p. 235 |
7.7.1 Overview | p. 235 |
7.7.2 Populating the document | p. 236 |
7.7.2.1 Section 1 - introduction | p. 236 |
7.7.2.2 Section 2 - general | p. 237 |
7.7.2.3 Section 3 - requirements | p. 237 |
7.7.3 Finishing the document | p. 237 |
7.8 Summary and conclusions | p. 238 |
7.9 Further discussion | p. 240 |
7.10 References | p. 241 |
Chapter 8 Extending the UML | |
8.1 Introduction | p. 243 |
8.2 Modelling websites | p. 243 |
8.2.1 Background | p. 243 |
8.2.2 Modelling HTML | p. 245 |
8.3 Stereotypes | p. 246 |
8.3.1 Introduction to stereotypes | p. 246 |
8.3.2 Defining stereotypes | p. 249 |
8.3.3 The assumption model | p. 251 |
8.3.4 Stereotyping symbols | p. 252 |
8.4 Summary | p. 253 |
8.5 Constraints | p. 253 |
8.5.1 Introduction | p. 253 |
8.5.2 Formal constraints - the object constraint language (OCL) | p. 254 |
8.5.2.1 Overview | p. 254 |
8.5.2.2 Invariants | p. 255 |
8.5.2.3 Pre-conditions and post-conditions | p. 256 |
8.6 Tagged values | p. 260 |
8.7 Conclusions | p. 261 |
8.8 Further discussion | p. 261 |
8.9 References | p. 262 |
Chapter 9 Tools | |
9.1 Introduction | p. 263 |
9.2 Introduction to tools | p. 264 |
9.3 Selecting a tool | p. 265 |
9.3.1 What tools can do | p. 265 |
9.3.2 What tools cannot do | p. 266 |
9.3.3 Typical CASE tool capabilities | p. 267 |
9.3.3.1 Drawing diagrams | p. 267 |
9.3.3.2 Verification | p. 270 |
9.3.3.3 Software-related features | p. 271 |
9.3.3.4 Report generation | p. 274 |
9.3.3.5 Import/export with other packages | p. 275 |
9.3.4 Business considerations | p. 276 |
9.4 Conclusions | p. 277 |
9.5 Further discussion | p. 278 |
Index | p. 279 |
Bibliography | p. 283 |