Anvendelse af en analytisk ramme

Organiser og genbrug værdifulde teknikker, værktøjer og eksempler

Benjamin Lieberman
Publiceret den 17. april 2007

Et eller andet sted har nogen stået over for et problem, der ligner dit, og fundet ud af, hvordan man løser det. Hvad nu, hvis du kunne indfange denne persons hårdt tilkæmpede oplysninger og sætte løsningen i en form, der kan genbruges? Det er præcis det, som design- og analysemønstre har givet softwareingeniører i det seneste årti. Men disse mønstre diskuterer generelt en specifik løsning; de giver ikke megen vejledning i at lære at identificere det korrekte mønster og anvende dette mønster i første omgang.

Glædeligvis kan du henvende dig til analytiske rammer, som kombinerer genanvendelige løsninger med analysemønstre, forskning, nyttige organisationsteknikker og specifikke eksempler på vellykkede tilgange. En analytisk ramme er lidt som dit eget personlige bibliotek, der er skræddersyet specifikt til din egen erfaring og baggrund.

Analysemønstre er blevet brugt inden for softwareudvikling i mange år til at levere løsninger til dataadgang, transaktionsovervågning og -styring, sikkerhed, messaging, brugergrænseflader og andre applikationsbehov. De er ikke beregnet til at blive implementeret i kode, men snarere til at give analytikere mulighed for at forstå komplekse problemdomæner.

Analytiske rammer inkorporerer sådanne mønstre og giver også en tjekliste over færdigheder, værktøjer og teknikker, der er nødvendige for at undersøge et bestemt område, f.eks. forretningsanalyse eller systemarkitektur. Dette kan være en stor fordel for virksomheder, der søger efter specifikke færdigheder til at opfylde et aktuelt behov. Hvis en kandidat kan påvise de anførte erfaringer og evner, er det sandsynligt, at kandidaten vil få succes med opgaven.

Forståelse af den analytiske rammestruktur

Tænk et øjeblik på, hvordan en person, der er uddannet i træarbejde, går til værks for at skabe møbler. En arbejdstager, der er begrænset til nogle få enkle værktøjer og sin egen personlige viden, kan finde det vanskeligt og tidskrævende at skabe nye stykker. Hvis den samme person derimod får stillet et fuldt udstyret værksted, kraftige værktøjer og et komplet bibliotek med tegninger og eksempelstykker til rådighed, vil hun have meget lettere ved at skabe komplekse, interessante møbler. På samme måde kan en analytikers præstationer forbedres ved at få adgang til et sæt af gennemprøvede analysemønstre, kraftfulde analytiske værktøjer og teknikker og mange eksempler på effektive modelleringsmetoder til registrering og præsentation af komplekse oplysninger.

En analytisk ramme består af fem hovedkomponenter: et sortiment af værktøjer, et sæt nyttige løsningsmønstre, en eller flere modelformer, flere undersøgelsesteknikker og færdigheder samt metoder til gruppering af komplekse oplysninger. Tabel 1 viser de elementer, der er nødvendige for en ramme for forretningsanalyse.

Tabel 1. Ramme for forretningsanalyse
Element Beskrivelse
Værktøjer Vordbehandling, modelleringssoftware, dokumentversionskontrol
Mønstre Industriespecifikke mønstre, mønstre for forretningssystemer, forretningsorganisationsstrukturer
Modelformer Organisationsdiagram, UML (Unified Modeling Language) business case, UML-aktivitet, Zachman Framework
Teknikker Observation, interview, dokumentstudier
Færdigheder Notatskrivning, aktiv lytning, mødefacilitering, teamledelse, kritisk tænkning, ræsonnement ved analogi
Kategorisering Framework for forretningsprocesser, afdelingshierarki, business use cases, business-funktionel afhængighedsdiagram

I dette rammeværk for forretningsanalyse, omfatter de effektive værktøjer til opdagelse og registrering af forretningsprocesser modelleringssoftware (især UML-modellering, hvis forretningskrav registreres som use cases), tekstbehandlingshjælpemidler og en form for versionskontrol af modeller og dokumenter. Værktøjerne kan være skræddersyet til specifikke behov, eller de kan være mere generelle værktøjer, f.eks. et simpelt visuelt tegnehjælpemiddel.

