This contribution to the debate regards standard UML in Use Case modeling.

A Brief Summary in English:

 

Standards: alive & well !

There are many ways of getting it wrong in Use Case modeling (“misuse cases”). UCs are a good tool of requirement specification, provided we use them in an appropriate place and provided a wise tradeoff between the semi-formal, graphical, UC structure (containing nice distinctions, starting with UML ver. 1.3) and the detailed bullet lists of each use case. Neglecting the former may bring about doubled effort later, in dialog design, in doc and in maintenance whereas neglecting the latter provides a rather weak basis for system design (with the important functional requirements “not all there”). In other words, a thousand thanks for standard UML. As an illustration, do read M. A. Jackson’s Problem Frames (from 2001): several great hints and problem-scoping patterns for the analyst - which I feel I absorb despite of the notations (rather than because of); a reminder of the pre-UML years when a consultant was more or less supposed to swap brains from project to project, in a plenty of proprietary notations and terminologies.

No matter a heavyweight or lightweight process, it’s practical to distinguish between the business level (business-event centric) and the system level (system-boundary-event centric, i.e. more granular) of use case models. Providing the right level of detail to the right stakeholder saves time and misunderstanding. In finance, administration or business systems, it’s important to be aware of the strengths and limitations of each modeling technique, including those of use cases. In general, trying several ways (views of the business) is worthwhile, pushing through the most rewarding one – be it UCs or not (see UML Xtra Light, Cambridge University Press, www.wet-liquids.com ). If the system-to-be isn’t especially interactive then there is an obvious risk in building for instance, your project schedule on the UC model only. With some other systems, you might be well off with just a couple of parameterized UCs to avoid the "wallpaper problem" (not standard at the moment, but probably in UML ver 2.0 complete level).

 

Published in Swedish by the IDG in Computer Sweden, debate page, http://computersweden.idg.se/, February 26th, 2003:

 

Standarderna Lever !

 

I CS den 15 januari skriver Peter Tallungs om fallgroparna i användningsfallsmodellering (Användningsfall - kravarbetarnas frälsning). I egenskap av praktiker lyfter han fram Agile-rörelsen (Cockburn m fl) mer än "tunga" processer. Det finns säkert tusen och ett sätt att skriva "oanvändningsfall" ("misuse cases") och Peter har rätt i att verkligheten oftast överträffar fantasin.

 

Som han skrivit i CS före Jullovet, har användningsfall räddat många kravspecar från att i stället ligga och samla damm. I hans senaste, kompakta, artikel kan läsaren få intrycket att de grafiska, halvformella delarna är mindre värda än punktlistorna som beskriver tågordningen inom varje användningsfall. Men det tror jag knappast Peter menar, man behöver snarare en väl fungerande balans mellan dem två. Slarvar man över den grafiska modellen och relationerna mellan användningsfall (som from. UML version 1.3 är mycket nyansrika) så riskerar man att oavsiktligt skapa en hel del dubbelarbete senare, i exempelvis dialogdesign, och att dessutom dra på sig en dubbelunderhållsbörda i dokumentationen. Slarvar man å andra sidan över punktlistorna så ger man designern klena underlag eftersom en del viktiga funktionella krav på systemet inte kommer med. Alltså tack och lov för standard UML; läs gärna, som illustration, min f.d. arbetsgivare Michael A. Jacksons senaste bok Problem Frames - Analyzing & Structuring SW Development Problems (2001) som innehåller ett antal utmärkta knep och mönster för analytikern - vilka man tar till sig trots notationen snarare än på grund av, som påminnelse om hur man före UML-tiden ständigt fick "byta hjärna" (i en uppsjö av olika notationer och terminologier).

   

Oavsett om man följer Rup eller en lättviktsmetod så är det klokt att för både utvecklarnas och beställarnas skull skilja på verksamhetsnivå och teknisk nivå ("dialognivå") i användningsfall. På verksamhetsnivån är det främst intressant ATT vissa externa affärshändelser (transaktioner, signaler osv) skall tas om hand av det blivande systemet och att det finns mål och mening (affärsvärde) med detta. På den tekniska nivån är det intressant HUR, dvs att steg för steg beskriva dialoger med användare eller externa system ("aktörer"). Man spar tid och missförstånd på att ge rätt detaljnivå till rätt målgrupp.

 

Något som sällan nämns i samband med användningsfall är vilka typer av tillämpningar de är lämpliga/olämpliga för, i synnerhet inom finans eller administrativa system. Enklaste analysrådet för praktikern är att prova flera vägar och att satsa mest modelleringstid där det "lossnar": e-vyn dvs användningsfall, processvyn eller kunskapsvyn/strukturvyn (mer om styrkor och begränsningar se i min bok UML Xtra Light, Cambridge University Press). I system som har för lite interaktion med omvärlden är det riskfyllt att exempelvis basera projektplanen på enbart användningsfall. I andra system där interaktionen är en mängd små variationer på samma tema är det praktiskt att bara arbeta med ett eller ett par parametriserade användningsfall (för att undvika de "tapetproblem" Peters artikel nuddar vid), det är inte standard idag men väl i den kommande UML versionen (2.0, på "kompletta" nivån av standarden - complete) - även standarder utvecklas.

 

Milan Kratochvil, konsult och UML-utbildare, Kiseldalens

 

Back, Kiseldalens Top Page