An Introduction to Systems Second edition Mark Lejk and David Deeks Addison-Wesley An imprint of Pearson Education Harlow, England London New York Reading, Massachusetts San Francisco Toronto Don Mills, Ontario Sydney Tokyo Singapore Hong Kong Seoul Taipei Cape Town Madrid Mexico City Amsterdam Munich Paris Milan
Contents Foreword xv Acknowledgements xvii Introduction 1 Part 1 The systems development environment 3 1 Setting the scene 5 1.1 Introduction 5 1.2 Techniques, tools, methods, strategies 6 1.2.1 A hierarchy 6 1.2.2 Techniques 6 1.2.3 Tools 6 1.2.4 Methods 7 1.2.5 Strategies 8 1.3 Approaches to systems development 9 1.3.1 Explaining the term 'approaches' 9 1.3.2 Approaches covered by this book 9 1.3.3 Approaches not covered by this book 11 1.4 More fundamentals 14 1.4.1 Prototyping 14 1.4.2 CASE (computer-aided software engineering) tools 19 1.4.3 Data and information 21 1.5. Making complex choices 24 1.5.1 Introducing the weighted matrix 24 1.5.2 A simple weighted matrix example 24 1.5.3 Commercial use of weighted matrices 26 1.6 Communication is the key 28 1.6.1 Why communication is so important 28 1.6.2 Communication skills ' 28 1.6.3 Ongoing involvement with users 29 1.7 Systems analysis principles 30 This chapter... 30 Further reading 30 Web addresses worth a visit 31
vi CONTENTS 2 Managing a systems development project 32 2.1 The role of the systems analyst 32 2.1.1 Background 32 2.1.2 Personal qualities 32 2.2 Planning, control, progress 33 2.2.1 Working to a deadline 33 2.2.2 Balancing thoroughness and time 33 2.2.3 Methods for project control 34 2.2.4 The need for clear objectives 34 2.3 Establishing what you are being asked to achieve 35 2.3.1 The theory of 'Management By Objectives' (MBO) 35 2.3.2 The role of objectives 35 2.3.3 The management of objectives 36 2.3.4 Tasks and roles 38 2.4 Getting organised 39 2.4.1 The difference between a group and a team 39 2.4.2 How to turn a group into a team 39 2.5 Controlling it all 40 2.5.1 Introducing project scheduling 40 2.5.2 How to go about it 41 2.5.3 Scheduling project teams 45 This chapter... 45 A useful exercise 45 Further reading 46 Part 2 Structured systems analysis techniques 47 3 Spray and tree diagrams 49 3.1 Why spray and tree diagrams? 49 3.2 Spray diagrams (the 'controlled brainstorm') 50 3.3 Tree diagrams 51 3.3.1 Drawing one 51 3.3.2 More tree diagram applications 53 This chapter... 55 Useful exercises 55 Further reading 55 Web address worth a visit 55 4 Introducing data flow diagrams (DFDs) 56 4.1 Physical and logical views 56 4.1.1 An innate ability 56 4.1.2 Applying relevant information 57 4.2 Document flow diagrams 58 4.2.1 A predecessor of DFDs 58 4.2.2 Document flows and agencies 58
CONTENTS vii 4.2.3 Using a document flow to improve a system 59 4.3 Introducing data flow diagrams (DFDs) 60 4.3.1 A more powerful technique 60 4.3.2 DFDs and the two views 60 4.3.3 DFDs and the four stages 61 4.4 Some first DFD examples 61 4.4.1 What you are doing at the moment 61 4.4.2 Three ways of communicating 62 4.4.3 One logical happening 63 4.5 DFD notation 63 4.5.1 Many conventions, four common elements 63 4.5.2 Not to be confused with flowcharts 64 4.5.3 The four elements explained 64 4.5.4 Some other points to note 66 4.6 DFD levelling 67 4.7 A worked example - the stock control system 68 4.7.1 Where to begin 68 4.7.2 The document flow diagram 69 4.7.3 The context diagram 70 4.7.4 The DFDs 70 4.8 Two more examples of DFDs 74 4.8.1 The hairdressing salon 74 4.8.2 The integrated accounting system 76 This chapter... 77 Useful exercises 78 Further reading 78 Web addresses worth a visit 78 5 Creating DFDs 79 5.1 From theory to practice 79 5.1.1 Unreal and artificial 79 5.1.2 Context diagrams in context 79 5.1.3 Functional areas and processes 80 5.2 Example 1 - the boat building company 80 5.2.1 The scenario 80 5.2.2 Initial attempt at current level 1 physical DFD 81 5.2.3 Second version of DFD - 'one process per functional area' 82 5.2.4 Level 2 DFDs 83 5.3 Example 2 - the student assessment system 86 5.3.1 The scenario 86 5.3.2 Initial discussion 88 5.3.3 Initial attempt at current physical DFDs 88 5.4 Further decomposition? 91 5.5 When is a level 2 a level 1, etc.? 92
viii CONTENTS 5.6 A reminder about 'time' 94 This chapter... 94 A useful exercise 94 Further reading 95 Web addresses worth a visit 95 6 Specifying processes 96 6.1 Introduction 96 6.1.1 Reaching the bottom level 96 6.1.2 Precise, accurate, unambiguous and complete 96 6.2 The problem with ordinary English 97 6.3 Structured English 97 6.3.1 What it is 97 6.3.2 Sequence 98 6.3.3 Selection 98 6.3.4 Iteration 99 6.3.5 Variations on structured English 100 6.4 Decision tables 101 6.4.1 What they are 101 6.4.2 Limited entry decision tables 102 6.4.3 Extended entry decision tables 103 6.4.4 Mixed entry decision tables 104 6.5 Decision trees 105 6.6 A worked example - the end-of-year assessment system 106 6.6.1 Background 106 6.6.2 Representing the narrative description 107 This chapter... Ill A useful exercise 111 Further reading 111 Web address worth a visit 111 7 Entity modelling 112 7.1 Processes and data 112 7.2 Entities and attributes 113 7.2.1 Entities 113 7.2.2 Attributes 113 7.2.3 Selecting entities 114 7.3 Entity relationships 115 7.3.1 Identifying relationships 115 7.3.2 Degrees of relationship 117 7.3.3 Optionality 118 7.3.4 Entities and entity occurrences 121 7.3.5 Further examples 121 7.3.6 Many-to-many relationships 122 7.3.7 Multiple relationships 124
CONTENTS ix 7.3.8 Exclusive relationships 125 7.3.9 Supertypes and subtypes 125 7.4 Building an entity-model 127 7.4.1 The example 127 7.4.2 Selecting entities 127 7.4.3 Identifying relationships between entities 127 7.4.4 Drawing the relationships 127 7.4.5 Completing the entity model 128 7.5 Further examples 128 This chapter... 130 Useful exercises 131 Further reading 132 Web addresses worth a visit 132 8 Normalisation 133 8.1 Introduction 133 8.2 What is a 'relationship'? 133 8.2.1 The entity model 133 8.2.2 Computer system relationships 134 8.3 Normalisation of documents 136 8.3.1 Introduction 136 8.3.2 The student transcript 136 8.3.3 The module class list 144 8.3.4 Combining the student transcript and class list 146 8.4 Normalisation and relational data analysis 147 8.5 Normalisation of tables of data 148 8.6 Composite keys 150 8.6.1 Like a compound key - but not quite 150 8.6.2 The tutor group class list 151 8.6.3 Normalising the tutor group class list 152 8.7 Combining the 3NF entity models 154 8.8 Comparing the 3NF entity model with the logical entity model 155 8.8.1 Aiming for the definitive entity model 155 8.8.2 The entity model before normalisation. 156 8.8.3 Combining the two views 157 This chapter... 158 A useful exercise 158 Further reading 158 Web addresses worth a visit 158 9 Logicalisation of DFDs 159 9.1 Introduction 159 9.1.1 Returning to DFDs 159 9.1.2 Why logicalise? 160 9.1.3 Business Process Re-engineering (BPR) 160
x CONTENTS 9.2 Logicalisation step by step 161 9.2.1 Guidelines 161 9.2.2 Example 1 - the student assessment system 162 9.2.3 Example 2 - Marine Construction 170 9.3 Conclusion 174 This chapter... 175 A useful exercise 175 Further reading 175 Web addresses worth a visit 175 10 Developing the required system 176 10.1 Introduction 176 10.1.1 Learning techniques 176 10.1.2 Putting techniques into practice 176 10.2 The existing student assessment system 177 10.2.1 The scenario 177 10.2.2 Current physical DFDs 179 10.2.3 Current entity model 183 10.2.4 Current logical DFD 183 10.3 The requirements of the new student assessment system 184 10.4 The required system 184 10.4.1 The required entity model 184 10.4.2 The required DFD 185 10.5 What is missing? 186 10.5.1 No maintenance 186 10.5.2 No alternatives 187 This chapter... 187 A useful exercise 188 Further reading 188 Web address worth a visit 188 11 The effect of time 189 11.1 11.2 11.3 11.4 11.5 Introduction Time and the data model 11.2.1 The possible effects 11.2.2 The vehicle breakdown and rescue system Time and the DFD Events 11.4.1 What is an event? 11.4.2 Finding events in DFDs 11.4.3 Types of event Entity life histories (ELHs) 11.5.1 11.5.2 11.5.3 What an ELH is Drawing an ELH The entity/event matrix 189 189 189 190 192 192 192 193 194 194 194 195 199
CONTENTS xi 11.5.4 Creating an ELH by further analysis of the entity/event matrix 11.5.5 The process/event matrix 11.5.6 State indicators and the control of processes 11.6 State transition diagrams 11.7 Conclusion This chapter... A useful exercise Further reading Web address worth a visit 201 206 209 210 211 211 212 212 212 Part 3 Process Improvement for Strategic Objectives (PISO) 213 12 Introducing PISO 215 12.1 A new development 215 12.1.1 Origins 215 12.1.2 Like BPR, but... 215 12.1.3 Views, objectives and stakeholders 217 12.1.4 A new rationale for DFD logicalisation 218 12.2 'Before and after' PISO examples 218 12.2.1 The effect of the strategic objective 218 12.2.2 The Pontefract General Infirmary example 220 12.2.3 The Marine Construction example 221 12.3 The PISO stages and steps 222 12.4 The PISO steps that use DFDs 224 12.5 PISO and 'green field' systems development 225 This chapter... 225 A useful exercise 225 Further reading 226 Web address worth a visit 226 13 PISO and DFDs 227 13.1 Reminders 227 13.1.1 The PISO steps that use DFDs 227 13.1.2 People doing it for themselves 227 13.2 The Marine Construction PISO analysis 228 13.2.1 Marine Construction step 2.2 - Preparing current system physical DFDs 228 13.2.2 Marine Construction step 2.3 - Logicalising for systems efficiency < 232 13.2.3 Marine Construction step 3.1 - Logicalising for strategic objectives 234 13.2.4 Marine Construction step 3.3 - Physical DFD of recommended system 237 13.2.5 Marine Construction - what has been achieved? 239
xii CONTENTS 13.3 Rontefract General Infirmary PISO analysis 240 13.3.1 Pontefract step 2.2 - Preparing current system physical DFDs 240 13.3.2 Pontefract step 2.3 - Logicalising for systems efficiency 240 13.3.3 Pontefract step 3.1 - Logicalising for strategic objectives 243 13.3.4 Pontefract step 3.3 - Physical DFDs of recommended system 245 13.3.5 Pontefract - what has been achieved? 247 This chapter... 248 A useful exercise 248 Further reading 248 Web address worth a visit 248 Part 4 Object-oriented analysis techniques 249 14 Introducing objects 251 14.1 Background 14.1.1 Structured analysis 14.1.2 Software re-use 14.1.3 Software maintenance and testing 14.1.4 Dealing with today's complex systems 14.2 Objects and object classes 14.3 Objects, entities and class diagrams 14.3.1 The 'object' concept 14.3.2 Association 14.3.3 Inheritance 14.3.4 Aggregation and composition 14.4 Operations and class diagrams This chapter... A useful exercise Further reading Web address worth a visit Modelling object behaviour 15.1 Use cases 15.2 Scenarios 15.3 CRC cards 15.4 Sequence diagrams 15.5 Collaboration diagrams 15.6 State diagrams This chapter... A useful exercise Further reading Web address worth a visit 251 251 251 252 252 253 253 253 254 257 258 260 261 261 261 262 263 263 264 266 268 272 272 274 274 274 275
CONTENTS xiii Part 5 And finally... 277 16 Drawing it all together 279 16.1 Some principles of systems analysis 279 16.2 Maintenance and use - information systems and motor cars 281 16.2.1 Maintaining 281 16.2.2 Using 282 16.3 Which approach to use? 282 16.3.1 New and evolving 282 16.3.2 Object-orientation and persistent data 283 16.3.3 Structured analysis... and design 283 16.3.4 Structured and object-oriented analysis 284 16.3.5 Soft Systems 284 16.4 A final finally 285 A useful exercise 285 Further reading 285 Web addresses worth a visit 285 Bibliography 286 Index 288