Gentagende analysemønstre kan være effektive, når de anvendes på et bestemt analysedomæne. Inden for rammerne af forretningsanalysen omfatter disse mønstre forretningssystemmønstre (f.eks. ordreindgang, lagerstyring og handelsløsning), branchespecifikke mønstre (f.eks. telefonirouting, pakkeforsendelse og -planlægning og kontrol med lægemiddelfremstilling) og forretningsstrukturer (f.eks. matricer, hierarkier og distribuerede organisationer). Mønstre er temaer, der har vist sig at optræde gentagne gange inden for bestemte forretningsområder. For yderligere oplysninger om måder at indfange tilbagevendende forretningstemaer på, se “Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML”. (Se afsnittet Relaterede emner for at få flere oplysninger.)

Du kan bruge et udvalg af modelformer til at registrere komplekse oplysninger. Til komplekse analytiske analyser findes der en række nyttige modelformer, f.eks. Unified Modeling Language (UML) til softwareintensive systemer, Systems Modeling Language (SysML) til systemteknik og Zachman Framework til tværgående organisationsproblemer. I det rammeeksempel for forretningsanalyse, der er vist i tabel 1, omfatter nyttige modelformer til undersøgelse af forretningsprocesser UML (til proces- og use-case-modellering), hierarkiske organisationsdiagrammer og en potentielt modificeret form af Zachman-modellen.

Teknikker og færdigheder er et afgørende aspekt af enhver analysetilgang. Det er vigtigt at kunne give en vurdering af de aktuelt tilgængelige færdigheder hos en person eller et team. For eksempel kræver interviewteknikken evnen til at tage noter og aktiv lytning. At lede en gruppeworkshop kræver færdigheder inden for facilitering og teamledelse. Systemanalyse er afhængig af evnerne til at tænke kritisk over problemet (erkende, hvordan problemet kan opdeles i mindre, enklere områder) og anvende lignende løsninger, der er fundet på andre områder.

Målet med analysen er at præsentere resultaterne for et publikum. Den bedste analytiker i verden vil ikke få succes, hvis han ikke kan organisere oplysningerne på en meningsfuld og præsentabel måde. Automatiserede værktøjer udgør kun en del af løsningen på dette problem; den overordnede organisering af oplysningerne er afgørende for, hvordan det tilsigtede publikum vil udnytte dataene. I forretningsanalyserammen er disse kategoriseringsprincipper repræsenteret ved forretningsprocesser (hvor forretningen er opdelt i underområder), afhængighedsgrafer mellem forretningsbrugssager og den overordnede organisationsstruktur (typisk hierarkisk).

Anvendelse af en analytisk ramme

Nu da du ved, hvad en analytisk ramme består af, skal du lære at bruge en. Der er mindst tre situationer, hvor en analytisk ramme kan være nyttig. Den første er, når en person skal skifte rolle. En forretningsanalytiker kan f.eks. skifte til en systemanalytiker-rolle eller en testanalytiker-rolle. Hver rolle har forskellige ansvarsområder og producerer et helt andet sæt af dokumentation og arbejdsprodukter. Hvis den enkelte kan trække på en allerede eksisterende analytisk ramme (med passende eksempler), vil det være meget lettere at forberede sig på og overgå til den nye rolle. Den enkelte skal lære, hvilke værktøjer, teknikker, mønstre, modeller og organisatoriske tilgange der fungerer bedst i den enkelte situation. Adgang til et analytisk mønster for hvert af disse områder kan i høj grad reducere den tid, der bruges på at søge efter løsninger.

Det andet område, hvor analytiske rammer kan vise sig nyttige, er ved vurdering af en outsourcinggruppes færdigheder og forberedelse. De fleste organisationer, der benytter sig af near-shore eller offshore outsourcing, er afhængige af gruppernes tidligere erfaringer for at vurdere deres evne til at levere de aftalte artefakter. Hvis outsourcingholdet holdes til en bestemt standard, som er defineret af et specifikt analysemønster, der har vist sig at være effektivt, er der større tillid til, at holdet vil have den korrekte samling af materialer og evner. Det samme kan siges om interne teams, selv om disse teams typisk allerede har bevist en bestemt fremgangsmåde, som er kilden til den analytiske ramme.

