Program
utveckling

Framsida
Utvecklingsmodeller
Analys & undersökning
Design
Utveckling & testning
Implementation
Underhåll
Demo

Demo

"Ett fiktivt exempel på hur man utvecklar ett javascript" eller "Så funkar det!"

Behovet uppstår

Företaget Abc AB är ett fiktivt företag som arbetar inom webbaserad matematik. På senare tid har Abc AB upptäckt att de anställda ofta sitter och måste lösa andragradsekvationer. Detta tar mycket tid eftersom de anställda måste göra det för hand via kvadratkomplettering. Ledningen funderar på om det kanske kunde finnas något sätt att öka effektiviteten i personalens ekvationslösning. Man kontaktar di10 Software Solutions, vilket är ett fiktivt företag som levererar mjukvarulösningar.

Analys

di10 griper sig an problemet med liv och lust. Man analyserar problemet, genom att fråga personalen hur de upplever problemet, och studera hur behovet av att lösa andragradare uppstår. Man upptäcker att behovet uppstår i samband med att de anställda sitter med en webläsare och kontrollerar olika websidor. di10 går igenom en kreativ process, och kommer i samråd med Abc AB fram till att man ska utnyttja ett javascript.

Design

Programutvecklarna bestämmer sig för att man ska utveckla ett javascript som löser andragradsekvationer. Scriptet ska sedan läggas in på Abc AB's datorer och när man sedan behöver lösa sina andragradsekvationer, klickar man på ett bokmärke som tar en till sidan med scriptet. Snabbt och enkelt! Designen av scriptet vidtar, och man konstaterar bland annat att man behöver kunna mata in 3 koefficienter och få ut två svar.

Utveckling

Efter att designen är slutförd, tar kodningen vid. Eftersom det är ett matematiskt problem som ska lösas, måste programmerarna först konstruera en metod att lösa andragradekvationer. Eftersom di10 har en mycket välutbildad personalstyrka, kommer man snart fram till att det enklaste sättet är att använda en lösningsformel. Efter kodningen ser scriptet ut på följande vis:

       <SCRIPT LANGUAGE="Javascript" TYPE="text/javascript"><!--
       function solveSecond()
       {
        var q=parseFloat(document.frm2.txtC.value)/
              parseFloat(document.frm2.txtA.value);
        var p=parseFloat(document.frm2.txtB.value)/
              parseFloat(document.frm2.txtA.value);
        var underRoot=((p*p)/4)-q;
        document.frm2.txtX1.value=-(p/2)+Math.sqrt(underRoot);
      	document.frm2.txtX2.value=-(p/2)-Math.sqrt(underRoot);
       }
       //--></SCRIPT>

      <FORM NAME="frm2">
        Ax<SUP>2</SUP>+Bx+C=0
        <BR>
        A: 
        <INPUT TYPE="text" NAME="txtA" SIZE="10">
        B:
        <INPUT TYPE="text" NAME="txtB" SIZE="10">
        C:
        <INPUT TYPE="text" NAME="txtC" SIZE="10">
        <BR>
        <INPUT TYPE="button" NAME="btnSolveSecond"
             VALUE="Lös ekvationen" onClick="solveSecond()">
        x<SUB>1</SUB>:
         <INPUT TYPE="text" NAME="txtX1" SIZE="10">
        x<SUB>2</SUB>:
        <INPUT TYPE="text" NAME="txtX2" SIZE="10">
       </FORM>
      

Testning

När kodningen är klar ska scriptet testas. Man vet sedan tidigare att scriptet har begränsningar, i och med att man inte kan hantera större tal än 232-1, men Abc AB har konstaterat att de ekvationer som man löser ligger inom det intervallet. Genom att använda diverse metoder för att testa scriptets in- och utmatningar, visar det sig att vissa ekvationer ger upphov till konstiga svar...

Modifiering

Man konstaterar efter att ha analyserat problemet, att de konstiga resultaten uppstår när andragradsekvationerna har imaginära rötter. Scriptet i dess nuvarande form kan inte hantera imaginära tal, och man kommer, i samråd med Abc AB, fram till att det räcker med ett felmeddelande till användaren om man matar in en ekvation med imaginära rötter. Efter att ha kodat om delar av projektet ser scriptet nu ut så här:

       <SCRIPT LANGUAGE="Javascript" TYPE="text/javascript"><!--
       function solveSecond()
       {
        var q=parseFloat(document.frm2.txtC.value)/
              parseFloat(document.frm2.txtA.value);
        var p=parseFloat(document.frm2.txtB.value)/
              parseFloat(document.frm2.txtA.value);
        var underRoot=((p*p)/4)-q;
        if (underRoot<0)
         alert("Saknar rella rötter!");
        else
        {
         document.frm2.txtX1.value=-(p/2)+Math.sqrt(underRoot);
         document.frm2.txtX2.value=-(p/2)-Math.sqrt(underRoot);
        }
       }
       //--></SCRIPT>
      

Implementering, underhåll och slutkläm

Efter ytterligare en omgång i testlabbet, godkänns scriptet och man installerar scriptet hos Abc AB. Vidare förser man dem med dokumentation och manualer, så att alla användare kan lära sig hur scriptet används. Eftersom scriptet är ganska enkelt, och en andragradsekvation alltid kommer att vara en andragradsekvation, finns det inget behov av underhåll. Så di10 Software Solutions kan lugnt luta sig tillbaka och njuta frukterna av ett väl utfört arbete med ännu en nöjd kund som resultat.