Een analytisch kader toepassen

Regelen en hergebruiken van waardevolle technieken, hulpmiddelen en voorbeelden

Benjamin Lieberman
Gepubliceerd op 17 april 2007

Ergens, ergens, heeft iemand een soortgelijk probleem als het uwe gehad en bedacht hoe hij het moest oplossen. Wat als je de moeizaam verkregen informatie van die persoon zou kunnen vastleggen en de oplossing in een herbruikbare vorm zou kunnen gieten? Dit is precies wat ontwerp- en analyse patronen de laatste tien jaar hebben opgeleverd voor software ingenieurs. Echter, deze patronen bespreken meestal een specifieke oplossing; ze bieden niet veel begeleiding bij het leren identificeren van het juiste patroon en het toepassen van dat patroon in de eerste plaats.

Gelukkig kun je je wenden tot analytische raamwerken, die herbruikbare oplossingen combineren met analyse patronen, onderzoek, nuttige organisatietechnieken, en specifieke voorbeelden van succesvolle benaderingen. Een analytisch raamwerk is een beetje als uw eigen persoonlijke bibliotheek, specifiek afgestemd op uw eigen ervaring en achtergrond.

Analysepatronen worden al vele jaren gebruikt in softwareontwikkeling om oplossingen te bieden voor gegevenstoegang, transactiebewaking en -beheer, beveiliging, berichtenverkeer, gebruikersinterfaces, en andere toepassingsbehoeften. Ze zijn niet bedoeld om te worden geïmplementeerd in code, maar eerder om analisten in staat te stellen complexe probleemdomeinen te begrijpen.

Analytische raamwerken bevatten dergelijke patronen en bieden ook een checklist van vaardigheden, tools, en technieken die nodig zijn voor het onderzoeken van een bepaald gebied, zoals bedrijfsanalyse of systeemarchitectuur. Dit kan een grote zegen zijn voor bedrijven die op zoek zijn naar specifieke vaardigheden om in een actuele behoefte te voorzien. Als een kandidaat de genoemde ervaring en vaardigheden kan aantonen, is het waarschijnlijk dat die kandidaat succesvol zal zijn met de taak.

Inzicht in de analytische kaderstructuur

Bedenk even hoe iemand die is opgeleid in houtbewerking te werk gaat bij het maken van meubels. Een arbeider die zich beperkt tot enkele eenvoudige gereedschappen en zijn eigen kennis, kan het moeilijk en tijdrovend vinden om nieuwe stukken te maken. Indien dezelfde persoon daarentegen een volledig uitgeruste werkplaats, krachtig gereedschap en een volledige bibliotheek van plannen en voorbeeldstukken ter beschikking krijgt, zal het voor haar veel gemakkelijker zijn om complexe, interessante meubelen te maken. Op vrijwel dezelfde wijze kunnen de prestaties van een analist worden verbeterd door toegang tot een reeks beproefde analysepatronen, krachtige analytische gereedschappen en technieken, en meerdere voorbeelden van effectieve modelbenaderingen voor het vastleggen en presenteren van complexe informatie.

Een analytisch raamwerk bestaat uit vijf belangrijke componenten: een assortiment gereedschappen, een reeks bruikbare oplossingspatronen, een of meer modelvormen, meerdere onderzoekstechnieken en -vaardigheden, en methoden voor het groeperen van complexe informatie. Tabel 1 geeft een overzicht van de elementen die nodig zijn voor een raamwerk voor bedrijfsanalyse.

Tabel 1. Raamwerk voor bedrijfsanalyse
Element Beschrijving
Tools Word processing, modelleersoftware, document version control
Patterns Industrie-specifieke patronen, bedrijfssysteempatronen, bedrijfsorganisatiestructuren
Modelvormen Organization chart, Unified Modeling Language (UML) business case, UML activiteit, Zachman Framework
Technieken Observatie, interviewen, documentstudie
Vaardigheden Notities maken, actief luisteren, vergaderen, teamleiderschap, kritisch denken, redeneren naar analogie
Categorisatie Bedrijfsproces raamwerk, afdeling hiërarchie, business use cases, business-functionele afhankelijkheid grafiek

In dit bedrijfsanalyse raamwerk, de effectieve hulpmiddelen voor het ontdekken en vastleggen van bedrijfsprocessen omvatten modelleringssoftware (in het bijzonder UML-modellering, indien bedrijfsvereisten worden vastgelegd als use cases), tekstverwerkingshulpmiddelen, en een of andere vorm van versiecontrole voor modellen en documenten. Hulpmiddelen kunnen worden toegesneden op specifieke behoeften of het kunnen meer algemene hulpmiddelen zijn, zoals een eenvoudig visueel tekenhulpmiddel.

