Commit f75d16f9 authored by Gerson Sunyé's avatar Gerson Sunyé

Correct slide layouts

parent 4947437e
......@@ -9,11 +9,13 @@
:revealjs_margin: 0
:source-highlighter: highlightjs
:sectids!:
:imagesdir: images
:includedir: includes
= Domain Analysis
:imagesdir: images
:includedir: includes
:revealjs_plugins: src/js/revealjs-plugins.js
Gerson Sunyé
......@@ -26,13 +28,6 @@ https://sunye-g.univ-nantes.io
Documentation is a distillation of many long, squiggly adventures.
////
++++
<script src="./configuration.js" type="text/javascript"></script>
++++
== Agenda
* Domain analysis definition
......@@ -146,7 +141,21 @@ As a software engineer, you are not expected to become an expert in the domain;
[column.is-one-third]
--
image::domain-objects.png[width=400px]
[plantuml, cd-domain-objects, png, align=center]
....
scale 800 width
hide circle
skinparam monochrome true
allowmixing
object "__113:Classroom__" as 113 {
name = "Room 113"
}
actor "<u>John:Teacher</u>" as john
113 --[hidden] john
....
--
[.notes]
......@@ -159,8 +168,14 @@ image::domain-objects.png[width=400px]
* Actions are something that happen in the system: events, tasks, jobs, changes of state, activities, etc.
* They are or may be independent from objects, and associated to objects later.
* Actions modify objects.
[.notes]
--
I removed the following line:
* Actions are occurrences of Use Cases.
I'm not sure that "occurrence" is the best term here.
--
== Objects and Actions
* Objects and Actions are at the same level.
......@@ -197,12 +212,13 @@ image::actions.png[]
[.column]
--
* Actions represent interactions between objects.
* An interaction (Sequence, Communication Diagrams) describes how real-world objects interact.
* An interaction describes how real-world objects interact.
* Related UML Diagrams: Sequence, Communication Diagrams
--
== Objects participate in Actions
* Actions have participants, objects.
* Actions have participants: the objects.
* How many objects are needed? Enough to describe the actions.
* Associations provide a vocabulary in which it is possible to describe effects of actions.
......@@ -212,7 +228,7 @@ image::actions.png[]
* Actions characterized by what they achieve (its effects) and specified by a post-condition.
* Post-conditions may introduce new terms to describe the effect.
[source,ocl]
[source,atl]
----
UC::teach(student, teacher, skill)
post:
......@@ -236,8 +252,8 @@ image::snapshots.png[width=800px]
== Post-conditions
* A post condition is a relationship between the before and after states of an object or a set of objects
* Post conditions make precise statements about what happens in an action, even at an abstract level.
* A post-condition is a relationship between the before and after states of an object or a set of objects
* Post-conditions make precise statements about what happens in an action, even at an abstract level.
[source,ocl]
----
......@@ -278,15 +294,27 @@ Use of stick figure is optional … stick is indicative that Student may be one
== Types of Actions
* Use Cases
** Not-oriented, symmetric, with N participants.
** Also called “Joint Action”.
* Operations
** Oriented: one sender, one receiver.
Joint Actions:: actions that have more than 1 participant that affects, or is affected by, that action.
Directed Actions:: a special kind of Joint Action that ave a distinguished initiator and receiver.
Localized Actions:: actions that have just 1 participant. The initiator is unknown.
* Actions exist at different abstract levels
== Actions and UML Use Cases
* UML Use Cases are a special way of describing an action, containing:
** An abstract action
** A set of refined actions
** A set of relationships with other Use Cases (extension, inclusion)
* Actions are a part of Interactions:
** They may happen in a prescribed (sequential) order
* Use Cases are specified by a set of Interactions
== Associations
* Associations represent real world relationships, not necessarily logical ones.
* In Domain Analysis, Associations represent real world relationships, not necessarily logical ones.
* Associations just exist.
* The use of associations provides:
** A vocabulary for the actions (the static model).
......
......@@ -28,29 +28,34 @@ https://sunye-g.univ-nantes.io
* They provide a description of the functional requirements.
* They can drive the progression of an iterative development model.
[.columns]
== Identifying Use Cases
[.columns]
[.column.is-one-half]
--
[.col-6]
* Use Cases are complex operations.
* They are described by several scenarios.
* Typically CRUDS are bad choices: simple operations, realized by the same actor to reach a single goal within the same security level.
--
[.col-6]
[.column]
--
image::crud.png[]
--
[.columns]
== Avoid CRUD Synonyms
[.columns]
[.column.is-one-half]
--
[.col-6]
* Differentiate Use Case from Operations.
* An Use Case is a set of Operations.
* An operation can be seen as an instance of an Use Case (Class/Object analogy).
--
[.col-6]
[.column.is-one-half]
--
image::crud2.png[]
--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment