8 videos 📅 2024-12-13 09:00:00 America/Dawson
3:35
2024-12-16 13:15:46
41:29
2024-12-16 13:22:05
48:13
2024-12-16 13:27:55
13:32
2024-12-16 15:19:39
16:25
2024-12-16 15:19:40
9:39:05
2024-12-16 16:37:54
12:47:46
2024-12-16 16:38:02
19:48
2024-12-18 11:57:41

Visit the Ai Assisteed MBSE course recordings page

                WEBVTT

00:00:01.340 --> 00:00:12.420
It looks like everybody's either with me or close, so I'm going to go back here, and now

00:00:12.420 --> 00:00:15.600
I'm going to make a requirements table in that package.

00:00:15.860 --> 00:00:19.780
So that is create diagram requirements table.

00:00:21.320 --> 00:00:26.160
Now for the scope, I'm just going to drop my requirements package on the scope.

00:00:26.160 --> 00:00:32.220
And you see that they're here.

00:00:33.920 --> 00:00:37.400
And now I can just type the text in.

00:00:37.740 --> 00:00:45.620
I can type it in either on the diagram or in here, but if I go back to my

00:00:45.620 --> 00:00:51.240
requirements diagram, that should be populated.

00:00:55.400 --> 00:01:06.560
So there is a way where you can go directly from chat GPT and paste into either Word or Excel

00:01:06.560 --> 00:01:13.860
into a CSV, and there is a capability for CSV import or copy and paste.

00:01:14.840 --> 00:01:27.900
But I'm probably going to leave that to your own devices unless you want me to poke at it a little more.

00:01:28.760 --> 00:01:32.720
I will show you one other thing about the requirements numbering.

00:01:34.360 --> 00:01:40.880
So again, to get back into that numbering dialog, I click these three little dots.

00:01:43.200 --> 00:01:49.180
Couple things you should know about this numbering.

00:01:50.000 --> 00:01:54.340
One is it's really easy to get gaps in your numbering sequence.

00:01:55.720 --> 00:02:02.740
So I can, for example, increase that number or decrease it.

00:02:04.960 --> 00:02:17.720
But in practice, what often happens is that, you know, you add some, you delete some, and they're not numbered the way you want, and you get gaps in the numbering.

00:02:19.520 --> 00:02:23.680
So there's two important things to know about the numbering in here.

00:02:23.680 --> 00:02:32.780
One is that this information about the prefix and the separator works on a package by package basis.

00:02:34.500 --> 00:02:43.780
So if you want different numbering on one set of requirements than in another, you basically sub-package them here.

00:02:45.480 --> 00:02:58.100
And the other is there's a really useful feature in Cameo for resolving gaps in the numbering.

00:02:58.640 --> 00:03:00.340
But it's hidden very carefully.

00:03:02.560 --> 00:03:07.140
So watch closely now. Do you see there's this little button called details?

00:03:08.100 --> 00:03:16.560
If I click that details button, it unlocks a bunch of hidden functionality.

00:03:18.520 --> 00:03:29.720
And if you get to where you have, you know, your numbering is going one, two, three, four, six, seven, eight, and I guess I can create that condition and then show you this, okay?

00:03:30.360 --> 00:03:35.520
So let's suppose I delete this requirement five.

00:03:36.620 --> 00:03:40.680
And you don't necessarily have to follow me here, but you want to at least watch me.

00:03:41.200 --> 00:03:42.840
So I deleted requirement five.

00:03:44.040 --> 00:03:46.460
And then I'm going to create three more.

00:03:48.440 --> 00:03:49.660
Requirement six.

00:03:51.120 --> 00:03:52.400
Requirement seven.

00:03:55.380 --> 00:03:56.500
Requirement eight.

00:03:58.780 --> 00:04:02.920
And I'm going to re-enter the name real-time display here.

00:04:06.220 --> 00:04:11.240
Then I'm going to go back and delete six and delete seven.

00:04:15.220 --> 00:04:19.540
Then I'm going to go back into my requirements numbering.

00:04:21.960 --> 00:04:24.100
Which I have to get into this way.

00:04:25.280 --> 00:04:27.860
And now I have a problem one, two, three, four, eight.

00:04:28.920 --> 00:04:31.500
Well, I can decrease eight. It'll go to seven.

00:04:32.360 --> 00:04:34.720
And I can do that a whole bunch of times.

00:04:34.720 --> 00:04:38.840
But a lot of times you're going to get to where, like, the numbering is just messed up.

00:04:39.720 --> 00:04:46.520
And what you want to do is use this function called renumber recursively.

00:04:48.480 --> 00:04:53.320
And that will remove gaps in your numbering scheme.

00:04:53.820 --> 00:05:02.680
The other thing I can show you about requirements in Cameo is if I use a containment relationship.

00:05:03.680 --> 00:05:15.020
OK. So let's suppose I decide that real-time display is actually something that belongs to user interface.

00:05:17.020 --> 00:05:26.080
So I can use containment, which shows up here, and I can make real-time display be part of my user interface.

00:05:29.060 --> 00:05:33.480
So I'm going to show you another useful trick in Cameo.

00:05:33.760 --> 00:05:35.480
You may want to follow me on this part.

00:05:37.980 --> 00:05:41.360
So first of all, if I just pick containment off here.

00:05:43.740 --> 00:05:52.060
So in this case, when I'm drawing it top down, it's the correct direction on the containment.

00:05:52.960 --> 00:06:03.680
But a useful feature to know, and that actually doesn't work on my keyboard because I'm on a Mac keyboard,

00:06:03.740 --> 00:06:09.060
but the control key will reverse the direction of that if you do it while you're drawing it.

00:06:09.740 --> 00:06:18.380
So now you notice when I did this, it changed my requirement number from eight to be 3.1,

00:06:19.260 --> 00:06:22.200
which in most cases is kind of what you want it to do.

00:06:22.440 --> 00:06:31.280
So when I say that this requirement is contained within that requirement, it'll actually renumber it.

00:06:31.460 --> 00:06:40.260
If I look at my table now, what you see is that three now has this little plus sign underneath it,

00:06:40.260 --> 00:06:43.340
and I can expand that to see 3.1.

00:06:46.100 --> 00:06:51.020
So those are just useful things to know about working with requirements in Cameo.

00:06:53.440 --> 00:06:55.860
I can now, yeah, you're a little bit faint, but I can hear you.

00:06:56.960 --> 00:07:03.900
So you said the control key will reverse the direction while you're drawing the relation on there?

00:07:05.020 --> 00:07:09.080
I think it's a control key. It's either option or control or one of those.

00:07:09.680 --> 00:07:14.300
Okay, yeah, control just adds a pivot point for me.

00:07:15.240 --> 00:07:23.420
Yeah, it might be the option key. It might be the, you know, unfortunately, this working on a Mac and having a PC keyboard in here.

00:07:24.620 --> 00:07:26.380
It looks like it's the alt key.

00:07:27.120 --> 00:07:33.340
Yeah, and I don't have an alt key on my Mac keyboard. That's why.

00:07:34.200 --> 00:07:38.140
So, yeah, you can, and there's two kinds of containment.

00:07:38.220 --> 00:07:55.160
Like if you try and draw it from here, from the little quick link menu, there is generally a containment that way.

00:07:55.200 --> 00:07:59.960
And there's also usually a second one that goes in the other direction.

00:07:59.960 --> 00:08:03.760
In fact, usually when I work with it, there's a little menu here.

00:08:04.460 --> 00:08:13.240
Maybe they kind of, so we're running 2024 instead of what I usually run, which is 2022.

00:08:14.440 --> 00:08:20.740
And maybe they finally decided that's really confusing having two containment and they just switched it.

00:08:22.340 --> 00:08:28.420
So just as well, because this one is the one that you usually want, because you usually want to draw them top down.

00:08:28.420 --> 00:08:33.840
Yeah, none of my keys are working for that.

00:08:34.960 --> 00:08:49.380
So I kind of left that lab to be a little bit free form.

00:08:51.020 --> 00:08:58.180
But I think if you've done this and made a table and you see how the table works.

00:08:58.880 --> 00:09:07.540
Oh, I should also show you about the columns field in the in the table.

00:09:08.740 --> 00:09:19.800
This field here called columns lets you add or remove columns from the table.

00:09:20.580 --> 00:09:24.720
So if I want to put like satisfied by in here.

00:09:29.620 --> 00:09:33.100
Now I've got another column here.

00:09:34.260 --> 00:09:38.940
So you can use columns to control.

00:09:39.200 --> 00:09:46.920
These are these are kind of all the fields that you have built in to to your requirements element.

00:09:48.120 --> 00:09:55.640
And so you can also create new columns and do things like that.

00:09:55.640 --> 00:10:04.460
But but as a quick intro to the requirements editor, that's probably sufficient.

00:10:05.140 --> 00:10:10.140
One thing that you want to be aware of, see if I can manage to do this.

00:10:13.060 --> 00:10:16.180
If I shrink my cameo window.

00:10:22.400 --> 00:10:28.180
If you shrink this window horizontally, this little columns tab will disappear to save space.

00:10:29.720 --> 00:10:32.960
And it'll be replaced by like two little carrots.

00:10:33.940 --> 00:10:40.600
And you have to know that to to find that table.

00:10:40.600 --> 00:10:46.720
So something to be aware of.

00:10:52.300 --> 00:10:56.320
Anything else you would like me to tell you about requirements?

00:10:58.500 --> 00:11:02.760
Otherwise, I'm about ready to move on to talking about use cases.

00:11:02.760 --> 00:11:11.140
And if there's anything else that you would like me to.

00:11:15.320 --> 00:11:21.500
To tell you about requirements, I am happy to do it seems to let me.

00:11:21.600 --> 00:11:26.180
Stretch my window down, but not not horizontally.

00:11:30.720 --> 00:11:34.680
That's probably just a feature of the amazing Mac book stuff.

00:11:36.260 --> 00:11:40.580
Yeah, I mean, their their virtual PC environment seems to work pretty well.

00:11:43.220 --> 00:11:47.420
So I have I have no complaints about it so far.

00:11:47.420 --> 00:11:48.460
It's been working.

00:11:50.620 --> 00:11:52.500
Really pretty well, I think.

00:11:57.340 --> 00:11:58.440
All right.

00:11:58.500 --> 00:12:01.820
Anything else you would like to discuss with.

00:12:04.980 --> 00:12:06.620
With requirements here.

00:12:10.460 --> 00:12:16.620
Mostly that chapter is about how to use AI to to discover the requirements.

00:12:20.160 --> 00:12:28.620
So would the way how you're like discovering requirements, you would just like copy paste that table into the requirements table.

00:12:30.750 --> 00:12:36.410
Yeah, that's probably the fastest way to.

00:12:38.210 --> 00:12:43.290
To get them in there, I think you have to get it into a.

00:12:43.330 --> 00:12:46.110
A CSV kind of.

00:12:46.850 --> 00:12:49.230
Representation like out of Excel or on a word.

00:12:50.270 --> 00:12:52.890
And then I've seen them paste in after you do that.

00:12:54.790 --> 00:12:56.870
So you sort of have to go from.

00:12:58.090 --> 00:13:03.130
Chat GPT into kind of a comma separated file.

00:13:04.970 --> 00:13:06.330
And then.

00:13:07.430 --> 00:13:09.810
From there into the cameo.

00:13:11.110 --> 00:13:14.170
And you probably have to match the number of columns.

00:13:16.070 --> 00:13:17.570
In your requirements table.

00:13:18.930 --> 00:13:21.190
To the number of columns that you have in.

00:13:22.690 --> 00:13:24.170
In your table out of chat.

00:13:28.070 --> 00:13:28.590
Okay.

00:13:31.130 --> 00:13:34.850
Does anybody need another break before we go into use cases? Are you guys good?

00:13:37.110 --> 00:13:37.530
Okay.

00:13:38.930 --> 00:13:39.710
All right.

00:13:41.630 --> 00:13:47.470
So if anybody if no one has objections, I'm going to go into our next.

00:13:47.470 --> 00:13:50.230
Slide deck here, which is on.

00:13:50.350 --> 00:13:51.130
Use case model.

00:13:55.930 --> 00:13:58.210
Sort of slide zero in this slide deck.

00:13:59.330 --> 00:14:01.450
Is that if you just ask.

00:14:03.150 --> 00:14:04.850
AI to tell you about use cases.

00:14:06.450 --> 00:14:07.850
You might get.

00:14:08.350 --> 00:14:09.290
Business use cases.

00:14:11.030 --> 00:14:11.310
Okay.

00:14:12.290 --> 00:14:15.050
So when I just said, give me the use cases for an electron microscope.

00:14:15.770 --> 00:14:18.450
It told me all the ways that you could use an election.

00:14:19.690 --> 00:14:21.870
And that wasn't what I want.

00:14:22.670 --> 00:14:23.330
What I wanted.

00:14:24.290 --> 00:14:28.050
So I asked it to tell me about software system use cases.

00:14:29.550 --> 00:14:31.190
And you'll notice now.

00:14:32.110 --> 00:14:34.710
It's giving me software slash system.

00:14:38.250 --> 00:14:41.550
For our electron microscope and.

00:14:42.770 --> 00:14:49.190
When you write use cases, they really should be verb phrases or when you name use cases.

00:14:49.970 --> 00:14:51.190
They should be verb phrases.

00:14:52.070 --> 00:14:55.090
So what goes on your domain model are nouns.

00:14:55.550 --> 00:14:55.970
Things.

00:14:57.830 --> 00:15:02.830
What goes on your use case diagram are verb phrases and.

00:15:02.830 --> 00:15:07.170
What goes in your requirements are shell statements.

00:15:12.010 --> 00:15:13.390
And so.

00:15:14.930 --> 00:15:18.850
We'll come back and draw this diagram in a little bit.

00:15:19.610 --> 00:15:24.830
In cameo, but here's the top level use cases that gave me for.

00:15:26.710 --> 00:15:26.830
Operating.

00:15:27.110 --> 00:15:28.630
Our electron microscope.

00:15:32.930 --> 00:15:35.450
And as I said, we'll.

00:15:35.610 --> 00:15:39.870
I'm going to go through the PowerPoint and then we'll do this as a lab.

00:15:40.510 --> 00:15:41.690
At the end of the lecture.

00:15:43.130 --> 00:15:46.770
And then that'll be about as far as we go for today is to.

00:15:48.110 --> 00:15:49.070
To get through use cases.

00:15:49.430 --> 00:15:50.370
We've got.

00:15:50.370 --> 00:15:54.810
12 slide decks to get to in three days.

00:15:54.970 --> 00:15:57.010
And this is slide deck number five already.

00:15:57.630 --> 00:16:00.370
So we're just fine in terms of.

00:16:01.450 --> 00:16:02.310
Time and coverage.

00:16:04.990 --> 00:16:05.670
And.

00:16:10.370 --> 00:16:14.630
So you'll see that some of these use cases are for.

00:16:15.870 --> 00:16:18.670
Hardware related things like moving the stage around.

00:16:18.670 --> 00:16:21.430
And adjusting the beam parameters.

00:16:22.490 --> 00:16:24.910
Easily using the operator control interface.

00:16:25.910 --> 00:16:29.470
And then some of these use cases relate to image processing.

00:16:30.410 --> 00:16:35.670
Which is more the user of the electron microscope from a.

00:16:36.850 --> 00:16:39.370
Science standpoint, right? Someone who wants to actually.

00:16:40.090 --> 00:16:42.570
Look at an image and do something with it.

00:16:42.910 --> 00:16:46.270
So there's kind of two sets of use cases in here.

00:16:46.270 --> 00:16:49.350
And then actually a third set.

00:16:50.850 --> 00:16:54.770
Which is to calibrate the system and make sure everything is working right.

00:16:55.610 --> 00:16:57.390
So there's admin stuff.

00:16:58.210 --> 00:17:02.110
To update the software, manage users, things like that, right? So.

00:17:02.230 --> 00:17:05.670
These are the scenarios of the system being.

00:17:06.590 --> 00:17:06.910
Operated.

00:17:11.610 --> 00:17:14.610
So this is one of the first things I tried with chat.

00:17:14.810 --> 00:17:17.390
Gbt was I tried to just.

00:17:17.650 --> 00:17:20.310
Ask it to write the narrative for a use case.

00:17:21.470 --> 00:17:23.250
And I was kind of stunned.

00:17:25.210 --> 00:17:25.810
Because.

00:17:27.450 --> 00:17:31.370
My reaction was like, holy crap, this thing writes these cases.

00:17:33.530 --> 00:17:37.750
Really fast and at an amazing level of detail.

00:17:39.330 --> 00:17:43.710
And if you've ever tried to get systems engineers to write use cases.

00:17:45.630 --> 00:17:46.650
It's like pulling teeth.

00:17:47.490 --> 00:17:50.690
Okay, it's systems engineers.

00:17:52.230 --> 00:17:53.630
Basically don't like to do this.

00:17:56.030 --> 00:18:00.130
And one of the reasons they don't like to do it is it's kind of a lot of work.

00:18:00.130 --> 00:18:03.430
Right. It's real work to actually.

00:18:03.610 --> 00:18:04.830
Write this.

00:18:06.470 --> 00:18:07.610
Write all this stuff then.

00:18:09.170 --> 00:18:12.870
And so by default, what chat Gbt will use.

00:18:14.130 --> 00:18:18.850
Is a very long and robust use case template.

00:18:20.170 --> 00:18:26.170
That was originally proposed by a guy named Alistair Coburn in his book about use cases.

00:18:26.170 --> 00:18:29.470
And he calls these fully dressed use cases.

00:18:31.130 --> 00:18:34.970
And one of the reasons that people like this template is because.

00:18:35.670 --> 00:18:38.270
It has sections in it for preconditions.

00:18:39.050 --> 00:18:40.310
And post conditions.

00:18:42.590 --> 00:18:44.850
And it seems very complete.

00:18:46.790 --> 00:18:51.850
Well, I never liked this template myself because it's too much work.

00:18:56.430 --> 00:18:59.950
And when I started asking AI to write the use cases.

00:19:01.390 --> 00:19:05.910
It was kind of like, wow, this isn't really a lot of work anymore because AI will just spit this out.

00:19:07.750 --> 00:19:14.270
But I decided I still don't like this kind of big huge template.

00:19:15.530 --> 00:19:20.790
Because it's actually a lot of work to read the use case descriptions when they're written in this template.

00:19:20.790 --> 00:19:27.110
And I could tell you from some 20 or 30 years of teaching people how to write use cases.

00:19:28.090 --> 00:19:31.810
That what people typically do with this.

00:19:32.650 --> 00:19:37.790
Long template is they kind of get the most important part, which is.

00:19:38.670 --> 00:19:40.910
The sunny day scenario in the rainy day scenario.

00:19:42.190 --> 00:19:45.250
Well, I didn't skip it because.

00:19:46.530 --> 00:19:50.250
The sunny day scenario here is my main success scenario.

00:19:51.710 --> 00:19:52.310
And.

00:19:54.270 --> 00:19:55.430
Here's my extensions.

00:19:56.230 --> 00:19:57.610
Here's my alternate flows.

00:19:58.630 --> 00:20:00.730
So it kind of covers all the detail.

00:20:02.090 --> 00:20:04.650
But it's still a lot of work to read it.

00:20:06.510 --> 00:20:07.710
And so.

00:20:08.810 --> 00:20:11.710
I sort of.

00:20:12.550 --> 00:20:16.650
Poke a little fun in my book at what.

00:20:17.090 --> 00:20:20.150
Alastair Coburn calls a fully dressed use case template.

00:20:22.070 --> 00:20:26.050
And I raised the question about whether.

00:20:27.330 --> 00:20:31.270
This guy is fully dressed or if he's overdressed.

00:20:33.390 --> 00:20:34.270
And.

00:20:35.150 --> 00:20:39.270
If he's walking on Waikiki Beach in his snowshoes and parka.

00:20:40.530 --> 00:20:41.970
Then he might be overdressed.

00:20:42.670 --> 00:20:43.130
Although.

00:20:44.150 --> 00:20:46.650
If you believe that the ice age is coming, then he might be fully.

00:20:47.910 --> 00:20:51.590
So fully dressed or overdressed is kind of a subjective question.

00:20:53.010 --> 00:20:56.690
And one of the cool things about AI is I can say, make me a picture of a guy.

00:20:57.270 --> 00:21:01.230
In snowshoes walking on a frigid Waikiki Beach and it'll do it.

00:21:01.230 --> 00:21:04.350
So I had a little fun doing that.

00:21:05.610 --> 00:21:08.430
But I like a shorter, more concise use case template.

00:21:10.690 --> 00:21:11.650
And so.

00:21:12.150 --> 00:21:16.190
I wrote I had it rewrite the use case template after.

00:21:17.190 --> 00:21:20.650
Reading my books about use cases, and I said, I want you to use the template.

00:21:21.670 --> 00:21:24.290
That I used in my book and told it what page.

00:21:25.810 --> 00:21:31.930
And now it writes the use case in a.

00:21:32.850 --> 00:21:34.970
Shorter, less verbose style.

00:21:36.150 --> 00:21:39.950
And one of the things that I noticed, which I found was really interesting and curious.

00:21:41.050 --> 00:21:43.310
Is you notice there's seven steps.

00:21:44.310 --> 00:21:46.430
In the sunny day scenario of this use case.

00:21:48.030 --> 00:21:50.070
Well, I guess this is a different use case.

00:21:50.870 --> 00:21:52.930
So but there's 14 steps in it.

00:21:54.330 --> 00:21:57.390
What I noticed is when I asked it to write the use case.

00:21:58.730 --> 00:22:01.590
In a shorter template, it omitted about half the steps.

00:22:05.030 --> 00:22:09.770
And what it was doing before was it was.

00:22:11.110 --> 00:22:15.630
Specifying a bunch of kind of internal details like I don't know if you can read this.

00:22:15.630 --> 00:22:21.730
But in step number eight here, it says the software communicates the focus settings to the instrument.

00:22:22.950 --> 00:22:25.790
That's kind of internal detail within the use case.

00:22:26.850 --> 00:22:29.290
That you can really leave out of a use case description.

00:22:31.890 --> 00:22:32.570
So.

00:22:34.190 --> 00:22:37.350
I continue to like the use cases better.

00:22:38.590 --> 00:22:41.710
Using a less verbose style and.

00:22:41.710 --> 00:22:49.730
One of the things that I noticed here when this use case came out came out of chat GPT.

00:22:50.930 --> 00:22:54.870
Was that there was no exception behavior in this use case.

00:22:56.250 --> 00:22:59.070
And having taught use cases for many, many years.

00:22:59.850 --> 00:23:03.370
That's always a red flag for me when I see no exception behavior.

00:23:06.590 --> 00:23:09.050
So in fact, what it did.

00:23:10.590 --> 00:23:15.410
Is it kind of misnamed my exception behavior to be alternate behavior.

00:23:16.970 --> 00:23:19.450
But you always want to be suspicious.

00:23:20.650 --> 00:23:22.530
Of a use case that.

00:23:24.350 --> 00:23:26.730
Has no exception behavior in it.

00:23:27.570 --> 00:23:32.110
So basically, I will write the use case narratives in any style that you like.

00:23:32.690 --> 00:23:35.150
And you can pick the style that works for you.

00:23:36.570 --> 00:23:40.810
You're taking the class from me, so I get to inflict my opinion on you about what I like.

00:23:42.430 --> 00:23:47.430
But I think a use case written at this level of detail is much more readable.

00:23:49.470 --> 00:23:51.430
Than the big verbose one.

00:23:54.650 --> 00:23:58.010
And what typically gets done on most projects.

00:23:58.010 --> 00:24:05.170
Is because people hate writing use cases, they just skip it.

00:24:05.390 --> 00:24:08.590
They skip writing the narrative English version.

00:24:09.690 --> 00:24:13.310
And they go directly from the use case diagram.

00:24:14.490 --> 00:24:16.670
To usually activity diagrams.

00:24:17.690 --> 00:24:21.270
So you can elaborate a use case on.

00:24:21.790 --> 00:24:24.450
Either an activity diagram or a sequence diagram.

00:24:25.110 --> 00:24:27.170
But usually it's done on activity diagrams.

00:24:28.470 --> 00:24:33.950
And if you follow magic grid, they will tell you to start doing functional analysis.

00:24:34.710 --> 00:24:36.370
Immediately underneath these cases.

00:24:36.650 --> 00:24:38.170
So they basically treat.

00:24:39.030 --> 00:24:41.670
The use cases as high level functions of the system.

00:24:42.770 --> 00:24:47.790
And then start drawing activity diagrams and decomposing activities into child diagrams.

00:24:48.810 --> 00:24:49.610
Sub sub diagrams.

00:24:51.350 --> 00:24:58.190
And in my experience, that's where you start spending a lot of your modeling time on activity diagrams.

00:24:59.430 --> 00:25:01.690
So if you have experienced.

00:25:02.510 --> 00:25:05.790
And I think at least one of you said, yep, we got this problem.

00:25:08.030 --> 00:25:11.630
Where the activity diagrams take up all your modeling time.

00:25:12.550 --> 00:25:18.030
It's probably because they are treating your use cases as.

00:25:18.030 --> 00:25:19.190
System functions.

00:25:20.410 --> 00:25:22.670
And not actual proper use cases.

00:25:23.390 --> 00:25:28.290
And then using those high level system functions to do functional.

00:25:32.410 --> 00:25:35.830
And so we're kind of in philosophy land here.

00:25:36.970 --> 00:25:37.630
But.

00:25:39.630 --> 00:25:40.950
I think it's worth talking about.

00:25:41.050 --> 00:25:42.210
What's the difference?

00:25:42.350 --> 00:25:44.110
Because a lot of people don't understand.

00:25:44.110 --> 00:25:50.110
What is the difference between a functional decomposition and a scenario decomposition?

00:25:51.790 --> 00:25:55.270
And so what a use case model is supposed to be.

00:25:56.430 --> 00:26:00.110
Is a scenario decomposition where you're talking about.

00:26:01.470 --> 00:26:04.250
The system from the perspective of the user.

00:26:05.870 --> 00:26:08.830
As opposed to a functional decomposition.

00:26:09.850 --> 00:26:13.370
Where you're talking about the system from the perspective of the system.

00:26:13.370 --> 00:26:16.170
And what its functions are.

00:26:17.050 --> 00:26:17.870
Everybody clear on that?

00:26:17.890 --> 00:26:21.110
Because I think it's a really important.

00:26:21.710 --> 00:26:22.430
Distinction.

00:26:25.490 --> 00:26:28.070
So when you.

00:26:29.290 --> 00:26:30.250
Attack use cases.

00:26:31.410 --> 00:26:32.750
From the user perspective.

00:26:34.250 --> 00:26:36.610
Then what you focus on is.

00:26:38.310 --> 00:26:40.630
What actions can the user take.

00:26:41.530 --> 00:26:44.310
That are different from that main.

00:26:45.530 --> 00:26:45.550
Basic.

00:26:45.890 --> 00:26:47.050
Typical usage.

00:26:47.810 --> 00:26:48.570
Sunny day scenario.

00:26:49.490 --> 00:26:50.790
That's your alternate behaviors.

00:26:51.730 --> 00:26:53.730
And then what errors can happen.

00:26:53.890 --> 00:26:55.570
What exceptions can happen.

00:26:57.070 --> 00:26:57.970
During that use case.

00:26:59.310 --> 00:27:03.890
And it's really identifying the alternate and exception behaviors from the use case.

00:27:04.810 --> 00:27:05.330
That.

00:27:06.750 --> 00:27:08.110
Kind of.

00:27:08.110 --> 00:27:10.910
Set it apart from a functional decomposition.

00:27:11.750 --> 00:27:15.490
If I pop back to my.

00:27:16.650 --> 00:27:19.030
Requirements lecture here for a minute.

00:27:23.070 --> 00:27:25.730
Remember we were talking about zigzagging to use cases.

00:27:26.750 --> 00:27:29.690
And focusing on alternate and exception behavior.

00:27:32.750 --> 00:27:33.390
And.

00:27:36.210 --> 00:27:38.750
That was this chart here.

00:27:39.730 --> 00:27:44.650
Where we identified all the alternate and exception behavior requirements.

00:27:46.670 --> 00:27:49.450
So if you go straight to a functional decomposition.

00:27:50.410 --> 00:27:52.230
And you don't use your use cases.

00:27:53.170 --> 00:27:56.130
To identify this alternate and exception behavior.

00:27:57.690 --> 00:28:00.850
Then what happens is in your requirements model.

00:28:01.530 --> 00:28:04.950
You don't have the requirements for the alternate exception behavior.

00:28:05.670 --> 00:28:06.230
Of these cases.

00:28:08.250 --> 00:28:08.690
And.

00:28:09.550 --> 00:28:10.990
So there are.

00:28:12.010 --> 00:28:13.670
Big advantages to.

00:28:13.890 --> 00:28:14.850
At least in my mind.

00:28:15.490 --> 00:28:17.230
There's big advantages to.

00:28:18.750 --> 00:28:20.990
Actually using the use cases properly.

00:28:22.050 --> 00:28:23.030
Any questions on this?

00:28:23.870 --> 00:28:24.470
I.

00:28:24.470 --> 00:28:26.610
I tend to get up on my soap box about it.

00:28:26.610 --> 00:28:28.730
But I do think it's really important.

00:28:30.550 --> 00:28:31.530
So.

00:28:33.110 --> 00:28:34.570
Whereas the typical.

00:28:35.990 --> 00:28:39.350
Usage of activity diagrams in SysML.

00:28:40.670 --> 00:28:42.210
Is to decompose functions.

00:28:43.890 --> 00:28:47.970
What I like to use activity diagrams for in SysML.

00:28:49.990 --> 00:28:54.050
Is to detail out the alternate and exception behaviors.

00:28:56.730 --> 00:28:59.050
So it's a.

00:28:59.650 --> 00:29:01.530
It's a difference in usage.

00:29:03.650 --> 00:29:07.670
You know it's still a yellow use case bubble with an activity diagram inside it.

00:29:08.490 --> 00:29:12.070
But what's on that activity diagram is going to be a little different.

00:29:13.110 --> 00:29:16.610
Depending on whether you're treating your use case as a system function.

00:29:17.270 --> 00:29:20.590
Or whether you're treating your use case as a scenario.

00:29:25.290 --> 00:29:27.350
So I'm not hearing any comments.

00:29:27.730 --> 00:29:28.290
I don't know.

00:29:28.810 --> 00:29:30.890
I don't know what you're thinking about this lecture but.

00:29:32.470 --> 00:29:33.790
I'm just going to continue with it.

00:29:33.790 --> 00:29:36.490
You can tell me after the lecture what you thought about it.

00:29:36.790 --> 00:29:39.530
Or you can interrupt me at any point.

00:29:40.530 --> 00:29:41.050
So.

00:29:41.930 --> 00:29:44.690
And I kind of mentioned this during the requirements chapter.

00:29:44.690 --> 00:29:49.630
Is when you're putting your requirements together.

00:29:51.250 --> 00:29:54.390
You don't want the requirements to be all full of holes.

00:29:56.370 --> 00:29:57.090
It's.

00:29:59.350 --> 00:30:02.390
It causes a lot of trouble if your requirements.

00:30:03.530 --> 00:30:04.710
Are incomplete.

00:30:06.370 --> 00:30:10.950
And if you don't analyze the sunny day and rainy day.

00:30:11.550 --> 00:30:13.110
Behavior in your use cases.

00:30:14.070 --> 00:30:16.010
Then you're going to get Swiss cheese.

00:30:18.330 --> 00:30:20.570
So you're really not done.

00:30:21.050 --> 00:30:22.110
If you haven't considered.

00:30:23.190 --> 00:30:24.190
The rain nation areas.

00:30:24.550 --> 00:30:26.190
Mark you're going to say something.

00:30:26.550 --> 00:30:28.470
Sorry you have that activity diagram was interesting.

00:30:28.570 --> 00:30:30.030
I have not seen that before.

00:30:30.570 --> 00:30:33.090
The structured branching.

00:30:33.590 --> 00:30:34.890
To handle the fail.

00:30:35.810 --> 00:30:36.890
The rich capture fail.

00:30:37.970 --> 00:30:41.170
Yeah so I actually there's a feature in cameo.

00:30:41.730 --> 00:30:47.090
That no one ever talks about and no one ever uses because the feature itself.

00:30:47.710 --> 00:30:48.230
Is buddy.

00:30:49.410 --> 00:30:53.710
I'm going to show it to you and then I'll suggest that you don't use it to draw your activity diagrams.

00:30:54.050 --> 00:30:57.210
But it actually generates them this way.

00:31:01.490 --> 00:31:02.010
So.

00:31:02.750 --> 00:31:05.890
If you don't write your use cases to consider.

00:31:07.550 --> 00:31:08.690
Alternate and exception behavior.

00:31:09.950 --> 00:31:11.930
You're going to miss all these requirements.

00:31:14.010 --> 00:31:15.890
And you can try this prompting yourself.

00:31:19.110 --> 00:31:22.530
But or you can take my word for it you miss a lot of stuff.

00:31:22.850 --> 00:31:24.970
If you don't consider your rainy day scenarios.

00:31:27.290 --> 00:31:28.530
You can also.

00:31:30.930 --> 00:31:35.590
Do your activity diagrams and put requirements on them.

00:31:36.750 --> 00:31:42.390
And then you can say you know if the position of my stage.

00:31:43.210 --> 00:31:44.550
Is not correct.

00:31:45.630 --> 00:31:47.790
I have to adjust that stage position.

00:31:48.190 --> 00:31:53.910
And I have a requirement here that says I need the ability to reposition the stage.

00:31:54.990 --> 00:31:57.090
And I can say that this thing.

00:31:57.230 --> 00:31:58.550
Refines that requirement.

00:31:58.550 --> 00:31:59.610
Okay.

