Software Engineering

with

Objects and Components

Perdita Stevens

CS4 course, Autumn 1997 Department of Computer Science

CONTENTS  CONTENTS

University of Edinburgh Contents

1 Defining terms 1

1.1 Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 The problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Similarities and differences between software and engines: . . . . . . . 2

1.2 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Development methods 11 2.1 History: The Three Amigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 What is a “development method”? . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Use cases 19 3.1 Actors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Anatomy of a use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Use cases for requirements capture . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4.1 A system for CS4 administration . . . . . . . . . . . . . . . . . . . . . 24 3.5 Use cases through the development . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6 Relations between use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.6.1 Use cases for reuse: ≪uses≫ . . . . . . . . . . . . . . . . . . . . . . . 29 3.6.2 Separating variant behaviour: ≪extends≫ . . . . . . . . . . . . . . . 30

3.7 Possible problems with use cases . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 The class model 33 4.1 Objects and messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3.1 Digression: Why have classes? . . . . . . . . . . . . . . . . . . . . . . 35 4.4 Relationships between classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.4.1 Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4.2 Generalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.3 Aggregation: “is part of” . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.5 Development of class model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6 A simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.7 Identifying objects and classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.8 CRC cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.9 CRC Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.9.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5 Interaction diagrams 51 5.1 Developing an interaction diagram . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2 Sequence diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.3 Collaboration diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6 Design Patterns 57 6.1 What are patterns, and why? . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2 Example: Publisher-Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.3 Pattern catalogues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.4 Patterns in context: MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7 Activity Diagrams 65

8 Statecharts 67

\overline{SEOC97  Id : book.tex, v1.21997/12/1013 : 54 : 35pxsExppxs  i}

9 Implementation model 71 9.1 Component model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.2 Deployment model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

10 Quality 75

11 Testing 76

12 Social structures 81

12.1 Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

12.1.1 People management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 12.2 Leadership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 12.3 Organisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

13 Procedural structures 88 13.0.1 Independent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 13.0.2 Accountable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

14 Quality Assurance 93 14.0.3 Questions to think about . . . . . . . . . . . . . . . . . . . . . . . . . 94

15 Reuse 96

\overline{SEOC97  Id : book.tex, v1.21997/12/1013 : 54 : 35pxsExppxs  ii}