Det tredje område, hvor analytiske rammer er nyttige, er inden for uddannelse. Hvis man studerer de rammer, der er præsenteret i tabel 1, burde det være tydeligt, at disse kan danne grundlag for en uddannelsesplan til forbedring af teamet. Man kan foretage en vurdering for at afgøre, om den rette samling af rammeelementer, værktøjer, mønstre og færdigheder allerede er til rådighed hos teammedlemmerne, eller om de skal tilføjes enten gennem køb af et værktøj eller uddannelse af personalet.

Skabelse og tilpasning af rammer

En analytisk ramme er kun nyttig, hvis værktøjerne er velkendte for den, der laver modellerne. Hvis man tænker på den talentfulde snedker, er de fineste værktøjer ubrugelige uden den kreative anvendelse af en uddannet og talentfuld håndværker. På samme måde kræver opbygning af æstetisk tiltalende modeller, at man tilpasser en eller flere analytiske rammer til et problemområde. Man skal vide, hvordan man udvælger den mest relevante ramme, gøre sig bekendt med elementerne i rammen og tilpasse rammeelementerne til det foreliggende problem.

Mange problemer har tilbagevendende aspekter, så man kan ofte tilpasse en nært beslægtet ramme. F.eks. har næsten alle ældre computersystemer brug for en eller anden form for designundersøgelse, om ikke andet så for at uddanne nye udviklere i vedligeholdelse og udvidelse af systemet. Derfor vil en ramme for systemdesign være mere anvendelig end en ramme for forretningsprocesser.

Skabelsen af en ny ramme kan være så enkel som at klone en eksisterende ramme og tilføje nye mønstre og eksempler. På den anden side kan mere komplekse rammer, som f.eks. en ramme, der kan udvikles til analyse og styring af projekter for indlejrede systemer, have meget lidt til fælles med andre eksisterende rammer, så det kan være nødvendigt at skabe dem fra bunden. Du bør begynde med at overveje, hvilke værktøjer og teknikker du kan anvende på domænet. Det kan f.eks. være nødvendigt at ændre eksisterende teknikker, f.eks. interview eller gruppefacilitering, for at understøtte det nye område. Måske kan du stille andre værktøjer til rådighed for modeludvikleren til specifikke opgaver, f.eks. computerstøttet softwareudvikling (CASE) til at organisere indhold til en sammenslutning af websteder. Efterhånden som tiden går, kan du udvide rammerne til at omfatte flere eksempler. Endelig kan du ved projektets afslutning formelt registrere de teknikker og mønstre, der viste sig at være mest nyttige som analysemønstre til brug for det næste relevante problem.

Du kan være nødt til at tilpasse en analytisk ramme, før den kan bruges i en bestemt sammenhæng. Tilpasning af en ramme indebærer inddragelse af nye mønstre eller organiseringsskemaer for bedre at passe til emnets behov. På denne måde kan du udvide og udvikle disse rammer til nye problemdomæner. Efterhånden som nye værktøjer og teknikker bliver tilgængelige, og efterhånden som nye analysemønstre bliver opdaget og kodificeret, kan du tilføje disse til din værktøjskasse og organisere dem i en ændret ramme. Hvis ændringsniveauet er betydeligt, kan det indikere, at du bør konstruere en helt ny ramme.

Til brug af den analytiske ramme

Forestil dig, at du er en seniorudvikler, som netop er blevet tildelt en ny stilling som arkitekt for et ældre system. Du var ikke involveret i det oprindelige udviklingsarbejde, men du skal hurtigt lære systemet at kende og få en stab af nye teammedlemmer op at køre, hvilket kræver, at du først kommer op at køre. Heldigvis har du et par ting, der taler til din fordel. For det første har du et godt sæt af eksempelarkitektur fra andre lignende systemer i virksomheden. For det andet har du adgang til det analytiske mønster for softwarearkitektur (se tabel 2).

