Story-driven modeling - Story-driven modeling
Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Story-driven modeling[1][2][3] je objektově orientované modelování technika.[4][5] Další formy objektově orientovaného modelování se zaměřují na třídní diagramy. Diagramy tříd popisují statickou strukturu programu, tj. Stavební bloky programu a jejich vzájemný vztah. Diagramy tříd také modelují datové struktury, ale s důrazem na poněkud abstraktní pojmy, jako jsou typy a funkce typů.
Namísto abstraktních statických struktur se modelování založené na příběhu zaměřuje na konkrétní ukázkové scénáře[6] a na tom, jak mohou být kroky ukázkových scénářů reprezentovány jako objektové diagramy a jak se tyto objektové diagramy vyvíjejí během provádění scénáře.
Přístup k vývoji softwaru
Story-driven modeling navrhuje následující přístup k vývoji softwaru:
- Textové scénáře: Pro funkci, kterou chcete implementovat, vytvořte textový popis scénáře pro nejběžnější případ. Podívejte se pouze na jeden příklad najednou. Zkuste použít konkrétní výrazy a jednotlivé názvy namísto obecných výrazů a např. názvy rolí:
- Scénář Go-holandské grilování
- Začátek: Tuto neděli se Peter, Putri a Peng setkají v parku na grilování v Holandsku. K provádění účetnictví používají aplikaci Skupinový účet.
- Krok 1: Peter přináší maso za 12 $. Peter přidá tuto položku do aplikace Skupinový účet.
- Krok 2: Putri přináší salát za 9 $. Peter přidává také tuto položku. Aplikace ukazuje, že nyní je průměrný podíl 7 $ a že Peng stále musí přinést těchto 7 $, zatímco Peter dostane 5 $ a Putri 2 $.
- Krok 3: ...
- Makety s grafickým uživatelským rozhraním: Pro ilustraci grafické uživatelské prostředí (GUI) pro požadovanou funkci, můžete do svého scénáře přidat některé modely drátových modelů nebo makety GUI:
- Scénář Go-holandské grilování
- Začátek: Tuto neděli se Peter, Putri a Peng setkají v parku na grilování v Holandsku. K provádění účetnictví používají aplikaci Skupinový účet.
- Krok 1: Peter přináší maso za 12 $. Peter přidá tuto položku do aplikace Skupinový účet.
- Krok 2: Putri přináší salát za 9 $. Peter přidává také tuto položku. Aplikace ukazuje, že v současné době je průměrný podíl 7 $ a že Peng stále musí přinést těchto 7 $, zatímco Peter dostane 5 $ a Putri 2 $:
- Krok 3: ...
- Storyboarding: Dále přemýšlíte o tom, jak může být určitá situace, tj. Určitý krok scénáře, v počítači reprezentována strukturou runtime objektu. To se provádí přidáním objektové diagramy podle scénáře. V modelování řízeném příběhem se scénář s objektovými diagramy také nazývá storyboard.
- Scénář Go-holandské grilování
- Začátek: Tuto neděli se Peter, Putri a Peng setkají v parku na grilování v Holandsku. K provádění účetnictví používají aplikaci Skupinový účet.
- Krok 1: Peter přináší maso za 12 $. Peter přidá tuto položku do aplikace Skupinový účet.
- Krok 2: Putri přináší salát za 9 $. Peter přidává také tuto položku. Aplikace ukazuje, že v současné době je průměrný podíl 7 $ a že Peng stále musí přinést těchto 7 $, zatímco Peter dostane 5 $ a Putri 2 $:
- Krok 3: ...
- Odvození třídního diagramu: Nyní je poměrně jednoduché odvodit a třídní diagram z diagramů objektů použitých ve scénářích.
Všimněte si, že diagram tříd slouží jako společná reference pro všechny diagramy objektů. Tím je zajištěno, že se celkově používají stejné typy a atributy. Používat UML nástroj, můžete vygenerovat první implementaci z tohoto diagramu tříd. - Návrh algoritmu: Zatím jste modelovali a implementovali struktury objektů, které jsou nasazeny ve vaší aplikaci. Nyní musíte přidat chování, tj. Algoritmy a těla metod. Programování chování aplikace je náročný úkol. Abyste to usnadnili, měli byste nejprve nastínit chování pseudo kód notace. Můžete to udělat, např. s objektovou hrou. Chcete-li například aktualizovat atributy saldo všech osob, podíváte se na naši strukturu objektu a z pohledu objektu GroupAccount provedete následující:
- Aktualizujte saldo všech osob:
- navštívit každou položku
- pro každou položku přidejte hodnotu k celkové hodnotě a přidejte 1 k počtu položek
- vypočítat průměrný podíl každé osoby vydělením celkové hodnoty počtem osob
- navštívit každou osobu
- pro každou osobu resetujte saldo
- pro každou osobu navštivte každou položku zakoupenou touto osobou
- pro každou položku přidejte hodnotu k saldu aktuální osoby
- pro každou osobu odečtěte podíl od salda
- Implementace chování: Jakmile dokončíte svůj algoritmus pseudo kód až na úroveň operací na objektových strukturách je snadné odvodit zdrojový kód, který provádí stejné operace při implementaci vašeho objektového modelu.
- Testování: Nakonec lze scénáře použít k automatickému odvození JUnit testy. Pseudokód pro test pro náš příklad může vypadat takto:
- Test aktualizujte saldo všech osob:
- vytvořit objekt skupinového účtu
- přidejte do objektu skupinového účtu osobní objekt se jménem Peter a osobní objekt se jménem Putri a osobní objekt se jménem Peng
- přidejte objekt objektu s kupujícím Peterem, popis Maso a hodnotu $ 12 do objektu skupinového účtu
- přidejte objekt objektu s kupujícím Putri, popisem Salát a hodnotou $ 9 do objektu skupinového účtu
- metoda volání aktualizuje saldo všech osob v objektu skupinového účtu
- ujistěte se, že saldo Peterova objektu je 5 $
- ujistěte se, že saldo objektu Putri je 2 $
- ujistěte se, že saldo Peterova objektu je - 7 $
- ujistěte se, že součet všech saldos je 0 $
- Takové automatické testy zajišťují, že v příkladné situaci implementace chování skutečně dělá to, co je uvedeno ve scénáři. I když jsou tyto testy velmi jednoduché a nemusí identifikovat všechny druhy chyb, jsou tyto testy velmi užitečné pro zdokumentování požadovaného chování a využití nových funkcí a tyto testy zajišťují, že příslušná funkce nebude ztracena kvůli budoucím změnám.
souhrn
Ukázalo se, že modelování založené na příběhu funguje velmi dobře pro spolupráci s non IT odborníky.[7] Lidé z jiných domén mají obvykle potíže popsat své potřeby obecně (tj. Třídami) a obecnými pravidly (pseudokódem). Podobně mají normální lidé problém porozumět pseudokódu nebo posoudit, zda jsou jejich potřeby správně řešeny nebo ne. Tito lidé však velmi dobře znají své podnikání a pomocí konkrétních příkladů a scénářů je pro normální lidi velmi snadné odhalit problematické případy a posoudit, zda byly jejich potřeby správně vyřešeny.
Story Driven Modeling dospěl od svého počátku v roce 1997. V roce 2013 se používá pro výuku např. v Kassel University, Paderborn University, Tartu University, Antwerp University, Nazarbayev University Astana, Hasso Platner Institute Potsdam, University of Victoria, ...
Viz také
- Agilní modelování
- Hranice entity-kontroly
- Agilní vývoj softwaru
- Karta pro spolupráci třídní odpovědnosti
- Objektově orientovaná analýza a návrh
- Objektově orientované modelování
- Testovaný vývoj
- Unifikovaný Modelovací Jazyk
Reference
- ^ Norbisrath, Ulrich; Zündorf, Albert; Jubeh, Ruben (2013). Story Driven Modeling. Amazon Createspace. p. 333. ISBN 9781483949253.
- ^ Zündorf, Albert; Schürr, A .; Winter, A. J. (1999). "Story Driven Modeling". University of Paderborn. Technická zpráva (tr-ri-99-211).
- ^ Diethelm, Ira; Geiger, L .; Zündorf, A. (leden 2004). "Systematické modelování založené na příběhu: případová studie". Třetí mezinárodní seminář o scénářích a státních strojích: 65–70.
- ^ van Gorp, Pieter (2008). "Hodnocení metodiky modelování řízené příběhem: od věží k modelkám". Technická zpráva University of Antwerp.
- ^ Eickhoff, Christoph; Geiger, N .; Hahn, M .; Zündorf, A. (2012). "Vývoj podnikových webových aplikací s využitím modelového přístupu založeného na příběhu". Aktuální trendy ve webovém inženýrství. LNCS (7059): 196–210.
- ^ Ryser, J .; Glinz, M. (2000). "Zlepšení kvality požadavků pomocí scénářů". Sborník z druhého světového kongresu o kvalitě softwaru. Jokohama: 55–60.
- ^ Zündorf, Albert; Leohold, J .; Müller, D .; Gemmerich, R .; Reckord, C .; Schneider, C .; Semmelroth, S. (2006). "Použití scénářů objektů pro analýzu požadavků - zpráva o zkušenostech". Modelování 2006: 269–278.