Terugkerende analysepatronen kunnen effectief zijn wanneer ze worden toegepast op een bepaald analysedomein. In het kader van de bedrijfsanalyse omvatten deze patronen bedrijfssysteempatronen (zoals orderinvoer, voorraadbeheer en handelsbeslechting), industriespecifieke patronen (zoals telefoonroutering, pakketverzending en -planning, en controles op de fabricage van geneesmiddelen), en bedrijfsstructuren (zoals matrices, hiërarchieën, en gedistribueerde organisaties). Patronen zijn thema’s die herhaaldelijk blijken voor te komen in bepaalde bedrijfsgebieden. Voor meer informatie over manieren om terugkerende bedrijfsthema’s vast te leggen, zie “Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML”. (Zie het gedeelte Verwante onderwerpen voor meer informatie.)

U kunt een selectie van modelvormen gebruiken om complexe informatie vast te leggen. Voor complexe analytische analyse bestaat een aantal nuttige modelvormen, zoals Unified Modeling Language (UML) voor software-intensieve systemen, Systems Modeling Language (SysML) voor systeemtechniek, en het Zachman Framework voor organisatie-overstijgende aandachtspunten. In het voorbeeld van het raamwerk voor bedrijfsanalyse in tabel 1 zijn nuttige modelvormen voor het bestuderen van bedrijfsprocessen onder meer UML (voor proces- en use-case modellering), hiërarchische organigrammen, en een eventueel aangepaste vorm van het Zachman-model.

Technieken en vaardigheden zijn een cruciaal aspect van elke analyse-aanpak. Het is belangrijk om een beoordeling te kunnen geven van de huidige beschikbare vaardigheden van een individu of team. De techniek van het interviewen vereist bijvoorbeeld de vaardigheden van het maken van aantekeningen en actief luisteren. Het leiden van een groepsworkshop vereist de vaardigheden van faciliteren en teamleiderschap. Systeemanalyse berust op de vaardigheden om kritisch over het probleem na te denken (inzien hoe het probleem kan worden opgedeeld in kleinere, eenvoudiger domeinen) en soortgelijke oplossingen toe te passen die op andere gebieden zijn gevonden.

Het doel van analyse is om de bevindingen aan een publiek te presenteren. De beste analist ter wereld zal niet succesvol zijn als hij de informatie niet op een zinvolle, presenteerbare manier kan organiseren. Geautomatiseerde hulpmiddelen bieden slechts een deel van de oplossing voor dit probleem; de algehele organisatie van de informatie bepaalt hoe het beoogde publiek de gegevens zal gebruiken. In het raamwerk voor bedrijfsanalyse worden deze categorisatieprincipes weergegeven door bedrijfsprocessen (waarbij het bedrijf wordt onderverdeeld in subdomeinen), afhankelijkheidsgrafieken tussen bedrijfsgebruikszaken, en de algemene organisatiestructuur (typisch, hiërarchisch).

Het toepassen van een analytisch raamwerk

Nu u weet waaruit een analytisch raamwerk bestaat, moet u leren hoe u er een kunt gebruiken. Er zijn ten minste drie situaties waarin een analytisch raamwerk van pas kan komen. De eerste is wanneer een individu van rol moet veranderen. Bijvoorbeeld, een business analist kan een systeem-analist rol gaan spelen of een test-analist rol. Elke rol heeft andere verantwoordelijkheden en levert andere documentatie en werkproducten op. Als de persoon kan terugvallen op een bestaand analytisch kader (met passende voorbeelden), zal het veel gemakkelijker zijn om zich voor te bereiden op en over te stappen naar de nieuwe rol. De persoon moet leren welke hulpmiddelen, technieken, patronen, modellen en organisatorische benaderingen in elke situatie het beste werken. Toegang tot een analytisch patroon voor elk van deze gebieden kan de tijd die wordt besteed aan het zoeken naar oplossingen sterk verminderen.

Het tweede gebied waar analytische kaders nuttig kunnen blijken is bij de beoordeling van de vaardigheden en de voorbereiding van een outsourcing groep. De meeste organisaties die gebruik maken van near-shore of offshore outsourcing vertrouwen op de in het verleden opgedane ervaring van de teams om te beoordelen of zij in staat zijn de overeengekomen artefacten te leveren. Als het outsourcingteam aan een bepaalde norm wordt gehouden, zoals gedefinieerd door een specifiek analytisch patroon dat zijn doeltreffendheid heeft bewezen, is er meer vertrouwen dat het team over de juiste verzameling materialen en bekwaamheden zal beschikken. Hetzelfde kan worden gezegd van interne teams, hoewel deze teams meestal al een bepaalde aanpak hebben bewezen, die de bron vormt voor het analytische raamwerk.

