Content deleted Content added
m Task 5: Fix CS1 deprecated coauthor parameter errors |
Citation bot (talk | contribs) Alter: title, template type. Added chapter. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox2 | #UCB_webform_linked 189/217 |
||
(20 intermediate revisions by 15 users not shown) | |||
Line 1:
{{Multiple issues|{{more footnotes|date=February 2014}}{{essay-like|date=February 2014}}}}
Class diagrams describe the static structure of a program, i.e. the building blocks of a program and how they relate to each other.
Class diagrams also model data structures, but with an emphasis on rather abstract concepts like types and type features.
Instead of abstract static structures, story-driven modeling focuses on concrete example scenarios<ref>{{cite journal|
may be represented as [[object diagram]]s and how these object diagrams evolve during scenario execution.
==
Story-driven modeling proposes the following software development approach:
Line 14:
#: Scenario Go-Dutch barbecue
#*Start: This Sunday Peter, Putri, and Peng meet at the park for a go-Dutch barbecue. They use the Group Account app to do the accounting.
#*Step 1: Peter brings the meat for
#*Step 2: Putri brings salad for
#*Step 3: ...
# '''GUI mock-ups''': To illustrate the [[graphical user interface]] (GUI) for the desired feature, you may add some wireframe models or GUI mock-ups to your scenario:
#: Scenario Go-Dutch barbecue
#*Start: This Sunday Peter, Putri, and Peng meet at the park for a go-Dutch barbecue. They use the Group Account app to do the accounting.
#*Step 1: Peter brings the meat for
#*Step 2: Putri brings salad for
#*Step 3: ...
# '''Storyboarding''': Next, you think about how a certain situation, i.e. a certain step of a scenario may be represented within a computer by a runtime object structure. This is done by adding [[object diagram]]s to the scenario. In story driven modeling, a scenario with object diagrams is also called a storyboard.
#: Scenario Go-Dutch barbecue
#*Start: This Sunday Peter, Putri, and Peng meet at the park for a go-Dutch barbecue. They use the Group Account app to do the accounting.
#*Step 1: Peter brings the meat for
#*Step 2: Putri brings salad for
#*Step 3: ...
# '''Class diagram derivation''': Now it is fairly
# '''Algorithm design''': So far you have modeled and implemented that object structures that are deployed in your application. Now you need to add behavior, i.e. algorithms and method bodies. Programming the behavior of an application is a demanding task. To facilitate it, you should first outline the behavior in [[pseudocode]] notation. You might do this, e.g. with an object game. For example, to update the saldo attributes of all persons you look at our object structure and from the point of view of the GroupAccount object you do the following:
#: Update the saldo of all persons:
Line 40:
#*** for each item add the value to the saldo of the current person
#** for each person subtract the share from the saldo
# '''Behavior implementation''': Once you have refined your algorithm [[pseudocode]] down to the level of operations on object structures it is
# '''Testing''': Finally, the scenarios may be used to derive automatic [[JUnit]] tests. The pseudocode for a test for our example might look like:
#: Test update the saldo of all persons:
#* create a group account object
#* add a person object with name Peter and a person object with name Putri and a person object with name Peng to the group account object
#* add an item object with buyer Peter, description Meat, and value
#* add an item object with buyer Putri, description Salad, and value
#* call method update the saldo of all persons on the group account object
#* ensure that the saldo of the Peter object is
#* ensure that the saldo of the Putri object is
#* ensure that the saldo of the Peter object is -
#* ensure that the sum of all saldos is
: Such automatic tests ensure that in the example situation the behavior implementation actually does what is outlined in the storyboard. While these tests are pretty simple and may not identify all kinds of bugs, these tests are very useful to document the desired behavior and the usage of the new features and these tests ensure that the corresponding functionality is not lost due to future changes.
== Summary ==
Story driven modeling has proven to work very well for the cooperation with non IT experts.<ref>{{cite journal|
Story Driven Modeling has matured since its beginning in 1997. In 2013 it is used for teaching e.g. in Kassel University, Paderborn University, Tartu University, Antwerp University, Nazarbayev University Astana, Hasso Platner Institute Potsdam, University of
== See also ==
* [[Agile
* [[Entity–control–boundary]]
* [[Agile software development]]
* [[Class-responsibility-collaboration card]]
Line 80 ⟶ 72:
{{reflist}}
[[Category:Object-oriented programming]]
[[Category:Software design]]
|