00:32:01.750 --> 00:32:03.730
So you don't always have to put.

00:32:05.510 --> 00:32:10.490
The requirements on the activity diagrams but you certainly can if you want to verify.

00:32:11.490 --> 00:32:16.030
That you're covering all you know everything that you need to cover.

00:32:18.910 --> 00:32:22.410
You can also elaborate your use case.

00:32:23.690 --> 00:32:26.510
With a sequence diagram instead of an activity diagram.

00:32:27.670 --> 00:32:32.330
And if you do that in an object oriented design approach.

00:32:34.110 --> 00:32:37.610
It will help you link your.

00:32:39.030 --> 00:32:44.870
Functions to your box your operations and I'll show you later when we get into.

00:32:46.410 --> 00:32:47.630
Sequence diagram lecture.

00:32:49.570 --> 00:32:50.350
How to do this.

00:32:52.890 --> 00:32:56.710
But how I what I like to do is I like to use.

00:32:57.610 --> 00:32:59.870
The activity diagrams to.

00:33:00.850 --> 00:33:04.010
Make sure I've identified my alternate and exception behavior.

00:33:05.350 --> 00:33:07.630
And then I like to use sequence diagrams.

00:33:08.550 --> 00:33:11.590
To actually put that behavior on the appropriate blocks.

00:33:13.930 --> 00:33:14.570
So.

00:33:15.270 --> 00:33:16.230
Here's a template.

00:33:17.390 --> 00:33:19.790
That I like to use.

00:33:22.750 --> 00:33:22.870
And.

00:33:24.590 --> 00:33:27.310
Remember when I trained my agent Obi Wan.

00:33:28.690 --> 00:33:30.790
This is one of the books that I had him read.

00:33:32.290 --> 00:33:37.390
And then later I found the page number in that book and I said.

00:33:38.010 --> 00:33:39.990
See how the use case is written in this book.

00:33:40.570 --> 00:33:42.590
On page 270 whatever.

00:33:42.590 --> 00:33:46.090
I want you to always write your use cases that way.

00:33:47.330 --> 00:33:48.390
And I learned.

00:33:49.790 --> 00:33:50.610
Very quickly.

00:33:51.790 --> 00:33:52.710
And so now.

00:33:53.870 --> 00:33:56.530
In Obi Wan's training he knows.

00:33:58.150 --> 00:34:02.350
That whenever I ask him to write a use case narrative he's going to write it in this format.

00:34:04.030 --> 00:34:07.850
And just to understand what the format is.

00:34:10.690 --> 00:34:13.390
2A is an alternate off step 2.

00:34:13.550 --> 00:34:14.850
And after I finish 2A.

00:34:16.030 --> 00:34:17.890
It rejoins at step 3.

00:34:19.810 --> 00:34:22.930
4E is an alternate off step 4.

00:34:24.730 --> 00:34:26.850
And when it's resolved it rejoins.

00:34:28.130 --> 00:34:29.250
Back at step 4.

00:34:29.570 --> 00:34:30.590
And tries it again.

00:34:31.930 --> 00:34:35.850
So this format allows you to basically.

00:34:37.130 --> 00:34:41.630
Generate an activity diagram for your test team to use.

00:34:42.530 --> 00:34:46.550
Where they can step through all the branches of the use case.

00:34:47.310 --> 00:34:48.870
And test the system behavior.

00:34:50.610 --> 00:34:56.290
And you can do something as simple if you're training chat GPT.

00:34:56.770 --> 00:34:59.490
Yourself you can create a custom GPT file.

00:35:00.190 --> 00:35:03.770
Take a screenshot of this PowerPoint slide.

00:35:03.910 --> 00:35:09.030
A screenshot of the little white block with the format in it.

00:35:10.210 --> 00:35:14.750
And say I want you to use a template like this when you write a use case.

00:35:15.810 --> 00:35:17.370
And pretty much it will do it.

00:35:17.490 --> 00:35:20.130
So you can teach it.

00:35:20.130 --> 00:35:21.230
And you don't have to use my template.

00:35:21.270 --> 00:35:23.290
You can make a template for your own.

00:35:23.290 --> 00:35:27.430
Maybe you like to always show the preconditions and post conditions.

00:35:29.290 --> 00:35:32.710
But you can basically train AI to write use cases.

00:35:33.390 --> 00:35:35.730
In the style that you want them written in.

00:35:36.290 --> 00:35:37.630
And that's really pretty cool.

00:35:39.290 --> 00:35:42.850
Having trained some thousands of people on how to write use cases.

00:35:43.810 --> 00:35:45.230
It's a lot faster to train AI.

00:35:46.550 --> 00:35:49.130
Just like say do it like this.

00:35:49.510 --> 00:35:51.690
And it will figure it out and follow it.

00:35:51.690 --> 00:35:52.850
It will just write them in there.

00:35:54.190 --> 00:35:56.650
So AI is really cool for writing use cases.

00:35:58.250 --> 00:36:06.890
And the number one objection that people have to writing use cases is that it takes too freaking long.

00:36:08.570 --> 00:36:10.610
And it doesn't with AI.

00:36:10.670 --> 00:36:11.850
It will write them very quickly.

00:36:12.390 --> 00:36:13.910
Now you still have to check it.

00:36:18.210 --> 00:36:22.130
But it is a lot faster than starting from scratch.

00:36:23.210 --> 00:36:32.670
So another thing that you can do with it's not exactly part of use case modeling technically.

00:36:33.450 --> 00:36:36.410
But it kind of goes hand in glove with use case modeling.

00:36:37.530 --> 00:36:41.750
Is you can start asking it to identify all the screens of your system.

00:36:42.670 --> 00:36:45.670
And it will be just like show me the screens for image processing.

00:36:47.210 --> 00:36:51.170
And it will tell you exactly what screens you need.

00:36:51.690 --> 00:36:53.390
What each one of them is for.

00:36:55.130 --> 00:36:59.310
What kind of UI widgets you want on it if you want to do that.

00:37:00.630 --> 00:37:02.850
But it will tell you what screens to build.

00:37:06.250 --> 00:37:20.610
And it will make you wire frames or story boards of those screens if you just ask it to generate a wire frame using HTML, jQuery, mobile, and CSS.

00:37:24.050 --> 00:37:27.930
Because AI generates HTML very well.

00:37:30.570 --> 00:37:40.130
And jQuery, mobile has been around long enough that AI understands how to generate web pages with jQuery and HTML.

00:37:44.870 --> 00:37:57.410
So when you're modeling your use cases, especially if they're software use cases, it's really useful to let AI mock up your screens.

00:37:59.090 --> 00:38:07.410
And then you can check what's on this screen, like what buttons are on here.

00:38:08.090 --> 00:38:13.990
And what menu options are on the screen, all your user interface widgets.

00:38:15.590 --> 00:38:23.450
You can check that against the use case narrative and make sure that that's working the way you want it.

00:38:25.830 --> 00:38:30.370
So that's going to bring us to the last lab of the day.

00:38:32.790 --> 00:38:42.870
And that lab is going to be, to start with, to draw this use case diagram.

00:38:45.250 --> 00:38:55.010
So I'm going to go back over to Cameo and start doing that.

00:38:58.790 --> 00:39:01.270
And here's how we're going to do it.

00:39:03.050 --> 00:39:05.510
Use case diagram in the PowerPoint somewhere?

00:39:07.750 --> 00:39:10.430
Yeah, it is that slide.

00:39:12.170 --> 00:39:13.590
Slide, four of these.

00:39:14.290 --> 00:39:15.610
Okay, got it.

00:39:15.850 --> 00:39:16.830
Got it.

00:39:17.370 --> 00:39:18.210
Thank you.

00:39:18.670 --> 00:39:19.010
Yep.

00:39:22.510 --> 00:39:24.650
So here's how we're going to make this.

00:39:24.950 --> 00:39:29.430
We're going to, and actually Maria had a good idea, which is make sure your model is saved at this point.

00:39:30.130 --> 00:39:34.110
So hit the little floppy disk icon there.

00:39:34.670 --> 00:39:36.710
And then we'll save it again after this lab.

00:39:37.610 --> 00:39:43.930
So when we come back tomorrow, you'll have your conceptual model done pretty much.

00:39:47.130 --> 00:39:51.330
So we're going to create a new package in here.

00:39:53.110 --> 00:39:54.950
And we're going to call it Use Cases.

00:39:59.170 --> 00:40:05.190
And you'll notice, by the way, that my package structure is starting to fill up here.

00:40:06.710 --> 00:40:14.850
So now we're going to go make a use case diagram inside of that package.

00:40:15.590 --> 00:40:17.470
That's a SysML use case diagram.

00:40:20.790 --> 00:40:23.870
And then I'm going to count for you so you don't have to.

00:40:23.870 --> 00:40:30.050
We got five, ten, I got like 14 bubbles on there.

00:40:31.690 --> 00:40:34.450
So clearly this is a job for the sticky button.

00:40:42.110 --> 00:40:44.910
There is an alternative that's potentially faster.

00:40:46.810 --> 00:40:57.950
If you were to, if you had all those typed out, so it might be easier to type them out into a text file or Excel file or something like that, you can just copy and paste them in as use cases.

00:40:57.970 --> 00:41:01.490
That way you don't have to paste them in and then type in the names.

00:41:06.350 --> 00:41:09.630
I'm sure you're right, but I don't have them all typed out.

00:41:10.470 --> 00:41:24.490
And I want to show you how to write them anyway, which is something that most SysML training courses don't even bother to do is teach you how to actually write a use case, which of course bugs me no end.

00:41:31.950 --> 00:41:35.830
So now I've got my diagram kind of laid out here.

00:41:36.610 --> 00:41:43.510
And most of the time I'm just going to use regular associations to connect these guys.

00:41:53.790 --> 00:41:57.150
So we might as well start naming things.

00:42:00.550 --> 00:42:01.990
This is my operator.

00:42:04.710 --> 00:42:08.510
That is control instrument.

00:42:11.810 --> 00:42:19.670
This is process and analyze images.

00:42:26.230 --> 00:42:33.970
And there are a couple of other relationships that are the standard ones to use on use case diagrams.

00:42:33.970 --> 00:42:37.890
One is called include and the other is called extend.

00:42:40.290 --> 00:42:43.250
This diagram doesn't have any extends on it.

00:42:44.730 --> 00:42:47.670
But I'll probably show you how to use it anyway.

00:42:49.770 --> 00:42:59.270
Extends is one of the most confusing elements of use case modeling.

00:43:00.830 --> 00:43:10.330
Also, I don't know how much I've shown you the layout techniques, but if I haven't shown them to you, I can show them to you now.

00:43:11.010 --> 00:43:23.070
So on this layout menu item, I have an option to center all these vertically.

00:43:27.970 --> 00:43:34.970
And it's actually quite amazing, but neatness really does count in your SysML models.

00:43:37.030 --> 00:43:42.770
So it's a good idea to get into the habit of using those layout tools.

00:43:44.250 --> 00:43:50.970
So now I'm going to use include relationships between my top level use cases and the ones on this side.

00:43:50.970 --> 00:43:54.550
And I'm going to have a whole bunch of includes.

00:43:55.850 --> 00:43:59.050
And I'll explain to you what includes means in a minute.

00:44:00.190 --> 00:44:04.050
But I'm going to use my sticky button and draw these includes.

00:44:25.750 --> 00:44:32.810
One of the things that I hope comes out of this class is that you kind of come away with a feeling of

00:44:32.810 --> 00:44:38.270
how to be pretty efficient in drawing with Cameo.

00:44:42.070 --> 00:44:48.130
So it is perhaps a big enough exercise to do that.

00:44:48.670 --> 00:44:52.610
I got to go back and use regular associations for these two.

00:44:59.350 --> 00:45:01.370
It's getting close to the end of the day.

00:45:01.370 --> 00:45:03.050
I'm getting a little punchy here.

00:45:04.550 --> 00:45:06.470
But we'll be done in a few minutes.

00:45:09.810 --> 00:45:13.670
So we can manipulate the stage.

00:45:17.270 --> 00:45:20.150
We can select an imaging mode.

00:45:25.970 --> 00:45:34.330
So by using includes, what we're basically saying is that these use cases are kind of part of this use case.

00:45:38.650 --> 00:45:40.050
Okay.

00:45:53.570 --> 00:45:58.530
I had one I had one extra one.

00:46:27.030 --> 00:46:28.430
Okay.

00:46:30.150 --> 00:46:33.110
Looks like you're doing good.

00:46:38.110 --> 00:46:43.290
We'll give you a minute and then I'm going to show you how to use extends.

00:46:57.510 --> 00:46:58.290
All right.

00:47:02.850 --> 00:47:11.890
So I'm going to assume that you're either done or close enough to done to let me introduce

00:47:11.890 --> 00:47:13.810
something new here.

00:47:15.450 --> 00:47:24.330
So we kind of already introduced includes and that just means that these are parts of the higher level use case basically.

00:47:25.090 --> 00:47:37.030
The reason includes got the reason includes exist is mostly for reusing a scenario that's going to appear in multiple use cases.

00:47:37.030 --> 00:47:55.770
So that didn't happen in this case, but we can still use includes to do it extends tends to be a very confusing construct in in modeling use cases.

00:47:56.090 --> 00:48:00.330
But it's normally used for exception.

00:48:02.850 --> 00:48:16.450
And the best way I can give you to think about it is suppose I'm trying to store data here and my storage is full.

00:48:17.870 --> 00:48:18.370
Okay.

00:48:18.790 --> 00:48:23.750
Or maybe I'm trying to retrieve data and my connection is down.

00:48:24.590 --> 00:48:25.250
Okay.

00:48:25.250 --> 00:48:32.630
So those are two different ways that this use case might need to be extended.

00:48:33.250 --> 00:48:37.710
So I'm going to use extends and show you how to model that.

00:48:39.190 --> 00:48:43.350
So first of all, I'm going to make two use cases here.

00:48:45.690 --> 00:48:53.710
And I'm going to call them and all full storage.

00:48:58.070 --> 00:49:04.290
And recover from lost connection.

00:49:08.230 --> 00:49:12.710
So when you use extends, there's a concept called extension points.

00:49:14.110 --> 00:49:20.350
And it means that when you're writing this use case, you have to handle there.

00:49:20.370 --> 00:49:27.290
There's a point where this use case might get extended with whatever's in here, and it's not in your normal behavior.

00:49:28.310 --> 00:49:35.650
Sunny day scenario, but it's something that's going to require handling.

00:49:37.270 --> 00:49:43.630
So when you draw the extends, you generally draw it in the backwards direction from the includes.

00:49:44.750 --> 00:49:45.930
So let's see if I do this right.

00:49:46.070 --> 00:49:51.170
If I start this from here, I'm going to draw the arrow this way.

00:49:51.430 --> 00:49:54.670
I start from the child and I draw to the parent.

00:49:55.310 --> 00:49:59.090
Once I click, it says, hey, there's no extension point here.

00:49:59.530 --> 00:50:00.530
Do I want to add one?

00:50:00.550 --> 00:50:02.010
And I'm going to say yes.

00:50:03.390 --> 00:50:08.190
And the extension point is storage is full.

00:50:11.970 --> 00:50:20.770
And so the way you read this is that when I'm executing this use case,

00:50:20.770 --> 00:50:25.070
if I run into the condition that my storage is full,

00:50:25.910 --> 00:50:30.430
then I'm going to go jump into this extended use case for handling.

00:50:34.110 --> 00:50:40.770
So I'm going to do it once more just so you've seen it twice and you can try it.

00:50:41.510 --> 00:50:44.790
So now I'm going to recover from a lost connection.

00:50:46.650 --> 00:50:53.210
So I'm going to take my extends arrow, start it here, draw it there.

00:50:54.570 --> 00:50:57.730
And in this case, it's not the same extension point.

00:50:58.790 --> 00:51:00.530
So I have to create a new one.

00:51:01.810 --> 00:51:04.190
And this is connection loss.

00:51:08.590 --> 00:51:12.190
And now my use case has two extension points in it.

00:51:12.190 --> 00:51:17.450
One for when the storage is full and the other for when my connection is lost.

00:51:18.490 --> 00:51:24.110
And then how I handle that error condition is going to be described in here.

00:51:26.870 --> 00:51:33.930
I can't quite see if you guys have done that already.

00:52:13.050 --> 00:52:16.790
So this is going to be the last thing that we do today.

00:52:16.790 --> 00:52:33.150
Okay, I think in the slides we've kind of written out the detail for this acquire images use case.

00:52:35.010 --> 00:52:45.690
And so I want to show you how you can go and specify that.

00:52:45.690 --> 00:52:48.750
You guys all done with extends at this point?

00:52:51.150 --> 00:52:51.510
Okay.

00:52:54.270 --> 00:52:55.950
So let's go do acquire images.

00:52:59.630 --> 00:53:03.650
So now we get a bunch of options.

00:53:08.950 --> 00:53:10.770
So I've opened up the use case spec.

00:53:13.030 --> 00:53:22.190
And probably what you're going to wind up doing is just typing the use case in here in this documentation.

00:53:22.390 --> 00:53:32.770
I do want to show you this other feature and then I'm going to recommend that you don't really use it very much or you don't use all of it.

00:53:33.920 --> 00:53:40.020
And I'll show you how to use it and then tell you that unfortunately the tool is buggy.

00:53:42.720 --> 00:53:49.320
And if you use this this feature, it's kind of at your own risk and I don't recommend it.

00:53:49.440 --> 00:53:54.400
But I'm going to open up this thing called the use case scenario sketch.

00:53:55.880 --> 00:54:06.040
And the reason it's worth showing you is that this is actually the right idea about how to specify use cases.

00:54:07.620 --> 00:54:10.540
Unfortunately, their implementation is pretty flawed.

00:54:11.900 --> 00:54:14.000
I'm going to show you how to do it anyway.

00:54:18.080 --> 00:54:21.560
Because I'd rather you know how to think about writing a use case.

00:54:21.560 --> 00:54:28.360
And then once you understand how to think about it, you can just go back and write it in here.

00:54:31.560 --> 00:54:42.720
I have not heard, but this is my first time using 2024 so we can find out.

00:54:43.520 --> 00:54:57.640
I I suspect it hasn't because I actually met like the so project manager for cameo over at that and cozy conference in Hawaii about a year and a half ago.

00:54:58.600 --> 00:55:03.480
And I kind of leaned on him a little bit saying, hey, this feature is almost really great.

00:55:03.580 --> 00:55:04.540
Can you fix it?

00:55:05.060 --> 00:55:09.300
And he was sort of like, no, nobody writes use cases anyway.

00:55:09.460 --> 00:55:10.040
We don't want to bother.

00:55:10.520 --> 00:55:12.260
We got more important stuff to do.

00:55:12.800 --> 00:55:17.300
So I don't really expect it to be fixed, but we'll try it and see.

00:55:20.400 --> 00:55:26.560
And so now what we're going to do and again, I'm working kind of from from here.

00:55:26.600 --> 00:55:29.060
I wonder if I can leave this on the screen.

00:55:35.380 --> 00:55:38.040
Maybe I can leave it on the screen.

00:55:40.960 --> 00:55:43.460
Well, at least if I do it this way, I can just pop back and forth.

00:55:44.480 --> 00:55:48.260
So I want these seven steps in my basic course.

00:55:49.600 --> 00:55:52.520
And if I use this feature, it's going to number them for me.

00:55:53.940 --> 00:55:56.840
So I'm going to click plus in here.

00:55:56.840 --> 00:56:02.700
And it says the S.M. operator initiates the acquired images.

00:56:03.160 --> 00:56:15.100
And I'm going to hit plus again.

00:56:17.460 --> 00:56:20.720
And it says the system prepares the imaging subsystem.

00:56:29.360 --> 00:56:31.840
But kind of just keep hitting plus here.

00:56:34.180 --> 00:56:36.660
And you notice it's numbering these steps automatically.

00:56:41.600 --> 00:56:44.660
And now it says.

00:56:54.220 --> 00:56:55.660
Imaging parameters.

00:56:59.560 --> 00:57:03.360
It has a system validates the parameters.

00:57:09.880 --> 00:57:14.040
So I'm going to pause here.

00:57:16.760 --> 00:57:22.160
And now, if I go back and look at my description.

00:57:24.120 --> 00:57:25.440
Add this.

00:57:25.520 --> 00:57:33.160
This behavior, which says it's an alternate flow, but it's really an error message.

00:57:33.200 --> 00:57:34.680
So it's really an exception flow.

00:57:34.680 --> 00:57:35.920
OK.

00:57:37.900 --> 00:57:43.500
And so what I'm going to do is with step four selected.

00:57:45.520 --> 00:57:53.600
I'm going to select that and then go to exception flow here.

00:57:55.080 --> 00:57:59.380
And now I can add the type or a step.

00:58:00.340 --> 00:58:02.800
So the type is invalid parameters.

00:58:12.460 --> 00:58:15.800
Now I can specify the step here.

00:58:18.520 --> 00:58:27.800
And the step is operator fixes the parameters.

00:58:32.380 --> 00:58:36.340
And then my next step is going to be.

00:58:41.920 --> 00:58:43.340
Rejoin at step five.

00:58:55.780 --> 00:58:57.900
So now I've done this.

00:58:58.300 --> 00:59:04.520
And now I'm going to show you what would be really cool about this particular feature if it worked right.

00:59:06.040 --> 00:59:07.620
But this is where it's buggy.

00:59:07.620 --> 00:59:11.640
OK, so if I click open and update here.

00:59:13.160 --> 00:59:16.020
What it's done is it's actually created.

00:59:17.780 --> 00:59:18.840
This activity diagram.

00:59:21.960 --> 00:59:22.600
So.

00:59:24.280 --> 00:59:28.580
What's cool about it is that I only have to type it once and it actually creates a diagram.

00:59:30.500 --> 00:59:31.180
Unfortunately.

00:59:33.420 --> 00:59:34.780
It is.

00:59:36.120 --> 00:59:36.980
Kind of.

00:59:38.980 --> 00:59:41.160
Almost correct, but not really correct.

00:59:41.660 --> 00:59:46.360
OK, so it'll say rejoin at step five, which would be here.

00:59:47.420 --> 00:59:51.860
But if I try to actually correct this diagram to have this link up here.

00:59:52.840 --> 00:59:55.640
It's liable to mess up my use case text.

00:59:55.640 --> 00:59:56.800
OK.

00:59:58.180 --> 01:00:06.220
And if you do any kind of serious editing on this diagram, it's liable to crash cameo and.

01:00:07.200 --> 01:00:08.580
Destroy your use case text.

01:00:09.800 --> 01:00:12.400
So because of that reason.

01:00:13.960 --> 01:00:18.580
I kind of recommend that you don't use this, even though it's kind of.

01:00:18.940 --> 01:00:21.900
Very tantalizingly close to working correctly.

01:00:23.380 --> 01:00:26.640
This capability is something that.

01:00:28.600 --> 01:00:32.940
I don't know if you know about sparks enterprise architect, but it's sort of a competitive.

01:00:34.600 --> 01:00:39.380
Tool to cameo and when I wrote my book design driven testing.

01:00:40.720 --> 01:00:44.120
Which I think I have the book cover here in my slides.

01:00:47.120 --> 01:00:52.480
I actually went down to Australia and met with the sparks people.

01:00:54.580 --> 01:00:55.260
And.

01:00:56.920 --> 01:00:58.320
I guess I don't have it there.

01:00:59.400 --> 01:01:02.900
But they actually built this capability to generate.

01:01:04.000 --> 01:01:06.840
An activity diagram from the use case text in sparks.

01:01:06.880 --> 01:01:09.280
They call it a structured scenario.

01:01:11.180 --> 01:01:14.380
And the sparks implementation of this works correctly.

01:01:15.820 --> 01:01:18.180
So I kind of tried to copy that feature.

01:01:19.080 --> 01:01:21.520
And then I suppose just lost patience.

01:01:22.480 --> 01:01:24.640
With it and never really finished it correctly.

01:01:26.920 --> 01:01:27.520
So.

01:01:29.280 --> 01:01:30.960
It's a really cool idea.

01:01:32.380 --> 01:01:35.360
But I sort of recommend that.

01:01:37.000 --> 01:01:39.840
Instead of and now by the way.

01:01:40.200 --> 01:01:43.580
I just go straight to the activity diagram if I click on that.

01:01:43.920 --> 01:01:47.280
So to get into this use case specification I have to go back here.

01:01:48.560 --> 01:01:51.220
It will let you.

01:01:53.780 --> 01:01:55.180
Change the text here.

01:01:56.220 --> 01:01:58.380
So if I click on for.

01:01:59.540 --> 01:02:01.440
Exception you see it's there.

01:02:01.440 --> 01:02:04.980
I click on two it's not if I click on four it is.

01:02:05.020 --> 01:02:08.100
So this is a really good way to think about use cases.

01:02:09.560 --> 01:02:13.540
And if cameo worked better it would be a really great feature to use.

01:02:15.000 --> 01:02:15.480
But.

01:02:16.440 --> 01:02:18.080
The world being what it is.

01:02:18.240 --> 01:02:24.160
It's kind of like I can show it to you but not really recommend that you use it.

01:02:24.620 --> 01:02:27.800
I would recommend that you write the use case in this format.

01:02:28.700 --> 01:02:31.280
And you just do it here in the documentation.

01:02:32.800 --> 01:02:36.500
And I wouldn't number any of your steps until the end.

01:02:38.580 --> 01:02:42.500
And I kind of write it in a block of English.

01:02:44.080 --> 01:02:47.120
Just that looks like.

01:02:49.620 --> 01:02:49.940
That.

01:02:55.300 --> 01:03:03.300
You know from here you can draw an activity by hand an activity diagram by hand pretty easily.

01:03:05.420 --> 01:03:06.080
And.

01:03:07.900 --> 01:03:09.960
It's the best guidance I can give you.

01:03:10.220 --> 01:03:12.580
I can't in good conscience.

01:03:13.540 --> 01:03:17.680
Tell you to use this feature because I think you'll wind up unhappy.

01:03:18.400 --> 01:03:25.140
And I don't want you unhappy with me for telling you how to you know that you should use a buggy feature of cameo.

01:03:25.480 --> 01:03:31.920
But it is really in my estimation the correct way to think about use cases.

01:03:36.060 --> 01:03:39.740
So that is all I plan to cover for today.

01:03:39.940 --> 01:03:42.060
We are nine minutes.

01:03:43.080 --> 01:03:44.080
Before five.

01:03:45.800 --> 01:03:48.800
I'm going to stop sharing my screen.

01:03:52.040 --> 01:03:56.560
And then if there is anything else you would like to cover.

01:03:58.460 --> 01:04:00.300
I'm happy to chat about it.

01:04:01.500 --> 01:04:03.700
I really wish I could tell you that feature worked.

01:04:05.080 --> 01:04:09.420
Because it would be really cool if the feature worked but it almost works.

01:04:10.600 --> 01:04:15.920
Sometimes almost working is better than not working at all.

01:04:18.820 --> 01:04:27.440
I feel like it would be just one more parallel option that would kind of compete with sequence diagrams and activity diagrams.

01:04:27.440 --> 01:04:31.560
And there's just so many, you know, so many diagrams and views that you can create.

01:04:32.260 --> 01:04:43.280
You know, the same thing that just becomes this massive program with all these different opportunities and options for representing a system that, you know,

01:04:43.440 --> 01:04:48.440
makes it difficult and I guess very artistic in which way you decide to go.

01:04:49.440 --> 01:04:53.860
Yeah, well, if it worked right, it would save you a ton of time drawing activity diagrams.

01:04:54.860 --> 01:04:59.580
Because it does generate the activity diagrams from the use case narrative.

01:05:01.180 --> 01:05:12.560
But because it doesn't work right, generating these case diagrams is not quite viable.

01:05:14.140 --> 01:05:20.140
So you can basically draw your use case diagrams by your activity diagrams by hand.

01:05:21.840 --> 01:05:32.280
But you're better off, in my brain, you're better off writing the use case in that style and then using that to draw your activity diagrams from.

01:05:34.100 --> 01:05:35.740
That's how I would do it.

01:05:37.160 --> 01:05:40.100
But, you know, I have another comment slash question.

01:05:40.320 --> 01:05:48.420
You mentioned earlier that, you know, people spend a lot of, when they do the functional decomp, that's something that I know our company does a lot.

01:05:48.420 --> 01:05:55.780
You know, you just get into this endless cycle of decomposing activities into lower level activities, into lower level activities.

01:05:56.760 --> 01:06:10.300
And then at some point, you know, for us, we're trying to cut off drawing these lower level activities into, okay, now the next level of lower level activities are going to be software activities.

01:06:10.300 --> 01:06:20.440
Do you have any thoughts on that? To me, it's just, it is this ever extending arm of activities that just goes, you know, in levels deep.

01:06:21.860 --> 01:06:30.700
Yeah, well, a lot of your activities are going to be software activities, and they don't necessarily have to be very deep down the tree.

01:06:32.880 --> 01:06:46.460
But what's what takes a lot of time in cameo is once you start putting object flows on your activity diagrams, then it puts pins on all the activities.

01:06:47.280 --> 01:06:55.780
And then you have to name all your pins with input data and output data, and they get propagated onto the child diagrams as activity parameters.

01:06:57.300 --> 01:07:06.400
And you're spending all this time thinking about inputs and outputs. And that's where it starts to chew up lots and lots of your time.

01:07:07.820 --> 01:07:14.380
So it may be that even, you know, your higher level activities are software activities.

01:07:16.620 --> 01:07:24.960
But there's faster ways to figure out your input and output parameters than doing it with object flows, pins and activity parameters.

01:07:25.580 --> 01:07:31.700
The pain level goes up a lot when you start putting object flows on your activity diagrams.

01:07:33.200 --> 01:07:38.540
So what would you suggest as an example to, you know, as a more efficient way, that's definitely something we have a problem with.

01:07:38.540 --> 01:07:48.020
Because, you know, once you start doing that, especially when you have a whole lot of modelers in there, and somebody goes through an object, updates one object flow on one diagram,

01:07:48.080 --> 01:07:53.420
and then that causes a problem on the next level up and the next level down, and then you got to go through and modify it on that.

01:07:53.480 --> 01:07:56.920
What that causes, you know, just pushes that error all the way up and all the way down.

01:07:58.140 --> 01:08:01.840
Yeah, and you spin your wheels literally for months on that stuff.

01:08:04.480 --> 01:08:09.680
And I wish I was exaggerating when I say months, but I'm not.

01:08:10.100 --> 01:08:12.380
Okay. You can spin your wheels on that for a long time.

01:08:12.660 --> 01:08:20.440
So the way I do it personally is I don't put object flows on my activity diagrams at all.

01:08:20.760 --> 01:08:21.900
I just use control flows.

01:08:22.780 --> 01:08:30.900
And that's kind of back to the original intent of activity diagrams, which is kind of like to put a little flow chart in there.

01:08:31.400 --> 01:08:37.620
Right. And so it's kind of a radical proposal maybe to some people.

01:08:39.060 --> 01:08:46.000
But you'd be amazed how many problems it solves if you don't put the object flows on the activity diagrams at all.

01:08:46.680 --> 01:08:52.740
Then you don't have the input pins, you don't have the output pins, you don't have the activity parameters.

01:08:55.480 --> 01:09:05.900
And when you turn your activity into an operation, you just put in the parameter list of that activity, what are the inputs and what are the outputs.

01:09:07.800 --> 01:09:22.260
And I'm actually kind of right now, my co-author Brian and I are actively considering writing another book, which is going to be called Pain-Free MBSC.

01:09:23.100 --> 01:09:35.260
Okay. And that's one of the things we're going to propose in Pain-Free MBSC is since this is where you burn all the schedule time, just don't do it.

01:09:38.080 --> 01:09:51.520
That's a great idea. If you can somehow get a hold of money saved by using that approach, I would love to use that as ammunition to change the system.

01:09:52.520 --> 01:09:57.320
Well, it's going to be different for every company and they're probably not going to share that data with me.

01:09:57.320 --> 01:10:08.340
But, you know, if you just kind of think about it intuitively, do you need to specify your inputs and outputs? Yes, of course you do.

01:10:09.160 --> 01:10:18.920
Do you need to do that on activity diagrams with object flows, pins and activity parameters? No, there's other ways that you can specify the inputs and outputs to your functions.

01:10:19.900 --> 01:10:30.060
That is the slowest and most painful way that I know to specify inputs and outputs. And it's because, you know, I'm a software guy, right?

01:10:30.080 --> 01:10:44.200
And as a software guy, you would just never do that. You would never draw a diagram because just to specify an input parameter, okay, I have to rename the input pin.

01:10:45.260 --> 01:10:57.160
And then I have to go and, you know, look at a child diagram. And then I have to give it, you know, a type. And it just freaking takes forever.

01:10:59.540 --> 01:11:09.000
Okay. So, you know, and then what you get, and it's just what Daniel is describing, you get all these item flow violations.

01:11:09.660 --> 01:11:17.960
And somebody renames one somewhere and everything breaks. And everybody's just like running around.

01:11:18.240 --> 01:11:28.660
I'm going to use a politically incorrect term, if you'll forgive me for using it. But we used to call this a Chinese fire drill.

01:11:28.660 --> 01:11:38.200
Okay. And it's like everybody's running around fixing these errors. And it wastes incredible amount of time.

01:11:39.240 --> 01:11:48.460
So for me, I like doing activity diagrams. And I kind of just say no to the object flows, right?

01:11:49.460 --> 01:12:00.020
I just think that in theory, it's a good idea to do all this with object flows and activity parameters in practice.

01:12:01.140 --> 01:12:09.040
It takes forever. So I'm kind of radical, you know, about some things.

01:12:09.040 --> 01:12:22.240
And but what I've been thinking recently, and this is kind of a new idea, like a couple of days old, to write this thing called pain-free MBSC.

