Laboratorul 1 Înțelegere, specificare, revizuire
Analiza și Modelarea Sistemelor Software
Traian-Florin Șerbănuță
Rezervarea sălilor de studiu din campus
În perechi · 100 de minute
Explicați singuri problema, pregătiți o specificație cu limite clare, delegați o revizuire (review) și decideți ce afirmații sunt susținute de dovezi.
La final: o descriere comună a problemei și explicația individuală a unei decizii de proiectare.
Ideea întâlnirii
„Simplitatea este o condiție necesară pentru fiabilitate.”
— Edsger W. Dijkstra
Sursa: How do we tell truths that might hurt? — EWD498 · traducere din engleză
Parcursul de azi
| Minute | Activitate |
|---|---|
| 0–8 | Analiză individuală, fără AI |
| 8–16 | Compararea interpretărilor; clarificarea distincțiilor |
| 16–26 | Pregătirea spațiului de lucru și a rolurilor |
| 26–44 | Descrierea problemei și predarea sarcinii către autor |
| 44–60 | Schimbarea rolurilor; revizuire independentă |
| 60–78 | Evaluarea revizuirii și modificări justificate |
| 78–90 | Argumentare individuală și o cerință nouă |
| 90–100 | Prezentarea deciziilor și predarea lucrării |
Informațiile beneficiarului
Campusul dorește ca studenții să poată rezerva sala Alder sau sala Birch pentru studiu.
- F1: o singură zi viitoare pentru pilot, D; ambele săli sunt deschise 09:00–17:00.
- F2: un serviciu al universității furnizează identitatea verificată a studentului; sălile sunt deja configurate.
- F3: o cerere indică un student, o sală și un interval în D; începutul precedă sfârșitul, iar intervalul se încadrează în programul sălii.
- F8: administrarea sălilor, plățile, rezervările recurente, listele de așteptare și notificările sunt excluse.
Fișa este sursa informațiilor convenite. Întrebările nu stabilesc reguli noi.
Reguli pe care le putem verifica
- F4: rezervările confirmate pentru aceeași sală nu se pot suprapune. Una poate începe când se termină alta.
- F5: două cereri simultane în conflict nu pot fi ambele confirmate. Pentru o sală liberă, dacă sunt altfel valide, una se confirmă și cealaltă se respinge pentru conflict; nu s-a stabilit care are prioritate.
- F6: titularul poate anula înainte de început; intervalul devine liber. Alt student nu poate anula rezervarea.
- F7: o rezervare reușită primește un cod; o respingere indică regula convenită care nu este respectată.
Anularea la ora de început sau după aceasta și rezervările suprapuse ale aceluiași student în săli diferite rămân întrebări deschise.
Mai întâi: analiza proprie (0–8)
Lucrați individual, fără AI. Păstrați aceste notițe inițiale.
- Formulați scopul și limitele cu propriile cuvinte.
- Explicați ce este o sală și ce este o rezervare.
- Dați un exemplu de cerere acceptată și unul de cerere respinsă, fiecare justificat printr-o informație din fișă.
- Formulați o întrebare pe care ați pune-o înainte de a extinde soluția.
Folosiți propoziții, un tabel mic, o schiță sau pseudocod.
Patru tipuri de afirmații
| Tip | Exemplu |
|---|---|
| Cerință convenită | F4: rezervările confirmate pentru aceeași sală nu se suprapun. |
| Consecință dedusă | Alder rezervată 10:00–11:00 intră în conflict cu o cerere pentru Alder 10:30–11:30. |
| Alegere de proiectare | O operație de rezervare răspunde de verificarea conflictului și de confirmare. |
| Regulă încă neclarificată | Poate un student avea rezervări suprapuse în săli diferite? |
O propunere devine cerință convenită doar după acceptarea ei de către beneficiar.
De la regulă la responsabilitate
Concept al domeniului: o rezervare leagă un student, o sală și un interval.
Invariantă: o regulă care trebuie să rămână adevărată — aici, fără rezervări confirmate suprapuse pentru aceeași sală.
Responsabilitate: o parte a sistemului propus trebuie să impună această regulă la fiecare confirmare.
Discutați: de ce poate fi insuficient „verifică disponibilitatea, apoi confirmă mai târziu”?
Spațiul de lucru și rolurile (16–26)
- Deschideți fișele și creați o copie de lucru comună.
- Alegeți orice instrument și model AI disponibil. Notați-le, dacă sunt cunoscute.
- Pregătiți o sesiune de autor și o sesiune separată de revizuire.
- A: îndrumă autorul. B: verifică afirmațiile față de informațiile beneficiarului.
- La minutul 44, schimbați rolurile: B îndrumă evaluatorul; A verifică dovezile.
Dacă AI nu este disponibil, folosiți exemplul pregătit și o revizuire separată între colegi.
Predarea sarcinii: un mic contract
Predarea sarcinii și a contextului (handoff) către autor precizează:
- Intrări: informațiile exacte ale beneficiarului și analiza inițială.
- Sarcină: o descriere concisă a problemei și planul pasului următor.
- Limite: etichetează propunerile și întrebările; nu inventa reguli.
- Dovezi: citează sursele lângă cerințe și scenarii.
- Punct de oprire: trimite omului deciziile nerezolvate înainte de a continua.
Salvați o copie a variantei rezultate pentru revizuire.
Promptul autorului (26–44)
Acționează ca asistent de analiză. Folosind doar informațiile beneficiarului și notițele atașate, redactează scopul, limitele, conceptele domeniului, regulile, scenariile de acceptare și întrebările deschise. Citează identificatorii informațiilor. Marchează separat propunerile de proiectare. Cere clarificări unde lipsesc reguli; nu răspunde în numele beneficiarului. Propune o sarcină următoare de proiectare, cu limite, intrări, responsabilități, verificări și un punct de oprire. Nu o implementa.
Citiți rezultatul. Acceptați, editați sau cereți o corectare, motivând decizia.
Scenarii care disting regulile
Fiecare rând este un caz independent, cu o singură rezervare confirmată inițial: Alder, 10:00–11:00.
| Cerere sau acțiune | Rezultat așteptat | Sursă |
|---|---|---|
| Alder, 10:30–11:30 | Respingere: conflict | F4 |
| Alder, 11:00–12:00 | Acceptare* | F3–F4 |
| Birch, 10:30–11:30, alt student | Acceptare* | F3–F4 |
| Alt student anulează | Respingere; fără modificări | F6 |
* După verificarea celorlalte condiții convenite.
Adăugați câte un caz pentru cereri simultane și pentru anulare.
Revizuire separată (44–60)
Începeți într-un context nou. Furnizați informațiile, versiunea salvată și criteriile:
Revizuiește descrierea problemei față de informațiile furnizate. Verifică limitele, distincțiile dintre concepte, precizia regulilor, scenariile de acceptare și dacă responsabilitățile propuse pot păstra regulile. Pentru fiecare afirmație, citează pasajul din variantă și informația-sursă sau un contraexemplu. Distinge între contradicție, întrebare nerezolvată și alternativă opțională. Identifică și deciziile susținute de dovezi. Nu inventa răspunsuri ale beneficiarului și nu impune o anumită notație, arhitectură sau tehnologie.
Furnizați intrările convenite, nu conversația autorului.
Verificați constatările (60–78)
Pentru fiecare constatare importantă pe care o rețineți, notați:
| Constatarea revizuirii | Dovezi | Decizia omului |
|---|---|---|
| „Varianta respinge greșit rezervările adiacente.” | F4 permite adiacența; verificați regula citată. | Acceptați dacă varianta chiar respinge adiacența. |
| „Este necesară o bază de date relațională.” | Nicio informație nu prescrie stocarea. | Tratați-o ca propunere opțională de proiectare. |
Decizii: acceptare, respingere sau amânare pentru clarificare. Motivați.
Modificați unde se justifică; reluați scenariul afectat pe versiunea revizuită.
Ce sarcină putem preda în continuare?
Propuneți o sarcină de proiectare, în limitele descrierii acceptate azi:
- clarificați limita anulării și regula rezervărilor în săli diferite;
- atribuiți responsabilitatea verificării și a confirmării rezervării;
- descrieți rezultatele rezervării/anulării care păstrează F4–F6;
- validați scenariile și evidențiați ipotezele neconfirmate;
- opriți-vă pentru revizuire umană înainte de implementare.
Precizați versiunea de intrare, rezultatul așteptat și dovezile cerute.
Lucru comun, dovezi individuale
Comun: descriere concisă, sarcină următoare delimitată și evidența revizuirii cu deciziile oamenilor.
Individual, fără AI: păstrați analiza inițială și explicați:
- o decizie pe care o puteți apăra printr-o informație și un scenariu;
- o alternativă plauzibilă sau o ipoteză neconfirmată;
- ce trebuie reconsiderat la schimbarea de pe diapozitivul următor.
Folosiți fișa de lucru. Păstrați fragmentele necesare justificării deciziilor.
Cerință nouă: răspuns individual (78–90)
Beneficiarul propune acum:
„De mâine, o rezervare ar trebui să dureze cel mult 60 de minute.”
Există deja o rezervare confirmată de 90 de minute pentru mâine (ziua D).
Fără AI:
- Explicați ce este nou și ce decizii anterioare sunt afectate.
- Identificați regula lipsă pentru rezervările existente.
- Comparați două răspunsuri justificabile și dați un scenariu care le distinge.
Prezentare și predare (90–100)
Fiecare pereche selectată explică unul dintre aspectele următoare:
- o regulă pe care trebuie să o stabilească beneficiarul, deși părea o decizie tehnică;
- o constatare a evaluatorului pe care au verificat-o prin dovezi;
- o decizie corectă păstrată și scenariul care o susține.
Predați fișierele comune și explicația fiecăruia la destinația anunțată de cadrul didactic.
Dacă predarea nu funcționează, folosiți canalul alternativ anunțat.
Dovezi ale înțelegerii
Lucrarea este pregătită pentru feedback când:
- informațiile, ipotezele, întrebările și alegerile de proiectare se disting;
- cerințele și scenariile respectă informațiile beneficiarului;
- sarcina predată are limite, rezultat și punct de revizuire clare;
- constatările evaluatorului au dovezi și o decizie umană;
- fiecare partener explică o alegere și raționează despre schimbare fără ajutor.
Urmează: formularea problemei și cerințele, apoi modelarea domeniului.