[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.43,0:00:02.79,Default,,0000,0000,0000,,There's other forms of software \Nrequirements. Dialogue: 0,0:00:02.79,0:00:07.38,Default,,0000,0000,0000,,There's also architectural requirements.\NBy component naming, you want to be Dialogue: 0,0:00:07.38,0:00:12.46,Default,,0000,0000,0000,,consistent. Compatibility with other \Nsystems. Interfaceability, you want Dialogue: 0,0:00:12.46,0:00:16.32,Default,,0000,0000,0000,,loose coupling to allow you to meet\Nthat one. Dialogue: 0,0:00:16.32,0:00:22.98,Default,,0000,0000,0000,,Upgradability, so this is important if you\Nwant to -- if you think you'll be Dialogue: 0,0:00:22.98,0:00:26.96,Default,,0000,0000,0000,,putting out future versions at a\Nlater time. Dialogue: 0,0:00:27.16,0:00:32.83,Default,,0000,0000,0000,,And even buildability, can you do\Ndaily builds? Can you make that easy Dialogue: 0,0:00:32.83,0:00:36.74,Default,,0000,0000,0000,,to be able to deploy more software,\Nmore quickly to more customers. Dialogue: 0,0:00:36.74,0:00:40.59,Default,,0000,0000,0000,,So there's a lot of things that go\Ninto the architectural aspects Dialogue: 0,0:00:40.59,0:00:44.13,Default,,0000,0000,0000,,of how you build your software\Nthat roll up into non-functional Dialogue: 0,0:00:44.13,0:00:47.56,Default,,0000,0000,0000,,requirements. There's constraints -- \Nrequirements related to constraints like Dialogue: 0,0:00:47.56,0:00:49.96,Default,,0000,0000,0000,,system design, there may be \Nhardware restrictions, Dialogue: 0,0:00:49.96,0:00:53.12,Default,,0000,0000,0000,,standards conformance,\Nlegal issues, Dialogue: 0,0:00:53.12,0:00:56.26,Default,,0000,0000,0000,,organizational issues,\Nwe've talked about functional or Dialogue: 0,0:00:56.26,0:00:59.77,Default,,0000,0000,0000,,non-functional, and may even come from\Nusers and organizations Dialogue: 0,0:00:59.77,0:01:03.50,Default,,0000,0000,0000,,and be conflicting, so those all need\Nto be resolved as well. Dialogue: 0,0:01:03.50,0:01:06.85,Default,,0000,0000,0000,,So these fall into the category of \Ncontraints. Dialogue: 0,0:01:06.85,0:01:10.48,Default,,0000,0000,0000,,Good requirements have to be --\Nhave to have a number of attributes. Dialogue: 0,0:01:10.48,0:01:14.57,Default,,0000,0000,0000,,They have to be possible,\Nfeasible to actually do within budget. Dialogue: 0,0:01:14.59,0:01:17.61,Default,,0000,0000,0000,,You have to be necessary,\Nsomeone has to really want them, Dialogue: 0,0:01:17.61,0:01:20.94,Default,,0000,0000,0000,,you have to trace it back to a\Nuse case or user story. Dialogue: 0,0:01:20.94,0:01:26.75,Default,,0000,0000,0000,,You have to be prioritized. Unfortunately,\Nour customers can't say that everything is Dialogue: 0,0:01:26.75,0:01:30.63,Default,,0000,0000,0000,,top-priority, so we have to find a way\Nof prioritizing them. Dialogue: 0,0:01:30.63,0:01:36.17,Default,,0000,0000,0000,,Unambiguous is only one interpretation.\NIt's easy to read, easy to understand. Dialogue: 0,0:01:36.17,0:01:40.28,Default,,0000,0000,0000,,You have to be concise. Only the \Ninformation needed, don't need to go Dialogue: 0,0:01:40.28,0:01:44.99,Default,,0000,0000,0000,,into noisy explanation, that's not\Nnecessary. Dialogue: 0,0:01:44.99,0:01:48.53,Default,,0000,0000,0000,,And then Verifiable. If you can't test it\Nor measure it, then you don't know Dialogue: 0,0:01:48.53,0:01:51.82,Default,,0000,0000,0000,,whether you'll be done. So these are\Njust some imporant characteristics Dialogue: 0,0:01:51.82,0:01:54.91,Default,,0000,0000,0000,,of requirements that need to be\Nunderstood. Dialogue: 0,0:01:54.91,0:01:59.99,Default,,0000,0000,0000,,In this next section, let's talk about \Nthe requirements development process. Dialogue: 0,0:02:01.06,0:02:06.31,Default,,0000,0000,0000,,Here, Weinberg shows these steps\Nto ellicit and analyze requirements. Dialogue: 0,0:02:06.31,0:02:09.71,Default,,0000,0000,0000,,Starts with problem recognition,\Ndiscovering and gathering, Dialogue: 0,0:02:09.71,0:02:14.54,Default,,0000,0000,0000,,then evaluation and synthesis.\NModeling, we'll talk about modeling, Dialogue: 0,0:02:14.54,0:02:19.79,Default,,0000,0000,0000,,and then specification --\Npackaging and format final review for -- Dialogue: 0,0:02:19.79,0:02:23.79,Default,,0000,0000,0000,,this is his process for eliciting\Nand analyzing requirements. Dialogue: 0,0:02:24.00,0:02:28.49,Default,,0000,0000,0000,,And the first circled section there\Nis what we'll concentrate on first, Dialogue: 0,0:02:28.49,0:02:33.22,Default,,0000,0000,0000,,the elicitation analysis, then we'll go\Ninto the modeling, and then finally talk Dialogue: 0,0:02:33.22,0:02:36.64,Default,,0000,0000,0000,,a little bit about -- we'll talk about\Nspecification then a little bit about Dialogue: 0,0:02:36.64,0:02:40.10,Default,,0000,0000,0000,,modeling and validation. Dialogue: 0,0:02:40.10,0:02:44.80,Default,,0000,0000,0000,,At a high level, Carl Weiger's \Nrequirements development process Dialogue: 0,0:02:44.80,0:02:50.49,Default,,0000,0000,0000,,is somewhat similar. Elicitation into\Nanalysis, there may be some clarification Dialogue: 0,0:02:50.49,0:02:54.24,Default,,0000,0000,0000,,that has to go back into the\Nelicitation phase. Dialogue: 0,0:02:54.24,0:03:00.93,Default,,0000,0000,0000,,Into the specicication, validation may\Ncause us to rewrite the specification. Dialogue: 0,0:03:00.93,0:03:05.04,Default,,0000,0000,0000,,Validation may also cause us to \Nreevaluate the requirements Dialogue: 0,0:03:05.04,0:03:10.46,Default,,0000,0000,0000,,and even to close and correct gaps\Nin the requirements which takes us Dialogue: 0,0:03:10.46,0:03:13.47,Default,,0000,0000,0000,,all the way back to\Nthe elicitation phase. Dialogue: 0,0:03:13.47,0:03:17.47,Default,,0000,0000,0000,,So you can see even in the\Nrequirements process, Dialogue: 0,0:03:17.47,0:03:23.32,Default,,0000,0000,0000,,it can't be waterfall-ish. It's got \Nto have feedback. Re-do clarification, Dialogue: 0,0:03:23.32,0:03:28.13,Default,,0000,0000,0000,,reevaluation, so even just the\Nrequirements phase itself Dialogue: 0,0:03:28.13,0:03:35.24,Default,,0000,0000,0000,,is a multi-phase process or subprocess\Nand so rework and reevaluation often Dialogue: 0,0:03:35.24,0:03:42.04,Default,,0000,0000,0000,,is necessary. From a capability maturity\Nmodel integrated software framework Dialogue: 0,0:03:42.04,0:03:46.77,Default,,0000,0000,0000,,at level two maturity -- maturity \Nlevel two, you start to already see Dialogue: 0,0:03:46.77,0:03:51.29,Default,,0000,0000,0000,,requirements, management coming\Ninto play, so this is important already Dialogue: 0,0:03:51.29,0:03:58.25,Default,,0000,0000,0000,,at level two. The staged model and\Nso what this is basically saying -- Dialogue: 0,0:03:58.25,0:04:03.03,Default,,0000,0000,0000,,saying that of the seven basic things\Nyou need to be able to do Dialogue: 0,0:04:03.03,0:04:07.14,Default,,0000,0000,0000,,from project management perspective\Nand key knowledge areas, Dialogue: 0,0:04:07.14,0:04:12.42,Default,,0000,0000,0000,,requirements management along with\Nproject planning, project monitoring Dialogue: 0,0:04:12.42,0:04:17.77,Default,,0000,0000,0000,,and control, supplier agreement,\Nmanagement measurement analysis, Dialogue: 0,0:04:17.77,0:04:22.35,Default,,0000,0000,0000,,project planning and quality assurance,\Nand configuration management. Dialogue: 0,0:04:22.35,0:04:26.75,Default,,0000,0000,0000,,These are the top seven that form\Nthe basis, one of which is requirements. Dialogue: 0,0:04:27.61,0:04:30.85,Default,,0000,0000,0000,,Some more details here. Each of the\Nmaturity levels. Dialogue: 0,0:04:30.85,0:04:34.85,Default,,0000,0000,0000,,The name of that maturity level --\Ninitial, managed, defined, Dialogue: 0,0:04:34.85,0:04:37.26,Default,,0000,0000,0000,,quantitatively managed\Nand optimizing -- Dialogue: 0,0:04:37.26,0:04:41.36,Default,,0000,0000,0000,,And you can see where requirements\Nmanagement is at level two, Dialogue: 0,0:04:41.36,0:04:44.43,Default,,0000,0000,0000,,but requirements development is\Nat level three. Dialogue: 0,0:04:44.43,0:04:48.50,Default,,0000,0000,0000,,These things show early and are\Nvery important to set the basis, Dialogue: 0,0:04:48.50,0:04:52.24,Default,,0000,0000,0000,,the foundations for all the maturity\Nlevels to come, Dialogue: 0,0:04:52.24,0:04:56.17,Default,,0000,0000,0000,,so requirements are very important\Nto address early. Dialogue: 0,0:04:56.17,0:04:59.49,Default,,0000,0000,0000,,There's a five-step process to do \Nproblem analysis during the Dialogue: 0,0:04:59.49,0:05:03.02,Default,,0000,0000,0000,,requirements phase. Step one is to\Nidentify the problem. Dialogue: 0,0:05:03.02,0:05:07.79,Default,,0000,0000,0000,,The little template there can be used\Nto specify that problem. Dialogue: 0,0:05:07.79,0:05:11.36,Default,,0000,0000,0000,,You basically fill it out, so on the left,\Nthe problem of, then you describe Dialogue: 0,0:05:11.36,0:05:16.09,Default,,0000,0000,0000,,your problem effects, and then you \Nidentify the stakeholders affected by Dialogue: 0,0:05:16.09,0:05:21.56,Default,,0000,0000,0000,,the problem, the result of which is an\Nimpact on some set of stakeholders Dialogue: 0,0:05:21.56,0:05:24.27,Default,,0000,0000,0000,,in business activities,\Nyou need to describe that. Dialogue: 0,0:05:24.27,0:05:28.34,Default,,0000,0000,0000,,And then the benefits of your new system\Nare indicated. Dialogue: 0,0:05:28.34,0:05:31.60,Default,,0000,0000,0000,,The proposed solution -- you indicate\Nthe proposed solution, Dialogue: 0,0:05:31.60,0:05:36.38,Default,,0000,0000,0000,,list of few key benefits that your\Nnew system wiill provide. Dialogue: 0,0:05:36.38,0:05:39.59,Default,,0000,0000,0000,,Once you identify the problem.\Nwe have the root cause of problems, Dialogue: 0,0:05:39.59,0:05:44.44,Default,,0000,0000,0000,,so you can use in step two,\Nfishbone or Ishikawa diagram Dialogue: 0,0:05:44.44,0:05:51.00,Default,,0000,0000,0000,,to help you identify the problem.\NStep three, identify the actors. Dialogue: 0,0:05:51.00,0:05:54.37,Default,,0000,0000,0000,,Step four, draw the system boundaries\Nso you know what's inside Dialogue: 0,0:05:54.37,0:05:58.83,Default,,0000,0000,0000,,and what's outside. And step five,\Nyou need to be able to identify Dialogue: 0,0:05:58.83,0:06:03.13,Default,,0000,0000,0000,,the constraints on your proposed\Nsolution. Dialogue: 0,0:06:03.13,0:06:08.81,Default,,0000,0000,0000,,This is an actual example of an Ishikawa\Ndiagram from industry Dialogue: 0,0:06:08.81,0:06:15.14,Default,,0000,0000,0000,,trying to address the issue or the \Nproblem of a Linux distribution technology Dialogue: 0,0:06:15.14,0:06:20.94,Default,,0000,0000,0000,,that was difficult to use. You can see\Nthe main focal areas are on technology, Dialogue: 0,0:06:20.94,0:06:25.31,Default,,0000,0000,0000,,people, process and quality\Nand customer support, and logistics, Dialogue: 0,0:06:25.31,0:06:30.17,Default,,0000,0000,0000,,and you can see some of the details --\Nwe went down to about three levels here... Dialogue: 0,0:06:31.26,0:06:34.68,Default,,0000,0000,0000,,to allow us to get the data \Nwe needed to make adecision Dialogue: 0,0:06:34.68,0:06:39.44,Default,,0000,0000,0000,,on the requirements, changes we needed\Nto get our new product out the door. Dialogue: 0,0:06:39.44,0:06:44.32,Default,,0000,0000,0000,,So I just wanted to show you what\Nit looks like when you do this Dialogue: 0,0:06:44.32,0:06:49.74,Default,,0000,0000,0000,,in real industry environments.\NThese techniques I'm talking to you about Dialogue: 0,0:06:49.74,0:06:54.72,Default,,0000,0000,0000,,are actually used in industry settings \Nand are very effective. Dialogue: 0,0:06:55.05,0:06:59.31,Default,,0000,0000,0000,,Constraints actually come in many forms.\NYou can see the different sources here, Dialogue: 0,0:06:59.31,0:07:05.02,Default,,0000,0000,0000,,system constraints, environmental\Nresource, and schedule, Dialogue: 0,0:07:05.02,0:07:10.39,Default,,0000,0000,0000,,economic, political, and technical.\NThere's some examples there. Dialogue: 0,0:07:10.59,0:07:15.92,Default,,0000,0000,0000,,Each of these sources of constraints\Nneeds to be evaluated very closely. Dialogue: 0,0:07:16.92,0:07:23.34,Default,,0000,0000,0000,,In the past, I've been burned by not\Nproperly understanding the constraints Dialogue: 0,0:07:23.34,0:07:28.89,Default,,0000,0000,0000,,that, for example, legal issues with\Nopen source software Dialogue: 0,0:07:28.89,0:07:31.90,Default,,0000,0000,0000,,if you don't have that documented\Nvery carefully. Dialogue: 0,0:07:31.90,0:07:36.47,Default,,0000,0000,0000,,People have been bitten on that one.\NSecurity requirements, there's different Dialogue: 0,0:07:36.47,0:07:39.64,Default,,0000,0000,0000,,security requirements for here\Nversus Europe. Dialogue: 0,0:07:39.64,0:07:43.57,Default,,0000,0000,0000,,So you have to really go into the details,\Nyou know, licensing issues. Dialogue: 0,0:07:43.57,0:07:47.65,Default,,0000,0000,0000,,There are multiple licensing types \Nfor open-source software, Dialogue: 0,0:07:47.65,0:07:51.93,Default,,0000,0000,0000,,which one are you going to use?\NSo these all have to be considered Dialogue: 0,0:07:51.93,0:07:54.84,Default,,0000,0000,0000,,during a requirements phase as\Nconstraints on the problem, Dialogue: 0,0:07:54.84,0:07:59.28,Default,,0000,0000,0000,,these limit the degrees of freedom\Nso you need to consider these early Dialogue: 0,0:07:59.28,0:08:00.87,Default,,0000,0000,0000,,during this phase. Dialogue: 0,0:08:00.87,0:08:03.99,Default,,0000,0000,0000,,The next thing you want to do is \Nseparate the problem from the solution. Dialogue: 0,0:08:03.99,0:08:09.65,Default,,0000,0000,0000,,You have the problem situation,\Nyou need to obviously create a Dialogue: 0,0:08:09.66,0:08:14.24,Default,,0000,0000,0000,,problem statement and implementation\Nstatement and then that's going to be used Dialogue: 0,0:08:14.24,0:08:20.34,Default,,0000,0000,0000,,ultimately for verification, the\Nimplementation, definition back to the\N Dialogue: 0,0:08:20.34,0:08:24.47,Default,,0000,0000,0000,,problem statement to make sure you're\Nbuilding what you were told to build Dialogue: 0,0:08:24.47,0:08:28.23,Default,,0000,0000,0000,,and then there's going to be a validation\Nstep back to the problem situation Dialogue: 0,0:08:28.23,0:08:31.18,Default,,0000,0000,0000,,to make sure you're actually\Nsolving problem. Dialogue: 0,0:08:31.18,0:08:34.48,Default,,0000,0000,0000,,There will be some correctness\Nand correspondence relationships Dialogue: 0,0:08:34.48,0:08:38.90,Default,,0000,0000,0000,,between the problem statement \Nand the problem situation Dialogue: 0,0:08:38.90,0:08:47.46,Default,,0000,0000,0000,,to the system and we will -- but it first\Nstarts with, rather than proposing Dialogue: 0,0:08:47.46,0:08:54.11,Default,,0000,0000,0000,,the solution, first separate problem\Nsituation and look at it from top-down. Dialogue: 0,0:08:54.11,0:08:58.17,Default,,0000,0000,0000,,The most obvious problem might not be\Nthe one that you need to solve, Dialogue: 0,0:08:58.17,0:09:01.31,Default,,0000,0000,0000,,so that's why it's good to separate \Nthe problem first, Dialogue: 0,0:09:01.31,0:09:05.31,Default,,0000,0000,0000,,look at it independently,\Ndiscuss the problem statement Dialogue: 0,0:09:05.31,0:09:10.72,Default,,0000,0000,0000,,with your stakeholders, and look at \Nthe different design choices. Dialogue: 0,0:09:10.72,0:09:16.81,Default,,0000,0000,0000,,So, again, the most obvious problem may not\Nbe the one you're actually trying to solve. Dialogue: 0,0:09:16.82,0:09:21.78,Default,,0000,0000,0000,,You want to check for the solution\Ncorrectly solves the stated problem. Dialogue: 0,0:09:21.78,0:09:24.08,Default,,0000,0000,0000,,But, also, check that\Nthe problem statement Dialogue: 0,0:09:24.08,0:09:27.50,Default,,0000,0000,0000,,corresponds to the real needs\Nof the stakeholders. Dialogue: 0,0:09:29.70,0:09:32.34,Default,,0000,0000,0000,,Problems can be separated\Nin different ways. Dialogue: 0,0:09:32.34,0:09:35.56,Default,,0000,0000,0000,,For example, let's consider this one\Nrequirement. Dialogue: 0,0:09:35.56,0:09:38.99,Default,,0000,0000,0000,,You want to prevent unauthorized access\Nto a University of Texas machine. Dialogue: 0,0:09:38.99,0:09:42.03,Default,,0000,0000,0000,,Well, we can separate this into different\Ndomains. Dialogue: 0,0:09:42.03,0:09:44.99,Default,,0000,0000,0000,,On the left, you see the application\Ndomain. Dialogue: 0,0:09:44.99,0:09:49.37,Default,,0000,0000,0000,,These are the things that the machine --\Nthe computer, cannot observe directly. Dialogue: 0,0:09:49.37,0:09:54.50,Default,,0000,0000,0000,,Like, students, intruders, sysadmin,\Nsigned forms, even stickies Dialogue: 0,0:09:54.50,0:09:56.58,Default,,0000,0000,0000,,with your password on them. Dialogue: 0,0:09:56.58,0:10:01.11,Default,,0000,0000,0000,,This is in, I'll call this the real world\Ndomain, or the application domain. Dialogue: 0,0:10:01.11,0:10:03.25,Default,,0000,0000,0000,,On the right-hand side is\Nthe machine domain. Dialogue: 0,0:10:03.25,0:10:05.71,Default,,0000,0000,0000,,This is where your software is going\Nto run things that are private Dialogue: 0,0:10:05.71,0:10:07.19,Default,,0000,0000,0000,,to the machine. Dialogue: 0,0:10:07.19,0:10:10.90,Default,,0000,0000,0000,,The encryption algorithms, the password\Nfiles, etc. Dialogue: 0,0:10:10.90,0:10:13.78,Default,,0000,0000,0000,,And then the that thing in the middle --\Nthe shared things -- Dialogue: 0,0:10:13.78,0:10:17.78,Default,,0000,0000,0000,,Think of this almost as the interphase\Nrequirements for the system. Dialogue: 0,0:10:17.78,0:10:22.88,Default,,0000,0000,0000,,Where you need to deal with things, like\NT-cards, or passwords, or user names, Dialogue: 0,0:10:22.88,0:10:28.28,Default,,0000,0000,0000,,or things being typed at the keyboard.\NShared things between the real world, Dialogue: 0,0:10:28.28,0:10:30.26,Default,,0000,0000,0000,,and the machine. Dialogue: 0,0:10:30.26,0:10:33.16,Default,,0000,0000,0000,,Normally in the form of the user\Ninterphase, Dialogue: 0,0:10:33.16,0:10:37.72,Default,,0000,0000,0000,,and this is where we also begin to think\Nabout our user interphase requirements. Dialogue: 0,0:10:37.81,0:10:41.81,Default,,0000,0000,0000,,So, now we can think of these domain\Nproperties, and requirements, on the left. Dialogue: 0,0:10:41.81,0:10:45.35,Default,,0000,0000,0000,,Again, that's the application domain.\NThat's where we have domain properties, Dialogue: 0,0:10:45.35,0:10:47.17,Default,,0000,0000,0000,,and requirements. Dialogue: 0,0:10:47.17,0:10:52.21,Default,,0000,0000,0000,,Domain properties, think of them as things\Nin the application domain that remain true Dialogue: 0,0:10:52.21,0:10:54.20,Default,,0000,0000,0000,,whether or not we ever build the system. Dialogue: 0,0:10:54.20,0:10:57.09,Default,,0000,0000,0000,,You know the sun's going to come up,\Nand the sun's going to set. Dialogue: 0,0:10:57.09,0:11:00.97,Default,,0000,0000,0000,,These things are true regardless of\Nwhether we ever build a system or not. Dialogue: 0,0:11:00.97,0:11:04.55,Default,,0000,0000,0000,,The requirements are the things in\Nthe application domain Dialogue: 0,0:11:04.55,0:11:09.81,Default,,0000,0000,0000,,that we want to be true by delivering\Non the system we're proposing. Dialogue: 0,0:11:09.81,0:11:13.20,Default,,0000,0000,0000,,So, those are the things in the application\Ndomain. On the right-hand side, Dialogue: 0,0:11:13.20,0:11:16.88,Default,,0000,0000,0000,,in the machine domain, we have\Ncomputers and we have programs. Dialogue: 0,0:11:16.88,0:11:21.20,Default,,0000,0000,0000,,The things that actually implement --\Nthat control one way or the other Dialogue: 0,0:11:21.20,0:11:23.88,Default,,0000,0000,0000,,the application domain.\NAnd then in the middle, Dialogue: 0,0:11:23.88,0:11:28.68,Default,,0000,0000,0000,,we have the specification. The specification\Nis a description of the behaviors Dialogue: 0,0:11:28.68,0:11:32.83,Default,,0000,0000,0000,,that our program has to have in order\Nto meet the requirements. Dialogue: 0,0:11:33.09,0:11:36.52,Default,,0000,0000,0000,,Normally written in terms of shared\Nphenomenon. Dialogue: 0,0:11:36.52,0:11:39.61,Default,,0000,0000,0000,,Again, things through the user interphase. Dialogue: 0,0:11:39.61,0:11:44.72,Default,,0000,0000,0000,,Data being passed back and forth between\Nthe machine and the user. Things like this. Dialogue: 0,0:11:44.72,0:11:48.62,Default,,0000,0000,0000,,Some of that is described in\Nthe specification. Dialogue: 0,0:11:48.62,0:11:51.56,Default,,0000,0000,0000,,Which is the shared phenomenon. Dialogue: 0,0:11:51.56,0:11:55.81,Default,,0000,0000,0000,,Now, in this application, and machine\Ndomain, kind of Venn diagram here, Dialogue: 0,0:11:55.81,0:11:57.61,Default,,0000,0000,0000,,we can shift things around as well. Dialogue: 0,0:11:57.61,0:11:59.63,Default,,0000,0000,0000,,We can move the boundaries. Dialogue: 0,0:11:59.63,0:12:02.54,Default,,0000,0000,0000,,If we're building an elevator control\Nsystem, for example, Dialogue: 0,0:12:02.54,0:12:05.92,Default,,0000,0000,0000,,here's how that might look. The application\Ndomain would be the real world. Dialogue: 0,0:12:05.92,0:12:08.74,Default,,0000,0000,0000,,You know, people waiting; people in\Nthe elevator; people wanting Dialogue: 0,0:12:08.74,0:12:12.74,Default,,0000,0000,0000,,to go to a particular floor; the elevator\Nmotors and safety rules Dialogue: 0,0:12:12.74,0:12:15.99,Default,,0000,0000,0000,,that are bolted to the elevator. Dialogue: 0,0:12:15.99,0:12:18.57,Default,,0000,0000,0000,,We have the scheduling algorithms,\Nand the control programs Dialogue: 0,0:12:18.57,0:12:21.56,Default,,0000,0000,0000,,actually running in the machine domain,\Nand then we have all this Dialogue: 0,0:12:21.56,0:12:24.56,Default,,0000,0000,0000,,overlap. All this intersection. Dialogue: 0,0:12:24.56,0:12:27.61,Default,,0000,0000,0000,,The elevator call buttons; the floor\Nrequest buttons; etc. Dialogue: 0,0:12:27.61,0:12:31.72,Default,,0000,0000,0000,,Now, we could move things from\Nthe application domain Dialogue: 0,0:12:31.72,0:12:34.67,Default,,0000,0000,0000,,into the shared domain Dialogue: 0,0:12:34.67,0:12:37.84,Default,,0000,0000,0000,,by changing how the system's\Ngoing to behave. Dialogue: 0,0:12:37.84,0:12:41.78,Default,,0000,0000,0000,,We can add sensors, for example,\Nto detect when people are waiting. Dialogue: 0,0:12:41.78,0:12:45.38,Default,,0000,0000,0000,,And doing this type of thing changes\Nthe nature of the problem being solved. Dialogue: 0,0:12:45.38,0:12:48.24,Default,,0000,0000,0000,,So, all this -- Dialogue: 0,0:12:48.24,0:12:51.51,Default,,0000,0000,0000,,The application domain, the shared\Ndomain, the machine domain, Dialogue: 0,0:12:51.51,0:12:54.78,Default,,0000,0000,0000,,what goes where can change based on\Nhow we define the problem.