01:12:23.400 --> 01:12:35.800
It sort of hatched on me when I was teaching, I was in New Mexico last week teaching an on-site class because I'm doing some teaching for Caltech now and they sent me out there.

01:12:37.560 --> 01:12:41.740
And I was kind of going through this with people.

01:12:42.120 --> 01:12:50.760
And then somewhere as the class was wrapping up that day, one of my students said something about, oh, you have this nice pain-free way of doing it.

01:12:51.840 --> 01:13:02.640
And I was actually on the airplane flying home. And it dawned on me that pain-free MBSC has kind of a nice sound to it.

01:13:03.300 --> 01:13:21.100
And I thought, well, maybe it's time for the next book and maybe the next book is pain-free MBSC because there's a similar thing that you'll see with IBDs where there's a way to avoid wasting all your time with IBDs.

01:13:21.100 --> 01:13:40.080
And it's, you know, my experience is I taught hundreds of people at Boeing and other companies teaching from DeSoe course materials, from Boeing course materials, from Enola course materials.

01:13:40.840 --> 01:13:52.760
And everybody always got stuck in the same places. And it's usually with the object flows and it's usually with item flows on IBDs.

01:13:53.140 --> 01:14:05.560
And we'll talk about that one tomorrow because it's when people try to do their item flows and they haven't defined their interface blocks, they get in trouble and they wind up chasing their tail around item flows again.

01:14:08.680 --> 01:14:18.040
But that's, you know, when I've taught classes like this where we have labs, I know where all the students get stuck.

01:14:18.120 --> 01:14:25.500
And then when I worked at that company with Brian, they didn't really know what to do with me when they hired me.

01:14:25.500 --> 01:14:31.440
So they put me on helping a couple projects clean up item flow violations.

01:14:32.420 --> 01:14:40.380
And it was just horrific. You know, they would give me these diagrams all full of red ink and tell me like, go fix all these violations.

01:14:42.900 --> 01:14:50.160
And I tried to say, you know, you can evaluate all of these item flow violations, but they didn't want to hear it.

01:14:50.160 --> 01:14:55.620
So I wound up not working at that company very long, but happily I met Brian when I was working there.

01:14:57.760 --> 01:15:10.460
But there's like two or three places in System L where the practices people follow result in 80 percent of the wasted modeling time.

01:15:12.160 --> 01:15:21.020
And so when I built this course, I left out those places where you get stuck.

01:15:22.040 --> 01:15:25.160
I just didn't put them in the methodology and the process at all.

01:15:26.220 --> 01:15:37.260
And those are the two main ones. One is the object flows on activity diagrams and the other is trying to do item flows before you defined all your interface blocks on IBDs.

01:15:37.260 --> 01:15:42.860
And I'm telling you, 80 percent of the trouble with the System L models come in those two places.

01:15:46.680 --> 01:15:58.900
Well, you know, I always write books when I when I have a battle to fight and I don't want to, you know, go butt heads with anybody.

01:15:58.900 --> 01:16:01.420
I just write another book. This is my ninth one.

01:16:01.960 --> 01:16:19.860
So, you know, so you can do it the pain free way or you can add your pain back in if you're really, you know, so so in love with the painful way of doing things that you can't give it up.

01:16:20.700 --> 01:16:22.800
But it really doesn't buy you anything extra.

01:16:22.940 --> 01:16:26.020
You still get the inputs and outputs on your functions.

01:16:27.640 --> 01:16:29.960
You just do it in a less painful way.

01:16:31.560 --> 01:16:33.240
Thank you. Yeah.

01:16:33.240 --> 01:16:36.940
So I hope that helps. We are four minutes after five.

01:16:37.600 --> 01:16:41.180
So I think it's it's time for us to wrap up.

01:16:42.440 --> 01:16:50.020
We'll pick up tomorrow again at same time at 10 o'clock and we'll start talking about logical architecture.

01:16:53.540 --> 01:16:57.420
And we'll go from that domain model into a logical architecture.

01:16:57.620 --> 01:17:05.340
That's the third place where people waste a lot of time is trying to do logical architecture on a black box.

01:17:06.880 --> 01:17:10.560
It's like I have this black box. Tell me what the architecture is.

01:17:12.260 --> 01:17:14.140
I knew that. That's hard. Right.

01:17:14.500 --> 01:17:16.700
So we'll do that the easy way tomorrow.

01:17:18.040 --> 01:17:19.960
Sounds good. Thank you very much.

01:17:20.500 --> 01:17:24.180
OK. You guys feel like this is on track?

01:17:24.260 --> 01:17:26.140
You getting useful information here?

01:17:26.180 --> 01:17:28.820
Yeah, I'm really, really enjoying the last 30 minutes.

01:17:28.860 --> 01:17:30.520
That was a great conversation.

01:17:31.800 --> 01:17:36.440
And you really have some some great ideas that would tremendously help us.

01:17:37.220 --> 01:17:46.540
Well, you know, the old cartoon, right, is the guy goes to the doctor and he says, doctor, every time I bang my forehead against the wall, it hurts.

01:17:47.820 --> 01:17:51.280
And the doctor says, well, stop banging your forehead against the wall.

01:17:52.140 --> 01:17:54.700
That's pretty much the way I teach this stuff. Right.

01:17:54.760 --> 01:17:59.800
It's like, don't do the things that cause you all the pain and you'll have less pain.

01:18:01.380 --> 01:18:02.480
So that's my two cents.

01:18:03.460 --> 01:18:04.100
Elena, you good?

01:18:05.560 --> 01:18:07.660
All right. We'll see you all in the morning.

01:18:08.080 --> 01:18:09.540
All right.

01:18:09.540 --> 01:18:15.620
Good night. Oh, save your cameo models before you before you leave.

01:18:16.580 --> 01:18:20.880
I'm going to leave my connection to that virtual machine open overnight.

01:18:21.820 --> 01:18:23.240
Save your cameo models.

01:19:02.460 --> 01:19:03.860
Thank you.

01:19:37.280 --> 01:19:38.680
Thank you.

01:20:18.920 --> 01:20:20.640
Thank you.

01:20:39.600 --> 01:20:39.660
Thank you.

01:21:09.680 --> 01:21:12.480
Thank you.

01:21:39.460 --> 01:21:40.720
Thank you.

01:22:18.920 --> 01:22:20.660
Thank you.

01:22:38.840 --> 01:22:40.680
Thank you.

01:23:09.700 --> 01:23:10.720
Thank you.

01:23:39.360 --> 01:23:40.800
Thank you.

01:24:08.540 --> 01:24:10.860
Thank you.

01:24:38.580 --> 01:24:40.720
Thank you.

01:25:18.940 --> 01:25:20.640
Thank you.

01:25:48.700 --> 01:25:50.640
Thank you.

01:26:10.340 --> 01:26:10.700
Thank you.

01:26:48.860 --> 01:26:50.620
Thank you.

01:27:18.920 --> 01:27:20.640
Thank you.

01:27:49.580 --> 01:27:50.600
Thank you.

01:28:18.860 --> 01:28:20.620
Thank you.

01:28:48.860 --> 01:28:50.620
Thank you.

01:29:09.560 --> 01:29:09.620
Thank you.

01:29:48.860 --> 01:29:50.620
Thank you.

01:30:03.860 --> 01:30:05.260
Thank you.

01:30:37.780 --> 01:30:38.140
Thank you.

01:31:09.540 --> 01:31:09.600
Thank you.

01:31:26.860 --> 01:31:28.260
Thank you.

01:31:49.260 --> 01:31:50.660
Thank you.

01:32:29.280 --> 01:32:32.260
Thank you.

01:32:36.340 --> 01:32:37.740
Thank you.

01:32:37.740 --> 01:32:38.180
Thank you.

01:32:38.880 --> 01:32:40.280
Thank you.

01:32:41.560 --> 01:32:42.960
Thank you.

01:32:42.960 --> 01:32:43.680
Thank you.

01:32:49.920 --> 01:32:51.320
Thank you.

01:32:51.320 --> 01:32:51.460
Thank you.

01:32:53.360 --> 01:32:54.880
Thank you.

01:32:56.380 --> 01:32:57.980
Thank you.

01:33:27.980 --> 01:33:30.960
to let him back into the fight.

01:33:31.520 --> 01:33:34.920
Pan presents Alexander with a bold plan of attack.

01:33:36.680 --> 01:33:39.880
While Laji fights his way towards Messina from the south,

01:33:40.460 --> 01:33:43.240
Pan will lead the 7th Army on a dramatic race

01:33:43.240 --> 01:33:45.160
towards the capital city of Palermo

01:33:45.160 --> 01:33:47.360
along the northern coast of the island.

01:33:48.660 --> 01:33:51.360
If taken, Palermo will offer the allied fleet

01:33:51.360 --> 01:33:53.320
a vital base of operations.

01:33:55.360 --> 01:33:59.320
Alexander doesn't trust the American capacity

01:34:00.420 --> 01:34:02.520
for waging war, really.

01:34:03.680 --> 01:34:06.020
But he's thinking, if I say no,

01:34:06.340 --> 01:34:07.320
I'm happy to do it anyway.

01:34:07.640 --> 01:34:09.340
So he says, okay, he says,

01:34:09.480 --> 01:34:11.580
you can take a reconnaissance force,

01:34:12.120 --> 01:34:13.720
which in military terms means

01:34:13.720 --> 01:34:15.520
a large scouting party.

01:34:15.880 --> 01:34:18.480
It's the beginning of what becomes

01:34:18.480 --> 01:34:20.060
a great sweeping movement

01:34:20.060 --> 01:34:20.900
towards Messina.

01:34:23.920 --> 01:34:26.580
Pan divides his forces into two major fronts.

01:34:27.180 --> 01:34:29.720
General Omar will lead one American corps

01:34:29.720 --> 01:34:32.060
to the north of the town of Nicosia,

01:34:32.360 --> 01:34:34.140
splitting the island in half.

01:34:34.860 --> 01:34:35.880
At the same time,

01:34:36.080 --> 01:34:37.800
a second corps of armor and infantry

01:34:37.800 --> 01:34:40.520
will begin on charge of Palermo itself,

01:34:40.880 --> 01:34:42.040
with Pan in the lead.

01:34:44.020 --> 01:34:46.080
The first capital we want to get access

01:34:46.080 --> 01:34:47.160
to a controlled country,

01:34:47.160 --> 01:34:49.520
taken by Patton, was a prize

01:34:49.520 --> 01:34:51.520
that George Patton could not

01:34:51.520 --> 01:34:52.920
have possibly imagined.

01:34:54.180 --> 01:34:55.780
If Patton's army succeeds,

01:34:56.200 --> 01:34:57.780
the capital city and the entire

01:34:57.780 --> 01:34:59.200
western half of Sicily

01:34:59.200 --> 01:35:00.800
will be in American hands,

01:35:01.140 --> 01:35:03.260
and victory will be his own redemption.

01:35:05.280 --> 01:35:07.040
Patton's army heads for Palermo,

01:35:07.340 --> 01:35:09.040
loaded for bear, and ready to meet

01:35:09.040 --> 01:35:10.180
the enemy in battle.

01:35:10.840 --> 01:35:12.880
Finally, Patton is leading the kind of attack

01:35:12.880 --> 01:35:15.000
he craves, a swift assault

01:35:15.000 --> 01:35:17.680
and a full strike on the heart of the enemy.

01:35:45.320 --> 01:35:47.080
...technology to prevent thieves from

01:35:47.080 --> 01:35:49.140
stealing your wallet and stealing your info.

01:35:49.400 --> 01:35:50.740
Having your information stolen

01:35:50.740 --> 01:35:52.520
is a nightmare, but with

01:35:52.520 --> 01:35:53.700
Slythmin, I know I'm going to die.

01:35:53.960 --> 01:35:56.500
With bunny clips, cash can easily fall out,

01:35:56.520 --> 01:35:58.200
but with the auto-locking Slythmin,

01:35:58.340 --> 01:36:00.580
your cards and money stay securely in place.

01:36:00.700 --> 01:36:02.800
Then just press the button to release the lock.

01:36:02.960 --> 01:36:04.780
Slythmin is ergonomically designed

01:36:04.780 --> 01:36:07.080
to optimize space and keep your belongings

01:36:07.080 --> 01:36:09.440
organized. It has a built-in cash clip

01:36:09.440 --> 01:36:11.100
and a flexible outer band

01:36:11.100 --> 01:36:12.920
to securely fit your additional cards

01:36:12.920 --> 01:36:15.100
and your extra cash. Even with everything

01:36:15.100 --> 01:36:17.320
you see here in the Slythmin, it's still

01:36:17.320 --> 01:36:19.100
ultra-thin. Both key wallets

01:36:19.100 --> 01:36:20.980
are fun and comfortable, but the Slythmin

01:36:20.980 --> 01:36:23.220
is so compact it fits in any size

01:36:23.220 --> 01:36:25.220
pocket. Plus, it keeps everything easy

01:36:25.220 --> 01:36:27.180
to access. The Slythmin holds everything

01:36:27.180 --> 01:36:28.740
from pictures to credit cards to

01:36:28.740 --> 01:36:31.060
driver's licenses. Yeah, it's still so

01:36:31.060 --> 01:36:32.620
fit. Same vibe I do,

01:36:32.800 --> 01:36:34.780
bent cards and damaged magnetic strips.

01:36:34.960 --> 01:36:36.900
Slythmin keeps them protected, gets

01:36:36.900 --> 01:36:38.920
crush resistant, and can really dig a

01:36:38.920 --> 01:36:40.560
beating. Similar wallets over

01:36:40.560 --> 01:36:43.140
$100. But color-clipped now

01:36:43.140 --> 01:36:45.400
against Slythmin were just $29.99.

01:36:45.740 --> 01:36:47.160
Over the next five minutes, they'll

01:36:47.160 --> 01:36:48.960
get an instant $10 discount.

01:36:49.120 --> 01:36:50.840
So it's only $19.99.

01:36:51.100 --> 01:36:52.840
But wait, due to pricing costs and

01:36:52.840 --> 01:36:54.760
supply chain shortages, this may be your

01:36:54.760 --> 01:36:56.740
last chance to get Slythmin at this

01:36:56.740 --> 01:36:58.820
low price. There's a strict limit of

01:36:58.820 --> 01:37:00.480
free Slythmin wallets, while supplies

01:37:00.480 --> 01:37:02.840
last. You still have time to get your very

01:37:02.840 --> 01:37:04.780
own Slythmin wallets, but you must

01:37:04.780 --> 01:37:06.140
act fast. Talk with

01:37:06.140 --> 01:37:07.800
order now. Call

01:37:07.800 --> 01:37:11.080
1-800-841-3505-05. Call

01:37:12.060 --> 01:37:13.180
businesslythminwallet.com.

01:37:13.340 --> 01:37:13.860
So call

01:37:13.860 --> 01:37:16.540
1-800-841-3505-05.

01:37:16.720 --> 01:37:17.980
Order now.

01:37:21.120 --> 01:37:21.680
Attention!

01:37:22.080 --> 01:37:23.740
If you or a loved one were diagnosed

01:37:23.740 --> 01:37:26.220
with mesothelioma or lung cancer

01:37:26.220 --> 01:37:27.600
after being exposed to

01:37:27.600 --> 01:37:29.440
asbestos, even if you smoked,

01:37:29.700 --> 01:37:31.700
call the victim's justice group now.

01:37:31.900 --> 01:37:33.780
You may be entitled to money damages.

01:37:34.000 --> 01:37:36.080
A $3,000,000 full-order trust fund

01:37:36.080 --> 01:37:38.320
has been set aside for mesothelioma and

01:37:38.320 --> 01:37:40.100
asbestos patients and their families.

01:37:40.240 --> 01:37:42.420
Since the 1970s, many companies

01:37:42.420 --> 01:37:44.300
did little or nothing to protect workers

01:37:44.300 --> 01:37:46.140
from dangerous asbestos exposure.

01:37:46.480 --> 01:37:48.320
Asbestos exposure can be devastating

01:37:48.320 --> 01:37:50.020
and may have occurred while performing

01:37:50.020 --> 01:37:51.760
work in these industries and trades

01:37:51.760 --> 01:37:53.880
listed on your screen. If you worked in

01:37:53.880 --> 01:37:55.740
many of these industries and were diagnosed

01:37:55.740 --> 01:37:57.880
with mesothelioma or lung cancer,

01:37:58.180 --> 01:37:59.860
call the victim's justice group now.

01:38:00.100 --> 01:38:02.120
The average mesothelioma claim is more

01:38:02.120 --> 01:38:04.180
than $1,000,000 and often

01:38:04.180 --> 01:38:06.060
received in less than a year.

01:38:06.260 --> 01:38:07.740
If you or someone you loved worked in

01:38:07.740 --> 01:38:10.300
many of these industries and trades listed on your screen

01:38:10.300 --> 01:38:12.560
and was later diagnosed with mesothelioma

01:38:12.560 --> 01:38:14.640
or lung cancer, even if you smoked,

01:38:14.840 --> 01:38:16.200
call the number on your screen

01:38:16.200 --> 01:38:18.440
right now to get the help and financial

01:38:18.440 --> 01:38:19.880
compensation you deserve.

01:38:25.120 --> 01:38:27.580
The M1A1A-1 main battle tank

01:38:27.580 --> 01:38:28.940
is one of the toughest

01:38:28.940 --> 01:38:30.840
and most lethal killing machines

01:38:30.840 --> 01:38:32.140
on the battlefield today.

01:38:32.140 --> 01:38:34.520
Yes, sir. It's main objective

01:38:34.520 --> 01:38:37.180
is to go out and rip holes in the enemy's armor

01:38:37.180 --> 01:38:39.040
like a can opener and then attack them.

01:38:39.420 --> 01:38:39.840
Fire!

01:38:52.140 --> 01:38:54.380
From the teachings of growth to the modern

01:38:54.380 --> 01:38:56.620
ruling, experience the soul

01:38:56.620 --> 01:38:58.820
that is based on modern materials.

01:39:05.360 --> 01:39:07.460
Just days after fighting his way

01:39:07.460 --> 01:39:09.040
off the beaches of Sicily,

01:39:09.380 --> 01:39:10.760
General George Patton's army

01:39:10.760 --> 01:39:12.100
is on the move.

01:39:12.400 --> 01:39:13.560
Leading an armored charge

01:39:13.560 --> 01:39:15.760
on the cattle city of Palermo.

01:39:18.160 --> 01:39:19.940
Albert Kessler has no intention

01:39:19.940 --> 01:39:21.420
of sacrificing the cream

01:39:21.420 --> 01:39:22.860
of Sicily.

01:39:23.180 --> 01:39:24.940
He orders the German forces

01:39:24.940 --> 01:39:26.080
back to the northeast

01:39:26.080 --> 01:39:28.120
to build on the high ground

01:39:28.120 --> 01:39:29.820
around Almeda.

01:39:30.900 --> 01:39:32.120
Now other

01:39:32.120 --> 01:39:34.500
tanks between Patton and Palermo

01:39:34.500 --> 01:39:35.940
are disheartened to be

01:39:35.940 --> 01:39:36.640
fully trained.

01:39:57.340 --> 01:39:59.940
But to the east, as the more

01:39:59.940 --> 01:40:01.900
rallying troops push farther inland,

01:40:02.240 --> 01:40:03.820
they once again come face to face

01:40:03.820 --> 01:40:04.880
with a hardened killer

01:40:04.880 --> 01:40:06.700
to return to battle positions.

01:40:08.840 --> 01:40:10.320
As the big red one

01:40:10.320 --> 01:40:12.260
fights its way through a small town,

01:40:12.680 --> 01:40:14.120
Andrew Jameson and his rifle

01:40:14.120 --> 01:40:15.500
continue to make their way

01:40:15.500 --> 01:40:16.980
up one of the narrow streets

01:40:16.980 --> 01:40:19.240
searching for enemy infantry.

01:40:21.580 --> 01:40:22.040
Suddenly,

01:40:22.280 --> 01:40:23.740
as they approach the town square,

01:40:24.060 --> 01:40:25.800
they run right into a Mark VI

01:40:25.800 --> 01:40:26.820
Tiger tank.

01:40:26.820 --> 01:40:29.220
We saw the AA

01:40:29.220 --> 01:40:30.200
coming out of that

01:40:30.200 --> 01:40:32.080
street before we saw the tank.

01:40:32.960 --> 01:40:34.140
So he comes out

01:40:34.140 --> 01:40:35.500
and he takes a look around,

01:40:35.680 --> 01:40:37.000
sees what's going on,

01:40:37.220 --> 01:40:38.160
and we're all down.

01:40:42.040 --> 01:40:43.240
Jameson's platoon leader

01:40:43.240 --> 01:40:44.360
calls for a bazooka

01:40:44.360 --> 01:40:46.800
to take the Tiger out.

01:40:47.400 --> 01:40:48.580
Thinking he might get him out,

01:40:48.820 --> 01:40:50.140
Jameson volunteers.

01:40:53.120 --> 01:40:54.080
Oh, that thing up there

01:40:54.080 --> 01:40:55.200
is so starved.

01:40:56.860 --> 01:40:58.060
So they hide that bazooka

01:40:58.060 --> 01:40:58.800
and unload it up.

01:41:03.080 --> 01:41:04.760
Jameson takes a position

01:41:04.760 --> 01:41:06.160
ready to hammer the Tiger

01:41:06.160 --> 01:41:08.080
with an explosive round from the bazooka.

01:41:09.340 --> 01:41:09.700
Suddenly,

01:41:10.080 --> 01:41:11.860
the turret slowly turns towards him.

01:41:12.280 --> 01:41:14.260
Jameson finds himself staring down

01:41:14.260 --> 01:41:15.360
at the Tiger's muscle.

01:41:17.940 --> 01:41:19.740
And I knew he saw me.

01:41:19.880 --> 01:41:21.460
So I take off the cover

01:41:25.360 --> 01:41:27.260
My role model tells us

01:41:27.260 --> 01:41:28.960
you want me to get your silver star now.

01:41:30.560 --> 01:41:31.040
Okay.

01:41:31.560 --> 01:41:33.080
That was an incident, wasn't it?

01:41:33.280 --> 01:41:33.780
Yeah.

01:41:34.140 --> 01:41:35.840
Go start your tank and see what I can do.

01:41:36.980 --> 01:41:37.780
Years later,

01:41:38.020 --> 01:41:39.760
American Union tanks and artillery

01:41:39.760 --> 01:41:42.740
come with a ring and cut loose on the Tiger.

01:41:47.940 --> 01:41:48.980
Another town

01:41:48.980 --> 01:41:50.260
falls to the G office

01:41:50.260 --> 01:41:51.700
of a big red line.

01:41:55.220 --> 01:41:56.680
60 miles west

01:41:57.320 --> 01:41:59.080
a black and silver heart

01:41:59.080 --> 01:42:01.300
is all sharing in its glitter heart.

01:42:05.180 --> 01:42:06.020
I mean,

01:42:06.380 --> 01:42:08.120
there's only a matter of time before you're going to give up.

01:42:08.520 --> 01:42:09.620
I mean, who's going to stop?

01:42:09.860 --> 01:42:12.300
George S. Patton.

01:42:13.780 --> 01:42:14.140
Friday,

01:42:14.280 --> 01:42:16.440
on July 23, 1943,

01:42:16.440 --> 01:42:18.460
four days after getting off

01:42:18.460 --> 01:42:20.680
on his cattle recharge, Patton

01:42:20.680 --> 01:42:22.000
had a tryout at 75

01:42:22.000 --> 01:42:23.320
Orange Hill, there.

01:42:46.440 --> 01:42:50.660
It has garnered great headlines.

01:42:51.560 --> 01:42:52.120
As Patton

01:42:52.120 --> 01:42:54.000
bests in the glory of his triumph,

01:42:54.400 --> 01:42:56.100
word reaches the allies from Italy.

01:42:56.420 --> 01:42:58.000
The dictator, Danito Mussolini,

01:42:58.180 --> 01:42:59.860
has been ruled from power by

01:42:59.860 --> 01:43:01.200
King Emmanuel III.

01:43:01.720 --> 01:43:04.200
Mussolini is under arrest and has been placed

01:43:04.200 --> 01:43:05.480
in an isolated prison.

01:43:06.280 --> 01:43:07.680
The Italian-German alliance

01:43:07.680 --> 01:43:08.520
is threatened.

01:43:11.240 --> 01:43:11.720
...

01:43:12.440 --> 01:43:12.880
...

01:43:20.520 --> 01:43:21.920
...

01:43:29.100 --> 01:43:30.500
...

01:43:32.080 --> 01:43:33.480
...

01:43:33.480 --> 01:43:35.080
...

01:43:35.080 --> 01:43:35.520
...

01:43:35.520 --> 01:43:36.560
...

01:43:36.560 --> 01:43:36.580
...

01:43:38.780 --> 01:43:40.180
...

01:43:40.180 --> 01:43:40.720
...

01:43:40.720 --> 01:43:42.820
...

01:43:42.820 --> 01:43:46.940
the battlefields of Sicily for himself and the U.S. Army.

01:43:48.140 --> 01:43:51.020
And once you have success, you get very hard stuff.

01:43:51.520 --> 01:43:55.220
And once you got happy with having success, it was impossible to stop.

01:43:56.240 --> 01:44:00.100
Despite the horrific friendly fire tragedy in the skies over Sicily,

01:44:00.460 --> 01:44:01.660
that can't be redeemed.

01:44:02.000 --> 01:44:05.400
In less than two weeks, we have led the largest American invasion

01:44:05.400 --> 01:44:06.860
of World War II yet.

01:44:08.040 --> 01:44:10.580
Faced off against the Tigers and the Herbans.

01:44:12.900 --> 01:44:15.240
Captured the Captain's second body.

01:44:16.940 --> 01:44:20.520
The battle for Sicily is just getting started.

01:44:22.740 --> 01:44:24.740
Most of the Germans have gotten by.

01:44:25.620 --> 01:44:28.160
And the reason for that is all wrong.

01:44:28.560 --> 01:44:36.100
The plan is to fight a retreat that falls back on a series of defenses.

01:44:39.780 --> 01:44:45.540
At last, Patton is ready to face whatever castlery and something you have to offer.

01:44:49.200 --> 01:44:51.860
In a letter to his wife, Beatrice, Patton writes,

01:44:52.580 --> 01:44:53.860
The war is far from over.

01:44:54.760 --> 01:44:56.800
We are going to end in a big way.

01:44:57.080 --> 01:45:00.040
I have not the least notion what will happen next time.

01:45:00.060 --> 01:45:02.900
But I don't care where men or women fight.

01:45:03.200 --> 01:45:04.580
So long as I keep fighting,

01:45:04.580 --> 01:45:07.640
it is the greatest of all games.

01:45:10.200 --> 01:45:11.400
In a matter of days,

01:45:11.960 --> 01:45:14.960
the Herbans' army will face their greatest challenge yet.

01:45:15.380 --> 01:45:17.180
As the battle for Sicily continues,

01:45:17.660 --> 01:45:19.680
its troops must go up against the Athali,

01:45:20.060 --> 01:45:22.860
50 miles off fortified enemy highland.

01:45:24.360 --> 01:45:27.940
Here, the Germans can block every move that they make.

01:45:29.320 --> 01:45:31.840
It will be a race to the finish line of the scene.

01:45:31.840 --> 01:45:34.680
The Herbans' army is digging in,

01:45:34.680 --> 01:45:37.020
ready for a final test.

01:45:41.460 --> 01:45:44.560
From the battlefront to the home front,

01:45:45.120 --> 01:45:48.080
the discrete conflict is well-being in Sicily.

01:45:48.220 --> 01:45:50.080
In studying the city line,

01:45:50.580 --> 01:45:51.580
in dramatic detail,

01:45:51.980 --> 01:45:56.020
I saw the heart and I saw the body.

01:45:56.740 --> 01:45:58.400
I knew the greatest dream.

01:46:35.100 --> 01:46:36.500
Thank you.

01:47:16.200 --> 01:47:16.260
Thank you.

01:47:59.740 --> 01:48:00.040
Thank you.

01:48:01.840 --> 01:48:04.040
Thank you.

01:48:51.600 --> 01:48:53.000
Thank you.

01:49:29.020 --> 01:49:31.820
Thank you.

01:49:45.940 --> 01:49:47.340
Thank you.

01:50:15.200 --> 01:50:16.600
Thank you.

01:50:45.160 --> 01:50:46.560
Thank you.

01:51:16.840 --> 01:51:16.900
Thank you.

01:51:48.740 --> 01:51:49.100
Thank you.

01:52:01.840 --> 01:52:02.660
Thank you.

01:53:01.840 --> 01:53:03.100
Thank you.

01:53:48.740 --> 01:53:49.100
Thank you.

01:54:20.520 --> 01:54:20.580
Thank you.

01:55:08.440 --> 01:55:11.240
Thank you.

01:55:53.620 --> 01:55:56.420
Thank you.

01:56:06.100 --> 01:56:08.900
Thank you.

01:56:46.200 --> 01:56:46.260
Thank you.

01:57:16.280 --> 01:57:16.340
Thank you.

01:58:12.700 --> 01:58:15.500
Thank you.

01:59:02.320 --> 01:59:06.780
Even when the North Africa and Russian fronts began to turn against them

01:59:06.780 --> 01:59:11.180
and millions of German bodies littered the desert sand and Russian plains,

01:59:11.740 --> 01:59:14.160
Hitler steadfastly ignored the obvious.

01:59:14.900 --> 01:59:19.420
His empire was overextended and had far too many powerful enemies.

01:59:21.880 --> 01:59:23.520
The German high command was so

01:59:23.520 --> 01:59:28.780
that Britain and the United States would eventually launch an attack on Medan, Europe.

01:59:28.780 --> 01:59:32.480
The question was never if, but only when.

01:59:36.620 --> 01:59:41.280
Despite intelligence reports about massive buildup of Allied troops in India,

01:59:41.800 --> 01:59:48.380
when D-Day came, Hitler's defenses along the French coast were unable to contain the advancing tide.

01:59:49.400 --> 01:59:53.260
In the initial assault, more than 6,000 Allied ships,

01:59:53.260 --> 02:00:00.300
13,000 aircraft, and over 160,000 troops swarmed across the English Channel.

02:00:01.180 --> 02:00:04.440
Within a month, a quarter of a million additional men

02:00:04.440 --> 02:00:08.060
and an equal number of vehicles were hammered into the water.

02:00:08.900 --> 02:00:13.600
With their efforts now split between the Allies in the West and the Russians in the East,

02:00:14.040 --> 02:00:18.000
the Germans simply could not resist the onrushing wave of destruction.

02:00:21.420 --> 02:00:26.220
Although it must have seemed like an eternity to the Brits and the Allies doing quite well,

02:00:26.620 --> 02:00:28.420
success came relatively fast.

02:00:29.060 --> 02:00:32.460
By the end of July, the Allies had broken out of Normandy.

02:00:33.460 --> 02:00:36.960
Now, British and Canadian forces drove through Belgium

02:00:36.960 --> 02:00:40.480
on their way to liberate the Dutch port of Antwerp.

02:00:41.000 --> 02:00:46.000
Simultaneously, the Americans fanned out east and northeast across central France

02:00:46.000 --> 02:00:48.260
towards Belgium and Luxembourg.

02:01:00.420 --> 02:01:07.420
On August 25, 1944, parrots were liberated after all the years of German occupation.

02:01:46.000 --> 02:01:49.860
By September the 3rd, less than three months after D-Day,

02:01:50.200 --> 02:01:51.960
Brussels was liberated by the British,

02:01:52.400 --> 02:01:56.400
and a week later, Americans reached Aachen and the German border.

02:01:57.600 --> 02:02:02.700
France had been free, and American troops were poised to cross the sea-free line,

02:02:03.220 --> 02:02:07.260
a massive wall of defensive works protecting the Germany's western border.

02:02:43.540 --> 02:02:43.660
This is the end of the video.

02:02:43.660 --> 02:02:43.700
Thank you for watching.

02:02:43.700 --> 02:02:45.840
See you next time.

02:02:52.780 --> 02:02:55.580
Thank you.

02:03:40.920 --> 02:03:43.720
Thank you.

02:03:51.480 --> 02:03:53.200
Thank you.

02:04:23.340 --> 02:04:25.220
Thank you.

02:04:39.880 --> 02:04:43.880
The Allied invasion is counting the Russian front

02:04:43.880 --> 02:04:46.400
and cost Germany more than a problem.

02:04:47.540 --> 02:04:51.160
The attacks field up and it's severely crippled the low bar.

02:04:55.960 --> 02:04:59.820
The German industry could no longer replace the lost equipment.

02:05:00.700 --> 02:05:03.220
Hitler's Germany was being led dry.

02:05:16.520 --> 02:05:19.380
This was the monster of shrieking military.

02:05:19.900 --> 02:05:23.780
Germany called on every man between the ages of 16 to 60

02:05:23.780 --> 02:05:26.880
and shrewdly into the fight to save the party.

02:05:29.200 --> 02:05:31.260
But still the Allies came.

02:05:47.420 --> 02:05:48.940
By the end of September,

02:05:49.280 --> 02:05:52.100
the British had opened the port of Antwerp to Allied shipping,

02:05:52.820 --> 02:05:54.280
and less than a month later,

02:05:54.740 --> 02:05:57.320
French troops moved through the Alsace region

02:05:57.320 --> 02:06:00.140
and stood on the backs of Germany's right wing.

02:06:06.680 --> 02:06:10.920
If the German infantry was not unwrapping fast enough in the field,

02:06:10.920 --> 02:06:14.720
strife in the high command only made matters worse.

02:06:16.700 --> 02:06:18.080
Three weeks after D-Day,

02:06:18.460 --> 02:06:19.740
General von Rundstedt,

02:06:19.960 --> 02:06:22.640
Hitler's commander of all troops in Western Europe,

