Jump to content

Story-driven modeling

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Azuendorf (talk | contribs) at 22:37, 27 August 2013 (See also). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Introduction

Story-driven modeling[1][2] is an improvement of Object-oriented modeling techniques[3][4] . Object-oriented modeling focuses on class diagrams. 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 and on how the steps of the example scenarios may be represented as object diagrams and how these object diagrams evolve during scenario execution.

In a nutshell

Story-driven modeling proposes the following software development approach:

  1. Textual scenarios: For the feature you want to implement, develop a textual scenario description for the most common case. Look on only one example at a time. Try to use specific terms and individual names instead of general terms and e.g. role names:
    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 12$. Peter adds this item to the Group Account app.
    • Step 2: Putri brings salad for 9$. Peter adds this item, too. The app shows that by now the average share is 7$ and that Peng still have to bring these 7$ while Peter gets 5$ out and Putri gets 2$ out.
    • Step 3: ...
  2. 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 12$. Peter adds this item to the Group Account app.
    • Step 2: Putri brings salad for 9$. Peter adds this item, too. The app shows that by now the average share is 7$ and that Peng still have to bring these 7$ while Peter gets 5$ out and Putri gets 2$ out:
      WikipediaGoDutchMockup
    • Step 3: ...
  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 diagrams to the scenario. In story driven modeling, a scenario with object diagrams is also called a storyboard.
    Scenario Go-dutch barbeque
    • 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 12$. Peter adds this item to the Group Account app.
    • Step 2: Putri brings salad for 9$. Peter adds this item, too. The app shows that by now the average share is 7$ and that Peng still have to bring these 7$ while Peter gets 5$ out and Putri gets 2$ out:
      WikipediaGoDutchMockupObject diagram modeling a go-dutch barbecue
    • Step 3: ...
  4. Class diagram derivation: Now it is fairly straight forward to derive a class diagram from the object diagrams used in the storyboards.
    Class diagram for a go-dutch barbecue
    Note, the class diagram serves as a common reference for all object diagrams. This ensures that overall the same types and attributes are used. Using a UML tool, you may generate a first implementation from this class diagram.
  5. 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.
  6. Behavior implementation: Once you have refined your algorithm pseudocode down to the level of operations on object structures it is straight forward to derive source code that executes the same operations on your object model implementation.
  7. Testing: Finally, the scenarios may be used to derive automatic JUnit tests. 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. People from other domains usually have difficulties to describe their needs in general terms (i.e. classes) and general rules (pseudocode). Similarly, normal people have problems to understand pseudocode or to judge, whether their needs are properly addressed or not. However, these people know their business very well and with the help of concrete examples and scenarios it is very easy for normal people to spot problematic cases and to judge whether their needs have been addressed properly.

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, Astana University, Hasso Platner Institute Potsdam, ...

Story driven modeling is supported by various tools, e.g. Fujaba, SDMLib, Potsdam Tool, ...

Note, some details are missing above. To be added soon.

See also

References

  1. ^ Norbisrath Zündorf Jubeh, Ulrich Albert Ruben (2013). Story Driven Modeling. Amazon Createspace. p. 333. ISBN 9781483949253.
  2. ^ Diethelm, Ira (2004). "Systematic story driven modeling: a case study". Third International Workshop on Scenarios and State Machines: 65-70. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  3. ^ van Gorp, Pieter (2008). "Evaluation of the Story Driven Modeling Methodology: From Towers to Models". Technical Report University of Antwerp.
  4. ^ Eickhoff, Christoph (2012). "Developing Enterprise Web Applications Using the Story Driven Modeling Approach". Current Trends in Web Engineering. LNCS (7059): 196-210. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)