Story-driven modeling

Story-driven modeling[1][2][3] is an object-oriented modeling technique.[4][5] Other forms of object-oriented modeling focus 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[6] and on how the steps of the example scenarios may be represented as object diagrams and how these object diagrams evolve during scenario execution.

Software development approach

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 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:
      WikipediaGoDutchMockupObject diagram modeling a go-Dutch barbecue
    • Step 3: ...
  4. Class diagram derivation: Now it is fairly straightforward 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. 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:
    • visit each item
      • for each item add the value to the total value and add 1 to the number of items
    • compute the average share of each person by dividing the total value by the number of persons
    • visit each person
      • for each person reset the saldo
      • for each person visit each item bought by this person
        • for each item add the value to the saldo of the current person
      • for each person subtract the share from the saldo
  6. Behavior implementation: Once you have refined your algorithm pseudocode down to the level of operations on object structures it is straightforward 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. 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 $12 to the group account object
    • add an item object with buyer Putri, description Salad, and value $9 to the group account object
    • call method update the saldo of all persons on the group account object
    • ensure that the saldo of the Peter object is $5
    • ensure that the saldo of the Putri object is $2
    • ensure that the saldo of the Peter object is -$7
    • ensure that the sum of all saldos is $0
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.[7] 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, Nazarbayev University Astana, Hasso Platner Institute Potsdam, University of Victoria, ...

See also

References

  1. ^ Norbisrath, Ulrich; Zündorf, Albert; Jubeh, Ruben (2013). Story Driven Modeling. p. 333. ISBN 9781483949253.
  2. ^ Zündorf, Albert; Schürr, A.; Winter, A. J. (1999). "Story Driven Modeling". University of Paderborn. Technical Report (tr-ri-99-211).
  3. ^ Diethelm, Ira; Geiger, L.; Zündorf, A. (January 2004). "Systematic story driven modeling: a case study". Third International Workshop on Scenarios and State Machines: 65–70.
  4. ^ van Gorp, Pieter (2008). "Evaluation of the Story Driven Modeling Methodology: From Towers to Models". Technical Report University of Antwerp.
  5. ^ Eickhoff, Christoph; Geiger, N.; Hahn, M.; Zündorf, A. (2012). "Developing Enterprise Web Applications Using the Story Driven Modeling Approach". Current Trends in Web Engineering. LNCS. 7059 (7059): 196–210. doi:10.1007/978-3-642-27997-3_21. ISBN 978-3-642-27996-6.
  6. ^ Ryser, J.; Glinz, M. (2000). "Improving the Quality of Requirements with Scenarios". Proceedings of the Second World Congress on Software Quality. Yokohama: 55–60.
  7. ^ Zündorf, Albert; Leohold, J.; Müller, D.; Gemmerich, R.; Reckord, C.; Schneider, C.; Semmelroth, S. (2006). "Using object scenarios for requirements analysis - an experience report". Modellierung 2006: 269–278.

Read other articles:

Anatoly LukyanovАнатолий Лукьянов Ketua Soviet Tertinggi Uni SovietMasa jabatan15 Maret 1990 – 4 September 1991PresidenMikhail Gorbachev PendahuluMikhail GorbachevPenggantiJabatan ditiadakanDeputi Ketua Pertama Soviet Tertinggi Uni SovietMasa jabatan1 Oktober 1988 – 15 Maret 1990PresidenMikhail Gorbachev PendahuluPyotr DemichevPenggantiGennady Yanayev (sebagai wakil presiden)Kepala Departemen Umum Komite PusatMasa jabatan24 Mei 1985 – 17 Januar...

 

Avinash ArunLahirMumbaiKebangsaanIndiaPekerjaanSinematografer, sutradara film Avinash Arun adalah seorang sinematografer dan sutradara film India. Sebagai seorang sinematografer, ia telah membuat beberapa film Hindi seperti Drishyam. Madaari, Hichki. Penyutradaraan pertamanya film Marathi Killa dianugerahi sebuah beruang Kristal oleh juri Anak-anak di Festival Film Internasional Berlin ke-64. Film tersebut juga dianugerahi sebagai film fitur Terbaik dalam bahasa Marathi di Penghargaan Film N...

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (يوليو 2019) منتخب الهند لكرة الطائرة للسيدات الاتحاد الاتحاد الهندى لكرة الطائرة كونفدرال...