02:06:23.100 --> 02:06:24.760
resigned in this case.

02:06:27.440 --> 02:06:28.440
Two weeks later,

02:06:28.700 --> 02:06:32.240
the massively popular General Erwin Rommel also resigned,

02:06:32.600 --> 02:06:34.780
leading German troops in occupied France

02:06:34.780 --> 02:06:37.200
with virtually no experience in the US.

02:06:48.580 --> 02:06:52.640
If Adolf Hitler could not reorganize his army within a few weeks,

02:06:53.060 --> 02:06:57.080
his thousand-year life would collapse before Rundstedt.

02:06:58.500 --> 02:07:01.980
But there was an array of hope next to the Saskatchewan party.

02:07:02.240 --> 02:07:05.080
If the Allied invasion sat straight from the journey,

02:07:05.660 --> 02:07:08.800
the speed of their advance would have stretched allies to by-lines

02:07:08.800 --> 02:07:10.240
and now passed to the Germans.

02:07:10.780 --> 02:07:10.900
The German army would have been defeated

02:07:10.900 --> 02:07:18.640
in the fall of 1915.

02:07:19.460 --> 02:07:21.380
Addy, to our left France,

02:07:21.700 --> 02:07:23.700
by September the days grew shorter

02:07:23.700 --> 02:07:26.620
and sunny weather returned constant rain,

02:07:26.880 --> 02:07:29.300
reducing their ability to keep pressure

02:07:29.300 --> 02:07:30.660
over the retreating Germans.

02:07:46.320 --> 02:07:56.600
In November, General George Patton's 3rd Army had reduced its number of missions from an August high of 12,000 a month to fewer than 3,500.

02:08:02.200 --> 02:08:10.640
Six months of relentless fighting in marching, followed by months of rain, slowed the Allied advance to a halt.

02:08:20.720 --> 02:08:26.640
Hard to believe you can get all this in just...

02:09:39.220 --> 02:09:40.620
...

02:09:45.700 --> 02:09:47.100
...

02:10:15.680 --> 02:10:17.080
...

02:10:25.300 --> 02:10:26.700
...

02:10:55.280 --> 02:10:56.680
...

02:11:45.260 --> 02:11:46.660
...

02:11:46.660 --> 02:11:47.860
...

02:12:16.440 --> 02:12:17.840
...

02:12:26.300 --> 02:12:27.700
...

02:12:56.280 --> 02:12:57.680
...

02:13:26.260 --> 02:13:27.660
...

02:13:56.240 --> 02:13:57.640
...

02:14:25.840 --> 02:14:27.240
...

02:14:34.040 --> 02:14:35.440
...

02:15:04.020 --> 02:15:05.420
...

02:15:34.000 --> 02:15:35.400
...

02:16:03.980 --> 02:16:05.380
...

02:16:05.380 --> 02:16:06.620
...

02:16:06.620 --> 02:16:07.660
...

02:17:16.240 --> 02:17:17.640
...

02:17:46.220 --> 02:17:47.620
...

02:17:47.620 --> 02:17:49.480
...

02:17:49.480 --> 02:17:50.300
...

02:18:38.880 --> 02:18:40.280
...

02:19:08.860 --> 02:19:10.260
...

02:19:38.840 --> 02:19:40.240
...

02:19:40.240 --> 02:19:40.260
...

02:19:40.260 --> 02:19:40.300
...

02:19:40.300 --> 02:19:42.240
...

02:19:42.240 --> 02:19:43.100
...

02:20:31.680 --> 02:20:33.080
...

02:21:01.660 --> 02:21:03.060
...

02:21:31.640 --> 02:21:33.040
...

02:22:01.620 --> 02:22:03.020
...

02:22:31.600 --> 02:22:33.000
...

02:23:01.580 --> 02:23:02.980
...

02:23:31.560 --> 02:23:32.960
...

02:23:52.720 --> 02:23:52.960
...

02:24:22.000 --> 02:24:23.400
...

02:24:51.980 --> 02:24:53.380
...

02:25:21.960 --> 02:25:23.360
...

02:25:51.940 --> 02:25:53.340
...

02:26:21.920 --> 02:26:23.320
...

02:26:23.320 --> 02:26:23.340
...

02:26:23.340 --> 02:26:23.360
...

02:27:21.920 --> 02:27:23.320
...

02:27:51.900 --> 02:27:53.300
...

02:28:21.360 --> 02:28:22.760
...

02:28:51.320 --> 02:28:52.720
...

02:28:52.720 --> 02:28:54.940
...

02:29:23.520 --> 02:29:24.920
...

02:29:50.760 --> 02:29:52.160
...

02:30:20.740 --> 02:30:22.140
...

02:30:50.720 --> 02:30:52.120
...

02:31:20.700 --> 02:31:22.100
...

02:31:50.680 --> 02:31:52.080
...

02:32:18.900 --> 02:32:20.300
...

02:32:48.880 --> 02:32:50.280
...

02:33:18.860 --> 02:33:20.260
...

02:33:48.840 --> 02:33:50.240
...

02:34:37.360 --> 02:34:38.760
...

02:35:07.340 --> 02:35:08.740
...

02:35:37.320 --> 02:35:38.720
...

02:36:07.300 --> 02:36:08.700
...

02:36:11.920 --> 02:36:13.320
...

02:36:20.820 --> 02:36:22.220
...

02:36:22.220 --> 02:36:23.040
...

02:36:51.560 --> 02:36:52.960
...

02:37:21.120 --> 02:37:22.520
...

02:37:27.900 --> 02:37:29.300
...

02:37:55.700 --> 02:37:57.100
...

02:38:25.680 --> 02:38:27.080
...

02:38:55.660 --> 02:38:57.060
...

02:39:25.640 --> 02:39:27.040
...

02:40:13.880 --> 02:40:15.280
...

02:40:43.860 --> 02:40:45.260
...

02:40:45.260 --> 02:40:46.400
...

02:41:14.980 --> 02:41:16.380
...

02:41:16.380 --> 02:41:17.820
...

02:41:39.500 --> 02:41:40.900
...

02:42:29.480 --> 02:42:30.880
...

02:42:38.660 --> 02:42:40.060
...

02:42:46.260 --> 02:42:47.660
...

02:43:15.560 --> 02:43:16.960
...

02:43:41.740 --> 02:43:43.140
...

02:44:05.440 --> 02:44:06.840
...

02:44:08.440 --> 02:44:09.840
...

02:44:20.560 --> 02:44:21.960
...

02:44:32.720 --> 02:44:34.120
...

02:45:02.700 --> 02:45:04.100
...

02:45:07.980 --> 02:45:09.380
...

02:45:37.960 --> 02:45:39.360
...

02:46:01.180 --> 02:46:02.580
...

02:46:31.160 --> 02:46:32.560
...

02:47:01.140 --> 02:47:02.540
...

02:47:31.120 --> 02:47:32.520
...

02:48:41.100 --> 02:48:42.500
...

02:49:11.080 --> 02:49:12.480
...

02:49:41.060 --> 02:49:42.460
...

02:50:11.040 --> 02:50:12.440
...

02:50:46.880 --> 02:50:48.280
...

02:50:55.340 --> 02:50:56.740
...

02:51:24.940 --> 02:51:26.340
...

02:51:54.920 --> 02:51:56.320
...

02:51:56.320 --> 02:51:57.100
...

02:52:25.680 --> 02:52:27.080
...

02:52:55.660 --> 02:52:57.060
...

02:53:22.160 --> 02:53:23.560
...

02:53:51.800 --> 02:53:53.200
...

02:54:21.780 --> 02:54:23.180
...

02:55:11.760 --> 02:55:13.160
...

02:55:41.740 --> 02:55:43.140
...

02:55:43.140 --> 02:55:43.980
...

02:56:31.900 --> 02:56:33.300
...

02:57:01.880 --> 02:57:03.280
...

02:57:31.860 --> 02:57:33.260
...

02:58:01.400 --> 02:58:02.800
...

02:58:31.380 --> 02:58:32.780
...

02:58:43.140 --> 02:58:44.540
...

02:59:02.980 --> 02:59:04.380
...

02:59:07.320 --> 02:59:08.720
...

02:59:11.580 --> 02:59:12.980
...

02:59:38.260 --> 02:59:39.660
...

03:00:08.240 --> 03:00:09.640
...

03:00:20.980 --> 03:00:22.380
...

03:00:28.360 --> 03:00:29.760
...

03:00:32.000 --> 03:00:33.400
...

03:00:34.840 --> 03:00:36.240
...

03:00:47.780 --> 03:00:49.180
...

03:00:49.180 --> 03:00:50.460
...

03:01:19.040 --> 03:01:20.440
...

03:01:30.180 --> 03:01:31.580
...

03:01:33.920 --> 03:01:35.320
...

03:01:35.320 --> 03:01:37.380
...

03:01:37.380 --> 03:01:38.620
...

03:02:35.960 --> 03:02:37.360
...

03:02:37.360 --> 03:02:40.040
...

03:03:08.620 --> 03:03:10.020
...

03:03:38.600 --> 03:03:40.000
...

03:04:08.580 --> 03:04:09.980
...

03:04:38.560 --> 03:04:39.960
...

03:04:39.960 --> 03:04:40.240
...

03:04:40.240 --> 03:04:41.020
...

03:05:29.600 --> 03:05:31.000
...

03:05:52.420 --> 03:05:53.820
...

03:06:04.460 --> 03:06:05.860
...

03:06:33.840 --> 03:06:35.240
...

03:06:47.320 --> 03:06:48.720
...

03:07:00.020 --> 03:07:01.420
...

03:07:12.980 --> 03:07:14.380
...

03:07:22.440 --> 03:07:23.840
...

03:08:03.840 --> 03:08:03.880
...

03:08:03.880 --> 03:08:05.120
...

03:08:33.700 --> 03:08:35.100
...

03:08:35.100 --> 03:08:36.860
...

03:08:36.860 --> 03:08:38.100
...

03:09:06.680 --> 03:09:08.080
...

03:09:36.660 --> 03:09:38.060
...

03:10:06.640 --> 03:10:08.040
...

03:10:36.620 --> 03:10:38.020
...

03:11:06.600 --> 03:11:08.000
...

03:11:08.000 --> 03:11:08.700
...

03:11:37.280 --> 03:11:38.680
...

03:11:46.820 --> 03:11:48.220
...

03:12:16.800 --> 03:12:18.200
...

03:12:18.200 --> 03:12:18.600
...

03:12:18.600 --> 03:12:18.660
...

03:12:42.560 --> 03:12:43.960
...

03:12:52.300 --> 03:12:53.700
...

03:13:22.280 --> 03:13:23.680
...

03:13:52.260 --> 03:13:53.660
...

03:14:22.240 --> 03:14:23.640
...

03:14:52.220 --> 03:14:53.620
...

03:15:22.200 --> 03:15:23.600
...

03:15:33.760 --> 03:15:35.160
...

03:16:03.740 --> 03:16:05.140
...

03:16:33.720 --> 03:16:35.120
...

03:17:03.700 --> 03:17:05.100
...

03:18:03.680 --> 03:18:05.080
...

03:18:33.660 --> 03:18:35.060
...

03:19:03.640 --> 03:19:05.040
...

03:19:53.620 --> 03:19:55.020
...

03:20:07.080 --> 03:20:08.480
...

03:20:37.060 --> 03:20:38.460
...

03:21:06.620 --> 03:21:08.020
...

03:21:36.600 --> 03:21:38.000
...

03:22:08.020 --> 03:22:09.420
...

03:22:09.420 --> 03:22:12.060
...

03:22:20.280 --> 03:22:21.680
...

03:22:31.660 --> 03:22:33.060
...

03:23:01.640 --> 03:23:03.040
...

03:23:31.620 --> 03:23:33.020
...

03:23:52.520 --> 03:23:53.020
...

03:24:21.800 --> 03:24:23.200
...

03:24:51.780 --> 03:24:53.180
...

03:25:13.180 --> 03:25:14.260
...

03:25:42.840 --> 03:25:44.240
...

03:26:12.820 --> 03:26:14.220
...

03:26:42.800 --> 03:26:44.200
...

03:27:12.780 --> 03:27:14.180
...

03:27:42.760 --> 03:27:44.160
...

03:28:12.740 --> 03:28:14.140
...

03:28:42.720 --> 03:28:44.120
...

03:29:10.160 --> 03:29:11.560
...

03:29:42.700 --> 03:29:44.100
...

03:30:12.080 --> 03:30:13.480
...

03:30:42.060 --> 03:30:43.460
...

03:30:43.460 --> 03:30:45.480
...

03:31:14.060 --> 03:31:15.460
...

03:31:44.040 --> 03:31:45.440
...

03:32:14.020 --> 03:32:15.420
...

03:32:15.420 --> 03:32:16.740
...

03:32:45.320 --> 03:32:46.720
...

03:33:08.900 --> 03:33:10.300
...

03:33:38.880 --> 03:33:40.280
...

03:34:28.880 --> 03:34:30.280
...

03:34:58.860 --> 03:35:00.260
...

03:35:10.340 --> 03:35:11.740
...

03:35:22.500 --> 03:35:23.900
...

03:35:52.480 --> 03:35:53.880
...

03:36:22.460 --> 03:36:23.860
...

03:36:52.440 --> 03:36:53.840
...

03:37:11.660 --> 03:37:13.060
...

03:37:41.640 --> 03:37:43.040
...

03:38:11.620 --> 03:38:13.020
...

03:38:13.020 --> 03:38:13.040
...

03:38:33.040 --> 03:38:33.800
...

03:38:36.040 --> 03:38:37.440
...

03:39:06.020 --> 03:39:07.420
...

03:39:36.000 --> 03:39:37.400
...

03:39:37.400 --> 03:39:37.420
...

03:39:37.420 --> 03:39:37.440
...

03:39:37.440 --> 03:39:37.460
...

03:39:37.460 --> 03:39:37.480
...

03:39:37.480 --> 03:39:37.500
...

03:40:19.680 --> 03:40:21.080
...

03:40:30.280 --> 03:40:31.680
...

03:40:31.680 --> 03:40:32.580
...

03:40:32.580 --> 03:40:33.820
...

03:40:33.820 --> 03:40:34.920
...

03:40:41.380 --> 03:40:42.780
...

03:41:11.360 --> 03:41:12.760
...

03:41:18.020 --> 03:41:19.420
...

03:41:47.400 --> 03:41:48.800
...

03:41:54.880 --> 03:41:56.280
...

03:42:03.340 --> 03:42:04.740
...

03:42:15.380 --> 03:42:16.780
...

03:42:27.480 --> 03:42:28.880
...

03:42:32.020 --> 03:42:33.420
...

03:42:43.480 --> 03:42:44.880
...

03:42:55.660 --> 03:42:57.060
...

03:43:04.240 --> 03:43:05.640
...

03:43:09.540 --> 03:43:10.940
...

03:43:20.880 --> 03:43:22.280
...

03:43:32.520 --> 03:43:33.920
...

03:43:43.940 --> 03:43:45.340
...

03:44:13.320 --> 03:44:14.720
...

03:44:21.140 --> 03:44:22.540
...

03:44:30.640 --> 03:44:32.040
...

03:45:00.160 --> 03:45:01.560
...

03:45:09.860 --> 03:45:11.260
...

03:45:20.700 --> 03:45:22.100
...

03:45:50.680 --> 03:45:52.080
...

03:46:20.660 --> 03:46:22.060
...

03:46:50.640 --> 03:46:52.040
...

03:47:20.620 --> 03:47:22.020
...

03:47:50.600 --> 03:47:52.000
...

03:48:02.720 --> 03:48:04.120
...

03:48:32.260 --> 03:48:33.660
...

03:49:02.240 --> 03:49:03.640
...

03:49:31.640 --> 03:49:33.040
...

03:49:42.680 --> 03:49:44.080
...

03:49:44.080 --> 03:49:45.980
...

03:50:14.560 --> 03:50:15.960
...

03:50:43.940 --> 03:50:45.340
...

03:51:13.320 --> 03:51:14.720
...

03:51:43.300 --> 03:51:44.700
...

03:52:13.280 --> 03:52:14.680
...

03:52:43.260 --> 03:52:44.660
...

03:53:13.240 --> 03:53:14.640
...

03:53:43.220 --> 03:53:44.620
...

03:54:13.200 --> 03:54:14.600
...

03:54:43.180 --> 03:54:44.580
...

03:55:13.160 --> 03:55:14.560
...

03:55:43.140 --> 03:55:44.540
...

03:56:12.520 --> 03:56:13.920
...

03:56:42.500 --> 03:56:43.900
...

03:57:12.480 --> 03:57:13.880
...

03:57:42.460 --> 03:57:43.860
...

03:58:12.440 --> 03:58:13.840
...

03:58:42.420 --> 03:58:43.820
...

03:59:11.800 --> 03:59:13.200
...

03:59:41.780 --> 03:59:43.180
...

04:00:11.760 --> 04:00:13.160
...

04:00:41.740 --> 04:00:43.140
...

04:01:11.720 --> 04:01:13.120
...

04:01:41.700 --> 04:01:43.100
...

04:02:11.160 --> 04:02:12.560
...

04:02:41.140 --> 04:02:42.540
...

04:03:11.120 --> 04:03:12.520
...

04:03:41.100 --> 04:03:42.500
...

04:04:10.560 --> 04:04:11.960
...

04:04:23.240 --> 04:04:24.640
...

04:04:35.400 --> 04:04:36.800
...

04:04:48.200 --> 04:04:49.600
...

04:04:55.920 --> 04:04:57.320
...

04:04:59.640 --> 04:05:01.040
...

04:05:01.040 --> 04:05:02.220
...

04:05:08.580 --> 04:05:09.980
...

04:05:38.560 --> 04:05:39.960
...

04:05:39.960 --> 04:05:40.040
...

04:06:11.100 --> 04:06:12.500
...

04:06:15.940 --> 04:06:17.340
...

04:06:20.880 --> 04:06:22.280
...

04:06:22.280 --> 04:06:23.040
...

04:06:23.040 --> 04:06:24.420
...

04:06:29.720 --> 04:06:31.120
...

04:06:59.700 --> 04:07:01.100
...

04:07:07.280 --> 04:07:08.680
...

04:07:08.680 --> 04:07:09.520
...

04:07:09.520 --> 04:07:11.120
...

04:07:11.120 --> 04:07:13.320
...

04:07:19.860 --> 04:07:21.260
...

04:07:28.640 --> 04:07:30.040
...

04:07:33.640 --> 04:07:35.040
...

04:07:35.040 --> 04:07:35.900
...

04:07:43.220 --> 04:07:44.620
...

04:07:44.620 --> 04:07:46.440
...

04:07:46.440 --> 04:07:48.680
...

04:08:17.260 --> 04:08:18.660
...

04:08:18.660 --> 04:08:21.360
...

04:08:22.880 --> 04:08:24.280
...

04:08:24.280 --> 04:08:26.700
...

04:08:50.660 --> 04:08:52.060
...

04:09:30.380 --> 04:09:31.780
...

04:09:31.780 --> 04:09:32.700
...

04:09:43.140 --> 04:09:44.540
...

04:11:03.120 --> 04:11:04.520
...

04:11:14.580 --> 04:11:15.980
...

04:11:45.340 --> 04:11:46.740
...

04:12:15.320 --> 04:12:16.720
...

04:12:27.200 --> 04:12:28.600
...

04:12:56.580 --> 04:12:57.980
...

04:13:25.960 --> 04:13:27.360
...

04:13:55.340 --> 04:13:56.740
...

04:14:24.820 --> 04:14:26.220
...

04:14:54.200 --> 04:14:55.600
...

04:15:07.100 --> 04:15:08.500
...

04:15:36.060 --> 04:15:37.460
...

04:15:49.540 --> 04:15:50.940
...

04:16:01.180 --> 04:16:02.580
...

04:16:04.280 --> 04:16:05.680
...

04:16:16.380 --> 04:16:17.780
...

04:16:29.160 --> 04:16:30.560
...

04:16:59.020 --> 04:17:00.420
...

04:17:28.400 --> 04:17:29.800
...

04:17:40.480 --> 04:17:41.880
...

04:17:52.560 --> 04:17:53.960
...

04:18:04.640 --> 04:18:06.040
...

04:18:16.340 --> 04:18:17.740
...

04:18:45.720 --> 04:18:47.120
...

04:18:57.880 --> 04:18:59.280
...

04:19:09.560 --> 04:19:10.960
...

04:19:38.940 --> 04:19:40.340
...

04:19:50.980 --> 04:19:52.380
...

04:20:02.000 --> 04:20:03.400
...

04:20:31.380 --> 04:20:32.780
...

04:20:44.820 --> 04:20:46.220
...

04:20:56.900 --> 04:20:58.300
...

04:21:26.280 --> 04:21:27.680
...

04:21:30.860 --> 04:21:32.260
...

04:22:00.240 --> 04:22:01.640
...

04:22:29.740 --> 04:22:31.140
...

04:22:40.980 --> 04:22:42.380
...

04:23:10.360 --> 04:23:11.760
...

04:23:39.720 --> 04:23:41.120
...

04:24:09.700 --> 04:24:11.100
...

04:24:19.020 --> 04:24:20.420
...

04:24:31.180 --> 04:24:32.580
...

04:25:01.160 --> 04:25:02.560
...

04:25:30.540 --> 04:25:31.940
...

04:26:00.520 --> 04:26:01.920
...

04:26:29.900 --> 04:26:31.300
...

04:26:34.120 --> 04:26:35.520
...

04:26:46.340 --> 04:26:47.740
...

04:27:01.420 --> 04:27:02.820
...

04:27:14.060 --> 04:27:15.460
...

04:27:43.440 --> 04:27:44.840
...

04:27:55.340 --> 04:27:56.740
...

04:28:08.000 --> 04:28:09.400
...

04:28:21.620 --> 04:28:23.020
...

04:28:33.040 --> 04:28:34.440
...

04:28:38.100 --> 04:28:39.500
...

04:28:50.280 --> 04:28:51.680
...

04:29:02.960 --> 04:29:04.360
...

04:29:32.340 --> 04:29:33.740
...

04:30:01.720 --> 04:30:03.120
...

04:30:13.880 --> 04:30:15.280
...

04:30:43.260 --> 04:30:44.660
...

04:31:13.240 --> 04:31:14.640
...

04:31:22.840 --> 04:31:24.240
...

04:31:34.060 --> 04:31:35.460
...

04:32:04.040 --> 04:32:05.440
...

04:32:15.460 --> 04:32:16.860
...

04:32:26.920 --> 04:32:28.320
...

04:32:39.600 --> 04:32:41.000
...

04:32:51.780 --> 04:32:53.180
...

04:33:21.160 --> 04:33:22.560
...

04:33:34.700 --> 04:33:36.100
...

04:33:45.620 --> 04:33:47.020
...

04:33:58.240 --> 04:33:59.640
...

04:34:27.620 --> 04:34:29.020
...

04:34:57.000 --> 04:34:58.400
...

04:35:27.600 --> 04:35:29.000
...

04:35:57.580 --> 04:35:58.980
...

04:36:27.560 --> 04:36:28.960
...

04:36:57.540 --> 04:36:58.940
...

04:37:27.520 --> 04:37:28.920
...

04:37:56.900 --> 04:37:58.300
...

04:38:26.280 --> 04:38:27.680
...

04:38:55.660 --> 04:38:57.060
...

04:39:25.040 --> 04:39:26.440
...

04:39:54.420 --> 04:39:55.820
...

04:40:23.800 --> 04:40:25.200
...

04:40:53.180 --> 04:40:54.580
...

04:41:22.560 --> 04:41:23.960
...

04:41:51.940 --> 04:41:53.340
...

04:42:21.320 --> 04:42:22.720
...

04:42:51.300 --> 04:42:52.700
...

04:43:20.680 --> 04:43:22.080
...

04:43:50.060 --> 04:43:51.460
...

04:44:19.440 --> 04:44:20.840
...

04:44:48.820 --> 04:44:50.220
...

04:45:18.200 --> 04:45:19.600
...

04:45:48.180 --> 04:45:49.580
...

04:46:18.160 --> 04:46:19.560
...

04:46:47.540 --> 04:46:48.940
...

04:47:16.920 --> 04:47:18.320
...

04:47:46.900 --> 04:47:48.300
...

04:48:16.280 --> 04:48:17.680
...

04:48:45.660 --> 04:48:47.060
...

04:49:15.040 --> 04:49:16.440
...

04:49:44.420 --> 04:49:45.820
...

04:50:13.800 --> 04:50:15.200
...

04:50:43.180 --> 04:50:44.580
...

04:51:12.560 --> 04:51:13.960
...

04:51:41.940 --> 04:51:43.340
...

04:52:11.920 --> 04:52:13.320
...

04:52:41.900 --> 04:52:43.300
...

04:52:53.000 --> 04:52:54.400
...

04:53:22.380 --> 04:53:23.780
...

04:53:34.220 --> 04:53:35.620
...

04:53:46.300 --> 04:53:47.700
...

04:54:16.280 --> 04:54:17.680
...

04:54:45.660 --> 04:54:47.060
...

04:55:15.040 --> 04:55:16.440
...

04:55:44.420 --> 04:55:45.820
...

04:56:14.400 --> 04:56:15.800
...

04:56:43.780 --> 04:56:45.180
...

04:57:13.160 --> 04:57:14.560
...

04:57:42.540 --> 04:57:43.940
...

04:58:12.520 --> 04:58:13.920
...

04:58:42.040 --> 04:58:43.440
...

04:59:11.420 --> 04:59:12.820
...

04:59:40.800 --> 04:59:42.200
...

05:00:10.800 --> 05:00:12.200
...

05:00:40.180 --> 05:00:41.580
...

05:01:10.160 --> 05:01:11.560
...

05:01:39.540 --> 05:01:40.940
...

05:02:08.920 --> 05:02:10.320
...

05:02:38.900 --> 05:02:40.300
...

05:03:08.280 --> 05:03:09.680
...

05:03:37.660 --> 05:03:39.060
...

05:04:07.640 --> 05:04:09.040
...

05:04:37.020 --> 05:04:38.420
...

05:05:06.400 --> 05:05:07.800
...

05:05:35.780 --> 05:05:37.180
...

05:06:05.760 --> 05:06:07.160
...

05:06:35.140 --> 05:06:36.540
...

05:06:44.720 --> 05:06:46.120
...

05:07:35.120 --> 05:07:36.520
...

05:08:04.500 --> 05:08:05.900
...

05:08:33.880 --> 05:08:35.280
...

05:09:03.260 --> 05:09:04.660
...

05:09:32.640 --> 05:09:34.040
...

05:10:02.020 --> 05:10:03.420
...

05:10:31.400 --> 05:10:32.800
...

05:11:00.780 --> 05:11:02.180
...

05:11:30.160 --> 05:11:31.560
...

05:11:59.540 --> 05:12:00.940
...

05:12:28.920 --> 05:12:30.320
...

05:12:58.300 --> 05:12:59.700
...

05:13:28.280 --> 05:13:29.680
...

05:13:57.660 --> 05:13:59.060
...

05:14:27.040 --> 05:14:28.440
...

05:14:56.420 --> 05:14:57.820
...

05:15:07.940 --> 05:15:09.340
...

05:15:37.320 --> 05:15:38.720
...

05:16:07.300 --> 05:16:08.700
...

05:16:22.120 --> 05:16:23.520
...

05:17:07.280 --> 05:17:08.680
...

05:17:36.660 --> 05:17:38.060
...

05:18:06.040 --> 05:18:07.440
...

05:18:35.420 --> 05:18:36.820
...

05:19:04.800 --> 05:19:06.200
...

05:19:34.180 --> 05:19:35.580
...

05:20:03.560 --> 05:20:04.960
...

05:20:32.940 --> 05:20:34.340
...

05:21:02.320 --> 05:21:03.720
...

05:21:31.700 --> 05:21:33.100
...

05:22:01.680 --> 05:22:03.080
...

05:22:07.080 --> 05:22:08.480
...

05:22:11.020 --> 05:22:12.420
...

05:23:06.460 --> 05:23:07.860
...

05:23:35.840 --> 05:23:37.240
...

05:24:05.220 --> 05:24:06.620
...

05:24:19.400 --> 05:24:20.800
...

05:24:41.420 --> 05:24:42.820
...

05:25:34.600 --> 05:25:36.000
...

05:26:03.980 --> 05:26:05.380
...

05:26:33.960 --> 05:26:35.360
...

05:27:03.940 --> 05:27:05.340
...

05:27:17.440 --> 05:27:18.840
...

05:27:47.420 --> 05:27:48.820
...

05:28:16.800 --> 05:28:18.200
...

05:28:46.180 --> 05:28:47.580
...

05:29:15.560 --> 05:29:16.960
...

05:29:28.260 --> 05:29:29.660
...

05:29:39.280 --> 05:29:40.680
...

05:29:52.500 --> 05:29:53.900
...

05:30:21.880 --> 05:30:23.280
...

05:30:51.260 --> 05:30:52.660
...

05:31:20.640 --> 05:31:22.040
...

05:31:50.620 --> 05:31:52.020
...

05:32:20.000 --> 05:32:21.400
...

05:32:32.700 --> 05:32:34.100
...

05:33:02.080 --> 05:33:03.480
...

05:33:32.060 --> 05:33:33.460
...

05:34:01.440 --> 05:34:02.840
...

05:34:31.420 --> 05:34:32.820
...

05:35:00.800 --> 05:35:02.200
...

05:35:30.180 --> 05:35:31.580
...

05:35:59.560 --> 05:36:00.960
...

05:36:28.940 --> 05:36:30.340
...

05:36:58.320 --> 05:36:59.720
...

05:37:27.700 --> 05:37:29.100
...

05:37:57.680 --> 05:37:59.080
...

05:38:27.660 --> 05:38:29.060
...

05:38:57.640 --> 05:38:59.040
...

05:39:27.020 --> 05:39:28.420
...

05:39:56.400 --> 05:39:57.800
...

05:40:25.780 --> 05:40:27.180
...

05:40:55.160 --> 05:40:56.560
...

05:41:07.840 --> 05:41:09.240
...

05:41:37.820 --> 05:41:39.220
...

05:42:07.200 --> 05:42:08.600
...

05:42:16.800 --> 05:42:18.200
...

05:42:20.180 --> 05:42:21.580
...

05:43:16.180 --> 05:43:17.580
...

05:43:45.560 --> 05:43:46.960
...

05:44:15.540 --> 05:44:16.940
...

05:44:44.920 --> 05:44:46.320
...

05:45:14.300 --> 05:45:15.700
...

05:45:43.680 --> 05:45:45.080
...

05:46:13.060 --> 05:46:14.460
...

05:46:42.440 --> 05:46:43.840
...

05:47:12.420 --> 05:47:13.820
...

05:47:42.400 --> 05:47:43.800
...

05:48:11.780 --> 05:48:13.180
...

05:48:41.160 --> 05:48:42.560
...

05:49:11.140 --> 05:49:12.540
...

05:49:41.120 --> 05:49:42.520
...

05:50:10.500 --> 05:50:11.900
...

05:50:40.480 --> 05:50:41.880
...

05:50:45.920 --> 05:50:47.320
...

05:50:51.360 --> 05:50:52.760
...

05:51:45.300 --> 05:51:46.700
...

05:52:14.680 --> 05:52:16.080
...

05:52:26.560 --> 05:52:27.960
...

05:52:55.940 --> 05:52:57.340
...

05:53:25.920 --> 05:53:27.320
...

05:53:55.900 --> 05:53:57.300
...

05:53:59.860 --> 05:54:01.260
...

05:54:29.240 --> 05:54:30.640
...

05:54:59.220 --> 05:55:00.620
...

05:55:28.600 --> 05:55:30.000
...

05:55:57.980 --> 05:55:59.380
...

05:56:27.960 --> 05:56:29.360
...

05:56:57.340 --> 05:56:58.740
...

05:57:26.720 --> 05:57:28.120
...

05:57:39.920 --> 05:57:41.320
...

05:58:09.900 --> 05:58:11.300
...

05:58:21.760 --> 05:58:23.160
...

05:58:51.140 --> 05:58:52.540
...

05:59:20.520 --> 05:59:21.920
...

05:59:49.900 --> 05:59:51.300
...

06:00:19.280 --> 06:00:20.680
...

06:00:33.560 --> 06:00:34.960
...

06:00:44.980 --> 06:00:46.380
...

06:00:50.060 --> 06:00:51.460
...

06:00:58.440 --> 06:00:59.840
...

06:00:59.840 --> 06:01:02.500
...

06:01:05.060 --> 06:01:06.460
...

06:01:11.040 --> 06:01:12.440
...

06:01:43.520 --> 06:01:44.920
...

06:02:16.480 --> 06:02:17.880
...

06:02:27.900 --> 06:02:29.300
...

06:02:57.280 --> 06:02:58.680
...

06:03:27.260 --> 06:03:28.660
...

06:03:57.240 --> 06:03:58.640
...

06:04:27.220 --> 06:04:28.620
...

06:04:57.200 --> 06:04:58.600
...

06:05:27.180 --> 06:05:28.580
...

06:05:57.160 --> 06:05:58.560
...

06:06:26.540 --> 06:06:27.940
...

06:06:55.940 --> 06:06:57.340
...

06:07:07.300 --> 06:07:08.700
...

06:07:18.740 --> 06:07:20.140
...

06:07:48.720 --> 06:07:50.120
...

06:08:18.700 --> 06:08:20.100
...

06:08:48.680 --> 06:08:50.080
...

06:09:18.660 --> 06:09:20.060
...

06:09:23.300 --> 06:09:24.700
...

06:09:52.760 --> 06:09:54.160
...

06:10:04.440 --> 06:10:05.840
...

06:10:34.420 --> 06:10:35.820
...

