Øving 2 78038 Programvarekvalitet Vår 2000 Gruppe 2B Håkon Groven Halvorsen Kjartan Rydland Section 1 i) Vi deltok på introduksjonsforelesning til øvingen der teknikkene ble presentert. Vi fikk tilgang til foilene fra denne forelesningen, og så gjennom disse. En del var likevel uklart, og vi spurte øvingsansvarlige en del spursmål rundt dette. Det som var uklart var en del begreper som ble brukt som vi ikke helt visste om vi hadde den riktige forståelsen av. Dette var nok litt fordi vi ikke har noen bakgrunn i å lese/bruke UML. Vi forsøkte å lese forelesningsnotatene for å forsøke og forstå, og satset på at forståelsen kom litt etter hvert når vi holdt på. Rollen til spørsmålene i hver del var også litt uklart for oss, hva skulle besvares for å være en output til en annen del og hva skulle besvares for å hjelpe å avdekke feil? Her fikk vi litt hjelp fra øvingsansvarlige. Resten av tiden til forberedelser gikk med til å lese gjennom ’reguirements document’. ii) We think that the OORTs were useful for their task. It is quite obvious that our (lack of) background/knowledge about the modelling language used in the requirements document of the PGCS case put strict limitations on our work. iii) We don’t have any hints about improving the OORTs since our level of competence/insight is to low to see its backdraws/benefits. Section 2 Fag 78038 Programvarekvalitet og prosessforbedring IDI, NTNU, vår 2000 Øving 2: Inspeksjon Defect list OORT-2: State Diagram x Class Description Discrepancy Report One record for each defect: Object/Class Name: Granularity: (state, event, behavior, condition) Concept Name: Type of defect: (inconsistency, extraneous, miscellaneous) Description: Monthly_ticket Condition ? Inconsistency In the state diagram, getting from state valid to expired is through the condition elapsed days = 30. In the class description, the same transition is trough elapsed days>30. Object/Class Name: Granularity: (state, event, behavior, condition) Concept Name: Type of defect: (inconsistency, extraneous, miscellaneous) Description: Monthly_ticket Condition ? Inconsistency In the state diagram, getting from state expired and back to expired is through the condition elapsed days > 30. In the class description, the same transition is trough any. Object/Class Name: Granularity: (state, event, behavior, condition) Concept Name: Type of defect: (inconsistency, extraneous, miscellaneous) Description: Non-reserved_ticket Condition ? Inconsistency In the state diagram, getting from state valid and back to valid is through the condition time elapsed <= 15. In the class description, the same transition is trough time elapsed < 15. Object/Class Name: Granularity: (state, event, behavior, condition) Non-reserved_ticket Condition Concept Name: Type of defect: (inconsistency, extraneous, miscellaneous) Description: ? Inconsistency In the state diagram, getting from state valid to expired is through the condition time elapsed > 15. In the class description, the same transition is trough time elapsed >= 15. OORT-3: State Diagram x Sequence Diagram Discrepancy Report Utfører: Håkon Halvorsen Class Name: Type of defect: Description: Driver Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Card Reader Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Ticket Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Exit Gate Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Monthly Ticket Driver Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: gate Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Ticket Dispencer Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Entry Gate Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Control Unit Missing Defined in the seq diagram, but not in the state diagram Class Name: Type of defect: Description: Non-reserved_ticket Missing “Driver repays” defined in the state diagram, but not in the seq diagram Class Name: Type of defect: Description: Parking Garage Missing “Only 1 space available and monthly ticket is purchased” defined in the state diagram, but not in the seq diagram Class Name: Type of defect: Parking Garage Missing Description: “Monthly ticket expires” defined in the state diagram, but not in the seq diagram Class Name: Type of defect: Description: Parking Garage Missing “Monthly ticket expires” defined in the state diagram, but not in the seq diagram OORT-6: Sequence Diagram x Use Case Diagram Discrepancy Report Utfører: Kjartan Rydland Which classes is involved? Concept name: Granularity: Type of defect: Description: Parking Garage Lot Class Omission “Lot” is missing in SqD. Should be parking garage? Which classes is involved? Concept name: Granularity: Type of defect: Description: Control Unit Cashier Objec Omission “Cashier” is missing in SqD. Included in Control Unit? Which classes is involved? Concept name: Granularity: Type of defect: Description: Control Unit System Object Omission “System” is missing in SqD. Included in Control Unit? Which classes is involved? Control Unit Concept name: Control Unit Granularity: Class Type of defect: Incorrect fact Description: For purcase monthly ticket: I use cases står det at “cashier notifies system of ticket purcase” mens SqD opererer med “Control unit” OORT-7 Utfører: Kjartan Rydland Q73c Document: State Diagram Class Name: Non-reserved_ticket Concept Name: Leave lot Granularity: Event Type of Defect: Extraneous Description: The event ”leave lot” may cause the transition from state 2 to state 1. Q74.b: Document: State Diagram Class Name: Non-reserved_ticket Concept Name: Driver_repays Granularity: Condition Type of Defect: Extraneous Description: The transition ”Nonreserved leaves or monthly ticket expires” not found in the RD/Use cases. Section 3 Fag 78038 Programvarekvalitet og prosessforbedring IDI, NTNU, vår 2000 Øving 2: Inspeksjon Observation Notes Templates for Object-Oriented Reading Techniques (OORTs), filled in by Process Observer Intro Det er her nevnt de problemer og uklarheter executor møtte på under inspeksjonen. Dette er presentert hovedsaklig i spørsmålsform der spørsmålet kom opp. Der det ikke er gitt noen komentarer gikk inspeksjonen greit uten vesentlige uklarheter og problemer. OORT-2: State Diagram x Class Description Det ble på denne delen brukt 80 minutt. Det var her litt uklart om en skulle gå ut fra at statechart’ene var korrekt og se på om classdescriptions var riktige iht. Statechart’ene. Executor gikk ut fra dette. Det var også litt uklart hvorfor en trengte å fylle inn alle feltene i Template for defect list, er det ikke tilstrekkelig med bare den siste delen, under ’Document: Class Description’. Uklarhet: Concept name: hva er det? Step R2.1: Read state diagram to understand possible states and their transition. –Q21.a: Identify the actual class from the state diagram. Missing? [omission?] –Q21.b: Underline the name of each object state (by blue pen). –Q21.c: Underline the transition actions/conditions (by green pen). Disse tre var greie å forstå og utføre. –Q21.d: Can you understand the object's behavior from Q21.b-c above? [ambiguity?] Hvordan vurderer en om en forstår oppførselen? Step 2.2: Identify the associated class, and its attributes and behavior. Hvor detaljert skal en gå inn I class descriptions, hvordan er forholdet mellom beskrivelsen av interface/operations etc. og matrisa på slutten, hva skal en se på? –Q22.a: In the CDe, identify the class being modeled by this state diagram. Missing? [omission?] Hva er forskjellen på Q21.a og Q22.a? –Q22.b: Find out how a blue state is represented, i.e. has the class captured state in a unique way? an explicit attribute. implicit attribute (merely via control flow). combination of attributes. subtyping of the actual object (consult the class hierarchy). the result. [inconsistency? or ambiguity?] –Q22.c: each modeled E.g. by E.g. by an E.g. by a E.g. by Report Are all green transition actions/conditions covered by class behavior? If not: error. [inconsistency?] Uklarhet: Hva menes med ‘covered by class behaviour’? –Q22.d: Are green transition conditions using object data, that are defined as class attributes with matching names? If not: error. [inconsistency?] Step R2.3: Compare class diagram to state diagram. –Q23.a: From your domain knowledge, are all relevant states defined in the StD? [incorrect fact?] –Q23.b: For each unmarked state, assess if it is appropriate and essential: [incorrect fact? or extraneous?] –Q23.c: For each [inconsistency?] OK. unmarked transition action/condition: here is missing information. OORT-3 Sequence Diagram x State Diagram På denne delen ble det brukt 90 min. Step R3.1: Read the state diagram to understand the possible object states, their transitions and corresponding actions. Man skal her bare se på statecharts, da blir det vel det samme som i introen til OORT-2? Ellers OK her. –Q31.a: Determine which class is being modeled. Missing? [omission?] –Q31.b: Trace all transitions from the start state to the end state, and mark corresponding actions with a unique name (A1, A2 etc.) with a green pen. –Q31.c: In general, do these transitions/actions and states make sense and are they understandable for such an object? [ambiguity?] Step R3.2: Read the sequence diagrams to understand how the transition actions are achieved by messages sent to/from the relevant object. –Q32.a: Pick the relevant subset of SqDs concerning this state diagram (StD) Is there a problem to identify these? [omission? or extraneous?] For each relevant sequence diagram (SqD) do below points Q32.b-e: Litt usikker på hvilke SqD som er relevant, brukte en del til på det, OK til slutt. Litt vanskelig å kategorisere feil. –Q32.b: Read the sequence diagram to identify the associated system service and its messages. –Q32.c: Identify the object states in the StD, being semantically related to the system service. actual –Q32.d: Map message arrows (one or many) in the SqD to state transitions in the StD. Are there “enough” messages to accomplish a given transition? [omission?] Mark related SqD-messages and StD-transitions with a green star. –Q32.e: Look for constraints and conditions on the above SqD-messages. Check if the same constraint/condition information stands in both diagrams. [inconsistency?] Such SqD-information may be correspondingly expressed in the StD by: 1) State information (e.g. t>0), 2) Transition information (what occurs when t>0?), 3) Nothing (not relevant for StD). Uklarhet: Hva menes med constraints and conditions? Step R3.3: Review the marked-up diagrams to make all transition actions are accounted for. sure that –Q33.a: Look for unlabeled transaction actions in the StD, i.e. those not implemented by available messages in the SqD (cf. Q32.d). Report these. [inconsistency?] –Q33.b: Are the event order the same in the StD and SqD, i.e. check if labeled messages/transitions in the SqD appear in logical order? [inconsistency?] E.g. that action Ax on a later transition in the StD actually occurs after an action Ay on an earlier transition. Problemer med å lese SqD, vi har så å si ingen erfaring med UML, og spesielt ikke med SqD, så dette blir litt halvvegs. OORT-6: Sequence Diagram x Use Case Diagram På denne delen ble det brukt 65.min. Step R6.1: Identity the main functionality of a use case and ts important system concepts. Hva er system services? –Q61.a: Find the unique nouns/concepts in the UC. Underline and number consecutively with a blue pen (used in Q61.d). Uklarhet: hva er consepts? –Q61.b: For each noun, find verbs/actions "to or by" that noun. Underline and number in assumed performance order with a green pen. –Q61.c: Mark constraints/conditions in double-green (part of service marking). Uklarhet: Hva menes med constraints/conditins? –Q61.d: Also find the information or data to be sent/received in order to perform a certain action. Label the data in yellow as "Dx,y", where x,y are the nouns involved. Step R6.2: Identify and inspect the related sequence diagrams, to identify if the corresponding functionality is described accurately and whether behaviors and data are represented in the right order. Executor valgte å se på ’lot’ som det samme som ’parking garage’. –Q62.a: For each SqD, underline in blue the system objects, and with the same noun number (from Q61.a) as in the UC. –Q62.b: Identify the services described in the SqD. I.e. look at the horizontal message arrows between objects, and possibly cluster several arrows into one service. Underline the identified services in green, and number them in occurrence order (top-tobottom) in the SqD. –Q62.c: Identify information/data exchanged between two system classes (x,y). Label the data in yellow as "Dx,y", as in R6.1. Step R6.3: Compare the marked-up Use Case / Sequence Diagrams to determine whether they represent the same domain concepts. –Q63.a: For each blue-marked noun in the UC, search for a similar one in the SqD. Mark by blue star (“*”) in the UC if found. For unstarrred nouns in the UC, check also if they possibly are attributes in some class. The remaining, unstarred nouns from the UC may represent defects, as they are missing in the design (SqD). [omission?] –Q63.b: Similarly, for each unmarked noun in the SqD, it may belong to some designinternal or worse: an unused concept. [extraneous?] –Q63.c: For each blue-marked service in the SqD, look for the corresponding done in the UC. E.g. Are SqD classes/objects exchanging messages in the same order as in the UC? If not, this may be a defect. E.g. Are message parameters on the SqD correctly described in the UC, e.g. right data between right Dx,y etc.? E.g. Is it possible to “understand” the expected functionality, for instance from data being sent/received, by just reading the SqD? Report any problem in all this. [inconsistency? or ambiguity?] Litt uklart hva som det blir spurt etter her, hva menes med ‘possible to understand the expected functionality’? Igjen: vi har ikke noen bakgrunn i å lese Sqd. –Q63.d: Are double-green-marked constraints/conditions from the UC being observed by the SqD? [incorrect fact?] OORT-7: State Diagram x (Rqmt Descr / Use Case) På denne delen ble det brukt 75 min. Step R7.1: Read the state diagram to basically understand what the object it is modeling (nothing more here). Litt problemer med å forstå StD’ene ang start og end state, dette gjorde at problematikk rundt dette dette kanskje ikke ble inspisert som tenkt i det påfølgende. Step R7.2: Read the functional requirements to determine the possible states of the object, which states are adjacent to each other, and which events/actions cause the state changes. –Q72.a: Put away the StD and erase any previous stars (“*”) in the RD. Read through the RD and mark up lightly – with a star (“*”) by a pencil – the places where the actual StD-object/concept is used. –Q72.b: Locate all corresponding places in the RD for all different states of this object, mark these places with a blue pen and number them from 1..N. –Q72.c: Identify which of the numbered states being the Initial state ("I"), and similarly with the end state ("E"). Problemer med å finne initial state og end state i functional requirements. –Q72.d: Make a N*N Adjacency Matrix (AM) on a separate sheet of paper. Try to identify possible ij-state transitions here, i.e. if state i can lead to state j. Put a check mark (“v”) in these AM-ij entries. Step R7.3: Read the use cases and determine the events that cause state changes. –Q73.a: Read through the use cases and find the ones where the object participates. –Q73.b: For each marked AM-ij entry (i.e. having a transition), document precisely the associated event and/or constraint someplace on the AM paper sheet. –Q73.b: For the blank entries, see if there still might be events that may cause the transition. If not, write a “X” in that entry. Step R7.4: Read the state diagrams to determine if the described states are consistent with the requirements, and if the transitions are consistent with the requirements and use cases. Det ble nok litt halvvegs her også på grunn av problemer med forståelse av SqD –Q74.a: For each numbered state in the RD, find the corresponding state in the StD and mark it with a blue pen and corresponding number. Note: state names may be different in the RD and the StD, and overlapping names may not represent identical states. E.g. Were all states in the RD found in the StD? [omission?] Or maybe some RD states were combined into one StD state, but this was not a sensible combination? [incorrect fact?] E.g. Inversely, were there extra states in the StD? [extraneous?] Or maybe a RD state was split into more than one StD state, but again this was not a sensible combination? [incorrect fact?] –Q74.b: Check transition events and actions in the AM-matrix/sheet: E.g. Do all events in the AM appear on the StD? [omission?] E.g. Do all events in the StD appear on the AM? [extraneous?] –Q74.c: Check transition constraints in the AM-matrix/sheet: E.g. Do all constraints in the AM appear on the StD? [omission?] E.g. Do all constraints in the StD appear on the AM? [extraneous?] Experience Questionnaire (for OO Reading techniques) Name ___Kjartan Rydland_______________________________________________ General Background Please estimate your English-language background: __ I am a native speaker. X__ English is my second language. [Please complete both of the following.] My reading comprehension skills are: __ could be better __ moderate X__ high __ very high My listening and speaking skills are: __ could be better __ moderate X__ high __ very high What is your previous experience with software development in practice? (Check the bottom-most item that applies.) __ I have never developed software. __ I have developed software on my own. X__ I have developed software as a part of a team, as part of a course. __ I have developed software as a part of a team, in industry. Please explain your answer. Include the number of semesters or number of years of relevant experience. (E.g. “I worked for 10 years as a programmer in industry.”) I have studied computer science for 7,5 semesters. Software Development Experience Please rate your experience in this section with respect to the following 5-point scale: 1 = none 2 = studied in class or from book 3 = practiced in a class project 4 = used on one project in industry 5 = used on multiple projects in industry Experience with Requirements Experience writing requirements Experience writing use cases Experience reviewing requirements Experience reviewing use cases Experience changing requirements for maintenance 1 X1 X1 X1 X1 X2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 Experience in Design Experience in design of systems 1 2 Experience in design of systems from requirements/use cases 4 5 Experience with creating Object-Oriented (OO) designs 1 2 Experience with reading OO designs 1 X2 Experience with the Unified Modeling Language (UML) X1 2 Experience changing designs for maintenance X1 2 X3 4 1 2 5 X3 X3 3 3 3 4 4 4 4 5 5 5 5 X3 4 X3 4 5 5 X1 2 3 4 5 1 2 X1 2 X1 2 X3 4 3 4 3 4 5 5 5 1 2 X3 4 1 X2 3 4 X1 2 3 4 5 5 5 Experience in Coding Experience in coding, based on requirements/use cases Experience in coding, based on design Experience in coding, based on OO design Experience in maintenance of code 1 1 2 2 Experience in Testing Experience in testing software Experience in testing, based on requirements/use cases Experience with equivalence-partition testing Other Experience Experience with software project management? Experience with User Interface (UI) design? Experience with software inspections? Experience in Problem Domains We will use answers in this section to understand how familiar you are with various systems we may use as examples or for assignments during the class. Please rate your experience in this section with respect to the following 3-point scale: 1 = I’m really unfamiliar with the concept. I’ve never done it. 3 = I’ve done this a few times, but I’m no expert. 5 = I’m very familiar with this area. I would be very comfortable doing this. How much do you know about… Applying for a loan? Applying for a mortgage? Using a parking garage? Using an ATM? Renting movies from a video rental store? X1 1 1 1 1 3 X3 X3 X3 3 5 5 5 5 X5 Experience Questionnaire (for OO Reading techniques) Name _Håkon Groven Halvorsen_________________________________________________ General Background Please estimate your English-language background: __ I am a native speaker. X English is my second language. [Please complete both of the following.] My reading comprehension skills are: __ could be better __ moderate X high __ very high My listening and speaking skills are: __ could be better __ moderate X high __ very high What is your previous experience with software development in practice? (Check the bottom-most item that applies.) __ I have never developed software. __ I have developed software on my own. X I have developed software as a part of a team, as part of a course. __ I have developed software as a part of a team, in industry. Please explain your answer. Include the number of semesters or number of years of relevant experience. (E.g. “I worked for 10 years as a programmer in industry.”) Software Development Experience Please rate your experience in this section with respect to the following 5-point scale: 1 = none 2 = studied in class or from book 3 = practiced in a class project 4 = used on one project in industry 5 = used on multiple projects in industry Experience with Requirements Experience writing requirements Experience writing use cases Experience reviewing requirements Experience reviewing use cases Experience changing requirements for maintenance 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 Experience in design of systems 1 2 Experience in design of systems from requirements/use cases 4 5 Experience with creating Object-Oriented (OO) designs 1 2 Experience with reading OO designs 1 2 Experience with the Unified Modeling Language (UML) 1 2 Experience changing designs for maintenance 1 2 3 1 4 2 5 3 3 3 3 3 4 4 4 4 5 5 5 5 Experience in Design Experience in Coding Experience in coding, based on requirements/use cases Experience in coding, based on design Experience in coding, based on OO design Experience in maintenance of code 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 Experience in Testing Experience in testing software Experience in testing, based on requirements/use cases Experience with equivalence-partition testing Other Experience Experience with software project management? Experience with User Interface (UI) design? Experience with software inspections? Experience in Problem Domains We will use answers in this section to understand how familiar you are with various systems we may use as examples or for assignments during the class. Please rate your experience in this section with respect to the following 3-point scale: 1 = I’m really unfamiliar with the concept. I’ve never done it. 3 = I’ve done this a few times, but I’m no expert. 5 = I’m very familiar with this area. I would be very comfortable doing this. How much do you know about… Applying for a loan? Applying for a mortgage? Using a parking garage? Using an ATM? Renting movies from a video rental store? 1 1 1 1 1 3 3 3 3 3 5 5 5 5 5