about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/29 - Role of Use Cases - lang_en_vs5.srt
blob: 11c0187d2734d829a956105c78e170c70d30d72f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
1
00:00:00,100 --> 00:00:02,510
As I mentioned when we started talking about use cases, use

2
00:00:02,510 --> 00:00:06,040
cases are fundamental in UML, and in general. So, now I

3
00:00:06,040 --> 00:00:08,510
would like to discuss why they're so important and what are

4
00:00:08,510 --> 00:00:11,900
the different roles that use cases can play. The first obvious one

5
00:00:11,900 --> 00:00:15,510
is for requirements elicitation. It is much easier to describe what

6
00:00:15,510 --> 00:00:17,650
the system should do if we think about the system in

7
00:00:17,650 --> 00:00:21,070
terms of scenarios of usage. Rather than trying to describe the

8
00:00:21,070 --> 00:00:25,450
whole functionality of the system at once. So, use cases can help

9
00:00:25,450 --> 00:00:28,890
performing a more effective requirement solicitation. As we will

10
00:00:28,890 --> 00:00:31,700
see when we discuss the unified software process, they can

11
00:00:31,700 --> 00:00:34,980
be used for architectural analysis. So, use cases are the

12
00:00:34,980 --> 00:00:38,165
starting point for the analysis of the architecture of the

13
00:00:38,165 --> 00:00:40,765
system that can help identify the main blocks of

14
00:00:40,765 --> 00:00:44,016
the system. And therefore, can help define in the initial

15
00:00:44,016 --> 00:00:47,360
architecture. And as I said, we'll talk more extensively about

16
00:00:47,360 --> 00:00:50,460
that. They can be used for user prioritization. For example,

17
00:00:50,460 --> 00:00:53,230
imagine to have multiple actors in the system, and you

18
00:00:53,230 --> 00:00:56,160
might want to prioritize some of them. For instance, using

19
00:00:56,160 --> 00:00:59,810
again the banking system example, we might want to first

20
00:00:59,810 --> 00:01:03,477
provide functionality for the administrators of the bank. And only

21
00:01:03,477 --> 00:01:06,384
in a second time provide functionality for the customers, because

22
00:01:06,384 --> 00:01:09,342
of course, if the administrator cannot perform any operation, the

23
00:01:09,342 --> 00:01:12,030
customers cannot use the system. So again, they can be

24
00:01:12,030 --> 00:01:15,980
used to prioritize the users. Or the actors, and therefore

25
00:01:15,980 --> 00:01:19,390
define which part of the system should be built in which order.

26
00:01:19,390 --> 00:01:22,120
Related to this point, they can be used for planning. If I

27
00:01:22,120 --> 00:01:25,000
know which pieces of functionality I need to build and in which

28
00:01:25,000 --> 00:01:27,980
order, I can better plan the development of my system. And again,

29
00:01:27,980 --> 00:01:31,280
we will see how this becomes very important in many different software

30
00:01:31,280 --> 00:01:35,037
life cycles. So, both in the unified software process, for instance, but

31
00:01:35,037 --> 00:01:38,570
also in more agile development processes. And finally, use cases can be

32
00:01:38,570 --> 00:01:40,980
used for testing. If I have an early description of what the

33
00:01:40,980 --> 00:01:44,290
system should do, what are the main pieces of functionality of the system. And I

34
00:01:44,290 --> 00:01:46,700
know how the interaction between the actors and

35
00:01:46,700 --> 00:01:49,510
the system is, I can easily define test

36
00:01:49,510 --> 00:01:52,010
cases, even before writing the code, even before

37
00:01:52,010 --> 00:01:54,180
defining my system. And when we discuss testing,

38
00:01:54,180 --> 00:01:57,590
we will get back to this and talk a little more extensively about this, as well.