06:11:04.400 --> 06:11:05.800
...

06:11:12.120 --> 06:11:13.520
...

06:11:24.840 --> 06:11:26.240
...

06:11:35.860 --> 06:11:37.260
...

06:12:07.560 --> 06:12:08.960
...

06:12:20.960 --> 06:12:22.360
...

06:12:50.340 --> 06:12:51.740
...

06:13:20.320 --> 06:13:21.720
...

06:13:50.300 --> 06:13:51.700
...

06:14:04.620 --> 06:14:06.020
...

06:14:17.340 --> 06:14:18.740
...

06:14:46.440 --> 06:14:47.840
...

06:14:58.640 --> 06:15:00.040
...

06:15:10.740 --> 06:15:12.140
...

06:15:40.720 --> 06:15:42.120
...

06:16:10.700 --> 06:16:12.100
...

06:16:20.220 --> 06:16:21.620
...

06:16:23.160 --> 06:16:24.560
...

06:17:01.580 --> 06:17:02.980
...

06:17:06.180 --> 06:17:07.580
...

06:17:10.000 --> 06:17:11.400
...

06:17:13.040 --> 06:17:14.440
...

06:17:14.440 --> 06:17:16.880
...

06:17:19.440 --> 06:17:20.840
...

06:17:32.220 --> 06:17:33.620
...

06:17:33.620 --> 06:17:35.060
...

06:17:37.780 --> 06:17:39.180
...

06:17:41.480 --> 06:17:42.880
...

06:18:37.160 --> 06:18:38.560
...

06:18:49.840 --> 06:18:51.240
...

06:19:19.220 --> 06:19:20.620
...

06:19:48.600 --> 06:19:50.000
...

06:20:01.280 --> 06:20:02.680
...

06:20:14.700 --> 06:20:16.100
...

06:20:22.340 --> 06:20:23.740
...

06:20:33.700 --> 06:20:35.100
...

06:21:03.080 --> 06:21:04.480
...

06:21:14.500 --> 06:21:15.900
...

06:21:43.880 --> 06:21:45.280
...

06:22:13.860 --> 06:22:15.260
...

06:22:43.260 --> 06:22:44.660
...

06:23:13.240 --> 06:23:14.640
...

06:23:24.540 --> 06:23:25.940
...

06:23:33.380 --> 06:23:34.780
...

06:23:37.340 --> 06:23:38.740
...

06:24:06.860 --> 06:24:08.260
...

06:24:36.380 --> 06:24:37.780
...

06:24:48.540 --> 06:24:49.940
...

06:25:00.700 --> 06:25:02.100
...

06:25:14.280 --> 06:25:15.680
...

06:25:43.660 --> 06:25:45.060
...

06:26:13.180 --> 06:26:14.580
...

06:26:43.180 --> 06:26:44.580
...

06:26:56.360 --> 06:26:57.760
...

06:27:26.340 --> 06:27:27.740
...

06:27:48.560 --> 06:27:49.960
...

06:28:18.540 --> 06:28:19.940
...

06:28:19.940 --> 06:28:21.080
...

06:28:21.080 --> 06:28:22.440
...

06:28:30.300 --> 06:28:31.700
...

06:28:31.700 --> 06:28:32.560
...

06:28:41.200 --> 06:28:42.600
...

06:28:42.600 --> 06:28:44.420
...

06:28:54.380 --> 06:28:55.780
...

06:29:02.140 --> 06:29:03.540
...

06:29:03.540 --> 06:29:03.760
...

06:29:03.760 --> 06:29:04.220
...

06:29:32.800 --> 06:29:34.200
...

06:29:34.200 --> 06:29:35.680
...

06:29:35.680 --> 06:29:37.340
...

06:29:38.820 --> 06:29:40.220
...

06:29:40.220 --> 06:29:41.360
...

06:29:43.540 --> 06:29:44.940
...

06:29:44.940 --> 06:29:46.320
...

06:30:14.520 --> 06:30:15.920
...

06:30:15.920 --> 06:30:17.220
...

06:30:17.220 --> 06:30:18.740
...

06:30:18.740 --> 06:30:19.480
...

06:30:19.480 --> 06:30:20.340
...

06:30:25.960 --> 06:30:27.360
...

06:30:27.360 --> 06:30:29.260
...

06:30:29.260 --> 06:30:30.520
...

06:30:30.520 --> 06:30:30.960
...

06:30:30.960 --> 06:30:31.420
...

06:30:31.420 --> 06:30:31.800
...

06:30:31.800 --> 06:30:32.300
...

06:30:32.300 --> 06:30:32.400
...

06:31:20.980 --> 06:31:22.380
...

06:31:50.520 --> 06:31:51.920
...

06:31:51.920 --> 06:31:54.580
...

06:32:50.060 --> 06:32:51.460
...

06:33:20.040 --> 06:33:21.440
...

06:33:50.020 --> 06:33:51.420
...

06:34:03.340 --> 06:34:04.740
...

06:34:07.820 --> 06:34:09.220
...

06:34:11.540 --> 06:34:12.940
...

06:34:16.080 --> 06:34:17.480
...

06:34:46.060 --> 06:34:47.460
...

06:35:16.040 --> 06:35:17.440
...

06:35:28.100 --> 06:35:29.500
...

06:35:39.160 --> 06:35:40.560
...

06:35:44.580 --> 06:35:45.980
...

06:35:48.600 --> 06:35:50.000
...

06:35:50.000 --> 06:35:52.100
...

06:36:24.200 --> 06:36:25.600
...

06:36:29.740 --> 06:36:31.140
...

06:36:31.140 --> 06:36:31.820
...

06:36:31.820 --> 06:36:32.680
...

06:36:34.100 --> 06:36:35.500
...

06:36:35.500 --> 06:36:35.800
...

06:36:42.220 --> 06:36:43.620
...

06:36:43.620 --> 06:36:44.560
...

06:36:44.560 --> 06:36:45.040
...

06:36:45.040 --> 06:36:46.120
...

06:36:46.120 --> 06:36:46.740
...

06:36:46.740 --> 06:36:47.880
...

06:36:47.880 --> 06:36:48.720
...

06:36:48.720 --> 06:36:50.420
...

06:36:50.420 --> 06:36:51.340
...

06:36:51.340 --> 06:36:51.780
...

06:37:20.240 --> 06:37:21.640
...

06:37:23.520 --> 06:37:24.920
...

06:37:24.920 --> 06:37:25.140
...

06:37:53.720 --> 06:37:55.120
...

06:37:55.120 --> 06:37:56.340
...

06:38:25.440 --> 06:38:26.840
...

06:38:26.840 --> 06:38:28.200
...

06:38:28.200 --> 06:38:28.380
...

06:38:28.380 --> 06:38:28.440
...

06:38:57.020 --> 06:38:58.420
...

06:38:58.420 --> 06:38:59.460
...

06:38:59.460 --> 06:39:00.400
...

06:39:01.840 --> 06:39:03.240
...

06:39:03.240 --> 06:39:04.840
...

06:39:04.840 --> 06:39:05.100
...

06:39:08.440 --> 06:39:09.840
...

06:39:09.840 --> 06:39:10.100
...

06:39:10.100 --> 06:39:10.280
...

06:39:12.820 --> 06:39:14.220
...

06:39:14.220 --> 06:39:14.660
...

06:39:34.660 --> 06:39:35.820
...

06:39:35.820 --> 06:39:36.380
...

06:39:41.760 --> 06:39:43.160
...

06:39:43.160 --> 06:39:43.540
...

06:39:43.540 --> 06:39:44.880
...

06:39:44.880 --> 06:39:46.180
...

06:39:46.180 --> 06:39:46.420
...

06:39:46.420 --> 06:39:46.740
...

06:39:46.740 --> 06:39:47.500
...

06:39:47.500 --> 06:39:47.560
...

06:39:49.000 --> 06:39:50.400
...

06:39:50.400 --> 06:39:51.380
...

06:39:55.420 --> 06:39:56.820
...

06:39:56.820 --> 06:39:56.960
...

06:39:56.960 --> 06:39:57.420
...

06:39:57.420 --> 06:39:59.940
...

06:39:59.940 --> 06:40:00.240
...

06:40:00.240 --> 06:40:02.320
...

06:40:02.320 --> 06:40:03.440
...

06:40:03.440 --> 06:40:04.160
...

06:40:04.160 --> 06:40:05.180
...

06:40:05.180 --> 06:40:05.700
...

06:40:09.700 --> 06:40:11.100
...

06:40:11.100 --> 06:40:12.560
...

06:40:12.560 --> 06:40:13.040
...

06:40:13.040 --> 06:40:13.100
...

06:40:13.100 --> 06:40:13.180
...

06:40:13.180 --> 06:40:13.740
...

06:40:13.740 --> 06:40:15.220
...

06:40:15.220 --> 06:40:16.060
...

06:40:44.640 --> 06:40:46.040
...

06:40:46.060 --> 06:40:47.440
...

06:40:47.440 --> 06:40:48.680
...

06:40:48.680 --> 06:40:50.520
...

06:40:50.520 --> 06:40:53.240
...

06:40:53.240 --> 06:40:54.180
...

06:41:22.760 --> 06:41:24.160
...

06:41:24.160 --> 06:41:24.700
...

06:41:24.700 --> 06:41:26.460
...

06:41:26.460 --> 06:41:26.580
...

06:41:46.780 --> 06:41:48.180
...

06:41:48.180 --> 06:41:48.540
...

06:41:48.540 --> 06:41:48.800
...

06:41:48.800 --> 06:41:48.900
...

06:41:48.900 --> 06:41:50.100
...

06:41:50.100 --> 06:41:51.020
...

06:41:51.020 --> 06:41:52.320
...

06:41:52.320 --> 06:41:53.040
...

06:41:53.040 --> 06:41:53.620
...

06:41:53.620 --> 06:41:54.040
...

06:41:54.040 --> 06:41:54.080
...

06:41:54.080 --> 06:41:54.620
...

06:41:54.620 --> 06:41:54.740
...

06:41:54.740 --> 06:41:54.880
...

06:41:54.880 --> 06:41:55.780
...

06:41:57.280 --> 06:41:58.680
...

06:41:58.680 --> 06:42:00.140
...

06:42:00.140 --> 06:42:00.660
...

06:42:00.660 --> 06:42:02.700
...

06:42:02.700 --> 06:42:04.040
...

06:42:04.040 --> 06:42:04.380
...

06:42:04.380 --> 06:42:04.940
...

06:42:06.500 --> 06:42:07.900
...

06:42:07.900 --> 06:42:08.760
...

06:42:08.760 --> 06:42:08.940
...

06:42:08.940 --> 06:42:09.540
...

06:42:09.540 --> 06:42:10.900
...

06:42:12.320 --> 06:42:13.720
...

06:42:13.720 --> 06:42:14.480
...

06:42:14.480 --> 06:42:15.720
...

06:42:15.720 --> 06:42:16.920
...

06:42:16.920 --> 06:42:18.620
...

06:42:18.620 --> 06:42:21.080
...

06:42:21.080 --> 06:42:21.700
...

06:42:21.700 --> 06:42:22.580
...

06:42:22.580 --> 06:42:23.020
...

06:42:51.460 --> 06:42:52.860
...

06:42:52.860 --> 06:42:53.380
...

06:43:13.380 --> 06:43:14.180
...

06:43:14.180 --> 06:43:14.320
...

06:43:14.320 --> 06:43:15.120
...

06:43:15.120 --> 06:43:15.360
...

06:43:15.360 --> 06:43:16.400
...

06:43:16.400 --> 06:43:16.640
...

06:43:16.640 --> 06:43:17.920
...

06:43:17.920 --> 06:43:18.700
...

06:43:47.180 --> 06:43:48.580
...

06:43:48.580 --> 06:43:48.700
...

06:43:48.700 --> 06:43:48.920
...

06:43:48.920 --> 06:43:49.480
...

06:43:49.480 --> 06:43:49.580
...

06:43:49.580 --> 06:43:49.700
...

06:43:49.700 --> 06:43:49.760
...

06:43:49.760 --> 06:43:49.840
...

06:43:49.840 --> 06:43:49.860
...

06:43:49.860 --> 06:43:49.940
...

06:43:49.940 --> 06:43:50.600
...

06:43:50.600 --> 06:43:51.140
...

06:43:51.140 --> 06:43:53.340
...

06:44:00.340 --> 06:44:01.740
...

06:44:01.740 --> 06:44:04.360
...

06:44:04.360 --> 06:44:05.120
...

06:44:06.620 --> 06:44:08.020
...

06:44:15.360 --> 06:44:16.760
...

06:44:18.160 --> 06:44:19.560
...

06:44:19.560 --> 06:44:20.980
...

06:44:49.560 --> 06:44:50.960
...

06:45:19.540 --> 06:45:20.940
...

06:45:20.940 --> 06:45:22.200
...

06:45:22.200 --> 06:45:24.160
...

06:45:24.160 --> 06:45:26.860
...

06:45:26.860 --> 06:45:27.840
...

06:45:27.840 --> 06:45:29.120
...

06:45:29.120 --> 06:45:30.320
...

06:45:37.520 --> 06:45:38.920
...

06:45:38.920 --> 06:45:40.900
...

06:45:40.900 --> 06:45:41.160
...

06:45:41.160 --> 06:45:43.580
...

06:45:45.420 --> 06:45:46.820
...

06:45:46.820 --> 06:45:47.080
...

06:46:07.080 --> 06:46:08.400
...

06:46:08.400 --> 06:46:08.800
...

06:46:08.800 --> 06:46:09.220
...

06:46:09.220 --> 06:46:09.760
...

06:46:09.760 --> 06:46:10.080
...

06:46:10.080 --> 06:46:10.260
...

06:46:10.260 --> 06:46:10.420
...

06:46:10.420 --> 06:46:10.460
...

06:46:10.460 --> 06:46:11.420
...

06:46:11.420 --> 06:46:11.840
...

06:46:11.840 --> 06:46:13.200
...

06:46:19.160 --> 06:46:20.560
...

06:46:20.560 --> 06:46:20.660
...

06:46:20.660 --> 06:46:20.680
...

06:46:41.200 --> 06:46:42.600
...

06:46:42.600 --> 06:46:43.480
...

06:46:51.660 --> 06:46:53.060
...

06:46:53.060 --> 06:46:54.140
...

06:46:54.140 --> 06:46:55.060
...

06:46:55.060 --> 06:46:56.300
...

06:46:56.300 --> 06:46:56.400
...

06:46:56.400 --> 06:46:57.140
...

06:46:57.140 --> 06:46:57.200
...

06:46:57.200 --> 06:46:58.800
...

06:46:58.800 --> 06:47:00.780
...

06:47:00.780 --> 06:47:01.680
...

06:47:01.680 --> 06:47:02.980
...

06:47:02.980 --> 06:47:05.220
...

06:47:05.220 --> 06:47:06.040
...

06:47:06.040 --> 06:47:06.660
...

06:47:35.240 --> 06:47:36.640
...

06:47:43.340 --> 06:47:44.740
...

06:47:44.740 --> 06:47:46.140
...

06:47:46.140 --> 06:47:48.200
...

06:48:08.200 --> 06:48:08.800
...

06:48:08.800 --> 06:48:09.840
...

06:48:09.840 --> 06:48:09.920
...

06:48:09.920 --> 06:48:10.000
...

06:48:10.000 --> 06:48:10.040
...

06:48:10.040 --> 06:48:10.980
...

06:48:10.980 --> 06:48:11.260
...

06:48:11.260 --> 06:48:11.340
...

06:48:31.340 --> 06:48:32.100
...

06:48:32.100 --> 06:48:33.720
...

06:48:33.720 --> 06:48:33.980
...

06:48:33.980 --> 06:48:35.160
...

06:48:35.160 --> 06:48:36.300
...

06:48:40.180 --> 06:48:41.580
...

06:48:41.580 --> 06:48:43.280
...

06:48:43.280 --> 06:48:45.900
...

06:48:45.900 --> 06:48:46.080
...

06:48:46.080 --> 06:48:48.380
...

06:48:48.380 --> 06:48:49.660
...

06:48:49.660 --> 06:48:50.960
...

06:48:53.060 --> 06:48:54.460
...

06:48:54.460 --> 06:48:56.360
...

06:48:56.360 --> 06:48:57.500
...

06:48:57.500 --> 06:48:59.360
...

06:48:59.360 --> 06:49:00.380
...

06:49:00.380 --> 06:49:01.880
...

06:49:01.880 --> 06:49:03.180
...

06:49:06.920 --> 06:49:08.320
...

06:49:08.320 --> 06:49:09.400
...

06:49:38.320 --> 06:49:39.440
...

06:49:39.440 --> 06:49:40.040
...

06:49:40.040 --> 06:49:41.080
...

06:49:41.080 --> 06:49:42.340
...

06:49:42.340 --> 06:49:43.440
...

06:50:23.440 --> 06:50:23.800
...

06:50:23.800 --> 06:50:26.160
...

06:50:26.160 --> 06:50:26.660
...

06:50:26.660 --> 06:50:27.020
...

06:50:27.020 --> 06:50:27.700
...

06:50:27.700 --> 06:50:27.840
...

06:50:27.840 --> 06:50:27.880
...

06:50:27.880 --> 06:50:27.940
...

06:50:47.940 --> 06:50:48.380
...

06:50:48.380 --> 06:50:48.800
...

06:51:08.800 --> 06:51:10.180
...

06:51:10.180 --> 06:51:10.400
...

06:51:10.400 --> 06:51:11.600
...

06:51:11.600 --> 06:51:12.600
...

06:51:12.600 --> 06:51:14.440
...

06:51:14.440 --> 06:51:15.440
...

06:51:15.440 --> 06:51:16.420
...

06:51:16.420 --> 06:51:18.400
...

06:51:18.400 --> 06:51:20.840
...

06:51:20.840 --> 06:51:22.180
...

06:51:22.180 --> 06:51:22.700
...

06:51:22.700 --> 06:51:22.780
...

06:51:42.780 --> 06:51:43.600
...

06:51:43.600 --> 06:51:44.200
...

06:51:44.200 --> 06:51:44.980
...

06:51:44.980 --> 06:51:46.880
...

06:51:46.880 --> 06:51:49.560
...

06:51:49.560 --> 06:51:50.240
...

06:51:50.240 --> 06:51:50.380
...

06:51:50.380 --> 06:51:52.360
...

06:51:52.360 --> 06:51:53.860
...

06:52:00.820 --> 06:52:02.220
...

06:52:02.220 --> 06:52:03.260
...

06:52:03.260 --> 06:52:03.900
...

06:52:03.900 --> 06:52:04.180
...

06:52:04.180 --> 06:52:04.320
...

06:52:04.320 --> 06:52:04.600
...

06:52:04.600 --> 06:52:05.980
...

06:52:05.980 --> 06:52:06.480
...

06:52:06.480 --> 06:52:07.120
...

06:52:07.120 --> 06:52:07.580
...

06:52:07.580 --> 06:52:08.540
...

06:52:08.540 --> 06:52:09.400
...

06:52:09.400 --> 06:52:09.580
...

06:52:09.580 --> 06:52:11.120
...

06:52:11.120 --> 06:52:13.100
...

06:52:13.100 --> 06:52:13.380
...

06:52:13.380 --> 06:52:13.980
...

06:52:13.980 --> 06:52:14.480
...

06:52:14.480 --> 06:52:14.700
...

06:52:14.700 --> 06:52:14.780
...

06:52:14.780 --> 06:52:14.860
...

06:52:14.860 --> 06:52:15.820
...

06:52:15.820 --> 06:52:17.600
...

06:52:17.600 --> 06:52:18.500
...

06:52:18.500 --> 06:52:19.820
...

06:52:19.820 --> 06:52:20.020
...

06:52:20.020 --> 06:52:22.420
...

06:52:22.420 --> 06:52:23.820
...

06:52:23.820 --> 06:52:24.560
...

06:52:24.560 --> 06:52:25.480
...

06:52:25.480 --> 06:52:26.000
...

06:52:26.000 --> 06:52:26.400
...

06:52:26.400 --> 06:52:26.680
...

06:52:26.680 --> 06:52:27.920
...

06:52:27.920 --> 06:52:28.940
...

06:52:28.940 --> 06:52:30.340
...

06:52:30.340 --> 06:52:30.380
...

06:52:30.380 --> 06:52:30.440
...

06:52:30.440 --> 06:52:30.480
...

06:52:50.480 --> 06:52:51.160
...

06:52:51.160 --> 06:52:51.580
...

06:52:51.580 --> 06:52:52.280
...

06:52:52.280 --> 06:52:52.900
...

06:52:52.900 --> 06:52:53.440
...

06:52:53.440 --> 06:52:55.180
...

06:52:55.180 --> 06:52:55.840
...

06:52:55.840 --> 06:52:57.260
...

06:53:24.000 --> 06:53:25.400
...

06:53:47.500 --> 06:53:48.900
...

06:53:48.900 --> 06:53:50.320
...

06:53:50.320 --> 06:53:51.840
...

06:54:20.980 --> 06:54:22.380
...

06:54:22.380 --> 06:54:23.580
...

06:54:23.580 --> 06:54:24.800
...

06:54:24.800 --> 06:54:25.000
...

06:54:25.000 --> 06:54:25.120
...

06:54:25.120 --> 06:54:25.260
...

06:54:45.340 --> 06:54:46.740
...

06:54:46.740 --> 06:54:48.460
...

06:54:48.460 --> 06:54:50.780
...

06:54:50.780 --> 06:54:51.260
...

06:54:51.260 --> 06:54:52.520
...

06:54:52.520 --> 06:54:52.560
...

06:55:12.560 --> 06:55:13.360
...

06:55:13.360 --> 06:55:14.240
...

06:55:14.240 --> 06:55:14.740
...

06:55:14.740 --> 06:55:15.000
...

06:55:15.000 --> 06:55:17.020
...

06:55:17.020 --> 06:55:17.560
...

06:55:17.560 --> 06:55:17.900
...

06:55:17.900 --> 06:55:18.240
...

06:55:18.240 --> 06:55:18.280
...

06:55:38.680 --> 06:55:40.080
...

06:55:40.080 --> 06:55:40.240
...

06:55:40.240 --> 06:55:40.460
...

06:55:40.460 --> 06:55:40.580
...

06:55:40.580 --> 06:55:40.640
...

06:55:40.640 --> 06:55:41.940
...

06:55:41.940 --> 06:55:43.000
...

06:55:48.800 --> 06:55:50.200
...

06:55:50.200 --> 06:55:50.540
...

06:56:13.880 --> 06:56:15.280
...

06:56:15.280 --> 06:56:15.880
...

06:56:15.880 --> 06:56:16.120
...

06:56:21.420 --> 06:56:22.820
...

06:56:51.400 --> 06:56:52.800
...

06:56:52.800 --> 06:56:53.380
...

06:56:53.380 --> 06:56:53.440
...

06:57:23.380 --> 06:57:24.200
...

06:57:24.200 --> 06:57:24.760
...

06:57:24.760 --> 06:57:25.740
...

06:57:25.740 --> 06:57:25.960
...

06:57:25.960 --> 06:57:28.580
...

06:57:28.580 --> 06:57:29.780
...

06:57:29.780 --> 06:57:30.720
...

06:57:30.720 --> 06:57:31.300
...

06:57:31.300 --> 06:57:32.340
...

06:57:32.340 --> 06:57:32.400
...

06:57:32.400 --> 06:57:32.500
...

06:57:52.500 --> 06:57:52.820
...

06:57:52.820 --> 06:57:53.020
...

06:57:53.020 --> 06:57:53.180
...

06:57:53.180 --> 06:57:53.220
...

06:57:53.220 --> 06:57:53.320
...

06:58:14.000 --> 06:58:15.400
...

06:58:15.400 --> 06:58:17.280
...

06:58:17.280 --> 06:58:18.860
...

06:58:18.860 --> 06:58:19.600
...

06:58:19.600 --> 06:58:19.880
...

06:58:19.880 --> 06:58:20.120
...

06:58:20.120 --> 06:58:20.880
...

06:58:20.880 --> 06:58:21.840
...

06:58:21.840 --> 06:58:22.900
...

06:58:22.900 --> 06:58:23.500
...

06:58:23.500 --> 06:58:24.500
...

06:58:24.500 --> 06:58:24.660
...

06:58:24.660 --> 06:58:25.660
...

06:58:27.220 --> 06:58:28.620
...

06:58:28.620 --> 06:58:29.220
...

06:58:29.220 --> 06:58:31.260
...

06:58:31.260 --> 06:58:33.340
...

06:58:33.340 --> 06:58:33.680
...

06:58:33.680 --> 06:58:34.440
...

06:58:34.440 --> 06:58:36.100
...

06:58:36.100 --> 06:58:37.580
...

06:58:37.580 --> 06:58:38.400
...

06:58:38.400 --> 06:58:39.280
...

06:58:39.280 --> 06:58:39.880
...

06:58:39.880 --> 06:58:40.420
...

06:58:40.420 --> 06:58:41.880
...

06:58:41.880 --> 06:58:42.540
...

06:58:42.540 --> 06:58:43.940
...

06:58:43.940 --> 06:58:45.140
...

06:58:45.140 --> 06:58:45.420
...

06:58:45.420 --> 06:58:46.480
...

06:58:46.480 --> 06:58:47.520
...

06:58:47.520 --> 06:58:47.860
...

06:58:47.860 --> 06:58:49.340
...

06:58:49.340 --> 06:58:49.440
...

06:58:49.440 --> 06:58:49.520
...

06:58:49.520 --> 06:58:49.580
...

06:58:49.580 --> 06:58:49.620
...

06:58:49.620 --> 06:58:49.660
...

06:58:49.660 --> 06:58:49.700
...

06:58:49.700 --> 06:58:49.920
...

06:58:49.920 --> 06:58:49.960
...

06:58:49.960 --> 06:58:50.560
...

06:59:19.140 --> 06:59:20.540
...

06:59:20.540 --> 06:59:21.860
...

06:59:21.860 --> 06:59:22.820
...

06:59:22.820 --> 06:59:23.620
...

06:59:23.620 --> 06:59:23.900
...

06:59:44.700 --> 06:59:46.100
...

06:59:46.100 --> 06:59:47.060
...

06:59:47.060 --> 06:59:47.240
...

06:59:51.640 --> 06:59:53.040
...

06:59:53.040 --> 06:59:53.160
...

06:59:53.160 --> 06:59:53.600
...

07:00:22.180 --> 07:00:23.580
...

07:00:23.580 --> 07:00:25.720
...

07:00:25.720 --> 07:00:26.980
...

07:00:26.980 --> 07:00:27.140
...

07:00:27.140 --> 07:00:27.220
...

07:00:27.220 --> 07:00:27.280
...

07:00:47.280 --> 07:00:48.160
...

07:00:48.160 --> 07:00:49.440
...

07:00:49.440 --> 07:00:51.340
...

07:01:19.920 --> 07:01:21.320
...

07:01:49.260 --> 07:01:50.660
...

07:01:59.360 --> 07:02:00.760
...

07:02:00.760 --> 07:02:02.560
...

07:02:02.560 --> 07:02:03.540
...

07:02:03.540 --> 07:02:04.940
...

07:02:04.940 --> 07:02:06.040
...

07:02:06.040 --> 07:02:06.140
...

07:02:06.140 --> 07:02:06.720
...

07:02:06.720 --> 07:02:07.980
...

07:02:28.420 --> 07:02:29.820
...

07:02:29.820 --> 07:02:30.300
...

07:02:30.300 --> 07:02:31.800
...

07:02:31.800 --> 07:02:32.600
...

07:02:32.600 --> 07:02:32.820
...

07:02:32.820 --> 07:02:33.600
...

07:02:33.600 --> 07:02:34.840
...

07:03:03.420 --> 07:03:04.820
...

07:03:04.820 --> 07:03:06.420
...

07:03:06.420 --> 07:03:08.120
...

07:03:08.120 --> 07:03:10.920
...

07:03:13.100 --> 07:03:14.500
...

07:03:21.200 --> 07:03:22.600
...

07:03:22.600 --> 07:03:23.540
...

07:03:23.540 --> 07:03:26.120
...

07:03:26.120 --> 07:03:26.440
...

07:03:26.440 --> 07:03:27.140
...

07:03:27.140 --> 07:03:28.320
...

07:03:56.900 --> 07:03:58.300
...

07:04:18.300 --> 07:04:19.120
...

07:04:19.120 --> 07:04:20.360
...

07:04:20.360 --> 07:04:21.620
...

07:04:21.620 --> 07:04:24.400
...

07:04:24.400 --> 07:04:25.200
...

07:04:25.200 --> 07:04:27.200
...

07:04:27.200 --> 07:04:27.380
...

07:04:57.200 --> 07:04:57.280
...

07:04:57.280 --> 07:04:57.340
...

07:04:57.340 --> 07:04:57.860
...

07:04:57.860 --> 07:04:58.260
...

07:04:58.260 --> 07:04:58.300
...

07:04:58.300 --> 07:04:58.920
...

07:05:02.380 --> 07:05:03.780
...

07:05:03.780 --> 07:05:06.000
...

07:05:06.000 --> 07:05:07.960
...

07:05:07.960 --> 07:05:08.460
...

07:05:10.700 --> 07:05:12.100
...

07:05:12.100 --> 07:05:12.940
...

07:05:12.940 --> 07:05:13.060
...

07:05:13.060 --> 07:05:13.380
...

07:05:13.380 --> 07:05:14.780
...

07:05:34.780 --> 07:05:35.140
...

07:05:55.140 --> 07:05:56.240
...

07:05:56.240 --> 07:05:57.180
...

07:05:57.180 --> 07:05:57.960
...

07:05:57.960 --> 07:05:58.500
...

07:05:58.500 --> 07:05:59.080
...

07:05:59.080 --> 07:06:00.840
...

07:06:00.840 --> 07:06:01.060
...

07:06:21.060 --> 07:06:22.100
...

07:06:22.100 --> 07:06:22.580
...

07:06:22.580 --> 07:06:23.120
...

07:06:23.120 --> 07:06:23.380
...

07:06:23.380 --> 07:06:23.620
...

07:06:23.620 --> 07:06:23.940
...

07:06:23.940 --> 07:06:24.080
...

07:06:44.080 --> 07:06:44.580
...

07:06:44.580 --> 07:06:45.560
...

07:06:45.560 --> 07:06:46.140
...

07:06:46.140 --> 07:06:46.400
...

07:06:46.400 --> 07:06:46.680
...

07:06:46.680 --> 07:06:47.300
...

07:06:47.300 --> 07:06:47.480
...

07:06:47.480 --> 07:06:48.340
...

07:06:48.340 --> 07:06:48.740
...

07:06:48.740 --> 07:06:50.880
...

07:06:50.880 --> 07:06:51.440
...

07:06:51.440 --> 07:06:52.720
...

07:06:52.720 --> 07:06:52.840
...

07:06:52.840 --> 07:06:53.100
...

07:07:33.100 --> 07:07:33.840
...

07:07:33.840 --> 07:07:34.640
...

07:07:40.700 --> 07:07:42.100
...

07:07:42.100 --> 07:07:42.740
...

07:08:02.740 --> 07:08:04.020
...

07:08:04.020 --> 07:08:04.140
...

07:08:04.140 --> 07:08:04.180
...

07:08:04.180 --> 07:08:04.240
...

07:08:04.240 --> 07:08:04.300
...

07:08:04.300 --> 07:08:04.400
...

07:08:04.400 --> 07:08:04.420
...

07:08:04.420 --> 07:08:04.520
...

07:08:04.520 --> 07:08:04.580
...

07:08:04.580 --> 07:08:04.640
...

07:08:24.640 --> 07:08:25.060
...

07:08:25.060 --> 07:08:25.500
...

07:08:25.500 --> 07:08:26.140
...

07:08:36.280 --> 07:08:37.680
...

07:08:37.680 --> 07:08:38.380
...

07:08:38.380 --> 07:08:38.660
...

07:08:40.840 --> 07:08:42.240
...

07:08:45.200 --> 07:08:46.600
...

07:08:46.600 --> 07:08:47.820
...

07:08:47.820 --> 07:08:49.760
...

07:08:49.760 --> 07:08:51.380
...

07:08:51.380 --> 07:08:53.260
...

07:08:55.460 --> 07:08:56.860
...

07:08:56.860 --> 07:08:57.660
...

07:08:57.660 --> 07:08:58.180
...

07:08:58.180 --> 07:08:59.000
...

07:08:59.000 --> 07:09:00.620
...

07:09:10.880 --> 07:09:12.280
...

07:09:30.620 --> 07:09:31.300
...

07:09:31.300 --> 07:09:32.460
...

07:09:32.460 --> 07:09:32.820
...

07:09:32.820 --> 07:09:33.340
...

07:09:33.340 --> 07:09:33.540
...

07:09:33.540 --> 07:09:33.600
...

07:09:33.600 --> 07:09:33.700
...

07:09:33.700 --> 07:09:33.840
...

07:09:33.840 --> 07:09:35.380
...

07:09:35.380 --> 07:09:36.200
...

07:09:37.740 --> 07:09:39.140
...

07:09:39.140 --> 07:09:39.640
...

07:09:39.640 --> 07:09:39.740
...

07:09:39.740 --> 07:09:42.200
...

07:09:42.200 --> 07:09:42.440
...

07:10:02.440 --> 07:10:03.760
...

07:10:03.760 --> 07:10:04.620
...

07:10:04.620 --> 07:10:05.340
...

07:10:14.680 --> 07:10:16.080
...

07:10:16.080 --> 07:10:17.880
...

07:10:17.880 --> 07:10:18.560
...

07:10:18.560 --> 07:10:20.020
...

07:10:20.020 --> 07:10:20.760
...

07:10:20.760 --> 07:10:22.900
...

07:10:22.900 --> 07:10:23.260
...

07:10:27.700 --> 07:10:29.100
...

07:10:29.100 --> 07:10:29.560
...

07:10:58.140 --> 07:10:59.540
...

07:10:59.540 --> 07:11:00.040
...

07:11:00.040 --> 07:11:02.060
...

07:11:02.060 --> 07:11:02.540
...

07:11:02.540 --> 07:11:02.580
...

07:11:02.580 --> 07:11:02.620
...

07:11:02.620 --> 07:11:02.680
...

07:11:02.680 --> 07:11:02.720
...

07:11:30.660 --> 07:11:32.060
...

07:11:34.320 --> 07:11:35.720
...

07:11:35.720 --> 07:11:36.520
...

07:12:01.200 --> 07:12:02.600
...

07:12:31.180 --> 07:12:32.580
...

07:12:32.580 --> 07:12:33.560
...

07:12:38.000 --> 07:12:39.400
...

07:12:39.400 --> 07:12:39.460
...

07:12:39.460 --> 07:12:39.540
...

07:12:39.540 --> 07:12:39.580
...

07:12:39.580 --> 07:12:39.620
...

07:12:39.620 --> 07:12:39.640
...

07:12:39.640 --> 07:12:39.680
...

07:12:59.780 --> 07:13:01.180
...

07:13:08.220 --> 07:13:09.620
...

07:13:09.620 --> 07:13:10.780
...

07:13:10.780 --> 07:13:11.200
...

07:13:11.200 --> 07:13:11.400
...

07:13:11.400 --> 07:13:11.620
...

07:13:11.620 --> 07:13:11.740
...

07:13:11.740 --> 07:13:11.880
...

07:13:11.880 --> 07:13:13.620
...

07:13:13.620 --> 07:13:14.960
...

07:13:14.960 --> 07:13:15.640
...

07:13:15.640 --> 07:13:17.200
...

07:13:17.200 --> 07:13:17.260
...

07:13:17.260 --> 07:13:17.320
...

07:13:19.780 --> 07:13:21.180
...

07:13:21.180 --> 07:13:22.000
...

07:13:22.000 --> 07:13:23.200
...

07:13:23.200 --> 07:13:24.680
...

07:13:24.680 --> 07:13:25.200
...

07:13:25.200 --> 07:13:26.480
...

07:13:34.660 --> 07:13:36.060
...

07:13:36.060 --> 07:13:37.500
...

07:13:37.500 --> 07:13:39.940
...

07:13:39.940 --> 07:13:42.300
...

07:13:42.300 --> 07:13:43.120
...

07:13:43.120 --> 07:13:44.020
...

07:13:44.020 --> 07:13:46.600
...

07:13:46.600 --> 07:13:46.660
...

07:13:46.660 --> 07:13:46.860
...

07:13:46.860 --> 07:13:49.260
...

07:13:49.260 --> 07:13:50.320
...

07:13:50.320 --> 07:13:50.420
...

07:13:50.420 --> 07:13:50.480
...

07:13:50.480 --> 07:13:53.060
...

07:13:53.060 --> 07:13:53.120
...

07:13:53.120 --> 07:13:53.860
...

07:13:53.860 --> 07:13:54.440
...

07:13:54.440 --> 07:13:54.660
...

07:13:54.660 --> 07:13:54.860
...

07:13:54.860 --> 07:13:55.060
...

07:13:55.060 --> 07:13:55.320
...

07:13:55.320 --> 07:13:55.520
...

07:13:55.520 --> 07:13:56.960
...

07:13:56.960 --> 07:13:57.080
...

07:13:57.080 --> 07:13:57.160
...

07:13:57.160 --> 07:13:57.300
...

07:13:57.300 --> 07:13:57.420
...

07:13:57.420 --> 07:13:57.520
...

07:13:57.520 --> 07:13:57.940
...

07:14:00.220 --> 07:14:01.620
...

07:14:01.620 --> 07:14:01.700
...

07:14:01.700 --> 07:14:01.800
...

07:14:01.800 --> 07:14:01.820
...

07:14:01.820 --> 07:14:01.900
...

07:14:01.900 --> 07:14:01.960
...

07:14:01.960 --> 07:14:02.060
...

07:14:02.060 --> 07:14:03.600
...

07:14:03.600 --> 07:14:03.780
...

07:14:03.780 --> 07:14:03.920
...

07:14:03.920 --> 07:14:04.400
...

07:14:04.400 --> 07:14:06.680
...

07:14:06.680 --> 07:14:06.880
...

07:14:06.880 --> 07:14:07.020
...

07:14:07.020 --> 07:14:07.840
...

07:14:07.840 --> 07:14:07.920
...

07:14:07.920 --> 07:14:08.060
...

07:14:29.040 --> 07:14:30.440
...

07:14:30.440 --> 07:14:32.500
...

07:14:32.500 --> 07:14:34.140
...

07:14:34.140 --> 07:14:35.340
...

07:14:35.340 --> 07:14:36.740
...

07:14:41.520 --> 07:14:42.920
...

07:14:42.920 --> 07:14:44.520
...

07:14:44.520 --> 07:14:46.060
...

07:14:46.060 --> 07:14:47.420
...

07:14:47.420 --> 07:14:47.980
...

07:14:47.980 --> 07:14:48.940
...

07:14:48.940 --> 07:14:50.700
...

07:14:50.700 --> 07:14:50.880
...

07:15:07.300 --> 07:15:08.700
...

07:15:37.280 --> 07:15:38.680
...

07:15:38.680 --> 07:15:38.720
...

07:15:38.720 --> 07:15:40.120
...

07:15:40.120 --> 07:15:40.280
...

07:15:40.280 --> 07:15:40.320
...

07:15:40.320 --> 07:15:40.420
...

07:16:00.420 --> 07:16:00.780
...

07:16:00.780 --> 07:16:01.060
...

07:16:01.060 --> 07:16:01.800
...

07:16:01.800 --> 07:16:02.480
...

07:16:02.480 --> 07:16:03.400
...

07:16:03.400 --> 07:16:04.000
...

07:16:04.000 --> 07:16:06.380
...

07:16:06.380 --> 07:16:08.000
...

07:16:08.000 --> 07:16:08.140
...

07:16:08.140 --> 07:16:08.260
...

07:16:08.260 --> 07:16:08.320
...

07:16:08.320 --> 07:16:08.360
...

07:16:08.360 --> 07:16:08.420
...

07:16:08.420 --> 07:16:08.460
...

07:16:08.460 --> 07:16:10.400
...

07:16:10.400 --> 07:16:10.840
...

07:16:10.840 --> 07:16:10.920
...

07:16:10.920 --> 07:16:12.260
...

07:16:12.260 --> 07:16:12.720
...

07:16:12.720 --> 07:16:13.480
...

07:16:42.060 --> 07:16:43.460
...

07:16:43.460 --> 07:16:43.880
...

07:16:43.880 --> 07:16:43.900
...

07:16:43.900 --> 07:16:43.920
...

07:16:50.980 --> 07:16:52.380
...

07:16:52.380 --> 07:16:52.540
...

07:16:52.540 --> 07:16:52.700
...

07:16:52.700 --> 07:16:52.780
...

07:16:52.780 --> 07:16:53.980
...

07:16:53.980 --> 07:16:54.180
...

07:16:54.180 --> 07:16:54.260
...

07:16:54.260 --> 07:16:54.280
...

07:16:54.280 --> 07:16:54.300
...

07:17:14.300 --> 07:17:14.740
...

07:17:21.780 --> 07:17:23.180
...

07:17:23.180 --> 07:17:24.380
...

07:17:44.440 --> 07:17:45.840
...

07:17:45.840 --> 07:17:46.600
...

07:17:46.600 --> 07:17:47.280
...

07:17:47.280 --> 07:17:49.420
...

07:17:52.140 --> 07:17:53.540
...

07:17:53.540 --> 07:17:56.320
...

07:17:59.160 --> 07:18:00.560
...

07:18:00.560 --> 07:18:01.420
...

07:18:01.420 --> 07:18:02.480
...

07:18:04.840 --> 07:18:06.240
...

07:18:06.240 --> 07:18:07.200
...

07:18:14.300 --> 07:18:15.700
...

07:18:15.700 --> 07:18:16.660
...

07:18:16.660 --> 07:18:18.680
...

07:18:18.680 --> 07:18:19.220
...

07:18:19.220 --> 07:18:19.800
...

07:18:19.800 --> 07:18:20.360
...

07:18:21.860 --> 07:18:23.260
...

07:18:23.260 --> 07:18:24.080
...

07:18:24.080 --> 07:18:24.820
...

07:18:53.400 --> 07:18:54.800
...

07:18:54.800 --> 07:18:56.220
...

07:18:56.220 --> 07:18:56.660
...

07:18:56.660 --> 07:18:57.180
...

07:18:57.180 --> 07:18:58.080
...

07:19:26.660 --> 07:19:28.060
...

07:19:28.060 --> 07:19:28.520
...

07:19:28.520 --> 07:19:28.980
...

07:19:28.980 --> 07:19:30.580
...

07:19:50.580 --> 07:19:51.640
...

07:19:51.640 --> 07:19:52.560
...

07:19:52.560 --> 07:19:54.120
...

07:20:02.080 --> 07:20:03.480
...

07:20:09.920 --> 07:20:11.320
...

07:20:11.320 --> 07:20:11.880
...

07:20:11.880 --> 07:20:11.960
...

07:20:11.960 --> 07:20:12.160
...

07:20:12.160 --> 07:20:12.200
...

07:20:12.200 --> 07:20:12.260
...

07:20:12.260 --> 07:20:14.500
...

07:20:16.960 --> 07:20:18.360
...

07:20:21.160 --> 07:20:22.560
...

07:20:22.560 --> 07:20:23.540
...

07:20:23.540 --> 07:20:25.220
...

07:20:25.220 --> 07:20:25.280
...

07:20:55.480 --> 07:20:56.880
...

07:20:56.880 --> 07:20:58.480
...

07:20:58.480 --> 07:21:00.060
...

07:21:00.060 --> 07:21:00.480
...

07:21:00.480 --> 07:21:00.560
...

07:21:20.560 --> 07:21:21.360
...

07:21:21.360 --> 07:21:21.960
...

07:21:21.960 --> 07:21:22.600
...

07:22:02.600 --> 07:22:02.840
...

07:22:02.840 --> 07:22:03.080
...

07:22:03.080 --> 07:22:03.360
...

07:22:03.360 --> 07:22:05.400
...

07:22:08.540 --> 07:22:09.940
...

07:22:09.940 --> 07:22:11.420
...

07:22:11.420 --> 07:22:11.480
...

07:22:11.480 --> 07:22:11.620
...

07:22:11.620 --> 07:22:11.640
...

07:22:32.500 --> 07:22:33.900
...

07:22:33.900 --> 07:22:34.160
...

07:22:34.160 --> 07:22:34.820
...

07:22:34.820 --> 07:22:35.300
...

07:22:35.300 --> 07:22:35.480
...

07:22:35.480 --> 07:22:35.740
...

07:22:35.740 --> 07:22:35.940
...

07:22:35.940 --> 07:22:36.120
...

07:22:36.120 --> 07:22:36.180
...

07:22:36.180 --> 07:22:36.240
...

07:22:56.240 --> 07:22:57.560
...

07:22:57.560 --> 07:22:58.500
...

07:22:58.500 --> 07:23:00.040
...

07:23:01.460 --> 07:23:02.860
...

07:23:11.840 --> 07:23:13.240
...

07:23:41.820 --> 07:23:43.220
...

07:23:44.920 --> 07:23:46.320
...

07:24:14.900 --> 07:24:16.300
...

07:24:23.740 --> 07:24:25.140
...

07:24:25.140 --> 07:24:26.600
...

07:24:41.520 --> 07:24:42.920
...

07:25:10.380 --> 07:25:11.780
...

07:25:11.780 --> 07:25:12.460
...

07:25:23.660 --> 07:25:25.060
...

07:26:13.640 --> 07:26:15.040
...

07:26:15.040 --> 07:26:16.440
...

07:26:20.480 --> 07:26:21.880
...

07:26:46.200 --> 07:26:47.600
...

07:26:47.600 --> 07:26:49.440
...

07:27:09.440 --> 07:27:10.000
...

07:27:10.000 --> 07:27:10.060
...

07:27:10.060 --> 07:27:10.080
...

07:27:10.080 --> 07:27:10.100
...

07:27:16.400 --> 07:27:17.800
...

07:27:17.800 --> 07:27:18.840
...

07:27:22.320 --> 07:27:23.720
...

07:27:23.720 --> 07:27:23.900
...

07:27:23.900 --> 07:27:24.000
...

07:27:24.000 --> 07:27:24.080
...

07:27:24.080 --> 07:27:24.160
...

07:27:24.160 --> 07:27:24.240
...

07:27:24.240 --> 07:27:24.300
...

07:27:24.300 --> 07:27:24.380
...

07:27:24.380 --> 07:27:24.440
...

07:27:24.440 --> 07:27:24.520
...

07:27:24.520 --> 07:27:24.600
...

07:27:24.600 --> 07:27:24.640
...

07:27:24.640 --> 07:27:24.700
...

07:27:24.700 --> 07:27:24.760
...

07:27:24.760 --> 07:27:24.800
...

07:27:24.800 --> 07:27:24.880
...

07:27:24.880 --> 07:27:24.940
...

07:27:24.940 --> 07:27:25.020
...

07:27:25.020 --> 07:27:25.080
...

07:27:25.080 --> 07:27:25.140
...

07:27:25.140 --> 07:27:25.200
...

07:27:25.200 --> 07:27:25.220
...

07:27:25.220 --> 07:27:25.280
...

07:27:25.280 --> 07:27:25.340
...

07:27:25.340 --> 07:27:25.400
...

07:27:45.400 --> 07:27:46.720
...

07:27:46.720 --> 07:27:47.020
...

07:27:47.020 --> 07:27:47.080
...

07:27:47.080 --> 07:27:47.120
...

07:27:47.120 --> 07:27:47.160
...

07:28:27.720 --> 07:28:29.120
...

07:28:34.660 --> 07:28:36.060
...

07:28:36.060 --> 07:28:36.500
...

07:28:36.500 --> 07:28:37.060
...

07:28:37.060 --> 07:28:38.920
...

07:28:38.920 --> 07:28:39.500
...

07:29:08.040 --> 07:29:09.440
...

07:29:09.440 --> 07:29:10.240
...

07:29:38.820 --> 07:29:40.220
...

07:29:46.920 --> 07:29:48.320
...

07:29:48.320 --> 07:29:50.420
...

07:29:59.400 --> 07:30:00.800
...

07:30:29.380 --> 07:30:30.780
...

07:30:33.180 --> 07:30:34.580
...

07:30:34.580 --> 07:30:36.840
...

07:31:05.420 --> 07:31:06.820
...

07:31:09.480 --> 07:31:10.880
...

07:31:10.880 --> 07:31:12.840
...

07:31:40.820 --> 07:31:42.220
...

07:31:42.220 --> 07:31:42.520
...

07:31:42.520 --> 07:31:42.560
...

07:31:42.560 --> 07:31:42.600
...

07:31:42.600 --> 07:31:42.640
...

07:32:23.560 --> 07:32:24.960
...

07:32:24.960 --> 07:32:26.140
...

07:32:26.140 --> 07:32:27.560
...

07:32:30.460 --> 07:32:31.860
...

07:32:57.800 --> 07:32:59.200
...

07:32:59.200 --> 07:33:01.700
...

07:33:01.700 --> 07:33:03.420
...

07:33:12.680 --> 07:33:14.080
...

07:33:27.420 --> 07:33:28.820
...

07:33:28.820 --> 07:33:28.960
...

07:33:28.960 --> 07:33:29.080
...

07:33:29.080 --> 07:33:29.160
...

07:33:29.160 --> 07:33:29.220
...

07:33:29.220 --> 07:33:29.300
...

07:33:29.300 --> 07:33:29.360
...

07:33:29.360 --> 07:33:29.440
...

07:33:31.400 --> 07:33:32.800
...

07:33:32.800 --> 07:33:33.100
...

07:33:33.100 --> 07:33:33.500
...

07:33:33.500 --> 07:33:33.580
...

07:33:33.580 --> 07:33:33.660
...

07:33:36.560 --> 07:33:37.960
...

07:33:41.880 --> 07:33:43.280
...

07:33:46.540 --> 07:33:47.940
...

07:33:47.940 --> 07:33:50.660
...

07:33:50.660 --> 07:33:51.920
...

07:33:51.920 --> 07:33:52.320
...

07:33:52.320 --> 07:33:53.740
...

07:33:57.140 --> 07:33:58.540
...

07:33:58.540 --> 07:33:59.700
...

07:33:59.700 --> 07:34:01.120
...

07:34:29.300 --> 07:34:30.700
...

07:34:30.700 --> 07:34:32.700
...

07:34:32.700 --> 07:34:33.380
...

07:34:33.380 --> 07:34:33.700
...

07:34:33.700 --> 07:34:33.900
...

07:34:33.900 --> 07:34:34.180
...

07:34:34.180 --> 07:34:34.340
...

07:34:34.340 --> 07:34:34.880
...

07:34:43.920 --> 07:34:45.320
...

07:34:45.320 --> 07:34:45.520
...

07:34:45.520 --> 07:34:45.700
...

07:34:45.700 --> 07:34:45.760
...

07:34:45.760 --> 07:34:45.820
...

07:34:45.820 --> 07:34:45.880
...

07:34:45.880 --> 07:34:46.040
...

07:34:46.040 --> 07:34:46.240
...

07:34:53.260 --> 07:34:54.660
...

07:34:57.280 --> 07:34:58.680
...

07:35:46.600 --> 07:35:48.000
...

07:35:48.000 --> 07:35:48.440
...

07:35:48.440 --> 07:35:48.520
...

07:35:48.520 --> 07:35:49.960
...

07:35:49.960 --> 07:35:50.320
...

07:35:50.320 --> 07:35:50.860
...

07:36:12.440 --> 07:36:13.840
...

07:36:23.580 --> 07:36:24.980
...

07:36:24.980 --> 07:36:26.720
...

07:36:26.720 --> 07:36:27.900
...

07:36:35.980 --> 07:36:37.380
...

07:36:37.380 --> 07:36:39.040
...

07:36:42.740 --> 07:36:44.140
...

07:37:09.580 --> 07:37:10.980
...

07:37:39.080 --> 07:37:40.480
...

07:38:09.060 --> 07:38:10.460
...

07:38:39.040 --> 07:38:40.440
...

07:39:08.420 --> 07:39:09.820
...

07:39:37.800 --> 07:39:39.200
...

07:39:39.200 --> 07:39:40.740
...

07:39:40.740 --> 07:39:41.060
...

07:40:05.640 --> 07:40:07.040
...

07:40:07.040 --> 07:40:07.320
...

07:40:35.900 --> 07:40:37.300
...

07:40:37.300 --> 07:40:37.860
...

07:41:06.440 --> 07:41:07.840
...

07:41:14.940 --> 07:41:16.340
...

07:41:16.340 --> 07:41:16.620
...

07:41:16.620 --> 07:41:17.480
...

07:41:17.480 --> 07:41:17.900
...

07:41:46.480 --> 07:41:47.880
...

07:42:16.460 --> 07:42:17.860
...

07:42:46.440 --> 07:42:47.840
...

07:43:16.420 --> 07:43:17.820
...

07:43:45.880 --> 07:43:47.280
...

07:44:15.300 --> 07:44:16.700
...

07:44:45.280 --> 07:44:46.680
...

07:44:48.180 --> 07:44:49.580
...

07:44:49.580 --> 07:44:51.080
...

07:45:22.300 --> 07:45:23.700
...

07:45:23.700 --> 07:45:25.320
...

07:45:53.900 --> 07:45:55.300
...

07:45:55.300 --> 07:45:56.220
...

07:45:56.220 --> 07:45:57.480
...

07:46:08.700 --> 07:46:10.100
...

07:46:10.100 --> 07:46:11.400
...

07:46:11.400 --> 07:46:11.720
...

07:46:18.420 --> 07:46:19.820
...

07:46:19.820 --> 07:46:20.660
...

07:46:48.700 --> 07:46:50.100
...

07:47:18.680 --> 07:47:20.080
...

07:47:20.080 --> 07:47:20.600
...

07:47:20.600 --> 07:47:21.880
...

07:47:21.880 --> 07:47:24.220
...

07:47:24.220 --> 07:47:24.700
...

07:47:24.700 --> 07:47:26.140
...

07:47:26.140 --> 07:47:28.340
...

07:47:28.340 --> 07:47:28.400
...

07:47:28.400 --> 07:47:28.540
...

07:47:48.540 --> 07:47:49.280
...

07:48:46.520 --> 07:48:47.920
...

07:49:15.920 --> 07:49:17.320
...

07:49:45.900 --> 07:49:47.300
...

07:49:47.300 --> 07:49:48.460
...

07:49:48.460 --> 07:49:50.360
...

07:49:50.360 --> 07:49:50.700
...

07:49:50.700 --> 07:49:51.060
...

07:49:51.060 --> 07:49:51.300
...

07:49:51.300 --> 07:49:51.580
...

07:50:21.300 --> 07:50:22.560
...

07:50:22.560 --> 07:50:35.020
It kind of just sort of reinforces that you should always check what AI is telling you.

07:50:35.020 --> 07:50:38.300
You're certainly not all redundant.

07:51:05.020 --> 07:51:05.580
...

07:51:26.520 --> 07:51:27.920
...

07:51:30.200 --> 07:51:31.600
...

07:51:40.180 --> 07:51:41.580
...

07:51:41.580 --> 07:51:42.740
...

07:51:42.740 --> 07:51:44.880
...

07:51:44.880 --> 07:51:44.960
...

07:51:44.960 --> 07:51:45.540
...

07:51:45.540 --> 07:51:45.840
...

07:51:55.820 --> 07:51:57.220
...

07:51:57.220 --> 07:51:59.960
...

07:51:59.960 --> 07:52:01.180
...

07:52:29.760 --> 07:52:31.160
...

07:52:31.160 --> 07:52:31.200
...

07:52:31.200 --> 07:52:31.240
...

07:52:51.240 --> 07:52:51.740
...

07:52:55.240 --> 07:52:56.640
...

07:52:56.640 --> 07:52:56.940
...

07:52:58.820 --> 07:53:00.220
...

07:53:02.100 --> 07:53:02.580
...

07:53:19.680 --> 07:53:23.160
Are you still with us? Did you get called to a meeting or something?

07:53:23.160 --> 07:53:25.340
Nope, I'm here.

07:53:27.160 --> 07:53:31.200
Do you have the signals done?

07:53:32.800 --> 07:53:34.800
We'll just a second.

07:53:34.800 --> 07:53:35.140
Okay.

07:53:45.040 --> 07:53:50.520
So while you're still working, is there anybody here who's brand new to IBDs and hasn't done one before?

07:53:50.520 --> 07:53:50.560
...

07:54:01.780 --> 07:54:02.140
Okay.

07:54:03.920 --> 07:54:07.700
So I see you're putting them all on the same diagram, the signals and the flow properties.

07:54:08.300 --> 07:54:12.140
I might put them on separate diagrams, but that's okay if you want to do that.

07:54:13.280 --> 07:54:22.460
Probably a little bit more maintainable if you have your signals and your flow properties in separate packages, but that's fine.

07:54:24.060 --> 07:54:26.640
Elena, are you ready to go on to IBDs?

07:54:28.080 --> 07:54:28.480
Yeah.

07:54:29.800 --> 07:54:30.160
Okay.

07:54:31.480 --> 07:54:32.940
So everybody ready?

07:54:36.120 --> 07:54:38.460
Then here's what we're going to do next.

07:54:40.860 --> 07:54:48.520
So I'll do a little bit of theory discussion on IBDs.

07:54:50.140 --> 07:54:58.780
I'm kind of going to assume you mostly all know what they are already, but what you show on an IBD is the interfaces.

07:54:58.940 --> 07:55:04.520
And in this case, it's interfaces across subsystems.

07:55:04.520 --> 07:55:04.880
Okay.

07:55:11.300 --> 07:55:23.680
So you can put lots and lots of stuff on an IBD, and the more stuff you put on it, the more difficult it becomes to read.

07:55:26.300 --> 07:55:38.080
So something that I consider to be good practice is to make different IBDs to show different aspects of the interfaces you're developing.

07:55:39.960 --> 07:55:43.100
So in the interest of time, we're only going to do one.

07:55:44.520 --> 07:55:57.100
And the one that we're going to do is basically to show power coming out of the power supply and feeding into all the other subsystems.

07:55:57.960 --> 07:56:05.100
And we're going to show that using the iPower interface.

07:56:06.020 --> 07:56:06.900
Okay.

07:56:08.420 --> 07:56:19.100
And so we're going to be adding proxy ports to all these other subsystems.

07:56:19.100 --> 07:56:25.140
We're going to type the proxy port with the name of the interface block, iPower.

07:56:26.040 --> 07:56:34.820
And then we're going to show the actual power distribution flowing across those interfaces.

07:56:36.000 --> 07:56:37.180
That makes sense to everybody?

07:56:37.960 --> 07:56:38.780
Yes. Yep.

07:56:40.140 --> 07:56:41.160
All right.

07:56:42.660 --> 07:56:44.820
So how are we going to do that?

07:56:44.820 --> 07:56:48.800
We're going to go back to our subsystem diagrams.

07:56:49.800 --> 07:56:52.180
You know, looking at this again, it's been a while since I looked at this.

07:56:52.460 --> 07:56:56.420
I think some of these signals are the types on the flow properties.

07:57:00.840 --> 07:57:11.720
And we maybe need, we might need to go back and add those types, but we can leave them type free for the moment.

07:57:14.420 --> 07:57:16.900
So how do we make this IBD?

07:57:19.460 --> 07:57:25.120
Again, if this is new to anybody seeing it for the first time, please speak up.

07:57:25.920 --> 07:57:37.020
But we're going to go to our BDD, our subsystem BDD, and then we're going to right click on the system block.

07:57:37.020 --> 07:57:45.080
And we're going to say create diagram, and it's going to be a SysML internal block diagram.

07:57:45.760 --> 07:58:01.120
Now, when we do that, we get this dialog, and it's going to show all the subsystems that we have that we can put on this IBD.

07:58:02.280 --> 07:58:04.640
So I'm just going to say OK.

07:58:06.780 --> 07:58:12.260
And what I get is I get my subsystem diagram.

07:58:12.400 --> 07:58:17.940
Now, we haven't gone and put the parts in the power supply yet.

07:58:18.380 --> 07:58:21.000
So let's just not worry about that for the moment.

07:58:22.640 --> 07:58:40.620
But I'm going to put my power supply on the left, and I'm going to take all my other subsystems and put them over on the right.

07:58:42.260 --> 07:58:45.000
I'll line them all up.

07:58:49.780 --> 07:58:52.700
So we'll get a little zoomed in view.

07:59:03.020 --> 07:59:13.540
And so what we decided to do, or what I decided to do when I made this example, is to only show power on here.

07:59:14.340 --> 07:59:31.240
Because with so many subsystems, if we start trying to show all the different flow properties across all the different interfaces, it's going to really become hard to see.

07:59:31.900 --> 07:59:37.420
So I'm going to now go put proxy ports on all of these subsystems.

07:59:37.420 --> 07:59:41.800
I'm going to do it with my sticky button, because I like to draw fast.

07:59:43.220 --> 07:59:49.920
So I'm going to put proxy ports on all of these.

07:59:58.500 --> 08:00:01.360
And then I'll line these up on the edge.

08:00:17.760 --> 08:00:23.920
Now the next thing I'm going to do, so I'm going to call this one power out.

08:00:25.480 --> 08:00:28.480
And I'm going to call all of these power in.

08:00:29.760 --> 08:00:31.940
I'm just going to copy that name.

08:00:35.380 --> 08:00:37.540
My command keys don't work.

08:00:51.060 --> 08:01:09.140
So when you use ports, proxy ports, and most of the time you're going to use proxy ports, the type of the proxy port is an interface block.

08:01:16.140 --> 08:01:24.800
So the interface block that's going to type all these proxy ports, not surprisingly, is going to be the IPower interface.

08:01:26.860 --> 08:01:36.920
So when I drop IPower on here, it is going to type those interface blocks.

08:01:38.020 --> 08:01:44.320
And you can kind of immediately see that I have a problem with direction here.

08:01:44.880 --> 08:02:00.140
So I don't know if you all know about port conjugation or not, but the way you fix this direction problem is you check the is conjugated box.

08:02:01.460 --> 08:02:03.660
And then you see this little tilde symbol.

08:02:05.260 --> 08:02:15.700
So what port conjugation means, if you think of it, any interface has kind of a sender and a receiver.

08:02:17.320 --> 08:02:26.100
And you usually write your interface blocks, you define your interface blocks from the perspective of the sender.

08:02:26.100 --> 08:02:37.000
So if I look at my interface block, all these flow properties are coming out of the interface block.

08:02:37.580 --> 08:02:39.680
That's the perspective of the sender.

08:02:41.320 --> 08:02:55.140
And when I'm receiving the power in all my different subsystems, I have to switch the direction of the interface from sender to receiver.

08:02:56.240 --> 08:03:09.200
And the way you switch that is by opening the port specification and checking the is conjugated box.

08:03:16.040 --> 08:03:19.260
So we'll connect the first one here.

08:03:19.280 --> 08:03:22.500
So this one's going in the right direction and all these are incorrect.

08:03:24.220 --> 08:03:29.480
So I can click this port and interface it to there.

08:03:31.160 --> 08:03:33.120
And I'm OK.

08:03:37.860 --> 08:03:49.580
But if I do that, you see that my cameo tool gives me an error.

08:03:49.580 --> 08:04:10.200
OK. And so if you haven't seen these errors, you can click on this little red X here and say it'll tell you it's an incompatible flow and it'll give you some possible suggestions.

08:04:11.240 --> 08:04:15.180
So what I have to do is reverse the direction of this port power in.

08:04:16.260 --> 08:04:18.820
And that just conjugated the ports.

08:04:18.960 --> 08:04:23.000
If I open this one up now, now is conjugated is true.

08:04:23.780 --> 08:04:31.880
So I can either go through and set is conjugated or I can kind of just wire them up like this.

08:04:34.320 --> 08:04:38.020
And when I get rid of the red ink.

08:04:39.380 --> 08:04:41.180
It'll conjugate all the ports.

08:04:42.140 --> 08:04:48.180
So, again, I can do that and say reverse direction of the port power in.

08:04:58.100 --> 08:05:02.500
And I'm pretty much good to go at this point.

08:05:06.900 --> 08:05:17.500
And so this is one of those time consuming errors that happens all the time when you draw I.B.D.'s.

08:05:19.240 --> 08:05:27.720
And the technique that I'm attempting to teach you here is to always define your interface blocks.

08:05:29.420 --> 08:05:35.720
Before you start drawing I.B.D.'s and before you start putting item flows.

08:05:44.200 --> 08:05:48.420
Oops. Something wrong on that one.

08:06:06.060 --> 08:06:09.860
And it looks like I screwed it up a couple times.

08:06:33.420 --> 08:06:35.720
Accidentally deleted my port.

08:06:52.100 --> 08:07:01.220
And then finally to put the item flows on here I just take my flow property.

08:07:26.800 --> 08:07:27.820
That's interesting.

08:07:27.860 --> 08:07:29.580
Maybe I have to put a type.

08:07:29.580 --> 08:07:32.060
Where do I want to go?

08:07:32.100 --> 08:07:34.040
Interface blocks.

08:07:39.060 --> 08:07:39.900
Signal.

08:07:45.720 --> 08:07:49.620
So if you haven't seen item flow manager before.

08:07:50.800 --> 08:08:03.800
Item flow manager is a very confusing user interface compared to most things in cameo.

08:08:04.020 --> 08:08:12.620
But what you have to check when you put the item flow on there is that it's going in the right direction.

08:08:13.000 --> 08:08:18.000
So I'm going from the power supply to the image processing subsystem.

08:08:20.000 --> 08:08:24.460
And when I say finish it will put that on there.

08:08:28.600 --> 08:08:29.180
Okay.

08:08:30.540 --> 08:08:33.660
So the first thing that I did.

08:08:38.480 --> 08:08:42.960
And I now realize remind myself why I had to have all those signals defined.

08:08:44.200 --> 08:08:51.140
So when I tried to drop the flow property onto the connector.

08:08:52.880 --> 08:08:56.500
And the flow property didn't have a type on it.

08:08:56.940 --> 08:08:58.380
Cameo wouldn't let me do it.

08:08:59.220 --> 08:09:02.960
So the first thing I did is I took the signal power distribution.

08:09:04.740 --> 08:09:08.720
And I dropped it on this outflow property on iPower.

08:09:08.720 --> 08:09:10.060
Okay.

08:09:12.280 --> 08:09:15.840
And then the next thing that I did.

08:09:18.860 --> 08:09:20.920
Was I took this flow property.

08:09:22.900 --> 08:09:23.240
Power.

08:09:25.520 --> 08:09:29.240
And I dropped it on my connector.

08:09:31.080 --> 08:09:32.860
And I said set as item flow.

08:09:34.920 --> 08:09:36.760
And I click finish.

08:09:41.240 --> 08:09:50.660
And if I would have drawn these a little bit differently where this was off of that.

08:09:54.060 --> 08:09:58.980
Then you can kind of see that it's putting the item flow on the right one.

08:09:58.980 --> 08:10:02.420
Now I'll show you I'm going to make a mistake intentionally.

08:10:03.440 --> 08:10:04.560
And show you what happens.

08:10:04.680 --> 08:10:07.960
So I'm going to drop it on that connector.

08:10:09.980 --> 08:10:14.160
But this time I'm going to change its direction to be backwards.

08:10:14.380 --> 08:10:15.900
And as soon as I do that.

08:10:16.320 --> 08:10:17.900
It should light up in red.

08:10:18.840 --> 08:10:21.380
And now if I go here.

08:10:22.360 --> 08:10:23.580
It's going to say.

08:10:24.400 --> 08:10:25.380
Okay I see that one.

08:10:25.560 --> 08:10:26.140
I just.

08:10:26.580 --> 08:10:28.440
You edited the one of the interface.

08:10:28.820 --> 08:10:30.980
You edited the iPower interface block.

08:10:31.640 --> 08:10:33.020
That's what I think I'm missing.

08:10:33.620 --> 08:10:35.640
Yeah so what I did.

08:10:37.200 --> 08:10:40.520
When I created these flow properties they were untyped.

08:10:41.080 --> 08:10:41.480
Okay.

08:10:42.540 --> 08:10:43.200
And.

08:10:45.180 --> 08:10:46.840
I typed it.

08:10:46.840 --> 08:10:50.600
With the signal that we created on the signal diagram.

08:10:52.220 --> 08:10:54.420
So the signal is called power distribution.

08:10:55.360 --> 08:10:58.260
And I have a flow property called PWR.

08:10:58.560 --> 08:11:00.900
Now it has a type on it called power distribution.

08:11:02.260 --> 08:11:04.320
And once I put the type on it.

08:11:05.200 --> 08:11:09.520
That's when cameo let me drop the item flow onto the diagram.

08:11:10.440 --> 08:11:11.520
How did you type it?

08:11:12.420 --> 08:11:14.560
I typed it by.

08:11:14.680 --> 08:11:16.540
Here let me do another one.

08:11:18.900 --> 08:11:19.620
So.

08:11:21.340 --> 08:11:24.600
We have a signal that we made called power regulation.

08:11:25.280 --> 08:11:25.560
Right.

08:11:28.100 --> 08:11:32.080
And so how I typed it was I dropped the signal.

08:11:33.140 --> 08:11:34.520
Onto the flow property.

08:11:37.260 --> 08:11:38.460
And said change type.

08:11:38.460 --> 08:11:40.940
And that's how.

08:11:41.920 --> 08:11:44.440
All those types got on all those interface blocks.

08:11:45.680 --> 08:11:46.760
And then once.

08:11:48.300 --> 08:11:50.860
My flow property is tight.

08:11:52.140 --> 08:11:53.840
Then I can put it on there.

08:11:55.020 --> 08:11:57.060
Now how do I get rid of this.

08:12:00.580 --> 08:12:04.860
Now we got to go look at the item flow manager.

08:12:06.120 --> 08:12:08.720
So if you haven't used item flow manager.

08:12:10.620 --> 08:12:11.860
It is.

08:12:13.300 --> 08:12:13.660
Here.

08:12:15.540 --> 08:12:16.160
And.

08:12:17.620 --> 08:12:21.340
I've got this item flow that's basically wrong.

08:12:21.480 --> 08:12:27.860
And one of the confusing things about this interface for item flow manager is that the delete button is kind of hiding up here.

08:12:28.940 --> 08:12:29.320
OK.

08:12:29.580 --> 08:12:32.160
So I want to delete my incorrect item flow.

08:12:33.440 --> 08:12:36.100
Now I can close item flow manager.

08:12:38.520 --> 08:12:41.240
And now I can go back and grab power.

08:12:42.940 --> 08:12:44.320
Drop it on there.

08:12:44.720 --> 08:12:46.900
And the direction is correct.

08:12:49.100 --> 08:12:50.420
And I can finish it.

08:12:52.060 --> 08:12:56.860
So if you've ever spent much time doing IVDs.

08:12:59.900 --> 08:13:04.860
Your experience may be that this IVD.

08:13:05.900 --> 08:13:08.220
And it got put together.

08:13:09.920 --> 08:13:11.380
A lot more smoothly.

08:13:12.340 --> 08:13:14.080
And with a lot less red ink.

08:13:14.940 --> 08:13:16.500
Than what you've seen before.

08:13:17.600 --> 08:13:18.060
If.

08:13:18.700 --> 08:13:21.300
If you're already doing your.

08:13:21.300 --> 08:13:26.060
Your IVDs and don't have any trouble with item flow manager.

08:13:26.220 --> 08:13:28.100
Then I will say congratulations.

08:13:29.640 --> 08:13:32.200
Your experience may not be typical.

08:13:34.080 --> 08:13:37.340
But if you do them this way.

08:13:39.160 --> 08:13:40.460
Where you define.

08:13:42.140 --> 08:13:46.500
The flow properties and the signals and the interface blocks first.

08:13:47.540 --> 08:13:51.280
Then getting your item flows on here.

08:13:51.740 --> 08:13:55.360
Should just be a question of dragging the flow property.

08:13:56.340 --> 08:13:57.280
Onto the connector.

08:13:58.720 --> 08:13:59.280
And.

08:14:01.560 --> 08:14:06.180
Checking the direction and it should work out.

08:14:08.760 --> 08:14:12.960
Maybe smoother than what you've seen.

08:14:18.080 --> 08:14:18.740
Before.

08:14:20.260 --> 08:14:21.040
I hope so.

08:14:22.640 --> 08:14:24.660
So my point is.

08:14:25.880 --> 08:14:28.780
There is a sequence of steps that you can follow.

08:14:30.120 --> 08:14:32.540
That will keep you out of trouble with item flow manager.

08:14:33.680 --> 08:14:38.400
And personally for me the less I have to use item flow manager.

08:14:39.120 --> 08:14:42.320
The happier I am because.

08:14:43.200 --> 08:14:46.540
I find that it's.

08:14:48.140 --> 08:14:52.540
User interface is not much fun.

08:14:54.840 --> 08:14:57.760
I actually did these in exactly the wrong.

08:14:59.040 --> 08:15:04.760
Order here so I'm going to reorder my diagram a little bit.

08:15:06.920 --> 08:15:10.880
I think the cameo user interface is challenging everywhere.

08:15:12.640 --> 08:15:13.400
Well.

08:15:14.340 --> 08:15:18.880
It is challenging everywhere. Two of the most challenging places.

08:15:20.360 --> 08:15:23.500
Are requirement numbering and item flow manager.

08:15:26.660 --> 08:15:32.040
Having taught cameo for quite a while now.

08:15:33.920 --> 08:15:37.500
Everybody gets stuck with item flow violations.

08:15:39.660 --> 08:15:42.500
Everybody gets stuck with requirement numbering.

08:15:43.540 --> 08:15:47.460
It's just kind of how it is.

08:15:49.560 --> 08:15:50.240
But.

08:15:51.800 --> 08:15:53.280
Really the only.

08:15:55.780 --> 08:16:02.180
The only red ink I got here was trying to show you the mistakes that you're typically going to get.

08:16:03.600 --> 08:16:06.660
I didn't get lots of other red ink.

08:16:07.860 --> 08:16:10.780
And having completed this IBD.

08:16:11.360 --> 08:16:14.580
This movie is something that personally I'm very happy about.

08:16:16.800 --> 08:16:19.740
And the tricks are.

08:16:21.240 --> 08:16:25.120
Define your interface blocks first to find your flow properties to find your signals.

08:16:26.700 --> 08:16:31.960
And then do your IBDs where people get in trouble with IBDs.

08:16:32.940 --> 08:16:39.000
Is very much just trying to add item flows like I can take this connector.

08:16:39.620 --> 08:16:42.880
And I can go here and say new item flow.

08:16:44.040 --> 08:16:47.860
And then pick something from somewhere.

08:16:49.740 --> 08:16:52.920
And I'm going to get in huge trouble if I try to do it.

08:16:53.820 --> 08:17:01.680
So I never make item flows by clicking here and using new item flow.

08:17:02.300 --> 08:17:03.720
I always.

08:17:04.240 --> 08:17:07.000
Check my directions on my ports carefully.

08:17:08.200 --> 08:17:10.900
Check my directions on my flow properties carefully.

08:17:11.620 --> 08:17:16.440
And then just drag the flow property onto the connector.

08:17:19.000 --> 08:17:23.200
And it usually works pretty smoothly if you do it that way.

08:17:23.200 --> 08:17:24.840
Now of course.

08:17:26.460 --> 08:17:27.580
We cheated, right?

08:17:27.660 --> 08:17:32.220
And how we cheated was that before we tried to draw this.

08:17:33.800 --> 08:17:35.180
We asked AI.

08:17:36.600 --> 08:17:37.480
Tell me the interfaces.

08:17:38.000 --> 08:17:39.180
Show me the interface blocks.

08:17:39.180 --> 08:17:41.500
Show me the flow properties on the interface blocks.

08:17:42.580 --> 08:17:44.980
Make the signals which type those flow properties.

08:17:47.620 --> 08:17:53.560
And I'm not going to make you go back and type all the flow properties on here for your lab.

08:17:56.620 --> 08:17:59.900
But if you do it that way, define your interface blocks first.

08:18:00.000 --> 08:18:01.400
Then define your flow properties.

08:18:02.540 --> 08:18:04.800
Define your signals to type the flow properties.

08:18:06.280 --> 08:18:11.220
Then making the IBD becomes much easier.

08:18:12.180 --> 08:18:15.580
And you have a lot less red ink to fight.

08:18:17.060 --> 08:18:17.680
So.

08:18:18.420 --> 08:18:21.720
Let me snoop on you guys and see how you all did.

08:18:23.660 --> 08:18:24.400
Or are doing.

08:18:25.940 --> 08:18:26.660
So.

08:18:27.820 --> 08:18:28.400
Yeah.

08:18:29.820 --> 08:18:30.400
Look at that.

08:18:30.400 --> 08:18:34.980
I see three IBDs and no red ink.

08:18:38.000 --> 08:18:41.060
I'm very happy about that.

08:18:42.200 --> 08:18:49.460
Because when I have taught this class, not this class, but taught other SysML classes before.

08:18:50.380 --> 08:18:56.440
I always spend like half the lab debugging item flow violations.

08:18:58.740 --> 08:18:59.340
So.

08:19:00.780 --> 08:19:08.100
When I talk about writing a book on pain-free MBSE, there's going to be a whole section on what you just did.

08:19:09.040 --> 08:19:14.060
Which is how to do all this and not get trapped in all the red ink.

08:19:16.580 --> 08:19:23.440
You have to understand the relationship between a port and interface block.

08:19:24.660 --> 08:19:26.460
A flow property.

08:19:28.040 --> 08:19:28.780
And a signal.

08:19:30.660 --> 08:19:34.840
And once you understand all that, you can do these IBDs without red ink.

08:19:35.460 --> 08:19:36.660
Sound alright, everybody?

08:19:39.440 --> 08:19:40.120
Okay.

08:19:41.460 --> 08:19:43.900
It is 1213.

08:19:45.620 --> 08:19:48.140
Seems like a good time for lunch to me.

08:19:48.620 --> 08:19:49.760
Any objections?

08:19:49.760 --> 08:19:57.620
So let's come back at 1.15.

08:19:59.160 --> 08:20:01.760
And we'll continue going through logical architecture.

08:20:02.280 --> 08:20:05.560
Is all this stuff making sense as I do it?

08:20:06.260 --> 08:20:16.300
Because I didn't put lots of tutorial slides on here's what an IBD is and try to explain it that way.

08:20:16.300 --> 08:20:19.080
I just sort of explained it in the lab.

08:20:19.080 --> 08:20:20.160
All right.

08:20:20.520 --> 08:20:25.240
Well, then we will reconvene in an hour.

08:20:26.700 --> 08:20:31.040
And if any questions occur to you over the lunch break, save them up.

08:20:31.040 --> 08:20:33.020
And we'll talk about them then.

08:21:21.480 --> 08:21:22.880
Okay.

08:21:41.000 --> 08:21:42.400
Okay.

08:22:29.160 --> 08:22:30.560
Okay.

08:22:51.760 --> 08:22:53.160
Okay.

08:23:31.040 --> 08:23:31.160
Okay.

08:23:31.160 --> 08:23:31.200
Okay.

08:23:38.540 --> 08:23:39.940
Okay.

08:23:53.720 --> 08:23:55.120
Okay.

08:24:19.360 --> 08:24:20.760
Okay.

08:24:40.860 --> 08:24:42.260
Okay.

08:25:02.420 --> 08:25:03.140
Okay.

08:25:03.140 --> 08:25:03.160
Okay.

08:25:03.160 --> 08:25:03.520
Okay.

08:25:04.100 --> 08:25:04.820
Okay.

08:25:08.880 --> 08:25:10.280
Okay.

08:25:11.080 --> 08:25:12.480
Okay.

08:25:34.820 --> 08:25:34.880
Okay.

08:25:36.500 --> 08:25:36.860
Okay.

08:25:39.020 --> 08:25:40.260
Okay.

08:25:58.580 --> 08:25:59.980
Okay.

08:25:59.980 --> 08:26:00.020
Okay.

08:26:00.020 --> 08:26:00.120
Okay.

08:26:47.220 --> 08:26:48.620
Okay.

08:26:59.980 --> 08:27:00.020
Okay.

08:27:00.020 --> 08:27:00.040
Okay.

08:27:17.340 --> 08:27:18.740
Okay.

08:27:36.500 --> 08:27:37.900
Okay.

08:27:37.900 --> 08:27:37.920
Okay.

08:27:43.080 --> 08:27:43.380
Okay.

08:27:46.220 --> 08:27:46.520
Okay.

08:27:46.520 --> 08:27:46.720
Okay.

08:28:04.000 --> 08:28:05.400
Okay.

08:28:34.040 --> 08:28:35.440
Okay.

08:29:00.300 --> 08:29:01.700
Okay.

08:29:20.260 --> 08:29:21.660
Okay.

08:29:21.660 --> 08:29:22.180
Okay.

08:29:23.720 --> 08:29:25.120
Okay.

08:29:25.240 --> 08:29:26.640
Okay.

08:29:42.380 --> 08:29:43.780
Okay.

08:30:10.000 --> 08:30:11.400
Okay.

08:30:42.440 --> 08:30:43.840
Okay.

08:30:56.640 --> 08:30:56.700
Okay.

08:30:56.700 --> 08:30:56.720
Okay.

08:31:14.000 --> 08:31:15.400
Okay.

08:31:31.960 --> 08:31:32.160
Okay.

08:31:34.600 --> 08:31:34.800
Okay.

08:31:58.600 --> 08:32:00.000
Okay.

08:32:26.460 --> 08:32:27.860
Okay.

08:32:48.160 --> 08:32:49.560
Okay.

08:33:28.120 --> 08:33:29.520
Okay.

08:33:40.940 --> 08:33:40.960
Okay.

08:33:43.100 --> 08:33:43.680
Okay.

08:33:46.540 --> 08:33:46.960
Okay.

08:34:00.520 --> 08:34:01.920
Okay.

08:34:30.040 --> 08:34:31.440
Okay.

08:34:46.300 --> 08:34:47.700
Okay.

08:35:05.940 --> 08:35:07.340
Okay.

08:35:10.200 --> 08:35:11.220
Okay.

08:35:12.760 --> 08:35:12.940
Okay.

08:35:12.940 --> 08:35:13.260
Okay.

08:35:15.380 --> 08:35:16.780
Okay.

08:35:16.780 --> 08:35:17.800
Okay.

08:36:04.060 --> 08:36:05.460
Okay.

08:36:17.480 --> 08:36:17.780
Okay.

08:36:25.280 --> 08:36:26.140
Okay.

08:36:26.780 --> 08:36:26.800
Okay.

08:36:40.600 --> 08:36:41.520
Hello.

08:36:41.980 --> 08:36:42.780
Everybody here?

08:36:47.600 --> 08:36:52.880
Everybody's here in the meeting.

08:36:55.140 --> 08:37:03.640
So, before we continue with logical architecture, which as you're seeing is a pretty big module

08:37:03.640 --> 08:37:07.900
in this course, any questions about anything we did this morning?

08:37:12.000 --> 08:37:14.420
That means it's all crystal clear, right?

08:37:15.740 --> 08:37:24.160
I hope so, actually, because this is meant to be kind of a very simple, easy to follow,

08:37:24.160 --> 08:37:34.400
straightforward process that steers you around the time and schedule of things.

08:37:35.440 --> 08:37:36.520
All right.

08:37:37.400 --> 08:37:45.460
So, just to kind of review really quickly, we crossed the boundary between conceptual modeling

08:37:45.460 --> 08:37:52.120
and architecture when we started talking about subsystems.

08:37:52.800 --> 08:38:00.380
And then, in addition to listing the subsystems, we started defining interfaces between subsystems.

08:38:01.020 --> 08:38:11.060
Signals needed to type the flow properties on the interfaces and then IBDs to show those

08:38:11.060 --> 08:38:12.660
signals crossing the interfaces.

08:38:15.540 --> 08:38:21.620
Next, so we're still kind of working at the top level of the electron microscope

08:38:21.620 --> 08:38:22.100
now.

08:38:22.960 --> 08:38:32.320
And the next thing we want to do is a top level state machine that connects the subsystems.

08:38:36.080 --> 08:38:41.500
And I basically got ChatGPT to describe this state machine with the prompt that

08:38:41.500 --> 08:38:46.600
you see in orange, which says, describe the top level state machine that connects

08:38:46.600 --> 08:38:48.180
all the subsystems of the SEM.

08:38:50.200 --> 08:38:56.540
And ChatGPT told me what you see in white here.

08:38:56.740 --> 08:38:58.520
It's going to initialize.

08:38:58.940 --> 08:39:01.280
From initialization, it goes into idle.

08:39:02.280 --> 08:39:03.460
Excuse me, are you sharing?

08:39:04.180 --> 08:39:09.980
Oh, I'm very sorry.

08:39:11.680 --> 08:39:16.300
Thank you for that.

08:39:16.300 --> 08:39:18.560
Let me get that.

08:39:21.840 --> 08:39:24.100
Apparently, I'm brain dead after lunch.

08:39:26.080 --> 08:39:29.580
So let me go through that again while sharing the screen.

08:39:29.660 --> 08:39:35.700
So we started by identifying all the subsystems.

08:39:36.560 --> 08:39:41.680
Then we started identifying interfaces and defining interface blocks.

08:39:42.720 --> 08:39:49.360
Those interface blocks have flow properties and the flow properties are typed by

08:39:49.360 --> 08:39:50.060
signals.

08:39:52.020 --> 08:39:53.740
And here are the signals.

08:39:55.100 --> 08:40:01.080
And then once we put that structure in place with the interfaces being defined,

08:40:01.240 --> 08:40:06.220
then it's much simpler to draw our IBDs and show the interfaces.

08:40:07.300 --> 08:40:10.240
And I think where a lot of people get in trouble is that they try to make

08:40:10.240 --> 08:40:15.300
those interfaces up as they're doing the IBDs instead of defining their

08:40:15.300 --> 08:40:16.200
interfaces first.

08:40:16.980 --> 08:40:18.960
And that causes a lot of trouble.

08:40:20.280 --> 08:40:23.940
Next, what we're going to talk about is state machines.

08:40:25.760 --> 08:40:32.200
And so I asked AI to give me the top level state machine that connects all

08:40:32.200 --> 08:40:34.480
those subsystems.

08:40:34.480 --> 08:40:41.140
And the response I got was we start out by initializing and that sets everything

08:40:41.140 --> 08:40:41.460
up.

08:40:41.480 --> 08:40:42.600
Then we go into idle.

08:40:43.620 --> 08:40:53.620
And then we can transition into different operations from the idle state,

08:40:55.880 --> 08:40:58.280
really different states from the idle state.

08:41:00.060 --> 08:41:02.680
When we're scanning the image, we go into imaging.

08:41:02.680 --> 08:41:06.120
After imaging, we go to image processing.

08:41:07.500 --> 08:41:11.320
After image processing, we're going to analyze the images that are produced.

08:41:11.600 --> 08:41:15.800
And after they're analyzed, we can generate reports.

08:41:16.860 --> 08:41:19.300
And then we can go back to idle.

08:41:21.960 --> 08:41:30.680
So I was particularly interested in both imaging and stage control because

08:41:32.000 --> 08:41:36.820
later chapters in the book are going to do things with those two subsystems.

08:41:39.380 --> 08:41:48.240
And so I asked it to describe substates within those two higher level states.

08:41:49.860 --> 08:41:51.040
And I got this result.

08:41:51.040 --> 08:42:01.160
And, you know, you can if you start looking at SysML version two language model,

08:42:01.840 --> 08:42:08.040
you'll realize that the gap between what's being produced here and what's in a

08:42:08.040 --> 08:42:12.340
SysML version two language model is really pretty small.

08:42:12.380 --> 08:42:13.460
And it's just a question.

08:42:13.580 --> 08:42:14.740
It's all the same information.

08:42:14.740 --> 08:42:23.360
It's just a question of changing the format of it to basically generate this state machine in

08:42:23.360 --> 08:42:24.440
SysML version two.

08:42:25.360 --> 08:42:28.480
But we didn't have that available when I was writing the book.

08:42:29.800 --> 08:42:40.200
And so manually, I basically constructed this state machine from what AI gave me.

08:42:40.200 --> 08:42:47.620
And what we are now going to do is you're going to draw this state machine and then we're going to simulate it.

08:42:50.960 --> 08:43:00.580
And just I'll give you a really, really quick review on state machine syntax and notation.

08:43:03.380 --> 08:43:05.760
And is anybody new to state machines?

08:43:05.900 --> 08:43:08.920
Anybody hasn't seen a state machine before or hasn't built one?

08:43:08.920 --> 08:43:10.180
I have not.

08:43:11.240 --> 08:43:11.980
OK.

08:43:16.120 --> 08:43:17.900
So anybody else?

08:43:19.060 --> 08:43:19.840
All right.

08:43:21.060 --> 08:43:32.320
So the yellow bubbles on here or the round cornered rectangles that are in a column represent states of the system.

08:43:33.260 --> 08:43:43.160
And what you can see, because we can have states within states, is that we can have hierarchical state machines with nesting in them.

08:43:44.180 --> 08:43:47.520
And there's a bunch of different ways to do nested states.

08:43:47.520 --> 08:43:53.160
I kind of kept it pretty simple in this example.

08:43:54.000 --> 08:44:02.100
But the black dot or the black circles that you see are the initial state.

08:44:03.480 --> 08:44:10.620
And you'll notice that when we're talking about substates, each substrate has an initial state.

08:44:11.620 --> 08:44:17.260
And then the little bullseye, black and white bullseye looking state is the final state.

08:44:18.020 --> 08:44:25.580
And so for our substates, we have both initial states and final states of the substrate.

08:44:25.720 --> 08:44:36.800
When you hit the final state of a substate, like this one here, then what you do is you follow the unlabeled transition out of that substate.

08:44:36.800 --> 08:44:37.020
OK.

08:44:41.440 --> 08:44:45.240
And the transitions take you from state to state.

08:44:46.500 --> 08:44:51.220
And what triggers a state transition is basically a signal.

08:44:53.940 --> 08:44:58.380
So I'm going to guess that we have a signal called position stage.

08:44:59.660 --> 08:45:02.620
Let me go back and look, actually, just to make sure.

08:45:02.620 --> 08:45:06.380
So do we have a signal called position stage?

08:45:09.000 --> 08:45:10.360
Yes, we do.

08:45:11.020 --> 08:45:16.520
So right up here in the top center is the signal composition stage.

08:45:17.300 --> 08:45:28.220
And when you draw a state machine, you can just drop that signal right on the transition so that, you know, and if you don't have the signal defined,

08:45:28.220 --> 08:45:38.220
you can create new signals by just typing, basically draw the transition and without clicking anything, just type the name of the transition,

08:45:39.720 --> 08:45:45.800
what you think is the name, but it's actually the single name and not the transition name.

08:45:48.400 --> 08:45:48.820
What else?

08:45:49.080 --> 08:45:51.880
So state machines get more complex than this.

08:45:52.840 --> 08:45:58.540
You can put on any state what's called entry behavior, exit behavior and do behavior.

08:45:59.520 --> 08:46:02.640
We're not going to do that on this particular state machine.

08:46:07.740 --> 08:46:09.140
Any questions? All right.

08:46:09.140 --> 08:46:14.140
So we're going to get ready to draw this state machine in cameo then.

08:46:15.140 --> 08:46:17.880
And I will draw it with you.

08:46:20.780 --> 08:46:33.060
So here we are on the desktop again, and I think this is my desktop, which it is.

08:46:36.400 --> 08:46:50.420
So at this point, if you haven't used this, used cameo very much before, you can start to see that I'm getting to have a lot of tabs open.

08:46:51.760 --> 08:47:00.860
And it sort of starts to get a little hard to follow, which is open.

08:47:00.860 --> 08:47:07.180
And so there's kind of an easy thing you can do, which is to just close tabs.

08:47:08.500 --> 08:47:09.940
So I closed all of them.

08:47:11.960 --> 08:47:20.320
And now I'm just going to close some stuff up here, go back to my top level electron microscope diagram.

08:47:22.800 --> 08:47:33.140
And what we want to do next is make a package in our logical model that I'm going to call top level state machine.

08:47:33.140 --> 08:47:36.200
So I'm going to do this here.

08:47:37.140 --> 08:47:39.820
Going to create a package.

08:47:42.240 --> 08:47:48.700
I'm going to call it top level states state machine.

08:47:53.480 --> 08:48:06.360
And now I'm going to create a diagram in my top level state machine, which is a sysml state machine diagram.

08:48:06.360 --> 08:48:29.900
And you'll notice that when you create a state machine in sysml, it automatically gives you the initial state or the initial state and the first state that you transition into.

08:48:37.160 --> 08:48:42.260
And I think I'm not going to bother using composite states.

08:48:43.540 --> 08:48:46.540
I'm just going to make all these simple states.

08:48:48.320 --> 08:48:50.780
I don't think I'll get in trouble by doing that.

08:48:52.280 --> 08:48:54.200
I may be wrong, but I don't think I will.

08:48:54.200 --> 08:49:00.420
I've heard that that can cause problems, but I've not fleshed out how that causes a problem.

08:49:01.420 --> 08:49:08.660
Well, it might cause a problem when we're simulating, but I kind of don't think so.

08:49:13.500 --> 08:49:17.080
So there's lots of different ways to do substates.

08:49:17.940 --> 08:49:31.920
But I'm going to just start with just making everything a simple state, and we'll see if I get in trouble.

08:49:32.000 --> 08:49:37.700
And I'm going to introduce you to the cameo simulator at this point as well.

08:49:37.700 --> 08:49:47.000
So I'm just going to make another state here and a little bit bigger state over here.

08:49:50.160 --> 08:49:54.880
And I'm going to put my state final over there.

08:50:00.560 --> 08:50:11.220
And then we're going to do this top level composite state here.

08:50:12.500 --> 08:50:15.460
And then we'll simulate it, and we'll see if we get in any trouble.

08:50:17.040 --> 08:50:18.840
So we can label these.

08:50:18.840 --> 08:50:22.520
This is initialization.

08:50:25.680 --> 08:50:27.040
That's error.

08:50:31.880 --> 08:50:35.900
And then we're going to wire these up with a couple transitions.

08:50:40.680 --> 08:50:45.320
Now the question is, do I have a signal called initialization error?

08:50:45.320 --> 08:50:54.920
If you haven't used the little magnifying glass here, so it looks like I don't.

08:50:54.920 --> 08:51:00.800
When we did our signals before, we didn't make one for initialization error.

08:51:02.060 --> 08:51:04.440
So let me show you how to do that.

08:51:04.760 --> 08:51:09.440
So this search tool here is really useful, and that's this little search tool there.

08:51:09.440 --> 08:51:16.480
So to label this transition initialization error, and you want to maybe watch this carefully,

08:51:17.640 --> 08:51:24.840
I select the transition, and then without touching anything else, I type initialization error.

08:51:24.880 --> 08:51:31.860
And what you can see over here in the containment tree is that it made a signal for me called initialization error.

08:51:33.120 --> 08:51:42.500
So the quickest way to create signals in Cameo is actually to just label a transition.

08:51:44.620 --> 08:51:47.080
So here's initialization error.

08:51:47.460 --> 08:51:53.120
If I don't get the initialization error, I'm going to get initialization complete.

08:51:54.460 --> 08:51:56.280
And I didn't notice that.

08:51:56.300 --> 08:51:58.340
I'll just check again.

08:51:59.000 --> 08:52:01.200
Do I have initialization complete?

08:52:01.200 --> 08:52:04.260
No, I don't.

08:52:04.500 --> 08:52:12.420
So I'm just going to select that and start typing initialization complete.

08:52:14.620 --> 08:52:18.580
And then this state is called system ready.

08:52:20.360 --> 08:52:21.560
It's easier to read.

08:52:21.820 --> 08:52:25.640
And now I have a state called stage control.

08:52:26.640 --> 08:52:31.120
And I think now we're going to get to a signal that we do have.

08:52:32.020 --> 08:52:38.120
So I'm going to draw a transition from system ready into stage control.

08:52:41.740 --> 08:52:44.920
And again, I'm going to check.

08:52:47.460 --> 08:52:51.260
And here I have a signal called position stage.

08:52:52.200 --> 08:52:56.360
So I'm going to take that signal and drop it on that transition.

08:52:59.960 --> 08:53:02.780
So in all these cases, I want to point something out to you.

08:53:02.820 --> 08:53:08.960
If I open this transition, the name of this transition is blank.

08:53:10.840 --> 08:53:18.340
When I typed the name of that signal, it created a signal element called initialization error.

08:53:18.340 --> 08:53:27.740
And then it created the trigger on the transition and said it's a type signal event and the signal is initialization error.

08:53:27.800 --> 08:53:31.540
So I don't ever put anything in the name field on these transitions.

08:53:33.640 --> 08:53:39.860
If you double click on it, like if you open the specification and type the signal name here, it's not going to work.

08:53:42.540 --> 08:53:46.260
So just make sure you're clear about that.

08:53:46.260 --> 08:53:52.280
The syntax on a state transition is you have trigger, guard, and effect.

08:53:54.600 --> 08:53:56.700
The trigger is generally a signal.

08:53:57.220 --> 08:53:58.920
It could be a different type of event.

08:54:00.080 --> 08:54:05.100
So types of events that it could be are a change event or a time event.

08:54:06.960 --> 08:54:12.200
But in this case, we want a signal event, and that's the most typical one.

08:54:12.200 --> 08:54:16.800
The guard is a Boolean condition that gets specified here.

08:54:18.280 --> 08:54:24.900
And then the effect is usually going to be an activity.

08:54:24.900 --> 08:54:41.000
So what that means is that as this transition is firing, it can actually launch an activity that we've identified on an activity diagram.

08:54:43.900 --> 08:54:44.900
All right.

08:54:44.900 --> 08:54:51.340
So we're going to put three substates in here.

08:54:57.000 --> 08:55:05.100
And then within this stage control state, we're going to put an initial and a final.

08:55:05.100 --> 08:55:13.300
And then we're going to draw a transition back to system ready out of here.

08:55:17.800 --> 08:55:21.340
And then we're going to connect these.

08:55:25.860 --> 08:55:34.360
So technically speaking, this initial state is not really a state, but it is something called a pseudo state.

08:55:35.480 --> 08:55:42.700
And the difference between a pseudo state and a regular state is that you can never rest in a pseudo state.

08:55:43.160 --> 08:55:48.340
You always have to follow the transition out of it as soon as you enter it.

08:55:50.080 --> 08:56:01.220
So my substates here are idle, moving, and stopping.

08:56:03.060 --> 08:56:12.480
And again, if you remember our, let's just go back and look at the domain model to remind you what the stage is.

08:56:14.980 --> 08:56:20.100
So we finally decided to call it sample stage instead of just stage.

08:56:21.880 --> 08:56:29.040
But the stage sits inside the sample chamber and the sample sits on top of the stage.

08:56:30.000 --> 08:56:38.540
And the stage is going to move back and forth because it has motors in it as an X motor and a Y motor.

08:56:38.540 --> 08:56:41.760
We haven't specified those yet, but we will.

08:56:43.780 --> 08:56:47.200
So you can call it sample stage or just call it stage.

08:56:47.380 --> 08:56:55.940
But the stage is where we put our sample and then we move the stage underneath the electron beam.

08:56:57.860 --> 08:57:00.140
So we have position stage coming in here.

08:57:00.140 --> 08:57:06.120
Now we have move stage and we want to check if we have that signal already.

08:57:09.480 --> 08:57:12.160
And we do not have that signal.

08:57:13.800 --> 08:57:16.100
So we're going to create it.

08:57:20.600 --> 08:57:26.840
And then we have another transition called position reached.

08:57:28.900 --> 08:57:31.080
And we don't have that.

08:57:31.820 --> 08:57:40.760
So the reason we don't have these signals yet is that when we asked for all the signals at the top level,

08:57:41.260 --> 08:57:44.980
we didn't get the signals down inside the subsystems yet.

08:57:47.300 --> 08:57:56.700
So this thing, position reached, is really a signal that's going to exist inside the stage subsystem.

08:58:00.860 --> 08:58:06.020
Alright, so is everybody with me where I am on this diagram now?

08:58:06.360 --> 08:58:08.780
Because the next thing I'm going to do is simulate it.

08:58:10.100 --> 08:58:11.540
I got a yes from Mark.

08:58:12.360 --> 08:58:13.000
Yep.

08:58:14.380 --> 08:58:15.540
I haven't dropped my signals.

08:58:15.840 --> 08:58:17.300
I'm building everything twice.

08:58:17.560 --> 08:58:18.200
Okay.

08:58:19.780 --> 08:58:27.520
Maybe when you build it twice, build it on the virtual machine first instead of on your local machine first.

08:58:29.400 --> 08:58:32.200
Are you okay if I start simulating this now?

08:58:33.240 --> 08:58:33.700
I'm good.

08:58:34.100 --> 08:58:34.540
Okay.

