Tarkvaratehnoloogiad eksam 20 mai 2020

Allikas: Lambda

Palun kirjuta vastused lihtsa tekstifailina (txt) või Wordi või Libreoffice failina ja saada emailiga õppejõule hiljemalt kella üheks: tanel.tammet@taltech.ee

Palun pane oma emaili pealkirja sisse fraas "Tarkvaratehnoloogia eksam", et ta oleks kirjakastist kergemini leitav.

Ülesanne 1: interneti funktsioneerimine

Mida sul on vaja teha:

  • Selgita lühidalt, mis roll on interneti tehnoloogias IP protokollil ja mis roll TCP protokollil.
  • Vasta: kas IP protokolli saaks kasutada ilma TCP protokollita. Kui jah, kas seda tehakse suhteliselt tihti?
  • Vasta: kas TCP protokolli saaks kasutada ilma IP protokollita. Kui jah, kas seda tehakse suhteliselt tihti?


Ülesanne 2: arhitektuur

Stsenaarium:

Sul on tarvis luua tarkvarasüsteem Tallinnas õues oleva valguse mõõtmiseks, salvestamiseks ja statistikaks. Ehk, öösel on valgust väga vähe, päikesetõusu paiku hakkab valgust kiiresti juurde tulema ja päeval kõigub valgus vastavalt pilvisusele. Statistika eesmärk on koguda üle aastate keskmist valgusnivood iga kellaaja jaoks sekundi täpsusega, näidata varieeruvust, miinimume/maksimume jne. Konkreetsete statistikatüüpide arv ei ole täpselt määratud, nende suurusjärk on 10.

Valgusandurit sul omal ei ole: küll saad teha iga sekund http päringut veebiliidesega valgussensorile, mis näiteks päringule http://sensor.com/tallinn/ vastab ühe arvuga, mis näitab lukse.

Valgusinfot ja erinevat tüüpi statistikat tahab vaadata hulk inimesi brauserist.

Mida sul on vaja teha:

  • Kirjelda, mis tarkvarakomponentidest ja mis keelte abil sa selle ülesande lahendaksid.
  • Selgita, mis rolli täidaks eri tarkvarakomponendid, kus ja kuidas hoitakse andmeid, kus ja kuidas tehakse statistikat jms.
  • Hinda, kui palju kettaruumi umbes võtaks kümne aasta andmete jooksev säilitamine (suurusjärk peaks olema õige).
  • Hinda, kas kümne aasta andmed saaks mahutada nö tava-läptopi põhimällu (mitte siis ketas)?
  • Hinda süsteemi tegemise ajakulu inimpäevades ja jaga see eraldi suuremateks etappideks/töölõikudeks.

Ülesanne 3: tarkvara selgitamine

Sul on järgmine jupp koodi:

from flask import Flask, request
app = Flask(__name__)
@app.route('/cgi/sumapp', methods=['POST', 'GET'])
def myapp():
  a=request.args.get("a",0)
  b=request.args.get("b",0)
  r="sum is: "+str(int(a)+int(b))+"<p>"
  s="""
    get sum:<p>
    <form action='/cgi/sumapp'>
       a <input type='text' name='a'> <br>
       b <input type='text' name='b'> <p>
       <input type='submit' value='calculate!'>
     </form>
    """
  if a and b: res=r+s
  else: res=s
  return(res)

app.run(debug=True, port=5000)

Mida sul on vaja teha: selgita lühidalt

  • Mis keeles see jupp on kirjutatud.
  • Kas see on mõeldud pigem serveril, sinu läptopis või brauseris töötamiseks.
  • Mida ja miks teeb rida a=request.args.get("a",0)
  • Kuhu ja kuidas ilmub vastus?
  • Kas selles programmis on mõni tsükkel ja kui, siis kus?
  • Mida teeb konkreetselt rida if a and b: res=r+s?
  • Miks on selles programmis if ... else .... konstruktsioon (ehk, miks teda sisuliselt vaja on)?

Ülesanne 4: HTML

Stsenaarium:

On vaja teha veebileht, kus oleks pealkiri "Uudis", selle all pilt tuntud inimesest, üks lause uudist ja siis link selle inimese vikipeedialehele.

Mida sul on vaja teha:

  • Kirjuta siia selle veebilehe html kood.

NB! Ei pea olema reaalne inimene ja ei pea olema tegelikult veebis olev pilt või vikipeedialeht. HTML koodis võivad olla väikesed, vead, veidi valed taginimed jne. Väga ilus kujundus ei ole eesmärk. Lehe tegelikku väljanäitamist brauserist ei kontrollita.