Organisera och återanvända värdefulla tekniker, verktyg och exempel
Publicerad den 17 april 2007
Här och var har någonstans, någon gång, någon som har ställts inför ett problem som liknar ditt problem och kommit på hur man löser det. Tänk om du kunde fånga upp den personens svårvunna information och sätta lösningen i en återanvändbar form? Det är precis vad design- och analysmönster har erbjudit programvaruingenjörer under det senaste decenniet. Dessa mönster diskuterar dock i allmänhet en specifik lösning; de ger inte mycket vägledning när det gäller att lära sig hur man identifierar rätt mönster och tillämpar det mönstret i första hand.
Turligtvis kan man vända sig till analytiska ramar, som kombinerar återanvändbara lösningar med analysmönster, forskning, användbara organisationstekniker och specifika exempel på framgångsrika tillvägagångssätt. Ett analytiskt ramverk är lite som ditt eget personliga bibliotek, skräddarsytt specifikt för din egen erfarenhet och bakgrund.
Analysmönster har använts inom programvaruutveckling i många år för att tillhandahålla lösningar för dataåtkomst, transaktionsövervakning och -hantering, säkerhet, meddelandehantering, användargränssnitt och andra applikationsbehov. De är inte avsedda att implementeras i kod, utan snarare att göra det möjligt för analytiker att förstå komplexa problemområden.
Analytiska ramverk innehåller sådana mönster och ger också en checklista över färdigheter, verktyg och tekniker som är nödvändiga för att undersöka ett visst område, t.ex. affärsanalys eller systemarkitektur. Detta kan vara en stor fördel för företag som letar efter specifika färdigheter för att tillgodose ett aktuellt behov. Om en kandidat kan visa upp de listade erfarenheterna och förmågorna är det troligt att kandidaten kommer att lyckas med uppgiften.
Förstå den analytiska ramstrukturen
Fundera för ett ögonblick på hur någon som är utbildad i träslöjd går till väga för att skapa möbler. En arbetstagare som är begränsad till några enkla verktyg och sin egen personliga kunskap kan finna det svårt och tidskrävande att skapa nya bitar. Om samma person å andra sidan förses med en fullt utrustad verkstad, kraftfulla verktyg och ett fullständigt bibliotek med ritningar och exempel på möbler, kommer hon att ha mycket lättare att skapa komplexa och intressanta möbler. På ungefär samma sätt kan en analytikers prestationer förbättras genom tillgång till en uppsättning beprövade analysmönster, kraftfulla analytiska verktyg och tekniker samt flera exempel på effektiva modelleringsmetoder för att fånga och presentera komplex information.
En analytisk ram består av fem huvudkomponenter: ett sortiment av verktyg, en uppsättning användbara lösningsmönster, en eller flera modellformer, flera forskningstekniker och färdigheter samt metoder för att gruppera komplex information. Tabell 1 visar de element som krävs för ett ramverk för affärsanalys.
Tabell 1. Ramverk för affärsanalys
Element | Beskrivning |
---|---|
Verktyg | Vordbearbetning, programvaror för modellering, versionskontroll av dokument |
Mönster | Industrispecifika mönster, mönster för affärssystem, företagsorganisationsstrukturer |
Modellformer | Organisationsschema, UML-affärsfall (Unified Modeling Language), UML-aktivitet, Zachman-ramverk |
Tekniker | Observation, intervjuer, dokumentstudier |
Färdigheter | Noterande, aktivt lyssnande, mötesfacilitering, gruppledarskap, kritiskt tänkande, analogiskt resonemang |
Kategorisering | ramverk för affärsprocesser, avdelningshierarki, affärsverksamhetsanvändningsfall, diagram över affärsverksamhetsfunktionella beroenden |
I detta ramverk för affärsverksamhetsanalys, de effektiva verktygen för att upptäcka och fånga upp affärsprocesser omfattar modelleringsprogram (särskilt UML-modellering, om affärskraven fångas upp som användningsfall), ordbehandlingshjälpmedel och någon form av versionskontroll för modeller och dokument. Verktygen kan vara skräddarsydda för specifika behov eller så kan de vara mer generella verktyg, t.ex. ett enkelt visuellt ritningshjälpmedel.
Återkommande analysmönster kan vara effektiva när de tillämpas på ett visst analysområde. I ramverket för affärsanalys omfattar dessa mönster affärssystemsmönster (t.ex. orderingång, lagerkontroll och handelslösning), branschspecifika mönster (t.ex. telefoniruttning, paketförsändelser och schemaläggning samt kontroller av läkemedelstillverkning) och affärsstrukturer (t.ex. matriser, hierarkier och distribuerade organisationer). Mönster är teman som har visat sig förekomma upprepade gånger inom vissa affärsområden. Mer information om hur man kan fånga upp återkommande affärsteman finns i ”Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML”. (Se avsnittet Relaterade ämnen för mer information.)
Du kan använda ett urval av modellformer för att fånga komplex information. För komplexa analytiska analyser finns ett antal användbara modellformer, till exempel Unified Modeling Language (UML) för mjukvaruintensiva system, Systems Modeling Language (SysML) för systemteknik och Zachman Framework för organisationsövergripande frågor. I exemplet med ramverket för affärsanalys som visas i tabell 1 omfattar användbara modellformer för att studera affärsprocesser UML (för process- och användningsfallsmodellering), hierarkiska organisationsdiagram och en potentiellt modifierad form av Zachmanmodellen.
Tekniker och färdigheter är en avgörande aspekt av varje analysmetod. Det är viktigt att kunna ge en bedömning av de för närvarande tillgängliga färdigheterna hos en individ eller ett team. Intervjutekniken kräver till exempel att man kan anteckna och lyssna aktivt. För att driva en gruppworkshop krävs färdigheter i facilitering och gruppledarskap. Systemanalys bygger på förmågan att tänka kritiskt om problemet (inse hur problemet kan delas upp i mindre, enklare områden) och tillämpa liknande lösningar som hittats på andra områden.
Målet med analysen är att presentera resultaten för en publik. Den bästa analytikern i världen kommer inte att lyckas om han inte kan organisera informationen på ett meningsfullt och presentabelt sätt. Automatiserade verktyg utgör endast en del av lösningen på detta problem; den övergripande organisationen av informationen avgör hur den avsedda publiken kommer att använda uppgifterna. I ramverket för affärsanalys representeras dessa kategoriseringsprinciper av affärsprocesser (där verksamheten är uppdelad i underdomäner), beroendegrafer mellan affärsverksamhetsanvändningsfall och den övergripande organisationsstrukturen (typiskt sett hierarkisk).
Tillämpning av ett analytiskt ramverk
Nu när du vet vad som ingår i ett analytiskt ramverk måste du lära dig hur du ska använda ett sådant. Det finns minst tre situationer där en analytisk ram kan vara till nytta. Den första är när en person måste byta roll. En affärsanalytiker kan till exempel byta till en systemanalytikerroll eller en testanalytikerroll. Varje roll har olika ansvarsområden och producerar en helt annan uppsättning dokumentation och arbetsprodukter. Om individen kan använda sig av ett befintligt analytiskt ramverk (med lämpliga exempel) blir det mycket lättare att förbereda sig för och övergå till den nya rollen. Individen måste lära sig vilka verktyg, tekniker, mönster, modeller och organisatoriska tillvägagångssätt som fungerar bäst i varje situation. Tillgång till ett analysmönster för vart och ett av dessa områden kan avsevärt minska den tid som går åt till att söka efter lösningar.
Det andra området där analytiska ramar kan visa sig användbara är vid bedömningen av kompetensen och förberedelserna hos en outsourcinggrupp. De flesta organisationer som använder sig av outsourcing nära land eller offshore förlitar sig på gruppernas tidigare erfarenheter för att bedöma deras förmåga att leverera de överenskomna artefakterna. Om outsourcinggruppen hålls till en viss standard, som definieras av ett specifikt analysmönster som har visat sig vara effektivt, finns det ett större förtroende för att gruppen kommer att ha rätt samling av material och förmågor. Samma sak kan sägas om interna team, även om dessa team vanligtvis redan har bevisat ett visst tillvägagångssätt, vilket utgör källan till det analytiska ramverket.
Det tredje området där analytiska ramverk är användbara är inom utbildning. Om man studerar de ramar som presenteras i tabell 1 borde det vara uppenbart att dessa kan utgöra grunden för en utbildningsplan för förbättring av teamet. Du kan göra en bedömning för att avgöra om den rätta samlingen av ramelement, verktyg, mönster och färdigheter redan finns hos teammedlemmarna eller om de måste läggas till antingen genom inköp av ett verktyg eller utbildning av personalen.
Skapa och anpassa ramar
En analytisk ram är användbar endast om verktygen är välbekanta för modellbyggaren. Om man tänker på den begåvade snickaren är de finaste verktygen värdelösa utan den kreativa tillämpningen av en utbildad och begåvad hantverkare. På samma sätt krävs det för att bygga estetiskt tilltalande modeller att man anpassar en eller flera analytiska ramar till ett problemområde. Du måste veta hur du väljer det mest relevanta ramverket, bekantar dig med ramverkets beståndsdelar och anpassar ramverkets beståndsdelar till det aktuella problemet.
Många problem har återkommande aspekter, så du kan ofta anpassa ett närbesläktat ramverk. Till exempel behöver nästan alla äldre datorsystem någon form av designutredning, om inte annat för att utbilda nya utvecklare i underhåll och utvidgning av systemet. Därför skulle ett ramverk för systemdesign vara mer tillämpbart än ett ramverk för affärsprocesser.
Skapandet av ett nytt ramverk kan vara så enkelt som att klona ett befintligt ramverk och lägga till nya mönster och exempel. Å andra sidan kan mer komplexa ramverk, t.ex. ett ramverk som kan utvecklas för analys och hantering av projekt för inbäddade system, ha lite gemensamt med andra befintliga ramverk, så du kan behöva skapa dem från grunden. Du bör börja med att fundera över vilka verktyg och tekniker du kan tillämpa på området. Du kan t.ex. behöva ändra befintliga tekniker, t.ex. intervjuer eller gruppledningar, för att stödja det nya området. Du kanske kan tillhandahålla andra verktyg till modelleraren för specifika uppgifter, t.ex. datorstödd programvaruteknik (CASE) för att organisera innehåll för en federation av webbplatser. Med tiden kan du utvidga ramverket till att omfatta flera exempel. Slutligen, när projektet avslutas, kan du formellt fånga upp de tekniker och mönster som visade sig vara mest användbara som analysmönster för användning vid nästa tillämpliga problem.
Du kan behöva anpassa ett analytiskt ramverk innan det är användbart i ett visst sammanhang. Anpassning av ett ramverk innebär att man inkluderar nya mönster eller organisationsscheman för att bättre matcha ämnets behov. På detta sätt kan du utvidga och utveckla dessa ramar för nya problemområden. När nya verktyg och tekniker blir tillgängliga och när nya analysmönster upptäcks och kodifieras kan du lägga till dessa i din verktygslåda och organisera dem i ett modifierat ramverk. Om modifieringsnivån är betydande kan det tyda på att du bör konstruera ett helt nytt ramverk.
Användning av det analytiska ramverket
Föreställ dig att du är en senior utvecklare som just har tilldelats en ny position som arkitekt för ett äldre system. Du var inte inblandad i det ursprungliga utvecklingsarbetet, men du måste snabbt lära dig systemet och få en stab av nya teammedlemmar att komma igång, vilket kräver att du kommer igång först. Som tur är har du några saker som talar till din fördel. För det första har du en bra uppsättning exempelarkitektur från andra liknande system i företaget. För det andra har du tillgång till det analytiska mönstret för mjukvaruarkitektur (se tabell 2).
Tabell 2. Analysram för mjukvaruarkitektur
Element | Beskrivning |
---|---|
Verktyg | Code profiler, verktyg för databasrapportering, mall för dokument om mjukvaruarkitektur, programvara för modellering, kodanalys |
Mönster | Mönster för programvaruinstallation, arkitekturmönster, mönster för systemdesign, mönster för datalagring |
Modellformer | Dynamiska modeller (t.ex. UML-sekvens, algoritmdiagram, UML-tillstånd och UML-aktivitet), databasens entitets-relationsdiagram, strukturella modeller (t.ex. UML-klass- och funktionsanropskarta), dataflödesdiagram, modeller för företagssystem |
Tekniker | Abstrakt tänkande, organisering och kategorisering, kritisk analys, anteckningar |
Färdigheter | Kodstruktur, flödesanalys, hårdvaruprofilering, systembeteende |
Kategorisering | Funktionellt beteende, beroenden av delsystem, beroenden av komponenter, paketering av distribution |
Med hjälp av ramverket för mjukvaruarkitektur är det första steget att samla ihop alla rekommenderade verktyg. Modelleringsverktyget ger möjlighet att visualisera befintlig kod till en UML-modell, vilket gör att du kan undersöka kodens befintliga struktur. Körtidsprofilern är värdefull för att registrera anropsstackar när programmets funktionalitet exekveras.
Nästan kan du undersöka de vanliga arkitektoniska mönster som finns i programmet. Du kan identifiera dessa mönster, om de finns, genom att använda de gemensamma mönsterbeskrivningar som noterats i ramverket, särskilt analys- och designmönstren. Många sådana mönster publiceras; att känna till de vanligaste räcker ofta för en arkitektonisk analys.
Färdighet med en mängd olika modellformer, t.ex. entitets-relationsdiagram (ERD), UML och andra systemorienterade modelleringsmetoder, ger dig ett brett utbud av modelleringsalternativ. Genom att kategorisera dessa modeller efter funktionellt beteende, logisk jämförelse med fysisk struktur och interna beteendetillstånd får du en användbar redovisning av systemets övergripande arkitektur. Slutligen är det viktigt att känna till sina egna begränsningar. Självbedömning är en svår uppgift, men nödvändig för att säkerställa och försäkra sig om att alla verkligt nödvändiga färdigheter är tillgängliga för teamet. Att använda den uppsättning förväntade färdigheter som anges i ramverket för analys av mjukvaruarkitektur är en bra utgångspunkt för att fastställa vilka typer av förmågor som krävs för en arkitektonisk analysuppgift. Det analytiska ramverket ger dig en checklista med det minsta antal element som du behöver för att lyckas. Ytterligare färdigheter kan krävas för specialiserade arkitekturer, t.ex. transportnät.
Sammanfattning
Att studera och förstå komplexa mjukvarusystem kan vara en utmanande uppgift. För att lyckas måste du använda en mängd olika verktyg och tekniker för att samla in, ordna och presentera systembeskrivningar. Genom att skapa och anpassa analytiska ramar kan du förbereda dig i god tid och samla användbara verktyg och exempel som du kan använda i din aktuella situation. Nu när du vet vilka delar som ingår i ett framgångsrikt analytiskt ramverk, hur man återanvänder ramverk och hur man skapar nya ramverk, är du väl förberedd för att ta itu med många av de vanligaste situationerna som man stöter på i dagens komplexa problem.
Hernedladdningsbara resurser
- PDF av detta innehåll
- För mer information om affärsarketyper kan du läsa Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, av Jim Arlow och Ila Neustadt (Addison-Wesley Professional, 2003).
- Kolla in Ben Liebermans serie i tre delar (PDF) om konsten att modellera, där du lär dig att bygga upp ett analytiskt ramverk, organisera och konstruera modeller och visuell sammansättning (developerWorks, augusti 2003).
- Lär dig att modellera med strukturella former, organiserande teman och diagrampivoter i Ben Liebermans artikel, ”Build effective system models” (developerWorks, mars 2007).