Cheltenham TownNama lengkapCheltenham Town Football ClubJulukanThe RobinsBerdiri1887StadionWhaddon Road Cheltenham(Kapasitas: 7,066)KetuaDavid BloxhamManajerDarrell ClarkeLigaLiga Satu Inggris2022–23ke-16, Liga Satu Inggris Kostum kandang Kostum tandang Musim ini Cheltenham Town Football Club adalah sebuah klub sepak bola Inggris yang berbasis di kota Cheltenham, Gloucestershire dan saat ini bermain di Liga Satu Inggris, tingkat ke-3 dalam sistem liga sepak bola Inggris. Didirikan pada tahu...

 

Ini adalah nama Minahasa, marganya adalah Gerung, rumpun dari Sulawesi Utara . Rocky GerungLahir20 Januari 1959 (umur 65)Manado, Sulawesi Utara, IndonesiaAlmamaterUniversitas IndonesiaPekerjaanAkademikus, konten kreatorDikenal atasFilsafat kontemporer dan aktivis masyarakatInformasi YouTubeKanal Rocky Gerung Official Tahun aktif2019–sekarangGenreBeritaPelanggan2,02 juta[1](Hingga 1 Maret 2024[update])Total tayang377,388,337[1](Hingga 1 M...

 

Four-stage model of physiological responses to sexual stimulation The human sexual response cycle is a four-stage model of physiological responses to sexual stimulation,[1] which, in order of their occurrence, are the excitement, plateau, orgasmic, and resolution phases. This physiological response model was first formulated by William H. Masters and Virginia E. Johnson, in their 1966 book Human Sexual Response.[1][2] Since that time, other models regarding human sexua...

Italian historical linguist (1897–1974) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Giacomo Devoto – news · newspapers · books · scholar · JSTOR (June 2021) (Learn how and when to remove this template message) Giacomo DevotoGiacomo Devoto (19 July 1897 – 25 December 1974) was an Italian historical li...

 

ميساريا   تقسيم إداري البلد اليونان  [1] إحداثيات 36°24′00″N 25°26′48″E / 36.4°N 25.44666667°E / 36.4; 25.44666667   السكان التعداد السكاني 1742 (resident population of Greece) (2021)1089 (resident population of Greece) (2001)730 (resident population of Greece) (1991)1593 (resident population of Greece) (2011)594 (de facto population of Greece) (1951)[2]  الرم�...

 

2022 Liberal Party of Australialeadership election Leadership election ← 2018 30 May 2022   Candidate Peter Dutton Caucus vote Unopposed Seat Dickson (Qld.) Faction National Right Leader before election Scott Morrison Elected Leader Peter Dutton Deputy leadership election ← 2018 30 May 2022   Candidate Sussan Ley Caucus vote Unopposed Seat Farrer (NSW) Faction Centre Right Deputy Leader before election Josh Frydenberg Elected Deputy Leader Sussan Ley...

Daniele Gasparetto Nazionalità  Italia Altezza 195 cm Peso 80 kg Calcio Ruolo Difensore Squadra Sant'Agostino Carriera Giovanili 199?-2004 Montebelluna2004-2007 Atalanta Squadre di club1 2007-2008→  Legnano28 (0)2008-2009→  Modena13 (1)2009-2010→  Padova6 (0)2010-2014 Cittadella86 (7)2014-2017 SPAL77 (3)2017-2019 Ternana41 (2)2019-2021 Reggina28 (0)[1]2021-2023 Legnago51 (2)2023-Sant'Agostino0 (0) Nazionale 2005 Italia U-1...

 

Benteng Batavia (lukisan oleh Andries Beeckman, sekitar 1656) Menara sudut benteng Fort Nieuw Victoria di Ambon pada masa Hindia Belanda Benteng, kubu[1], atau kota[2] adalah bangunan untuk keperluan militer yang dibuat untuk keperluan pertahanan sewaktu dalam peperangan. Benteng sudah dibangun oleh umat manusia sejak ribuan tahun yang lalu dalam berbagai bentuk dan pada akhirnya berkembang menjadi bentuk yang sangat kompleks. Di Indonesia, benteng yang masih ada saat ini umum...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Alfian Yusuf Helmi – berita · surat kabar · buku · cendekiawan · JSTOR (Februari 2024) Alfian Yusuf HelmiLahir(1916-06-15)15 Juni 1916Kotabumi, Lampung, Hindia BelandaMeninggal3 Maret 1991(1991-03-03) (umur&#...

Pemain bertemu dengan MissingNo. dalam permainan Pokémon Red. MissingNo. (Jepang: けつばんcode: ja is deprecated , Hepburn: Ketsuban), atau MissingNO,[1] adalah spesies Pokémon tak resmi yang ditemukan dalam permainan video Pokémon Red, Blue, dan Yellow. MissingNo. merupakan singkatan dari Missing Number (Angka yang Tidak Ada), dan dipakai sebagai penangan kesalahan (error handlers) oleh pengembang permainan Game Freak dan muncul saat permainan mencoba mengakses data sebuah spe...

 

New Zealand newspaper Auckland StarThe original newspaper building on Shortland Street, as seen in 1910.TypeDaily NewspaperFormatBroadsheetFounded1870Ceased publication1991[1]HeadquartersAuckland, New Zealand Front page of 26 December 1953 reporting the Tangiwai great railway disaster The Auckland Star was an evening daily newspaper published in Auckland, New Zealand, from 24 March 1870 to 16 August 1991.[2][3] Survived by its Sunday edition, the Sunday Star, part of i...

 

La provincia storica dell'Häme (in verde) nella Finlandia con i confini di regione attuali (in rosso). Häme (Tavastland in svedese, Tavastia in latino, Emi o Yemi in russo), è una provincia storica della Finlandia. La provincia si estendeva nell'area oggigiorno composta dalle regioni del Kanta-Häme, Päijät-Häme, gran parte della Finlandia centrale, la parte settentrionale del Kymenlaakso, quella meridionale del Pirkanmaa, quella occidentale del Savo settentrionale, quella sud-occidenta...

13th-century Scottish esquire For other people named Andrew Moray, see Andrew Moray (disambiguation). Andrew MorayPersonal detailsBornScotland, exact location of birth is not knownDied1297Cause of deathDue to wounds received at the Battle of Stirling BridgeChildrenSir Andrew MurrayParent(s)Sir Andrew Moray of Pettyan unnamed daughter of John Comyn I of BadenochRelativesDavid Moray (uncle)OccupationMilitary leaderMilitary serviceAllegianceKingdom of ScotlandYears of service1297R...

 

恩维尔·霍查Enver Hoxha霍查官方肖像照(摄于1980年代初)阿尔巴尼亚共产党中央委员会总书记任期1943年3月—1948年11月[1]前任無(首任)继任本人(劳动党中央委员会总书记)阿尔巴尼亚劳动党中央委员会总书记任期1948年11月—1954年7月[1]前任本人(共产党中央委员会总书记)继任本人(劳动党中央委员会第一书记)阿尔巴尼亚劳动党中央委员会第一书记任期1954�...

 

Government policies which force people to undergo sterilization Part of a series onDiscrimination Forms Institutional Structural Statistical Taste-based Attributes Age Caste Class Dialect Disability Genetic Hair texture Height Language Looks Mental disorder Race / Ethnicity Skin color Scientific racism Rank Sex Sexual orientation Species Size Viewpoint Social Arophobia Acephobia Adultism Anti-albinism Anti-autism Anti-homelessness Anti-drug addicts Anti-intellectualism Anti-intersex ...

Island of North Carolina Figure Eight IslandFigure Eight IslandLocation in North CarolinaShow map of North CarolinaFigure Eight IslandFigure Eight Island (the United States)Show map of the United StatesGeographyLocationHarnett Township, New Hanover County,North CarolinaCoordinates34°16′12″N 77°45′0″W / 34.27000°N 77.75000°W / 34.27000; -77.75000Total islands1Area1,300 acres (530 ha).[1]Administration United StatesDemographicsPopulation441 ...

 

Species of butterfly Cambridge vagrant male N. t. thalassinaBobiri Forest, Ghana Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Arthropoda Class: Insecta Order: Lepidoptera Family: Pieridae Genus: Nepheronia Species: N. thalassina Binomial name Nepheronia thalassina(Boisduval, 1836) Synonyms Pieris thalassina Boisduval, 1836 Eronia thalassina sinalata Suffert, 1904 Eronia thalassina f. hesione Stoneham, 1957 Eronia thalassina f. proserpina Stoneham, 1957 Eronia ver...