Het derde gebied waar analytische raamwerken van pas komen is in de opleiding. Als u het raamwerk in tabel 1 bestudeert, zou het duidelijk moeten zijn dat deze de basis kunnen vormen voor een team-verbeteringsplan voor training. U kunt een beoordeling uitvoeren om te bepalen of de juiste verzameling van raamwerkelementen, hulpmiddelen, patronen en vaardigheden al binnen de teamleden beschikbaar is of moet worden toegevoegd door de aanschaf van een hulpmiddel of de opleiding van het personeel.

Creëren en aanpassen van raamwerken

Een analytisch raamwerk is alleen nuttig als de hulpmiddelen bekend zijn bij de modelleerder. De getalenteerde houtbewerker indachtig, is het beste gereedschap nutteloos zonder de creatieve toepassing van een getrainde en getalenteerde ambachtsman. Op dezelfde manier vereist het bouwen van esthetisch verantwoorde modellen dat een of meer analytische kaders worden aangepast aan een probleemdomein. Je moet weten hoe je het meest relevante raamwerk selecteert, vertrouwd raken met de elementen van het raamwerk, en de raamwerkelementen aanpassen aan het probleem in kwestie.

Veel problemen hebben terugkerende aspecten, zodat je vaak een nauw verwant raamwerk kunt aanpassen. Bijvoorbeeld, bijna alle legacy computersystemen hebben een of andere vorm van ontwerp-onderzoek nodig, al was het alleen maar om nieuwe ontwikkelaars op te leiden in het onderhoud en de uitbreiding van het systeem. Daarom zou een raamwerk voor systeemontwerp beter toepasbaar zijn dan een raamwerk voor bedrijfsprocessen.

Het maken van een nieuw raamwerk kan zo eenvoudig zijn als het klonen van een bestaand raamwerk en het toevoegen van nieuwe patronen en voorbeelden. Aan de andere kant kunnen complexere raamwerken, zoals een raamwerk dat kan worden ontwikkeld voor de analyse en het beheer van projecten voor ingebedde systemen, weinig gemeen hebben met andere bestaande raamwerken, zodat u ze misschien vanaf nul moet maken. U moet beginnen met het overwegen van de gereedschappen en technieken die u op het domein kunt toepassen. Het kan bijvoorbeeld nodig zijn om bestaande technieken, zoals interviewen of het faciliteren van groepen, aan te passen om het nieuwe domein te ondersteunen. Misschien kunt u de modelleerder andere hulpmiddelen geven voor specifieke taken, zoals computer-aided software engineering (CASE) voor het organiseren van inhoud voor een federatie van websites. Naarmate de tijd vordert, kunt u het raamwerk uitbreiden om meerdere voorbeelden op te nemen. Tenslotte kunt u aan het eind van het project de technieken en patronen die het meest bruikbaar zijn gebleken, formeel vastleggen als analysepatronen voor gebruik bij het volgende toepasselijke probleem.

Het kan nodig zijn een analytisch raamwerk aan te passen voordat het bruikbaar is in een bepaalde context. Aanpassing van een raamwerk houdt in het opnemen van nieuwe patronen of organisatorische schema’s om beter aan te sluiten bij de behoeften van het onderwerp. Op die manier kunt u deze raamwerken uitbreiden en ontwikkelen voor nieuwe probleemdomeinen. Naarmate nieuwe hulpmiddelen en technieken beschikbaar komen, en naarmate nieuwe analysepatronen worden ontdekt en gecodificeerd, kunt u deze aan uw gereedschapskist toevoegen en in een aangepast raamwerk onderbrengen. Als het niveau van wijziging significant is, kan het erop wijzen dat u een geheel nieuw raamwerk moet construeren.

Het analytische raamwerk in gebruik nemen

Stel u voor dat u een senior ontwikkelaar bent die zojuist is toegewezen aan een nieuwe positie van architect voor een legacy systeem. U was niet betrokken bij het oorspronkelijke ontwikkelwerk, maar u moet het systeem snel leren kennen en een staf van nieuwe teamleden op snelheid brengen, wat vereist dat u eerst zelf op snelheid komt. Gelukkig heeft u een paar dingen in uw voordeel. Ten eerste beschikt u over een goede set voorbeeldarchitecturen van andere soortgelijke systemen in het bedrijf. Ten tweede heeft u toegang tot het analytische patroon voor software architectuur (zie Tabel 2).

