Exjobbsförslag från företag

Detta är ett uppsatsförslag hämtat från Nationella Exjobb-poolen. Klicka här för att komma tillbaka till samtliga exjobbsförslag.

Förslaget inkom 2004-05-03

Läcker kod - designregler - en praktiskt studie av estetik/kvalité

OBS! ANSÖKNINGSTIDEN FÖR DETTA EXJOBB HAR LÖPT UT.
Bakgrund
Mjukvaruindustrin tar fortfarande stapplande steg från hantverksstadiet till en industriell produktion. När Henry Ford revolutionerade bilindustrin var det tre saker som möjliggjorde detta:
- Uppdelning av tillverkning i små definierade steg (som kunde utföras av lättränad billig arbetskraft)
- Kvalitetsmätning av varje arbetsresultatt för att vara överlämningsbar till nästa steg.
- Löpande band för att produktionen skulle löpa i en process.

Det finns flera invändningar mot sådant Tayloristiskt synsätt på arbete, men mjukvaruindustrin är tämligen överens om fördelarna med små integrerbara arbetsresultat (komponenter). Kvalitetsbegreppen däremot för om en komponent är bra eller dålig är dock väldigt ad-hoc- inspirerat. Ett sätt är att definiera ett antal mätbara eller åtminstone identifierbara kriterier som sedan används vid inspektion (förmodligen manuell,) av mjukvaran.

Inledning
Datamaskiner maler obehindrat miljontals programrader med instruktioner.
Det enda som begränsar farten är maskinens prestanda, processorhastighet, bussbandbredder etc. Människor å andra sidan kan ha mer eller mindre lätt att tillgodogöra sig mjukvara. Människans styrka är att strukurera, abstrahera och förstå. För en människa kan läsning av kod eller dokumentation ibland t.o.m. underlättas av att koden är en förenkling (d.v.s. förvanskning av underlaget).

Beskrivning
Definition: Mjukvara - programkod och tillhörande dokumentation.
Eftersom mjukvara alltmer tenderar till att bli alltmer flyktig p.g.a. snabb förändringshastighet måste mjukvaran vara underhållsvänlig vilket innebär att den även måste vara lättförståelig (åtminstone så länge det är människor som ska sköta underhållet).
För många innebär detta att koden har en slags skönhet - estetik. För att ha ett begrepp för alla mjukvaruegenskaper som gör koden mer lättförståelig, estetisk etc etc så införs begreppet Lätt mjukvara.

Definition: Lätt mjukvara är sådan som anses vara lätt att förstå, lätt att sätta sig in i, lätt att underhålla, lätt att verifiera etc etc.

Antagande: Om man som en del i mjukvaru verifiering även använder sig av granskning borde en bedömning av lättheten ingå som ett kriterium.
Eftersom de alltmer lättviktiga metoderna förespråkar att mjukvaran delas av flera personer måste uppfattningen om vad som är lätt konsolideras från en mängd inblandade personer (alla de som underhåller och alla de som granskar mjukvaran). I stället för att vid varje mjukvaruinspektion ha en diskussion om vad som är lätt och sen granska bör man ha ett gemensamt regelverk för vad som är kriterierna för lätthet.

Tanken med detta x-jobb är att sätta samman ett förslag på regelverk för lättheten. Regelverket ska kunna användas som ett mönster för mjukvaruprojekt genom att enkelt anpassas till de förutsättningar/åsikter etc som är förhärskande vid varje tidpunkt. D.v.s. regelverket i sig kommer att bli en integrerad del av mjukvaran (åtminstone dokumentationen).

Regelverket ska kunna tillämpas så att mjukvara kan bli underkänd (om den ej är lätt) eller icke-underkänd (om den bedöms som lätt) då mjukvaran inspekteras manuellt och jämförs med regelverket. D.v.s. Regelverket ska anses vara ett nödvändigt men ej garanterat tillräckligt kriterium för att mjukvaran är bra.

Utvecklandet av detta första mönster för regelverk i x-jobbet ska ske i en evolverande process där regelverket tillämpas på ett praktiskt mjukvaruproblem (se tracker nedan). Regelmönstret kommer därmed att färgas av dom inblandade personerna (x-jobbarna, handledare, etc) och den utmaning som tracker innebär.

Exempel på regler i mönstret är troligen:
Kodstandard (kodformattering, komponentnamnsättning, etc etc).
Dokumentationsstandard (notation, text, grammatik etc).

Tracker:
För att en konsults insats hos kunder ska kunna faktureras används ofta tidsredovisning.
Tracker1 är en ny java GUI-klient till en kommersiell 2-skiktad produkt
(TimeLogger med windowsklient och accessdatabas) som

  GÅ TILL XJOBB.NU FÖR FULLSTÄNDIG INFO OM DETTA EXJOBB




Informationen om uppsatsförslag är hämtad från Nationella Exjobb-poolen.