Pöytäkirja 14.3.2003 klo 14-16.45 Formal Techical Review-kokous Ohtuprojekti todistustoimitin Läsnä: Visa Röyskö Teppo Kankaanpää (sihteeri) Aki Nyrhinen Jaakko Nenonen (puheenjohtaja) Marja Huovinen (ohjaaja) Matti Nykänen (asiakkaan edustaja) 1. Kokouksen sisältönä oli formaali tekninen katselmus suunnitteludokumenttiin. 2. Lisäksi päätettiin, että halukkaat kokoontuvat jälleen ensi maanantaina klo 16. 3. Kukin korjaa omassa osuudessaan olevia virheitä. Jaakko piirtää käyttöliittymän sekvenssikaaviot ja Visa kirjoittaa ne dokumenttiin. Katselmuksessa huomattiin seuraavia asioita: Hakasuluissa on mainittu kappale, johon asia liittyy (numerointi dokumentin versio 0.1 perusteella) - [1] Termistö tulisi yksikäsitteistää johdantokappaleessa ja käyttää näitä johdonmukaisesti kautta dokumentin. - [2] Selvennetään arkkitehtuurikappaleen suhdetta dokumentissa, tavoitteena että se on yleiskuvaus, kun taas luokkakaavio kuvaa osaset. - [2] Kuvan nuolien semantiikka tulisi selvittää, ehkä jopa jokainen nuoli erikseen. Jäsentäjästä on riippuvuus Todistus-osaan. - [2] Todistus esiintyy kahdessa roolissa [2.2], myös käyttäjä [2.1, 2.3] - [3] Sekvenssikaavioiden olemassaolo tulisi mainita ja liittää kiinteämmin kappaleeseen. Kappalejärjestystä muutettaisiin niin että nykyiset kaaviot tulisivat heti kalkyyli&todistus-luokkien jälkeen jonka jälkeen tulisivat käyttöliittymäluokat ja niiden jälkeen käyttöliittymän sekvenssikaaviot. Kappalejärjestystä voisi miettiä vielä tiistaina. - [3.1] Prformula ja Prmultiset pitäisi selvittää, ja sallia tyhjänä oleminen kun sekventillä ei ole alisekventtejä. - [3.1] Merkkijonosta voisi antaa esimerkin tai ainakin selittää välikkeet. - [3.1] Mikä on alkuvälike? Onko eri välike new-ikkunassa tulevalle kaavalle (eli esim sequent), että käyttäjä ei pääse syöttämään ohjelmalle jotain omituista? - [3.1] 1. kappaleen Kohta 3) paremmin selitettävä. - [3.1.1] Viimeinen lause korjattava - [3.1] Nyt siis teemme new-ikkunaan toiminnallisuutta jolla kaavasta korvataan merkkijono "->" jonolla "implication", ja "^" jonolla "conjunction", koska parseri ei osaa näitä? Jos siis haluamme että näitä voi käyttää kaavan kirjoittamiseen. Toisaalta new-ikkunaan pitää tehdä kuitenkin jotain merkkijonon- käsittelyä, jos haluamme sallia sen että käyttäjä kirjoittaa kaavan muotoa "( A conj B conj C )" niin kuin määrittelyssä taisi optiona olla. - [3.2.1-3.2.4] Kappaleet käänteiseen järjestykseen. - Luvussa 2 kehämäiset viittaukset sallittaisiin, muttei enää luvussa 3? - [3.2] Connective-luokka, jolle toString-metodi. - [3.2.4] Myös tälle luokalle writeToStream. - [3.2.3-4] Clonen toiminta selitetty kunnolla, myös se, milloin/miten sitä käytetään (näkyyhän se kyllä sekvenssikaavioista mutta). Lopullinen päätös syvästä ja ohuesta kloonauksesta (jos muilla ei ole mielipidettä, Aki voinee päättää asian parhaiten tietävänä). - [3.2.3-4] Periytetäänkö Cloneable? Vai clone eri nimelle? "A class implements the Cloneable interface to indicate to the Object.clone() method that it is legal for that method to make a field-for-field copy of instances of that class." http://java.sun.com/j2se/1.3/docs/api/java/lang/Cloneable.html - [3] Rule -> Rulenumber - [3.2.2] sequent[][]:n kuvaus, mitä sisältää? (erikokoiset taulukot). Miksi valittu taulukko eikä left ja right erikseen? - [3.2.2] Paremmin kuvattu neliulotteinen taulukko, ehkä esimerkki, aluksi mainittu rajoitukset tms (että joitain indeksin arvoja on vain kaksi tms). Kuva taulukon osista? - [3.1-2] Luokkien kenttien sisällöt näkyviin? - [3.2.2] setVisibleFormula-typo viim. kappale - [3.2.1] sotilas kohisee? jaaava? Tuli mieleen että pseudometodit eivät ole kohisevia (static) koska ne muuttavat undokenttiä. - [3.2.1] Mainitaan että kaikki tavara aliluokissa ja että esitellään tavanomainen tapa tehdä apply. Mitä yhteisiä muita piirteitä? Tuli mieleen että pitäisikö sittenkin undo toteuttaa calculus-luokassa. Se kun taitaa olla 100% yhteinen kaikille kalkyyleille. - [3.2.1] Selitetään (ja mietitään) miksi new'lle annetaan myös parseri, miksei suoraan Proof-otusta. - [3.2.5] Aikomukset esille että parsereita ei aiota käyttää ristiin. Maininnat eri parsereista jotka toteutetaan ja ehkä tarkemminkin mitä ne tekevät... Pitäähän nekin joskus suunnitella... - [3.2.5-6] Syy esille miksi joko read tai write voidaan jättää toteuttamatta - [4] Käyttötapaukset lähemmäs luokkakuvauksia. Luku 3:ssa esille staattiset ominaisuudet, 4:ssä toiminta. - [4] Viittaukset kuviin kuntoon ja kaavio-sana kuva-sanaksi. - [4] Käyttötapaukset ovat tässä yhteydessä mitä? Ei ainakaan samoja kuin määrittely- dokumentissa. - [4] Ei parsita ja ommella - [4] Maininta että jos palautusarvo selvä, sitä ei mainita. Myös ehkä voisi mainita tekstissä milloin palataan (ennen seuraavan funktion kutsua jos ei kutsuta itse), koska esim applykuvasta saa käsityksen jonkinlaisesta rinnakkainajosta... - [4] Read- ja write-kuviin järjestys joka on tärkeä (että ensin luetaan/kirjoitetaan vasen puoli streamista, sitten oikea puoli (tai yleisessä tapauksessa enemmän)). - [4] Read-tyyppinen rekursio myös write-kuvaan - [4] Undo-kaavion getformula-typo. Yhteys applyn loppuun mainitaan tekstissä? - [5.1] Varmistusdialogien esiintyminen (ei tule suljettaessa jos ollaan tallennettu tms) - [5.1] Undo- ja redo eri nappeihin ja menuvalintoihin, joista toinen harmaana? - [5.1] Valittu kalkyyli lukee jossain - [5] Ruksilla suljetaan dialogi == cancel/close - [5.2] Vierityspalkit mietittävä ehkä vielä - [5.2] Merkitäänkö todistukseen ilmestynyt uusi osa eri värillä? - [5.2] Konnektiivin klikkaaminen uudelleen tekee mitä? - [5.3] Umpikujat merkittävä navigointipuuhun esim X:llä, tai !:llä tms ja väritettävä jollain värillä. - [5.4] Help-nappi uusi todistus-ikkunaan - [5.4] Symboleja voidaan klikkailla, mukana myös muutamia propositioita A-E tms. joilla saadaan näppäimistövapaa kaavansyöttö. - [5.5] Tulostus => Vienti kaikkialle - [5.5] 1 tason undo vienti-ikkunaan eikä togglea alueen valintoihin. - [5.5] Ei mainintaa putkista. - [5.6] Virhetilanteiden hallinta kuntoon - [3.3] Hiirenklikkauseventtien käsittely - [3.3] preXYZ => openXYZDialog - [3.3] MainWindowiin toggle-kenttä (ja muidenkin luokkien kentät kuntoon) Parempi nimi naviTogglelle? - [3.3] Maininta dialogien modaalisuudesta. - [3.3] Sequent-oliot pois - [3.3] Kuvasta pois awt-oliot. - [3.3] Kerrottu tavara jota on Proofissa ja muissa, jota käli tarvitsee. - [3.3] Selitetty käytetty koordinaattijärjestelmä piirtoalueella ja navialueella. - [3.3] Naviarea oli vielä kesken joten sitä ei kommentoitu. - Testauskappaletta ei suuremmin kommentoitu. ****** - Kaikenkaikkiaan FTR-kokouksen tuloksena päätettiin hyväksyä dokumentti (suurin) muutoksin. Teppo Kankaanpää