Tabel 2. Analysekader voor softwarearchitectuur
Element Beschrijving
Tools Code profiler, database-reporting tool, software-architectuur document sjabloon, modelleringssoftware, code-analyse
Patronen Software-deploymentpatronen, architectuurpatronen, systeemontwerppatronen, gegevensopslagpatronen
Modelvormen Dynamische modellen (zoals UML-sequentie, algoritmediagrammen, UML-status, en UML-activiteit), database-entiteit-relatiediagrammen, structurele modellen (zoals UML class en function call map), data-flow charts, enterprise system models
Technieken Abstract denken, organisatie en categorisatie, kritische analyse, noteren
Vaardigheden Code structuur, flow analyse, hardware profilering, systeemgedrag
Categorisatie Functioneel gedrag, subsysteem afhankelijkheid, component afhankelijkheid, deployment packaging

Met behulp van het software architectuur raamwerk, is uw eerste stap om alle aanbevolen gereedschappen te verzamelen. De modelleertool biedt de mogelijkheid om bestaande code te visualiseren in een UML-model, zodat u de bestaande structuur van de code kunt onderzoeken. De runtime profiler is waardevol voor het vastleggen van call stacks terwijl de applicatie functionaliteit wordt uitgevoerd.

Volgende, kunt u de gemeenschappelijke architectonische patronen aanwezig in de applicatie te onderzoeken. U kunt deze patronen identificeren, indien aanwezig, door gebruik te maken van de algemene patroonbeschrijvingen die in het raamwerk zijn genoteerd, met name de analyse- en ontwerppatronen. Veel van dergelijke patronen zijn gepubliceerd; het kennen van de meest voorkomende zal vaak voldoende zijn voor een architectonische analyse inspanning.

Bekendheid met een verscheidenheid aan modelvormen, zoals entiteit-relatie diagrammen (ERDs), UML, en andere systeem-georiënteerde modellering benaderingen, zal u voorzien van een breed scala aan modellering opties. Het categoriseren van deze modellen naar functioneel gedrag, logische vergeleken met fysieke structuur, en interne gedragstoestanden zal een bruikbaar verslag opleveren van de algehele architectuur voor het systeem. Tenslotte is het belangrijk uw eigen beperkingen te kennen. Zelfbeoordeling is een moeilijke taak, maar noodzakelijk om er zeker van te zijn en uzelf te verzekeren dat alle werkelijk noodzakelijke vaardigheden beschikbaar zijn voor het team. Het gebruik van de reeks verwachte vaardigheden die in het analytisch raamwerk voor software-architectuur worden opgesomd, biedt een goed uitgangspunt voor het bepalen van het soort vaardigheden dat vereist is voor een taak op het gebied van architectuuranalyse. Het analytisch kader biedt u een checklist van de minimale hoeveelheid elementen die u nodig hebt om succesvol te zijn. Voor gespecialiseerde architecturen, zoals transportnetwerken, kunnen aanvullende vaardigheden vereist zijn.

Samenvatting

Het bestuderen en begrijpen van complexe softwaresystemen kan een uitdagende taak zijn. Om succesvol te zijn, moet u een verscheidenheid aan hulpmiddelen en technieken gebruiken om systeembeschrijvingen te verzamelen, ordenen en presenteren. Door analytische raamwerken te maken en aan te passen, kunt u zich goed van tevoren voorbereiden en nuttige hulpmiddelen en voorbeelden verzamelen die u in uw huidige situatie kunt gebruiken. Nu u weet uit welke elementen een succesvol analytisch raamwerk bestaat, hoe u raamwerken kunt hergebruiken en hoe u nieuwe raamwerken kunt creëren, zult u goed voorbereid zijn om veel van de veelvoorkomende situaties aan te pakken die zich voordoen bij de complexe problemen van vandaag.

Downloadbare bronnen

  • PDF van deze inhoud
  • Voor meer informatie over bedrijfsarchetypen, leest u Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, door Jim Arlow en Ila Neustadt (Addison-Wesley Professional, 2003).
  • Kijk eens naar de driedelige serie (PDF) van Ben Lieberman over De kunst van het modelleren, waarin u leert over het construeren van een analytisch raamwerk, modelorganisatie en -constructie, en visuele compositie (developerWorks, augustus 2003).
  • Leer modelleren met structurele vormen, organisatiethema’s en diagramdraaipunten in het artikel van Ben Lieberman, “Effectieve systeemmodellen bouwen,” (developerWorks, maart 2007).

Plaats een reactie