08:58:35.480 --> 08:58:40.120
Alright, so if you haven't used – well, first of all, is there anyone who has not used the Cameo simulator?

08:58:41.640 --> 08:58:42.160
I have not.

08:58:42.540 --> 08:58:42.860
Okay.

08:58:43.160 --> 08:58:45.460
So this is going to be your introduction to the simulator.

08:58:45.640 --> 08:58:46.140
Got it.

08:58:46.900 --> 08:58:47.380
Alright.

08:58:47.680 --> 08:58:54.780
So you should have this little triangle button up on the top of this little ribbon.

08:58:56.320 --> 08:58:58.080
That is your simulator button.

08:58:59.400 --> 08:59:09.820
So when you click it, you get this other window, and there's a lot of detail to be had in this simulation window.

08:59:10.840 --> 08:59:13.800
And this isn't the only state machine we're going to do.

08:59:15.700 --> 08:59:17.820
But a couple things you should know.

08:59:18.040 --> 08:59:22.780
One is – somebody put something in the chat.

08:59:26.740 --> 08:59:27.780
It says BRV.

08:59:28.780 --> 08:59:29.400
You're right back.

08:59:31.800 --> 08:59:34.600
Well, I'm going to hope that he knows how to use the simulator.

08:59:35.580 --> 08:59:37.140
I think he probably does.

08:59:38.780 --> 08:59:49.440
So one is you have a little – I'll date myself and say VCR control panel, more like a DVD control panel here.

08:59:49.440 --> 08:59:56.040
And this little play button starts the simulator, and the little red square stops it.

08:59:56.380 --> 09:00:00.200
The other thing that you'll find is that there's this thing called the trigger menu.

09:00:01.160 --> 09:00:08.800
And what's on that trigger menu is all the signals that we are using on this state machine.

09:00:11.680 --> 09:00:18.120
And we're going to give those signals to step through, stimulating the state machine.

09:00:19.040 --> 09:00:22.300
Okay, so I'm going to – there's a bunch of other stuff here.

09:00:22.700 --> 09:00:27.660
Console, variables, all kinds of stuff that we're not going to worry about right now.

09:00:28.140 --> 09:00:30.500
But we're going to start this simulation.

09:00:32.300 --> 09:00:40.180
And what you see is that when you start the simulator, it starts lighting things up.

09:00:40.980 --> 09:00:44.640
And so this state that you see in red, that's not an error.

09:00:45.120 --> 09:00:48.220
That's just where we are in the state machine right now.

09:00:48.880 --> 09:00:51.000
So what signal do we want to give it?

09:00:51.020 --> 09:00:56.080
We want to give it initialization complete and watch it go into the ready state.

09:00:56.280 --> 09:01:03.460
So when I give it initialization complete, now I've advanced – excuse me, I've advanced to ready.

09:01:06.480 --> 09:01:10.280
And next we want to go into stage control.

09:01:12.460 --> 09:01:15.280
So I'm going to give it position stage.

09:01:16.660 --> 09:01:22.040
And now what you see is that it's gone into the stage control state.

09:01:23.740 --> 09:01:32.520
And it's dived in, dove in, drilled down into the internal details of this state.

09:01:32.520 --> 09:01:35.060
And now we're looking at the substates.

09:01:35.780 --> 09:01:38.640
So now we're in stage control, but our stage is idle.

09:01:39.620 --> 09:01:41.260
We're going to move the stage.

09:01:43.180 --> 09:01:44.760
And now the stage is moving.

09:01:46.820 --> 09:01:53.040
And while the stage is moving, it's going to check if it's at its desired location or not.

09:01:53.820 --> 09:01:58.560
And if it is, it's going to send back a signal that says the position has been reached.

09:02:00.900 --> 09:02:10.660
In which case we stop, we get to the state final in the substate, and transition right back to the system ready state.

09:02:11.100 --> 09:02:15.240
So that's your first quick introduction to the simulator.

09:02:16.320 --> 09:02:18.420
Elena, how did you do? Did everything simulate okay?

09:02:20.120 --> 09:02:20.920
That's great.

09:02:21.200 --> 09:02:21.480
Good.

09:02:22.380 --> 09:02:27.860
All right, so we're going to stop the simulation now and finish up the state machine.

09:02:27.860 --> 09:02:33.920
And I'm not going to narrate this every step of the way.

09:02:33.920 --> 09:02:35.380
I'm just going to draw it.

09:02:35.380 --> 09:02:43.940
And then if you have questions, just shout out.

09:03:08.220 --> 09:03:13.120
In this case, I have a signal called scan, and I'm going to use that instead of scan sample.

09:03:15.120 --> 09:03:19.100
You want to be careful not to redundantly create some.

09:03:19.960 --> 09:03:20.480
Yes.

09:03:21.220 --> 09:03:31.020
If you go and you start just like naming that transition and that already and that signal already exists, it won't select it.

09:03:31.020 --> 09:03:33.020
It will just create a redundant one.

09:03:39.480 --> 09:03:43.040
I'm actually not positive.

09:03:44.380 --> 09:03:45.700
You can try it.

09:03:46.740 --> 09:03:48.140
What was the question again?

09:03:48.840 --> 09:03:57.200
If you start typing scan here and there's already a scan sample, will it search for it, find it and pop it up?

09:03:57.200 --> 09:04:06.220
I think you have to search first, but I'm not 100% positive.

09:04:08.000 --> 09:04:13.220
I think it will create, if you don't already have something that is a scan, I think it automatically sets a new signal to scan.

09:04:13.900 --> 09:04:15.500
Yeah, that's what I think too.

09:04:17.040 --> 09:04:24.140
Sure, yes, it already exists, but I'm just asking if it doesn't already exist, but I'm asking if it does already exist.

09:04:24.340 --> 09:04:31.760
It doesn't let you select the one that is not looking to see if something already exists and selects that.

09:04:33.840 --> 09:04:37.100
I think you're correct, and it doesn't.

09:04:38.200 --> 09:04:49.620
I think that due to naming conflicts, it might cause an issue because if you've already got something called scan and it's a signal,

09:04:50.420 --> 09:04:55.220
you're trying to identify, you're trying to name another thing the exact same thing as a signal.

09:04:55.720 --> 09:04:58.260
I think with signals, it might cause an issue.

09:05:00.720 --> 09:05:03.220
It might grab the previous one you got created.

09:05:06.260 --> 09:05:08.860
Yeah, I'm just not sure. You'll have to test it, Elena.

09:05:11.260 --> 09:05:16.580
I'm not certain of the answer, and so the safe thing to do is test it.

09:05:19.100 --> 09:05:28.220
But from a best practice standpoint, before you type a signal name, it's a good idea to search for it up here.

09:05:28.220 --> 09:05:30.660
That's the way I've been doing it.

09:05:30.860 --> 09:05:35.480
So I've got my top level states there.

09:05:36.260 --> 09:05:38.860
I'm going to have one of those.

09:05:41.200 --> 09:05:43.280
Sorry, sometimes I mumble to myself.

09:05:43.280 --> 09:05:46.620
Probably very distracting.

09:06:26.760 --> 09:06:28.160
Okay.

09:07:06.520 --> 09:07:09.080
Daniel, you've got a hand up. Is that a question or you're done?

09:07:10.060 --> 09:07:10.540
I'm done.

09:07:12.000 --> 09:07:13.580
All right.

09:07:14.840 --> 09:07:15.820
And it all simulates.

09:07:16.340 --> 09:07:18.080
Oh, well, let's see.

09:07:24.940 --> 09:07:41.620
Yep, all good.

09:07:41.620 --> 09:07:43.360
Cool.

09:08:08.960 --> 09:08:10.360
Okay.

09:08:10.360 --> 09:08:20.420
And you can kind of see why I'm really looking forward to the day when I can just ask chat GPT to go create my state machine.

09:08:24.660 --> 09:08:28.020
Because there's a fair amount of work involved in drawing these.

09:08:30.760 --> 09:08:33.720
And it looks like I haven't put any signals on those.

09:08:35.820 --> 09:08:45.460
So and you'll see when you simulate it, if you don't put any triggers on these transitions, the simulator will just zip right through them.

09:08:48.920 --> 09:08:50.880
Without stopping.

09:08:50.880 --> 09:08:51.080
Cool.

09:09:07.600 --> 09:09:10.400
All right.

09:09:10.400 --> 09:09:12.840
So I'm going to go simulate mine now.

09:09:13.080 --> 09:09:14.920
First I'm going to save it.

09:09:16.520 --> 09:09:17.920
Okay.

09:09:44.480 --> 09:09:45.880
Okay.

09:09:51.100 --> 09:09:59.600
So here's where all the years since I took high school grammar fail me.

09:09:59.640 --> 09:10:01.520
So these aren't exactly nouns.

09:10:01.600 --> 09:10:02.840
They're not things.

09:10:04.740 --> 09:10:07.680
And they're not exactly verbs.

09:10:08.540 --> 09:10:09.020
Okay.

09:10:11.780 --> 09:10:14.500
And if you ask me what part of speech they are.

09:10:16.400 --> 09:10:18.740
I'm going to be stumped for an answer.

09:10:24.080 --> 09:10:24.720
Yeah.

09:10:36.460 --> 09:10:41.680
Well, what they represent is they represent states that the system can be.

09:10:43.240 --> 09:10:49.680
So it's either waiting for something or doing something and.

09:10:54.200 --> 09:10:57.700
Yeah, I don't know that I would say that it's necessarily a verb of anything.

09:10:57.700 --> 09:10:59.500
I mean, think about some of the most simple ones.

09:10:59.800 --> 09:11:02.140
Just, you know, you could have a power on state.

09:11:02.200 --> 09:11:03.580
You can have a power off state.

09:11:03.700 --> 09:11:06.740
You can have a bit state.

09:11:06.820 --> 09:11:08.500
You can have an initialization state.

09:11:08.660 --> 09:11:11.000
So there's not one answer for that.

09:11:11.020 --> 09:11:12.860
It's just going to be dependent on your system.

09:11:14.580 --> 09:11:18.100
So I'm going to cheat and ask Google here on my phone.

09:11:18.100 --> 09:11:21.060
Like what?

09:11:21.620 --> 09:11:27.100
Grammatically, what part of what kind of element is the word analyze?

09:11:27.780 --> 09:11:29.700
What part of speech is the word analyze?

09:11:29.780 --> 09:11:31.160
It says it's a verb.

09:11:32.580 --> 09:11:32.940
All right.

09:11:32.980 --> 09:11:34.220
Let me try another one.

09:11:35.000 --> 09:11:39.300
What part of speech is the word completed?

09:11:41.540 --> 09:11:43.380
Part of speech is the word completed.

09:11:44.200 --> 09:11:47.560
Completed is the past participle of the verb complete.

09:11:48.380 --> 09:11:51.280
So it is considered a verb when used in a sentence.

09:11:52.920 --> 09:11:54.760
So I guess they're kind of verbs.

09:11:55.560 --> 09:11:56.920
You know, moving is a verb.

09:11:58.740 --> 09:12:00.080
Stopping is a verb.

09:12:02.360 --> 09:12:08.360
So, you know, but usually with state machines,

09:12:10.020 --> 09:12:14.020
you don't really think so much about nouns and verbs.

09:12:14.940 --> 09:12:17.280
They are states that the system can be.

09:12:19.800 --> 09:12:25.180
But I guess most of the time, like ready, you know, what is ready?

09:12:25.320 --> 09:12:26.040
I don't know.

09:12:28.340 --> 09:12:30.340
So it's a good question.

09:12:31.140 --> 09:12:34.340
And it's been way too many years since I took English in high school.

09:12:35.440 --> 09:12:36.500
I apologize.

09:12:37.320 --> 09:12:38.380
But let me check.

09:12:38.540 --> 09:12:41.940
How's everybody doing with getting these state machines to simulate?

09:12:42.380 --> 09:12:44.220
Lana, looks like you're still diagramming.

09:12:44.800 --> 09:12:45.340
I am.

09:12:45.720 --> 09:12:46.080
OK.

09:12:47.740 --> 09:12:54.460
So we'll wait a minute or two and let you get that done and simulate it.

09:12:54.460 --> 09:13:03.440
But I guess while you're doing that, I'll kind of go reinforce a little bit

09:13:04.960 --> 09:13:10.600
what this approach is that I'm teaching you, the domain-driven logical

09:13:10.600 --> 09:13:12.100
architecture approach.

09:13:12.840 --> 09:13:16.680
And it's basically to do everything at the top level first,

09:13:17.580 --> 09:13:20.800
going across the various subsystems.

09:13:20.800 --> 09:13:25.920
And then when you get all that done the way you want it,

09:13:26.940 --> 09:13:31.280
then you start diving down into each subsystem in turn.

09:13:32.540 --> 09:13:34.660
And you kind of repeat the same process,

09:13:35.580 --> 09:13:40.600
but it's within the subsystem instead of across the subsystem.

09:13:40.820 --> 09:13:43.560
And, you know, in parallel with while you're doing this,

09:13:44.420 --> 09:13:46.820
you're probably discovering new requirements,

09:13:46.820 --> 09:13:53.720
and you're probably going to have subsystem level requirements as well as

09:13:53.720 --> 09:13:55.240
the system level requirements.

09:13:56.960 --> 09:14:03.840
So all the while that you're kind of modeling what the system does,

09:14:06.040 --> 09:14:11.340
the basic approach is to get it right at the top level first.

09:14:12.400 --> 09:14:17.860
And then you dive down to each subsystem in turn and get that right.

09:14:18.260 --> 09:14:20.980
And, of course, if you're working on a team,

09:14:22.540 --> 09:14:25.080
once you get the top level stuff correct,

09:14:26.000 --> 09:14:32.460
then you can task different people on the team with going down into each subsystem.

09:14:32.460 --> 09:14:33.480
Right.

09:14:35.960 --> 09:14:40.940
So, does that all make sense just from a philosophical standpoint?

09:14:42.360 --> 09:14:42.740
Yeah.

09:14:43.640 --> 09:14:46.560
And another beautiful thing is it's just a few boxes and lines,

09:14:46.620 --> 09:14:52.840
but it's so good at making clear when things happen at certain times,

09:14:53.020 --> 09:14:54.260
but just in the space.

09:14:54.740 --> 09:14:57.620
You know, imaging only happens after system ready.

09:14:58.540 --> 09:14:59.800
And these are the three things.

09:15:03.140 --> 09:15:06.460
Yeah, me too.

09:15:07.300 --> 09:15:08.680
They're really powerful.

09:15:14.260 --> 09:15:15.800
Yeah, in fact, that may be.

09:15:18.960 --> 09:15:19.360
Not yet.

09:15:19.460 --> 09:15:23.360
We still got some more to go, but you can.

09:15:24.600 --> 09:15:29.440
And this is a really cool thing, which you may want to try.

09:15:31.320 --> 09:15:34.540
Is just save that state machine as an image.

09:15:35.600 --> 09:15:43.640
Go drop it onto Chad GPT and say, write me the C++ code or microcontroller

09:15:44.660 --> 09:15:49.240
and watch it go, because it's really cool.

09:15:49.360 --> 09:15:56.020
In fact, this was the diagram I was working with Brian on a Zoom call.

09:15:56.020 --> 09:16:01.380
And I had done this state machine, which, you know, doing it the first time

09:16:02.280 --> 09:16:05.760
took a little bit of work to transcribe what Chad GPT did.

09:16:06.460 --> 09:16:10.080
Once you see the answer, it's pretty quick to draw it.

09:16:10.280 --> 09:16:15.040
But it took a little while to get this, you know, to simulate correctly

09:16:15.040 --> 09:16:17.300
based on what AI gave me.

09:16:18.280 --> 09:16:22.840
But then from there, when you just say, write the code for this,

09:16:22.840 --> 09:16:24.220
boom, done.

09:16:26.400 --> 09:16:31.920
You know, I just started playing with Chad GPT as of, you know, yesterday and today.

09:16:32.520 --> 09:16:36.180
And I just tried playing around with it after I saw you generate some images.

09:16:36.540 --> 09:16:42.100
And I tried to generate an image and I don't know, I kept running into an error

09:16:42.100 --> 09:16:47.640
or something because I asked it to generate an image, you know, for my family vacation,

09:16:47.760 --> 09:16:50.880
which is, you know, me and my wife and three daughters.

09:16:50.880 --> 09:16:52.580
We've been ready to go to Columbia.

09:16:52.680 --> 09:16:58.480
I was like, hey, show me an image of, you know, a man, a woman and their three daughters.

09:16:58.560 --> 09:17:02.900
And for some reason, I don't know if it's some kind of politically correct thing or something.

09:17:03.380 --> 09:17:04.820
It kept sticking a little boy in there.

09:17:04.820 --> 09:17:07.700
And I'm like, please replace the little boy with a little girl.

09:17:07.760 --> 09:17:09.300
And it said, yes, this is this.

09:17:09.940 --> 09:17:12.600
And it could not get rid of the little boy.

09:17:12.840 --> 09:17:18.580
I'm like, like, it would add a little boy or something and then add a little girl.

09:17:18.580 --> 09:17:24.280
I don't know if that's like a common thing or that's just me.

09:17:25.460 --> 09:17:27.660
Well, that's called an A.I. hallucination.

09:17:28.540 --> 09:17:30.700
And they do happen fairly frequently.

09:17:32.040 --> 09:17:39.200
They happen a little more frequently with image generation because with A.I.

09:17:39.200 --> 09:17:42.500
there's actually like a creativity setting.

09:17:42.500 --> 09:17:50.080
And when it's trying to be creative, it has more latitude to change things.

09:17:50.220 --> 09:17:56.500
But there is a whole political correct wokeness about chat GPT.

09:17:58.660 --> 09:18:03.380
And this is going to vary from different A.I. models.

09:18:03.740 --> 09:18:09.380
You know, Grok is less woke than chat GPT is.

09:18:11.100 --> 09:18:20.700
It has to do a lot with, you know, who owns the company that built the A.I. package.

09:18:22.220 --> 09:18:25.860
I tried so many times to get it to just remove the little boy.

09:18:27.960 --> 09:18:29.700
And it would not do it.

09:18:29.880 --> 09:18:30.940
And I'm just like, I don't have a little boy.

09:18:31.040 --> 09:18:33.240
I would love to have one with a little image, you know, just like that.

09:18:33.640 --> 09:18:34.680
I told it the first time.

09:18:34.700 --> 09:18:36.120
I was like, oh, it's perfect.

09:18:36.120 --> 09:18:41.000
I'm like, that's a perfect image.

09:18:41.100 --> 09:18:41.860
I love it.

09:18:41.920 --> 09:18:43.220
It's in the place where I'm going.

09:18:44.620 --> 09:18:48.380
It's actually like an image of like the amusement park we're going down there.

09:18:49.380 --> 09:18:52.760
And I was like, just please replace the little boy in the image with a little girl.

09:18:53.420 --> 09:18:54.300
And it won't do it.

09:18:54.300 --> 09:18:55.800
Yeah, I understand.

09:18:56.000 --> 09:18:57.520
I actually made a video.

09:18:57.740 --> 09:19:02.420
It's up on YouTube called multimodal hallucinations.

09:19:02.420 --> 09:19:09.280
And I don't know if you guys follow baseball, but I live in Los Angeles.

09:19:09.960 --> 09:19:14.140
And we have a kind of a superhuman ballplayer, Shohei Otani.

09:19:15.100 --> 09:19:28.980
And I noticed last summer watching a Dodger game that Shohei holds his bat kind of like a samurai holds his sword, like kind of up like this, straight up and down.

09:19:28.980 --> 09:19:35.460
And so I had to start generating images of Shohei and of a samurai.

09:19:38.300 --> 09:19:49.520
And I tried to get the samurai and Shohei like the samurai standing behind Shohei in the same batting stance.

09:19:50.320 --> 09:19:51.240
Shohei bats left handed.

09:19:51.240 --> 09:19:54.260
And it kind of just started refusing.

09:19:54.620 --> 09:19:59.860
It would always make the samurai in a right handed stance and not a left handed stance.

09:20:00.500 --> 09:20:02.940
There was nothing I could do to stop it.

09:20:03.860 --> 09:20:06.880
It was I made a whole video about it.

09:20:08.300 --> 09:20:09.540
Why do you think that was?

09:20:12.180 --> 09:20:18.280
Well, OK, at the next break, I'll go find my video and then I'll show it to you after the break.

09:20:18.280 --> 09:20:28.040
But it basically got very confused between left handed and right handed.

09:20:30.280 --> 09:20:33.980
It just like totally confused those concepts.

09:20:35.940 --> 09:20:40.180
How are we doing, Elena? Are you done with your state machine? Does it simulate?

09:20:41.200 --> 09:20:41.900
I'm done.

09:20:42.900 --> 09:20:44.720
Cool. All right.

09:20:45.860 --> 09:20:49.320
So we're going to move on then.

09:20:53.700 --> 09:20:59.040
So this particular slide deck has a lot of stuff in it.

09:20:59.060 --> 09:21:04.380
There's like five or six different labs all rolled into logical architecture.

09:21:04.680 --> 09:21:06.060
But architecture is complicated.

09:21:06.060 --> 09:21:17.440
So that's that's why it's like that is because architecture is it's complex and difficult.

09:21:17.960 --> 09:21:27.200
All right. So now what we're going to try to do is illustrate this recursive subsystem decomposition,

09:21:28.360 --> 09:21:37.100
which means we start taking the subsystems subsystems apart one at a time.

09:21:38.400 --> 09:21:42.740
And then then kind of becomes lather, rinse and repeat.

09:21:42.920 --> 09:21:51.780
You just do it once at the top level and then you do it at as many levels as you need to to get down.

09:21:51.780 --> 09:22:06.580
And what we're not doing just to be clear is what we're not doing is starting with one top level function and decomposing it into sub functions and sub sub functions.

09:22:07.340 --> 09:22:13.100
OK, that's just not in this process that I'm teaching you.

09:22:14.360 --> 09:22:25.920
And so it goes back to the stop banging your head against the wall if it hurts when you do it right philosophy.

09:22:26.380 --> 09:22:35.360
So what we're going to do now is we're going to go decompose the stage subsystem and we're going to go make this BDD.

09:22:43.040 --> 09:22:49.020
And so if you guys are ready, we're going to do that in the lab. Does anybody need a break before?

09:22:52.220 --> 09:22:55.560
I would say let's get this BDD done and then take a break.

09:22:56.060 --> 09:22:59.140
But if you guys need a break, let me know.

09:22:59.140 --> 09:23:03.140
And we can take one now. All right. Not hearing any requests for breaks.

09:23:03.780 --> 09:23:05.180
Off we go.

09:23:06.880 --> 09:23:09.220
Into detailed BDD labs.

09:23:12.320 --> 09:23:14.600
Save my model here.

09:23:16.540 --> 09:23:18.480
Close up a couple of tabs.

09:23:21.780 --> 09:23:26.620
And now inside subsystems.

09:23:26.620 --> 09:23:35.800
What we're going to do is go into the domain model.

09:23:37.840 --> 09:23:39.200
Excuse me.

09:23:40.040 --> 09:23:42.700
I want to go into subsystems.

09:23:42.960 --> 09:23:46.660
And I want to look at the sample stage subsystem.

09:23:47.300 --> 09:23:53.760
And what we're going to do now is we're going to make a child BDD right inside of this subsystem.

09:23:54.960 --> 09:23:59.300
So I'm going to click on the block sample stage subsystem.

09:24:00.700 --> 09:24:04.280
And I'm just going to go create a diagram in here, which is a BDD.

09:24:06.740 --> 09:24:11.700
And then I always count how many of them I have to make.

09:24:14.480 --> 09:24:22.400
Hey Doug, have you ever tried typing them all out and then piecing them in there that way it kills two birds with one stone?

09:24:22.640 --> 09:24:26.860
Because then you just type it once and you paste it and it automatically creates another block.

09:24:26.920 --> 09:24:30.880
So you don't have to do all the clicking and rename and click and rename.

09:24:31.760 --> 09:24:36.020
Well, let's try this. I think I could probably just type it in a note, right?

09:24:36.020 --> 09:24:37.900
And then just copy and paste it from the note.

09:24:39.140 --> 09:24:41.180
So let's try this your way.

09:24:41.920 --> 09:24:45.340
I always learn what I'm teaching, so I'm happy to learn a new trick here.

09:24:47.340 --> 09:24:51.840
So I'm going to just start typing the names of these.

09:24:55.420 --> 09:24:58.840
I may never teach the same again after this.

09:25:13.320 --> 09:25:16.620
All right, so here they are all typed in in a note.

09:25:18.420 --> 09:25:20.980
And I'm going to copy them.

09:25:22.220 --> 09:25:25.660
I can't use my keyboard to do copy, but I'll do that.

09:25:29.500 --> 09:25:35.300
And then if I click on the diagram, I can say paste.

09:25:42.160 --> 09:25:45.200
Sorry, it's a pain when your keyboard doesn't work.

09:25:47.560 --> 09:25:50.560
I actually can't delete that thing now.

09:25:51.100 --> 09:25:53.140
Do you have like a notepad?

09:25:53.280 --> 09:25:54.720
It's not in the containment tree.

09:25:55.360 --> 09:25:59.760
So I've selected the...

09:25:59.760 --> 09:26:02.960
Every time I do that, it selects the whole note.

09:26:04.640 --> 09:26:12.300
You can just copy the text, paste it onto a sticky note on your computer or Word doc or notepad, and then just paste it back in.

09:26:20.600 --> 09:26:22.260
Let me see if I just...

09:26:22.260 --> 09:26:25.480
I've got one note open, so I've got all the images there.

09:26:25.500 --> 09:26:30.800
So I just type out all the text there right next to the image, and then I just paste it in.

09:26:34.760 --> 09:26:36.080
So I'm copying it.

09:26:36.100 --> 09:26:39.800
Let me see if I can find...

09:26:39.800 --> 09:26:42.720
Oops, notepad here.

09:26:44.380 --> 09:26:48.200
I'm a Mac guy, so...

09:26:48.200 --> 09:26:50.420
If I use OneNote, that would work fine.

09:26:51.560 --> 09:26:53.300
Did you open up OneNote for Windows there?

09:26:55.500 --> 09:26:57.180
OneNote for Windows 10.

09:26:58.040 --> 09:26:58.900
That's what I use.

09:27:01.020 --> 09:27:03.340
Oh, but I don't have a...

09:27:04.820 --> 09:27:06.960
I don't have a Windows account.

09:27:08.100 --> 09:27:11.840
Click on the Windows button and then type in Word.

09:27:12.780 --> 09:27:15.460
If you just click on the button, then you start typing Word.

09:27:16.320 --> 09:27:17.080
Yeah, Wordpad.

09:27:18.160 --> 09:27:20.340
Then Control-V there.

09:27:25.160 --> 09:27:29.280
Alright, I assume I have to...

09:27:29.280 --> 09:27:33.420
I would say... I've not tried it like that, but yeah, usually I put it as a list. Yeah, just like that.

09:27:43.160 --> 09:27:47.060
This would probably be faster if my keyboard worked.

09:27:50.900 --> 09:27:52.260
Alright, so...

09:27:52.260 --> 09:27:57.800
No, I'm on a Mac keyboard, and it's a Windows virtual machine.

09:27:59.060 --> 09:28:03.380
That's the problem, right, is that...

09:28:07.980 --> 09:28:10.240
Alright, so I've copied these.

09:28:11.780 --> 09:28:15.380
And now what you're saying is if I go here...

09:28:15.380 --> 09:28:18.020
Just click there on the diagram.

09:28:18.400 --> 09:28:21.420
Just click on the diagram, and then there you go, Elements.

09:28:23.040 --> 09:28:23.940
Then Block.

09:28:25.800 --> 09:28:26.000
That's it.

09:28:27.640 --> 09:28:29.600
Well, that's pretty cool, actually.

09:28:30.440 --> 09:28:33.560
You can do the same thing with any of the properties of the block.

09:28:34.000 --> 09:28:38.600
I just usually type out all the properties, and I paste them on the Containment Tree.

09:28:39.840 --> 09:28:41.000
On the block itself.

09:28:47.820 --> 09:28:48.260
Well...

09:28:54.360 --> 09:29:05.320
Yeah, you can just click and say Control-V if you're on a PC, but on mine...

09:29:05.320 --> 09:29:06.820
Yeah, that's cool.

09:29:08.500 --> 09:29:11.580
So I've got X-Motor, Y-Motor.

09:29:12.800 --> 09:29:14.820
X-Position Sensor.

09:29:22.880 --> 09:29:23.880
So...

09:29:28.840 --> 09:29:33.320
Yeah, it's funny because I literally can't...

09:29:33.320 --> 09:29:34.280
Well, maybe I can.

09:29:40.260 --> 09:29:42.520
Now I got rid of them.

09:29:43.360 --> 09:29:47.520
Yeah, not being able to use your control keys is kind of...

09:29:49.740 --> 09:29:54.520
A little bit frustrating, so I appreciate your bearing with me.

09:30:09.500 --> 09:30:15.460
I actually don't need Stage 5.

09:30:16.940 --> 09:30:17.900
Oh, there it is.

09:30:33.700 --> 09:30:35.100
Okay.

09:30:57.300 --> 09:30:58.700
Okay.

09:31:26.020 --> 09:31:33.600
So, one thing that I just did is I converted my Move algorithm from a block into an activity.

09:31:36.680 --> 09:31:39.520
And I'll show you in a few minutes why I did that.

09:32:01.480 --> 09:32:02.880
Okay.

09:32:23.320 --> 09:32:41.920
So basically now instead of having done a bunch of nested activity diagrams to figure out what my functions are, I'm just going to add the operations to the blocks.

09:32:46.440 --> 09:32:53.820
And how you do that is you click this little button here and say Operation.

09:32:55.660 --> 09:32:57.920
Just say Control-Stage.

09:33:04.220 --> 09:33:05.020
And...

09:33:05.020 --> 09:33:17.460
So what you're doing is you're still uncovering all of your functions, but you're just putting the functions on the parts.

09:33:20.440 --> 09:33:23.260
And I can add values here as well.

09:33:24.820 --> 09:33:31.820
If it's a real, I can type that it's a real right in that string.

09:33:38.300 --> 09:33:43.100
So we don't miss any of the functions by doing it this way.

09:33:44.500 --> 09:33:53.780
It's just, at least to me, a lot more efficient than drawing all those trees of activities.

09:33:55.800 --> 09:34:00.180
I just find this to be...

09:34:00.920 --> 09:34:11.180
I'm not sure if you know, Doug, or if you've ever used that wizard, but you can actually generate a BDD with activities in the form of a block.

09:34:11.240 --> 09:34:12.780
It just happens to be a separate activity.

09:34:14.060 --> 09:34:14.940
Have you used that feature?

09:34:16.940 --> 09:34:18.400
I have not.

09:34:27.080 --> 09:34:31.180
When I'm done drawing, I'm going to ask you to explain it to me.

09:34:33.520 --> 09:34:36.780
Okay, yeah, I'm not a master at it. I've used it a couple times.

09:34:36.820 --> 09:34:39.420
I can't listen and draw at the same time.

09:34:41.100 --> 09:34:44.080
It's like walking and chewing gum, you know.

09:34:46.800 --> 09:34:48.660
Man's got to know his limitations.

09:34:50.220 --> 09:34:52.160
That's what Clint Eastwood said.

09:34:54.440 --> 09:34:56.460
What movie was that? Dirty Harry?

09:34:56.500 --> 09:34:58.500
Probably Dirty Harry, yeah.

09:34:59.780 --> 09:35:01.980
Man's got to know his limitations.

09:35:04.800 --> 09:35:12.740
But I'm always happy to learn new features of Cameo. I pass them on to the next group of students that I teach.

09:35:13.760 --> 09:35:16.380
Just an endless amount of features in Cameo.

09:35:16.700 --> 09:35:17.260
Totally.

09:35:18.680 --> 09:35:28.440
The only way I know how to do it is teach the ones that I use and don't teach the ones that I don't use.

09:35:29.840 --> 09:35:33.860
But I will let you give me a demo of that in a minute.

09:35:43.880 --> 09:35:44.600
Sure.

09:35:45.000 --> 09:35:52.740
The values you're just adding, the type of value it should be, you can just type it in there.

09:35:54.960 --> 09:35:56.520
Yeah, it should.

09:35:59.340 --> 09:36:03.240
Let's take a look at this one when I do it.

09:36:04.680 --> 09:36:16.200
I believe if I open this value up, it's going to give me the name and you see it filled in the type of Boolean.

09:36:17.720 --> 09:36:20.140
From after the colon it takes it as a type.

09:36:20.280 --> 09:36:21.360
Okay, got it.

09:36:34.640 --> 09:36:41.740
Now, this one is kind of an interesting communication interface because it has a signal reception on it.

09:36:42.980 --> 09:36:53.300
And so to add my signal reception, if I go find my signal, assuming I have one.

09:36:54.380 --> 09:36:56.660
No, I actually don't.

09:36:57.160 --> 09:36:57.700
Never mind.

09:36:58.360 --> 09:37:01.060
Because if I had a signal, I could just drop it on there.

09:37:40.140 --> 09:37:42.780
All right, I think I'm done drawing.

09:37:42.780 --> 09:37:43.240
Okay.

09:37:47.620 --> 09:38:02.740
So again, it's a subjective opinion, but I find it a lot faster to work this way than by using activity diagrams and object flows and pins and activity parameters.

09:38:03.900 --> 09:38:16.120
I think this to me is just kind of one step and I find it simpler.

09:38:16.120 --> 09:38:31.960
All right, do you want to show me what you are talking about here?

09:38:32.220 --> 09:38:41.160
So let me try to remember how to just open your screen.

09:38:41.160 --> 09:38:44.560
I double click this.

09:39:03.540 --> 09:39:05.260
Maybe I need to.