Tabel 2. Analysemønster for softwarearkitektur
Element Beskrivelse
Værktøjer Code profiler, database-rapporteringsværktøj, skabelon til software-arkitekturdokument, modelleringssoftware, kodeanalyse
Mønstre Software-implementeringsmønstre, arkitekturmønstre, systemdesignmønstre, datalagringsmønstre
Modelformer Dynamiske modeller (såsom UML-sekvens, algoritmediagrammer, UML-tilstand og UML-aktivitet), databaseenhedsrelationsdiagrammer, strukturelle modeller (f.eks. UML-klasse- og funktionskaldskort), dataflowdiagrammer, virksomhedssystemmodeller
Teknikker Abstrakt tænkning, organisering og kategorisering, kritisk analyse, notatskrivning
Skills Kodelstruktur, flowanalyse, hardwareprofilering, systemadfærd
Kategorisering Funktionel adfærd, subsystemafhængighed, komponentafhængighed, implementeringspakning

Hvis du bruger softwarearkitekturrammen, er dit første skridt at samle alle de anbefalede værktøjer. Modelleringsværktøjet giver mulighed for at visualisere eksisterende kode i en UML-model, så du kan undersøge den eksisterende struktur i koden. Runtime-profileren er værdifuld til at registrere call stacks, mens applikationens funktionalitet udføres.

Dernæst kan du undersøge de almindelige arkitektoniske mønstre, der er til stede i applikationen. Du kan identificere disse mønstre, hvis de er til stede, ved at bruge de fælles mønsterbeskrivelser, der er noteret i rammen, især analysemønstre og designmønstre. Mange sådanne mønstre er offentliggjort; det vil ofte være tilstrækkeligt at kende de mest almindelige mønstre til en arkitektonisk analyseindsats.

Færdighed med en række forskellige modelformer, såsom entitetsrelationsdiagrammer (ERD’er), UML og andre systemorienterede modelleringstilgange, vil give dig en bred vifte af modelleringsmuligheder. Kategorisering af disse modeller efter funktionel adfærd, logisk sammenlignet med fysisk struktur og interne adfærdstilstande vil give en nyttig registrering af den overordnede arkitektur for systemet. Endelig er det vigtigt at kende sine egne begrænsninger. Selvevalueringen er en vanskelig opgave, men nødvendig for at sikre og forsikre sig selv om, at alle de virkelig nødvendige færdigheder er til rådighed for teamet. Ved at bruge det sæt af forventede færdigheder, der er anført i den analytiske ramme for softwarearkitektur, får man et godt udgangspunkt for at bestemme de typer af færdigheder, der er nødvendige for en arkitekturanalyseopgave. Den analytiske ramme giver dig en tjekliste over det minimum af elementer, du har brug for for at få succes. Der kan være behov for yderligere færdigheder for specialiserede arkitekturer, f.eks. transportnetværk.

Resumé

Det kan være en udfordrende opgave at studere og forstå komplekse softwaresystemer. For at få succes skal du anvende en række værktøjer og teknikker til at indsamle, arrangere og præsentere systembeskrivelser. Ved at oprette og tilpasse analytiske rammer kan du forberede dig i god tid og samle nyttige værktøjer og eksempler til brug i din aktuelle situation. Nu hvor du ved, hvilke elementer der indgår i en vellykket analytisk ramme, hvordan du kan genbruge rammer, og hvordan du kan skabe nye rammer, er du godt forberedt til at tackle mange af de almindelige situationer, som du støder på i forbindelse med nutidens komplekse problemer.

Downloadbare ressourcer

  • PDF af dette indhold
  • For yderligere oplysninger om forretningsarketyper kan du læse Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, af Jim Arlow og Ila Neustadt (Addison-Wesley Professional, 2003).
  • Se Ben Liebermans serie i tre dele (PDF) om kunsten at modellere, hvor du lærer om opbygning af en analytisk ramme, organisering og konstruktion af modeller og visuel sammensætning (developerWorks, august 2003).
  • Lær at modellere med strukturelle former, organiserende temaer og diagrampivots i Ben Liebermans artikel “Byg effektive systemmodeller” (developerWorks, marts 2007).

Skriv en kommentar