Et viktig aspekt ved brukerstøtte i databehandlingssystemer er hvordan informasjon kan struktureres og hentes på en måte som både er effektiv og intuitiv for brukeren. Mange eldre og moderne hjelpesystemer benytter seg av spesifikke metoder for å gjøre informasjon lett tilgjengelig. To systemer som illustrerer denne tilnærmingen er UNIX man-siden og Andrew Help System.
UNIX-man-siden, som er en standard funksjon på alle UNIX-baserte systemer, gir brukerne detaljert informasjon om kommandoer og programmer. Hver kommando på systemet har en tilknyttet man-side, som inneholder beskrivelse, synopser, alternativer, eksempler på bruk, og annen relevant informasjon. Man-siden kan søkes ved hjelp av forskjellige kommandotilvalg. For eksempel kan en bruker søke etter et spesifikt emne ved å bruke kommandoen man -k, som gir en liste over man-sider relatert til søkeordet, eller man -f for å få en kort beskrivelse av en kommando. På denne måten er systemet kraftig for erfarne brukere som har spesifik informasjon de leter etter, men kan være utfordrende for nybegynnere. Det krever at brukeren har et visst forhåndskunnskap om hvilke termer som skal brukes for å finne riktig informasjon.
Imidlertid har UNIX-systemet sine begrensninger. Det er ingen oversikt over hvilke man-sider som er tilgjengelige på systemet, og brukeren må ha en god forståelse av systemet for å kunne bruke det effektivt. Hvis et emne ikke er dekket av man-siden, blir brukeren rett og slett informert om at det ikke finnes noen relevant informasjon, uten videre hjelp til å finne andre relevante programmer.
Andrew Help System, derimot, går et skritt videre i hvordan den hjelper brukeren. Dette systemet, en del av Andrew Toolkit på UNIX, kombinerer ikke bare tekstlig informasjon, men også diagrammer, animasjoner og multimedia for å gi en mer helhetlig hjelpsopplevelse. Brukeren kan få hjelp på ulike emner ved å bruke et søkesystem hvor de kan velge emner fra en liste, snarere enn å måtte kjenne de spesifikke termene som brukes i systemet. Dette systemet lar også brukeren gå tilbake til tidligere visninger gjennom et historikkpanel, noe som gjør det lettere å følge opp tidligere søk.
I Andrew Help System er informasjonen delt opp i oversiktsdokumenter som gir en generell introduksjon til forskjellige emner, og det er mulig å søke etter spesifikke programmer eller begreper. Når et begrep er valgt, vises detaljert informasjon som er relatert til brukerens behov. Denne typen system gjør det enklere for brukeren å forstå hva som er tilgjengelig, og i tilfelle de ikke forstår et spesifikt begrep i teksten, kan de markere det for ytterligere forklaring.
Til sammenligning gir Xman, et annet program utviklet for UNIX, noen av de samme funksjonene som man-siden, men det er et tilleggssystem som ikke er like integrert eller kraftig som Andrew Help System. Xman gir en visning av tilgjengelige kommandoer og relaterte hjelpesider, men mangler noen av de mer avanserte funksjonene som gjør Andrew Help System mer brukervennlig.
Når det gjelder mulighetene for videre forbedringer av hjelpesystemer, er det viktig å merke seg at effektiv informasjonshenting ikke bare handler om å finne nøyaktige termer eller kommandoer. Det handler også om hvordan systemet kan støtte brukeren i å navigere gjennom et stort sett av data, og gi kontekstuell hjelp som kan føre til at brukeren forstår sammenhenger mellom begreper og oppgaver. Flere moderne systemer benytter seg nå av maskinlæring og kunstig intelligens for å foreslå relevante søk basert på brukerens interaksjon og tidligere søk.
I dagens digitale landskap er det også avgjørende at hjelpesystemene er fleksible og tilgjengelige på tvers av plattformer, slik at brukeren får en konsistent opplevelse uavhengig av enhet. En viktig utvikling er implementeringen av stemmestyrte assistenter som kan tilby hjelp gjennom naturlige språkgrensesnitt, noe som kan gjøre systemene mer tilgjengelige for et bredere publikum, inkludert de som kanskje ikke er teknisk kyndige.
Hvordan MUCH-systemet kan forbedre gjenbruk av dokumenter og programvare
Much-systemet er utviklet for å lette problemer knyttet til håndtering og strukturering av dokumenter, særlig i situasjoner hvor gjenbruk og effektivt samarbeid er nødvendig. Systemet er bygget i C og kjøres på nettverksbaserte UNIX-stasjoner, hvor det benytter sitt eget databasesystem og X-Windows-grensesnitt. Hovedfunksjonen til MUCH er å legge vekt på dokumentenes struktur gjennom oppsettet av oversikter (outlines), som kan utvinnes automatisk fra eksisterende dokumenter. Disse oversiktene gir en helhetlig oversikt over et domene og hjelper brukeren med å utforske og forstå sammenhenger i dokumentasjonen.
En av de mest innovative funksjonene i MUCH-systemet er implementeringen av en fisheye-visning av dokumentet. Brukeren kan ‘brette ut’ eller ‘brette sammen’ oversikten etter behov, noe som gjør det lettere å navigere i store mengder tekst og dokumentasjon. I tillegg kan ulike lenker mellom hypertekstnoder merkes med forskjellige etiketter, og brukere kan legge til kommentarer eller diskusjoner ved hjelp av en spesifikk lenketype kalt ‘Kommentar’. Dette gir et nyttig kommunikasjonsverktøy for samarbeid mellom flere forfattere eller team.
En annen styrke ved MUCH-systemet er dens støtte for gjenbruk av eksisterende dokumenter. Systemet tillater import av dokumenter i et SGML-lignende format og generering av tradisjonelle dokumenter basert på den strukturelle informasjonen som er lagret i MUCH. Denne funksjonaliteten åpner for at brukeren kan opprette nye dokumenter ved å velge en startoverskrift og spesifisere hvor dypt man ønsker at en dybde-først-gjennomgang (depth-first traversal) skal fortsette. På denne måten kan man lage helt nye dokumenter, samtidig som man beholder koblingene og strukturen fra eksisterende tekst.
En annen viktig funksjon er muligheten til å definere visse lenker som "døde ender", som betyr at traversal-algoritmen kan hoppe over disse og dermed generere dokumenter med en annen struktur enn hva som allerede finnes i biblioteket. Dette gir brukeren fleksibilitet til å lage dokumenter som er tilpasset deres spesifikke behov og forespørsler, uten å måtte starte fra bunnen av hver gang.
I tillegg til tekstbehandling og dokumenthåndtering, er MUCH-systemet nyttig i programmerings- og programvareutvikling, spesielt når det gjelder gjenbruk av programvarekomponenter. For eksempel kan verktøy som SoftClass, et annet prosjekt relatert til programvaregjenbruk, bidra til å forbedre håndteringen av programvarekomponenter ved å tilby en strukturert tilnærming til dokumentasjon og gjenbruk. SoftClass bruker en teknisk skriving-modell for å trekke ut et skjelett av programvarearkitektur og et enkelt indeksverktøy for å matche deler av dokumentasjonen med bestemte vokabularer. Dette kan forbedre både tilgjengeligheten og gjenbrukbarheten av programvarekomponenter.
I SoftClass-prosjektet benyttes kategorier og beskrivelser som forenkler gjenbruk av programvaremoduler gjennom forskjellige utviklingsstadier, fra krav til design. Hver kategori defineres ved et sett med relevante attributter og relasjoner som bidrar til å spesifisere programvarekomponenter. Dette gjør det mulig å automatisere og forenkle prosessen med å beskrive og kategorisere programvarekomponenter, og derfor fremme gjenbruk på tvers av forskjellige utviklingsprosjekter.
Slik kan MUCH og SoftClass, sammen, gi et robust rammeverk for gjenbruk av både dokumenter og programvare. Gjennom muligheten til å importere, generere og reorganisere dokumenter og programvarekomponenter, kan utviklere og forfattere arbeide mer effektivt og spare tid og ressurser. De forskjellige funksjonene i disse systemene gir en fleksibel og tilpasningsdyktig plattform for gjenbruk, noe som er essensielt i både teknisk skriving og programvareutvikling.
En viktig faktor å forstå i denne sammenhengen er hvordan systemer som MUCH og SoftClass påvirker arbeidsflyten i både dokumentutvikling og programvareutvikling. Begge systemene er utformet med tanke på effektivitet og gjenbruk, og de lar brukerne tilpasse og modifisere eksisterende ressurser for å møte spesifikke behov. Dette gir mulighet for kontinuerlig forbedring av prosessene og kan bidra til å redusere redundans og øke produktiviteten.
Hvordan kan programvaregjenbruk forbedre utviklingsprosesser i store organisasjoner?
På slutten av 1980-tallet etablerte HP en strategi for gjenbruk av programvare på tvers av hele selskapet, og dette førte til utviklingen av flere bibliotek med programvarekomponenter på 1990-tallet. Denne strategien involverte et kjerne-team av eksperter på gjenbruk, som samarbeidet med ulike divisjoner i HP for å hjelpe dem med å utnytte gjenbruket. HP er delt opp i flere store divisjoner, som skriverdivisjonen, og til forskjell fra andre selskaper, bygget ikke HP et felles gjenbruksbibliotek for hele organisasjonen. I stedet utviklet hver divisjon programmer og produkter for gjenbruk tilpasset deres spesifikke behov.
Den sentrale gjenbruksteamet utviklet økonomiske modeller, kodingsretningslinjer og utdanningsmateriale, og jobbet som konsulenter for divisjonene. Målet var å tilpasse tilnærmingen til gjenbruk spesifikt til hvert domene. I arbeidet med gjenbruk ble det imidlertid klart at hindringene for vellykket programvaregjenbruk i stor grad var ikke-tekniske og sosioøkonomiske. For å forstå og overvinne disse hindringene, delte HP faktorene inn i tre hovedkategorier:
-
Menneskelige faktorer – kultur, motivasjon, ledelse, opplæring og ferdigheter.
-
Prosessfaktorer – domenespesifikasjoner, økonomi og standarder.
-
Teknologiske faktorer – verktøy og programmeringsspråk.
Når hindringene ble identifisert, ble løsninger testet for å øke effekten av gjenbruk. Et viktig funn fra HP var at de mest vellykkede gjenbruksprogrammene fokuserte på å identifisere og utvikle et lite, men høykvalitetssett av komponenter som var etterspurt og nyttige, og sørget for at brukerne var kjent med disse. Et bibliotek med færre enn 100 komponenter kunne håndteres på papir med et katalogsystem for distribusjon av informasjon. Store biblioteker med lavkvalitetskomponenter var derimot uønsket, ettersom disse ofte hadde komplekse grensesnitt og ble lite brukervennlige.
HPs tilnærming til programvaregjenbruk resulterte i betydelige gevinster, særlig når det gjaldt å redusere utviklingstid og kostnader. I mange tilfeller var det viktigere for selskapet å redusere utviklingstiden for å treffe et markedsvindu enn å kutte direkte kostnader. Å miste en mulighet til å lansere et produkt kan føre til tap av markedsandel, og derfor ble investering i gjenbruk ansett som en måte å forkorte utviklingstiden på. Ett eksempel på dette var fra en av HPs divisjoner for instrumenter, som i løpet av mindre enn seks måneder kunne utvikle programvaren for et nytt produkt ved å utnytte 80 prosent gjenbruk.
Innenfor produkter med innebygd programvare kan feilkostnader være katastrofale. En feil i fastvaren kan føre til store kostnader knyttet til feltservice og produktutveksling, noe som kan tære på profittmarginene. HPs periferi- og medisindivisjoner benytter derfor gjenbruk som en metode for å forbedre kvaliteten på produktene og redusere langsiktige kostnader. Eksempler på kostnadsbesparelser gjennom gjenbruk finnes også i produksjonssektoren, der en tilnærming som ligner på gjenbruk av programvarekomponenter ble brukt for å spare 25 prosent på et databaseprosjekt.
HP Laboratorier, forskningsdivisjonen til HP, startet på 1990-tallet et omfattende program for programvaregjenbruk, og utviklet en alternativ tilnærming til bibliotek-metaforen som var vanlig i gjenbruksstrategier. I stedet for å samle komponenter i et tradisjonelt programvarebibliotek, introduserte HP Laboratorier et konsept som de kalte "domene-spesifikke kit". Dette konseptet minnet om LEGO-byggesett, der delene kunne settes sammen for å danne et ferdig system. Disse "kitene" inkluderte komponenter, rammeverk, verktøy, generiske applikasjoner og prosesser som kunne tilpasses for ulike behov. Dette var en mer fleksibel og brukervennlig måte å tilnærme seg gjenbruk på.
HPs systemer som HP-VEE, som støtter bygging av instrumenter og tillater kobling av virtuelle instrumenter, benytter også et lignende konsept. Komponenter velges fra en palett og settes sammen ved hjelp av verktøy og et visuelt grensesnitt for å lage komplette programmer som kan kjøres umiddelbart.
Denne tilnærmingen åpnet også for muligheten til å designe en "software factory" som benytter disse kitene. Ved å samle brukerbehov og kjøpte programvarekomponenter kan kitutviklere lage nye kit som kan benyttes til å lage et bredt spekter av programvareapplikasjoner.
Motorola, et annet stort teknologiselskap, gikk på 1990-tallet gjennom en lignende overgang fra et hardwarefokusert selskap til også å bli en ledende produsent av programvare. I likhet med HP begynte Motorola sin programvaregjenbruksreise med et grasrotinitiativ som ble drevet av de tekniske rådgiverne i selskapet. Etter hvert ble dette initiativet omdannet til en arbeidsgruppe for gjenbruk, hvor fokus var på utdanning og motivasjon av utviklere.
Det er flere viktige poeng å vurdere når man ser på disse eksemplene på gjenbruk. For det første er det viktig å forstå at gjenbruk ikke nødvendigvis handler om å skape ett stort felles bibliotek av komponenter som kan brukes overalt. I stedet kan det være mer effektivt å bygge små, spesialiserte sett med komponenter som er tilpasset spesifikke behov. Videre er det avgjørende å ha en struktur for å overvinne både tekniske og organisatoriske utfordringer. Ikke minst, å investere i gjenbruk kan føre til store gevinster i form av redusert utviklingstid, høyere kvalitet og lavere langsiktige kostnader, noe som er spesielt viktig i markeder med raske endringer. Gjenbruk er ikke bare en teknisk utfordring, men også en kulturell og organisatorisk prosess som krever involvering fra alle nivåer i selskapet.
Hvordan bygge et nasjonalt bibliotek for programvaregjenbruk
Investeringen i et slikt bibliotek kan begynne med å kjøpe abonnementer på noen relevante tidsskrifter. Et medlem av teamet kan tildeles en deltidsrolle for å organisere tidsskriftene på en måte som gjør dem tilgjengelige for andre. Etter hvert som forskerteamene samarbeider og ser fordelene med større biblioteker, kan de slå sammen ressursene sine. I et ekstremt tilfelle kan den nasjonale regjeringen overbevises om å etablere et omfattende bibliotek. Et godt eksempel på et slikt bibliotek innen medisinsk forskning er National Library of Medicine (NLM) i USA. NLM abonnerer på alle 20 000 av verdens biomedisinske tidsskrifter. En kontinuerlig og omfattende kvalitetsvurdering av disse tidsskriftene velger ut de 3 000 beste, og hver artikkel i disse 3 000 tidsskriftene indekseres med omtrent 10 begreper fra et tesaurus (Bachrach og Charen, 1978). Tesaurusen inneholder omtrent 100 000 begreper og vedlikeholdes av et fulltids team på cirka 10 personer. Den indekserende delen av NLM sysselsetter omtrent 400 fulltids profesjonelle indekserere. Resultatene fra indekseringen distribueres verden over via trykte publikasjoner, elektroniske nettverk og CD-ROM. Kort sagt, innsatsen på nasjonalt nivå for å opprettholde et slags bibliotek for gjenbruk er en massiv oppgave.
Frem til sommeren 1997 krevde NLM en liten avgift for tilgang til online-databasen per time. Etter sommeren 1997 ble tilgangen til dette online-biblioteket helt gratis for alle i verden. Parallellene mellom den tradisjonelle bibliotekmodellen og programvaregjenbruk er interessante. Programvareteam som begynner med gjenbruksarbeid vil naturlig nok starte med et lite bibliotek. Sammenlignbart med tidsskriftsreferanser for programvare kan være en forespørsel om et program i biblioteket. Etter hvert som størrelsen på programvarebiblioteket og antallet brukere vokser, øker også viktigheten av en systematisk tilnærming til biblioteket. Nasjonale eller internasjonale initiativer kan på sikt være det mest hensiktsmessige.
Forskere som bruker NLM-systemet kan også skrive tidsskriftsartikler som på et senere tidspunkt vil bli indeksert i NLM-systemet. For offentlig finansierte medisinske forskere er en kvantitativ suksessmåling antall publiserte artikler i tidsskrifter. For kommersielt finansierte medisinske forskere kan målet derimot være å foreslå metoder eller produkter som det kommersielle selskapet senere kan utnytte på markedet. Derfor kan kommersielt finansierte forskere bli nektet å publisere visse forskningsresultater. Et eksempel på dette er at et legemiddelfirma kanskje ikke ønsker at sine forskere skal publisere arbeid om et nytt legemiddel som selskapet undersøker.
Mye programvare lages av selskaper som ikke ønsker å fritt bidra med sine produkter til et bibliotek som andre selskaper kan bruke. Eksemplet med nasjonale forskningsbiblioteker antyder en tilnærming til programvaregjenbruk. Regjeringen kan kreve at vellykkede tilbydere av et offentlig programvareutviklingskontrakt leverer produktet til et offentlig gjenbruksbibliotek. Denne typen tilnærming er det amerikanske Forsvarsdepartementet i ferd med å implementere, og kan være et viktig skritt i bredere aksept av programvaregjenbruksmetoder.
Den amerikanske hæren gjennomførte i 1997 en omfattende undersøkelse blant sine ansatte som var ansvarlige for programvaregjenbruk. Undersøkelsen dekket viktige områder som Gjenbruksforvaltning, Gjenbruk Utdanning, Domeneanalyse, Domeneimplementering og Anskaffelse av Gjenbrukbare Eiendeler. Dette er de viktigste områdene når det gjelder gjenbruk. Resultatene fra studien samsvarer med erfaringene fra andre organisasjoner og utgjør grunnlaget for de endelige anbefalingene i denne boken. Mange prosjekter rapporterte at de hadde opprettet en arbeidsgruppe for å ta for seg gjenbruksrelaterte spørsmål og at de brukte gjenbruksbegreper i forespørsler om tilbud. Likevel var overholdelsen av retningslinjer for gjenbruksforvaltning svært variabelt fra ett prosjekt til et annet.
Et viktig funn var at svært få ansatte hadde fått noe betydelig nivå av formalisert utdanning om gjenbruk. Dette er et område som krever umiddelbar oppmerksomhet, da mer enn 70% av de ansatte ba om utdanning i gjenbruk. Det er derfor nødvendig å utvide utdanningsmulighetene innen dette feltet. Videre ble det påpekt viktigheten av høy-nivå domeneanalyse. Dette bør ikke bare skje innenfor et spesifikt område, som "kommando og kontroll", men på tvers av områder for å fremheve muligheter for horisontalt gjenbruk – gjenbruk på tvers av områder.
Innenfor implementeringen av domener ble både opportunistiske og systematiske gjenbruksaktiviteter rapportert. For å fremme en systematisk tilnærming, som gir større kostnadsmessige fordeler, er det nødvendig at gjenbruk tas med i de tidlige stadiene av programvareutviklingssyklusen. Denne tilnærmingen må inkludere ulike typer produkter, som krav, design, arkitekturer, modeller, grensesnitt, skjemaer og tester. For hver av disse produkttypene må et felles sett med gjenbruksmetrikker utvikles, dokumenteres, samles og vurderes.
Det er også et behov for å utvide tilgjengeligheten av gjenbruksrepositorier og oppmuntre til kvalitetsbidrag gjennom et incentivprogram. Dette vil bidra til å øke systematisk gjenbruk ettersom flere produkter av høyere kvalitet og ulike typer blir gjort tilgjengelige. Med den økende tilgjengeligheten av informasjon over datanettverk, spesielt internett, kan vi forvente at innholdet i gjenbruksrepositoriene både vil bli mer kvalitetsrikt og større i omfang. Likevel, det er en spenning mellom ønsket om å få ferdig et produkt og ønsket om å bidra med et fleksibelt aktivum til et gjenbruksbibliotek.
Boken denne teksten er hentet fra tilbyr ikke nødvendigvis gjenbrukbare programvareaktiva, men gir en domeneanalyse av programvaregjenbruk som et område. Den fungerer også som et utdanningsverktøy og er tilgjengelig gratis på internett. Denne boken er en del av et nettbasert kurs, og målet er å etablere et virtuelt informasjonsteknologisk universitet, der gjenbruk vil være et fundamentalt prinsipp. Bidragsytere til dette universitetet vil inkludere studenter, lærere, administratorer, samt programvareutviklere som kan bidra med programvareaktiva som en del av universitetets struktur.
Slike initiativ kan, i et større perspektiv, bane vei for mer systematisk og effektiv programvaregjenbruk i både offentlige og private sektorer.
Hvordan motstå en Maker? En analyse av den mentale og fysiske påvirkningen
Hva er den grunnleggende forståelsen av fraksjonelle differensialligninger og deres anvendelser?
Hvordan redusere risikoen for skade på rørledninger fra tredjepartsaktiviteter?
Hvordan AI-assistert utvikling forbedrer programvareutvikling: Muligheter og utfordringer

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский