Appendix: Instruments

Size: px
Start display at page:

Download "Appendix: Instruments"

Transcription

1 Appendix A Appendix: Instruments This appendix presents the instruments used in the experiment. These instruments can be used verbatim to repeat the experiment; a electronic copy is available upon request. These instruments include the hard-copy directions, pictures o the process-centered system that the subjects used, explanations o the test techniques, o-line and on-line question sheets, proram speciications, and source code. All instruments were developed or native German speakers. This appendix oers Enlish versions o all documents. All translations are as true to the oriinal as possible. All documents with the exception o the prorams and their outputs have been translated. The source code is presented without chanes, which may make it diicult or people who do not know German to isolate typoraphical (cosmetic) aults. 133

2 A.1 Script used to introduce subjects to MVP-S 1. General (a) Two test exercises, or a total o about 3 hours. (b) The oal is to ind as many ailures as possible in as little time as possible. (c) Writin on all sheets is naturally OK. (d) Time entries should relect the total time needed. (e) Your ID is ::: () Please read the instructions and perorm the steps. More about the on-line tools 2. Menu bar: (a) One button per tool (b) Quit when inished 3. MVP-S: (a) Explain main window i. Column 1: Instance name o a process ii. Column 2: Model name o a process iii. Column 3: Status o a process iv. Menu item Action/Send Event to inorm the machine o a status chane. v. send start or the preparation step. vi. Menu item Ino/Context to et the instructions or each process (b) Explain context window i. Comments constitute the directions or each process ii. Entry and exit criteria are also displayed in the window. 4. Question sheet: (a) Help or each question appears at the bottom. (b) Bu: data are not read in aain. (c) Data are retrieved later. 134

3 A.2 Instructions or unctional testin as used o-line In this exercise you will test a proram named cmdline. Your oal is to ind as many ailures as possible in as little time as possible. You will enerate and execute test cases with the help o the speciication. Then you will search or ailures. Because isolatin aults is not part o this exercise, you will not receive the source code or the proram. Guideline: In the past, similar exercises required on averae circa 60 minutes. For this exercise you will need the ollowin materials in addition to these intructions: the question sheet Functional testin, the instruction sheet Buildin equivalence classes, and the speciication o the proram cmdline. At the end you will receive a sample solution. Step 1: Preparation Read over the question sheet Functional testin. Enter your identiier and answer the irst two questions. I you are unamiliar with equivalence classes, read throuh the instructions or developin and usin equivalence classes. Lo on to a computer. Create a new directory or your work, and chane into the new directory with the cd command. Fetch the necessary iles by enterin the ollowin command: tar x lott/expt/t-cmdline.tar Thereater the ollowin iles must be present: Makeile cmdline run-suite test-dir Step 2: Generate test cases You received the speciication or the proram with your materials. Read throuh the speciication careully. Use it to derive the equivalence classes. Guideline: In the past, on averae 16 validand4invalidequivalenceclassesweredevelopedorsimilarcomponents. Generate test cases by choosin boundary values rom the equivalence classes. A test case consists o an input and an expected output. Guideline: In the past, on averae 20 test cases were enerated or similar components. When you are inished, enter in the question sheet the number o valid and invalid equivalence classes, the number o test cases, and the amount o time you needed. I you also typed in your test cases while developin them, please try to separate your entries or total time between the eneration and the typin-in steps. Step 3: Type in the test cases In this exercise, a test driver is used to apply the test cases to the proram. The test driver reads parameter iles and invokes the proram with the parameters speciied in those iles. Example: i the proram cmdline is supposed to be invoked with cmdline 1 2 3, than the expression should be placed in the parameter ile. 135

4 You must create the parameter iles. A test case = a parameter ile. The expressions in a parameter ile speciy one invocation o the proram or a one run o the test driver. Parameter iles are named with.test as the ile suix. The results are written into a ile. A complete test o the component is accomplished in this way. Type in your test cases in iles under the directory test-dir. Follow the speciication o the test driver while doin so. When you are inished, enter the amount o time you needed in the question sheet. Step 4: Run test cases Apply the test cases to the component by typin in the command run-suite. I you made some typin mistakes, please correct the mistakes now, type make clean, and repeat the tests by enterin the command run-suite aain. The results are in individual iles under the directory test-dir and are also summarized in a ile test-results.summary. When you are inished with this step, enter the amount o time you needed in the question sheet. Print out the test results rom the ile test-results.summary. Step 5: Search or ailures Look over the results careully. Find possible ailures by comparin the expected results accordin to the speciication with the output o your test cases. Mark the detected ailures in both copies o the outputwith circles, etc. Guideline: In the past, on averae 8 ailures were detected in similar components. When you believe that you have detected all ailures, please enter the time you required in the question sheet. Complete the rest o the question sheet and hand it in with your test results. 136

5 A.3 Instructions or unctional testin as used on-line For this exercise you will need the ollowin materials in addition to these intructions: the instruction sheet Buildin equivalence classes, and the speciication o the proram cmdline. At the end you will receive a sample solution. 1. Lo on to a computer. Start the menu bar or the inormation system by enterin the ollowin command: lott/expt/menu-t 2. Use the menu bar to start one instance o the inormation system MVP-S. Select the project Funktionales Testen, wherein you take on the role Test Inenieur. 3. Use the menu bar aain to start one instance o the question sheet tool. 4. Please use the inormation system or the rest o the inormation about the exercise. 137

6 Fiures A.1, A.2 and A.3 show the initial menu bar, the MVP-S work context window and the process context windows, respectively. These interaces support the subjects who use on-line directions to perorm unctional testin. Fiure A.1: Menu bar to start MVP-S and a question sheet tool Fiure A.2: MVP-S work-context window that supports unctional testers 138

7 Fiure A.3: MVP-S process-context window or unctional testin step schritt 1 139

8 A.4 Question sheet unctional testin as used o-line Your ID: Date: Note: For all time-related entries, please deduct time or pauses, etc. 1. How motivated are you or the experiment? [Please mark the scale.] Estimate Value Comparison not at little so-so pretty quite very all much abit much 2. When did you start the experiment? : [Hour:Minute] 3. How many equivalence classes did you derive? Valid: [Count], Invalid: [Count] 4. How many test cases did you enerate? [Count] 5. How much time did you need to construct the test cases (step 2)? [Minutes] 6. How much time did you need to type in the test cases (step 3)? [Minutes] 7. How lon did the execution o test cases (step 4) require, i more than zero? [Minutes] 8. How lon did you search or ailures (step 5)? [Minutes] 9. How many dierent ailures did you ind? [Count] 10. When did you end the experiment? : [Hour:Minute] 11. Would you be inclined to perorm another iteration in order to ind more ailures? [yes, no] 12. How well do you eel you ve mastered unctional testin? [Please mark the scale] Estimate Value Comparison not at little so-so pretty quite very all much abit much 140

9 A.5 Question sheet unctional testin as used on-line Fiure A.4 shows the on-line question sheet used by subjects who use the process-centered system to perorm unctional testin. Fiure A.4: On-line question sheet used by unctional testers 141

10 A.6 Buildin equivalence classes Functional testin based on equivalence classes requires the input to be divided into equivalence classes rom which similar behavior is expected. The ollowin overview ives heuristics or such a division [Reerence: G. Myers, The Art o Sotware Testin, 1979.] 1. I an input condition speciies one reion, identiy one valid and two invalid equivalence classes. Example: For input condition the number A to be entered varies rom 1 to 999, deine the valid equivalence class 1 A 999, and the invalid equivalence classes A < 1, 999 < A. 2. I an input condition speciies a number o values, identiy one valid and two invalid equivalence classes. Example: For input condition the number o search expressions is minimum 1 and maximum 6, deine the valid equivalence class 1 number 6 and the invalid equivalence classes number = 0, number > I an input condition speciies a set, and there are rounds or belie that the set elements are treated dierently, determine one valid equivalence class or each element in the set, plus one additional invalid class or an element that is not contained in the set. Example: For input condition the input is o type ender, we assume dierent treatment o the ender values. Choose valid equivalence classes male, emale, neuter and the invalid one martian. 4. I an input condition speciies a must situation, identiy one valid and one invalid equivalence class. Example: For input condition the irst character in the word must be a letter, choose the valid equivalence class w j w is a word and the irst character is a letter and the invalid equivalence class w j w is a word and the irst character is not a letter. 5. I there are rounds or belie that elements in an equivalence class are treated dierently, divide the equivalence class appropriately into new ones. Example: even values, odd values. Once the equivalence classes have been determined, test data must be selected. A procedure named boundary value analysis speciies which data are chosen rom the equivalence classes. Instead o choosin just any element rom an equivalence class, values are used that are near or on the boundaries o the equivalence classes. Instead o usin only the input conditions, test cases are also determined by observin the result space. One can work accordin to the ollowin schema: 1. Assin each equivalence class a unique number. 2. Until all valid equivalence classes are covered, write one test that covers as many as possible o the valid, not-yet-covered equivalence classes. 3. For each invalid equivalence class, write one test that covers this and only this one. 142

11 A.7 Speciication o proram cmdline Name cmdline Syntactic and semantic analysis o a command line Usae cmdline hile cmdline mass <measure> [Search-option] File [ File.. ] Description cmdline analyzes a command line o a measurement tool or syntactic and partially or semantic correctness. The units that are eventually supposed to be measured are stored in iles. However, the measurement unctionality is not part o this tool. The current version o cmdline only evaluates the command-line parameters. The user must ive the proram at a minimum one measure and one ile as arument. In addition to the aruments (measure, ile, etc.), exactly one so-called search option may be iven. The order o the measurement options and search options is not important. When the command line is evaluated, all aruments beinnin with the irst non-option are treated as ile names. The existence o such iles is not checked. I successul (i.e., i the syntax and meanin o the aruments is ound to be leal), a summary o the aruments is printed out. Otherwise, an explanatory error messae is printed. The summary consists o the measure to be computed, the search options i any were iven (includin a value or -unter and -ueber), and a list o the iles to be read. Options Options and aruments or options can be abbreviated to their unique preixes. In the ollowin text, the unique preix o each option appears beore the square brackets. A maximum o one search option may be used. h[ile] Help option. A helpul text is printed and nothin else is done.? Help option. See above. mas[s] <measure> Valid measures are GKO[M], LKO[M], GKH[M], LKH[M], GI[HE], and LI[HE]. a[lle] Search option. The proram should evaluate the measure or all units. max Search option. The proram should determine the maximum value o the measure or all units. 143

12 mi[n] Search option. The proram should determine the minimum value o the measure or all units. du[rchschnitt] Search option. The proram should determine the averae value o the measure or all units. un[ter] <value > Search option. The proram should identiy all units or which the measure lies under the boundary value. The <value> may be any real number. ue[ber] <value > Search option. The proram should identiy all units or which the measure lies over the boundary value. The <value> may be any real number. Example % cmdline -mass GKHM -alle datei1 Die Auabe ist: Mass: GKHM Suche: -alle Anzahl der zu lesenden Dateien: 1 Die Dateien sind: datei1 Authors Baumärtner, Claßen, Gieseke, Lott. 144

13 A.8 Source code o proram cmdline cmdline.h: #inde CMDLINEDOTH #deine CMDLINEDOTH #deine HILFE 0 #deine MASS 1 #deine GKOM 2 #deine LKOM 3 #deine LKHM 4 #deine GKHM 5 #deine LIHE 6 #deine GIHE 7 #deine ALLE 8 #deine MAX 9 #deine DURCH 10 #deine MIN 11 #deine UNTER 12 #deine UEBER 13 struct keyword entry char keyword; int min len; int id; ; struct auabe double zahl; char mass; char such; ; #endi cmdline.c: #include <stdio.h> #include <strin.h> #include <ctype.h> extern double ato(); #include "cmdline.h" static struct keyword entry keyword table[] = "-?", 2, HILFE, "-hile", 2, HILFE, "-mass", 4, MASS, "GKOM", 3, GKOM, "LKOM", 3, LKOM, "LKHM", 3, LKHM, "GKHM", 3, GKHM, "LIHE", 2, LIHE, "GIHE", 2, GIHE, "-alle", 2, ALLE, "-max", 4, MAX, 145

14 "-durchschnitt", 3, DURCH, "-min", 3, MIN, "-unter", 3, UNTER, "-ueber", 3, UEBER, ; static int keyword table size = sizeo(keyword table) = sizeo(struct keyword entry), 1; void usae(pron) char pron; print(stderr, "Verwendun: %s -mass <MASS> [ Suchption ] Datei [ Datei... ]\n", pron); exit(1); static int is str keyword(ar, valid ar, min verl len) char ar, valid ar; int min verl len; int arlen, rc; rc=0; arlen = strlen(ar); i (strncmp(ar, valid ar, arlen) == 0) rc=1; return rc; static int code strin(str) char str; int i, rc; rc =,1; or (i = 0; i < keyword table size; ++i) i (is str keyword(str, keyword table[i].keyword, keyword table[i].min len)) rc=keywordtable[i].id; return rc; void print auabe(au) struct auabe au; i ( (au,>mass!= NULL && strcmp(au,>mass, "-hile") == 0) jj (au,>mass == NULL && au,>such == NULL)) usae("cmdline"); return; 146

15 print("die Auabe ist:\n"); i (au,>mass) print("mass: %s\n", au,>mass); i (au,>such) print("suche: %s\n", au,>such); i (strcmp(au,>such, "-unter") ==0 jj strcmp(au,>such, "-ueber") ==0) print("zahl: %.1\n", au,>zahl); void print dateien(ari, arc, arv) int ari, arc; char arv; int i; i (arc == ari) print("es ehlt eine Datei\n"); else print("anzahl der zu lesenden Dateien: %d\n", arc, ari); print("die Dateien sind:\n"); or(i=ari;i < arc; ++i) print(" %s\n", arv[i]); int process switches(arc, arv, au) int arc; char arv; struct auabe au; int i, rc = 0, position = 0; au,>zahl = 0.0; au,>mass = NULL; au,>such = NULL; or (i = 1; i < arc; ++i) switch (code strin(arv[i])) case HILFE: au,>mass = "-hile"; case MASS: i (au,>mass!= NULL) print(stderr, "Es sind zuviele Masse aneeben\n"); rc =,1; else i (i++ >= arc) print(stderr, "Es ist kein Mass aneeben\n"); rc =,1; 147

16 else switch (code strin(arv[i])) case GKOM: au,>mass = "GKOM"; case LKOM: au,>mass = "LKOM"; case LKHM: au,>mass = "LKOM"; case GKHM: au,>mass = "GKHM"; case LIHE: au,>mass = "LIHE"; case GIHE: au,>mass = "GIHE"; deault: print(stderr, "Es ist kein uelties Mass aneeben\n"); rc =,1; case ALLE: i (au,>such!= NULL) print(stderr, "Es sind zuviele Suchoptionen aneeben\n"); rc =,1; else au,>such = "-alle"; case MAX: i (au,>such!= NULL) print(stderr, "Es sind zuviele Suchoptionen aneeben\n"); rc =,1; else au,>such = "-max"; case DURCH: i (au,>such!= NULL) print(stderr, "Es sind zuviele Suchoptionen aneeben\n"); rc =,1; else au,>such = "-durchschnitt"; 148

17 case MIN: i (au,>such!= NULL) print(stderr, "Es sind zuviele Suchoptionen aneeben\n"); rc =,1; else au,>such = "-min"; case UNTER: i (au,>such!= NULL) print(stderr, "Es sind zuviele Suchoptionen aneeben\n"); rc =,1; else au,>such = "-unter"; ++i; i (i >= arc jj!isdiit(arv[i])) print(stderr, "Es ist keine Zahl aneeben\n"); rc =,1; else au,>zahl = atoi(arv[i]); case UEBER: i (au,>such!= NULL) print(stderr, "Es sind zuviele Sucharumente aneeben\n"); rc =,1; else au,>such = "-ueber"; ++i; i (i >= arc jj!isdiit(arv[i])) print(stderr, "Es ist keine Zahl aneeben\n"); rc =,1; else au,>zahl = ato(arv[i]); deault: position = i; i (rc < 0 jj position == i) i (rc < 0) 149

18 print(stderr, "Die Optionen bzw. Arumente sind ehlerhat\n"); else print auabe(au); print dateien(position, arc, arv); return rc; = Hier beinnt die Testumebun. Bitte die Testumebun nicht testen, keine Abstraktionen bilden etc. = int main(arc, arv) int arc; char arv; struct auabe a; int rc; i (arc == 1) usae(arv); rc =,1; else rc=processswitches(arc, arv, &a); return rc; 150

19 A.9 Sample solution or unctional testin The component cmdline exhibits the ollowin ailures. 1. The option ueber is not reconized. 2. A misspelled word ( Suchption, should be Suchoption ) appears in the output. 3. Abbreviated options are enerally interpreted as unique and associated with the irst matchin option. For example, m is reconized as mass althouh the unique preix ma was not seen. 4. Search options without an accompanyin measure are not treated as an error. 5. I the option -mass is used without a correspondin leal measure arument, no error messae is printed provided that a ile name (really any text) ollows. However, i no arument ollows the option, the proram crashes. 6. The option LKHM is not processed correctly; instead, LKOM is mistakenly reported. 7. I the -min option is iven, an error messae complainin about too many search options appears because the code or unter is also mistakenly executed. 8. Only the inteer part o a real number is used. 9. Neative numbers are not reconized as valid numbers. 10. I all options were reconized correctly, missin data iles are not detected. The command name and supplied options are mistakenly listed as iles to be read. The next pae lists the equivalence classes and test cases necessary to reveal the ailures described above. 151

20 Equivalence classes: Valid classes G 1 := exactly 1 measure G 2 := max. 1 Option G 3 := min. 1 ile G 4 := uniquely abbreviated option G 5 := over/under value real G 6 := Order measure, option G 7 := Order option, measure G 81 := Option -max G 82 := Option -min G 83 := Option -durch G 84 := Option -unter G 85 := Option -ueber G 86 := Option -alle G 87 := Option -hile -? G 91 := Maß -LKOM G 92 := Maß -GKOM G 93 := Maß -GKHM G 94 := Maß -LKHM G 95 := Maß -GIHE G 96 := Maß -LIHE Invalid classes U 1 := no measure, U 2 := more than 1 measure U 3 := more than 1 option U 4 := no ile U 5 := ambiuously abbreviated option U 6 := missin over/under value U 7 :=unknown measure Test cases: Nr. Covered classes Invocation o the proram Fail. nr. 1 U 1 cmdline -max Datei1 4 2 U 2 cmdline -mass LKOM -mass GKOM -max Datei1 3 U 3 cmdline -mass LKOM -alle -min Datei 7 4 U 4 cmdline -mass LKOM -durch 10 5 U 5 cmdline -mass LKOM -m Datei1 3 6 U 6 cmdline -mass GIHE -unter Datei1 7 U 7 cmdline -mass T Datei1 8 G 1 ;G 2 ;G 3 ;G 92 ;G 82 ;G 6 cmdline -mass GKOM -min Datei1 7 9 G 4 ;G 6 ;G 7 G 91 ;G 83 cmdline -du -mass LKO Datei1 10 G 93 ;G 85 ;G 5 cmdline -mass GKHM -ueber 4.2 Datei G 94 ;G 81 ;G 2 cmdline -mass LKHM -max Datei1 Datei G 95 ;G 84 ;G 6 cmdline -mass GIHE -unter 3.14 Datei G 95 ;G 84 ;G 6 cmdline -mass GIHE -unter -2 Datei G 96 ;G 86 cmdline -mass LIHE -alle Datei1 15 G 87 cmdline -hile 2 16 U 1 ;U 4 cmdline -mass 5 Note 1: Valid equivalence classes are only named the irst time that they are covered. Note 2: One obtains test case number 16 when one covers two invalid equivalence classes in a sinle test case. This contradicts the uidelines or usin equivalence classes, but is the only possibility or revealin ailure 5. This example shows that there is no perect method. 152

21 A.10 Instructions or structural testin as used o-line In this exercise you will test a proram named tokens. Your oal is to ind as many ailures as possible in as little time as possible. You will enerate and execute test cases with the help o the speciication and the source code. These test cases should lead to 100 percent coverae o branches and other code constructs. You will execute the test cases and then search or ailures. Isolatin aults is not part o this exercise. Guideline: In the past, similar exercises required on averae circa 70 minutes. For this exercise you will need the ollowin materials in addition to these intructions: the question sheet Structural testin, the instruction sheet Coverae criteria, and the speciication and source code or the proram tokens. At the end you will receive a sample solution. Step 1: Preparation Read over the question sheet Structural testin. Enter your identiier and answer the irst two questions. I you are unamiliar with code coverae criteria, read throuh the instructions or attainin branch coverae etc. Lo on to a computer. Create a new directory or your work, and chane into the new directory with the cd command. Fetch the necessary iles by enterin the ollowin command: tar x lott/expt/st-tokens.tar Thereater the ollowin iles must be present: Makeile ct-map run-suite test-dir tokens Step 2: Generate test cases You received the speciication and code or the proram with your materials. Read throuh both careully. (I you should notice possible aults in this or any o ollowin steps, mark them. However, please do not invest any time in a precise analysis.) Bein to enerate test data that will lead to 100% coverae o the ollowin criteria: branch coverae, loop coverae, multiple condition coverae, and relational operator coverae. A test case consists o an input and an expected output. Think careully in this step in order to save yoursel time later. Guideline: In the past, on averae 6 test cases were enerated or similar components. When you are inished with this step, enter the amount o time you required in the question sheet. Step 3: Type in the test cases In this exercise, a test driver is used to apply the test cases to the proram. The test driver reads parameter iles and invokes the proram with the parameters speciied in those iles (options, iles, etc.). I the proram requires input iles, these must be made available and mentioned in the parameter ile. Example: i the proram tokens is supposed to be 153

22 invoked with tokens < input, than the expression < input should be placed in the parameter ile. You must create not only the parameter iles but also the input iles. A test case = a parameter ile. The expressions in a parameter ile speciy one invocation o the proram or one run o the test driver. Parameter iles are named with.test as the ile suix. Input iles should be named sensibly, or example empty ; they may not, however, use the ile suix.test. The results are written into a ile. A complete test o the proram is accomplished in this way. Type in your test cases in iles under the directory test-dir. Follow the speciication o the test driver while doin so. When you are inished, enter the amount o time you needed in the question sheet. Step 4: Run test cases and enerate more Apply the test cases to the component by typin in the command run-suite. The results are in individual iles under the directory test-dir and are also summarized in a ile test-results.summary. Look at the summary o coverae with the help o the commands summary und report. For example: % summary test-dir/gctlog % report test-dir/gctlog Try to brin all coverae values up to 100% by eneratin urther tests, or convince yoursel that 100% coverae is not possible or some very ood reasons. Guideline: In the past, on averae 85% total coverae was attained or similar components. You can add new tests in directory test-dir. Ater you have chaned the test data, run the tests aain by issuin the ollowin sequence o commands: % make clean % run-suite % summary test-dir/gctlog % report test-dir/gctlog When you are inished with this step, enter the number o test cases, the coverae values attained, and the amount o time you needed in the question sheet. Print out the test results rom the ile test-results.summary. Step 5: Search or ailures Look over the results careully. Find possible ailures by comparin the expected results accordin to the speciication with the output o your test cases. Mark the detected ailures in both copies o the outputwith circles, etc. Guideline: In the past, on averae 6 ailures were detected in similar components. When you believe that you have detected all ailures, please enter the time you required in the question sheet. Complete the rest o the question sheet and hand it in with your test results. 154

23 A.11 Instructions or structural testin as used on-line For this exercise you will need the ollowin materials in addition to these intructions: the instruction sheet Coverae criteria, and the speciication and source code or the proram tokens. At the end you will receive a sample solution. 1. Lo on to a computer. Start the menu bar or the inormation system by enterin the ollowin command: lott/expt/menu-st 2. Use the menu bar to start one instance o the inormation system MVP-S. Select the project Strukturelles Testen, wherein you take on the role Test Inenieur. 3. Use the menu bar aain to start one instance o the question sheet tool. 4. Please use the inormation system or the rest o the inormation about the exercise. 155

24 Fiure A.5: MVP-S process-context window or structural testin step schritt 2 156

25 A.12 Question sheet structural testin as used o-line Your ID: Date: Note: For all time-related entries, please deduct time or pauses, etc. 1. How motivated are you or the experiment? [Please mark the scale.] Estimate Value Comparison not at little so-so pretty quite very all much abit much 2. When did you start the experiment? : [Hour:Minute] 3. How much time did you need to construct the test cases (step 2)? [Minutes] 4. How much time did you need to type in the test cases (step 3)? [Minutes] 5. How lon did the execution/eneration o test cases (step 4) require? [Minutes] 6. How many test cases did you inally enerate? [Count] 7. List the coverae values that you inally attained with your test cases: Binary branch [%], Switch [%], Loop [%], Operator Instrumentation [%], Summary o all Condition Types [%] 8. How lon did you search or ailures (step 5)? [Minutes] 9. How many dierent ailures did you ind? [Count] 10. When did you end the experiment? : [Hour:Minute] 11. Would you be inclined to perorm another iteration in order to ind more ailures? [yes, no] 12. Have you mastered unctional testin? [Please mark the scale] Estimate Value Comparison not at little so-so pretty quite very all much abit much 157

26 A.13 Question sheet structural testin as used on-line Fiure A.6 shows the on-line question sheet used by subjects who use the process-centered system to perorm structural testin. Fiure A.6: On-line question sheet used by structural testers 158

27 A.14 Explanation o coverae criteria Binary branch & switch instrumentation Fulillin the branch coverae criteria makes certain that each branch in a component was executed at least once. Branches in C prorams are created by i,?, or, while, anddo-while statements. Each o these statements creates two conditions (branches): the evaluation o the test expression must yield true once and alse once. In GCT terminoloy, this type o branch coverae is called binary branch instrumentation. Branches are also created by the switch-case construct. To test all branches, all case labels must be branched to at least once. This includes the deault label, even i it was not explicitly written in the source code. Each case label produces a sinle condition. In GCT terminoloy, this type o branch coverae is called switch instrumentation. Loop instrumentation A do-while loop creates two conditions or this criteria: one or executin the loop exactly one time, and one or executin the loop more than one time. The or and while loop add a third condition: the idea o executin the loop zero times; i.e., the test expression is alse when it is evaluated or the irst time. Multiple condition instrumentation Multiple conditions are expressions constructed usin the operators loical and (&&) and/or loical or ( ). To ulill these criteria or a two-part expression (i.e., an expression with exactly one loical operator), each side o the expression must be true once and alse once. In other words, a two-part multiple-condition expression creates our conditions: alse/alse, true/alse, alse/true, and true/true. Nested expressions create correspondinly more conditions. When checkin the coverae o multiple conditions, all expressions that evaluate to a boolean value are checked, not only the test expressions rom i statements. Relational operator instrumentation Relational operators are the operators that compare values with each other (e.., =,!=, <, <=, etc.). The relational operators (<, <=, >, >=) are oten the cause o aults, whether because o swapped operators (e.., < instead o >), incorrect use (e.., < instead o <=), or incorrect boundary values (e.., a < 99 instead o a < 100 ). A relational operator creates two (sometimes three) conditions: 1. For all operators: The let side must equal the riht side. 2. For all operators: The let side must not equal the riht side. 3. For comparisons o relative size, the ollowin boundary values should be tested: (a) For the operators <= und >: the let side must be 1 smaller than the riht side (b) For the operators >= und <: the let side must be 1 larer than the riht side Note: when you write your test cases, try to cover as much unctionality o the proram as possible with each case. This will help you avoid an unnecessarily lare number o test cases. 159

28 A.15 Speciication o proram tokens Name tokens sort and count alphanumeric tokens Usae tokens [ ai ] [ c chars ] [ m count ] Description tokens reads words rom the standard input ( stdin ). A word is a series o sequential characters rom a iven character set. This character set includes by deault the alphabetic characters A Z and a z as well as the diits 0 9. Dependin on the options (see below), the diits can be eliminated rom the character set, or other characters can be added to it. Characters that are not in the character set (e.., spaces) divide words rom each other, but are otherwise inored. At the end o the input, each word is printed exactly once with its requency o appearance in the input. Thereby the words are sorted in increasin lexicoraphic order. Options a : Allow only alphabetic characters in tokens (no diits 0 9). c chars : Allow chars to be part o tokens. i : Inore the dierence between upper and lower case by mappin all input to lower case. m count : The value count indicates the minimum requency needed or a word to be printed. Example To sort and count all alphabetical words in ile xyz : tokens -a < xyz Limits The maximum count o unique words is limited by the memory o the computer. The maximum requency count o a sinle word is limited by the lenth o an inteer. Author Gary Perlman 160

29 A.16 Source code o proram tokens The proram tokens is copyriht 1992 by Gary Perlman. Adapted with permission. =COPYRIGHT (c) Copyriht 1992 Gary Perlman = #include <stdio.h> #include <strin.h> #include <assert.h> int Inore = 0; int Mincount = 0; int Alpha = 0; char MapAllowed[256]; typede struct tnode char contents; int count; struct tnode let; struct tnode riht; TNODE; void treeprint(tree) TNODE tree; i (tree!= NULL) treeprint(tree,>let); i (tree,>count > Mincount) print("%7d\t%s\n", tree,>count, tree,>contents); treeprint(tree,>riht); TNODE install(strin, tree) char strin; TNODE tree; int cond; assert(strin!= NULL); i (tree == NULL) else i (tree = (TNODE ) calloc(1, sizeo(tnode))) tree,>contents = strdup(strin); tree,>count = 1; cond = strcmp(strin, tree,>contents); i (cond < 0) tree,>let = install(strin, tree,>let); else i (cond == 0) tree,>count++; else 161

30 return(tree); tree,>riht = install(strin, tree,>riht); char etword(ioptr) FILE ioptr; static char strin[1024]; char ptr = strin; reister int c; assert(ioptr!= NULL); or (;;) c = etc(ioptr); i (c == EOF) i (ptr == strin) return(null); else i (!MapAllowed[c]) i (ptr == strin) continue; else ptr++ = MapAllowed[c]; ptr = \0 ; return(strin); void tokens(ioptr) FILE ioptr; TNODE root = NULL; char s; assert(ioptr!= NULL); while (s = etword(ioptr)) root = install(s, root); treeprint(root); int main(arc, arv) int arc; char arv; int c, errcnt = 0; extern char optar; while ((c = etopt(arc, arv, "ac:im:"))!= EOF) switch(c) case a : Alpha=0; case c : while (optar) MapAllowed[optar] = optar; optar++; 162

31 case i : Inore = 1; case m : Mincount = atoi(optar); deault: errcnt++; i (errcnt) print(stderr, "Usae: %s [-i] [-c chars] [-m count]\n", arv); return(1); or (c = a ; c <= z ; c++) MapAllowed[c] = c; or (c = A ; c <= Z ; c++) MapAllowed[c] = Inore? c, A + a : c; i (!Alpha) or (c = 0 ; c <= 9 ; c++) MapAllowed[c] = c; tokens(stdin); return(0); 163

32 A.17 Sample solution or structural testin The component tokens has the ollowin aults and exhibits the ollowin ailures. 1. Fault in unction treeprint, line 25: The symbol > should be >=. Causes ailure: I a boundary value n is iven with the -m arument, the value n + 1is used instead o just n. 2. Fault in unction etword, line 64/77: The lenth o the input is not checked. Causes ailure: The proram dumps core i a very lon word is read. 3. Fault in unction main, line 97 (circa): The array MapAllowed is never initialized. Causes ailure: Compiler-dependent; non-alphanumeric symbols could be mistakenly accepted. 4. Fault in unction main, line 101: The variable Alpha is initialized with 0 instead o 1. Causes ailure: The arument -a has no eect. 5. Fault in unction main, line 110: The proram does not check whether a valid number was supplied. Causes ailure: Invalid numbers are accepted without an error messae. 6. Fault in unction main, line 115: The arument -a is not part o the usae messae. Causes ailure: The help messae says nothin about the -a arument. The ollowin test cases attain the maximum possible coverae values or the proram. 1. Test case: Unknown option Invocation with: -q Input: none Expected output: Error messae, usae messae or the proram. 2. Test case: No options, empty ile. Invocation with: Input: none. Expected output: < /dev/null none. 3. Test case: One option, empty ile. Invocation with: -c < /dev/null Input: none. Expected output: : none. 4. Test case: Few options, very short ile. Invocation with: -c / < shortile 164

33 Input: A ile named shortile with the sinle word nonl and no urther characters beore the end o the ile; i.e., no so-called newline. Expected output: The ollowin sinle line: 1 nonl 5. Test case: Many options, short ile. Invocation with: -a -i -c /. -m 1 < inile Input: A ile named inile with the ollowin entries: word1 word1 word1 word2 word2 b a Expected output: The ollowin lines: 1a 1b 3 word1 2 word2 End o the necessary test cases. 165

34 The ollowin coverae values result rom executin the test cases listed above. % summary test-dir/gctlog BINARY BRANCH INSTRUMENTATION (38 conditions total) 2 ( 5.26%) not satisied. 36 (94.74%) ully satisied. SWITCH INSTRUMENTATION (5 conditions total) 0 ( 0.00%) not satisied. 5 (100.00%) ully satisied. LOOP INSTRUMENTATION (21 conditions total) 7 (33.33%) not satisied. 14 (66.67%) ully satisied. OPERATOR INSTRUMENTATION (15 conditions total) 0 ( 0.00%) not satisied. 15 (100.00%) ully satisied. SUMMARY OF ALL CONDITION TYPES (79 total) 9 (11.39%) not satisied. 70 (88.61%) ully satisied. The values that are less than 100% can be explained urther usin the command report. That command yields the ollowin output: % report test-dir/gctlog "tokens.c", line 38: i was taken TRUE 5, FALSE 0 times. "tokens.c", line 64: loop zero times: 0, one time: 3, many times: 8. "tokens.c", line 118: loop zero times: 0, one time: 0, many times: 3. "tokens.c", line 120: loop zero times: 0, one time: 0, many times: 3. "tokens.c", line 122: i was taken TRUE 3, FALSE 0 times. "tokens.c", line 123: loop zero times: 0, one time: 0, many times: 3. Better coverae value cannot be obtained, as discussed below: [Line 38:] This i -condition tests whether calloc actually allocated memory. It is diicult to cause calloc to ail, especially or users who are not amiliar with the shell s limit command. [Line 64:] This is a loop with empty start and termination criteria. Thereore this loop is always executed at least once. [Lines 118, 120, and 123:] These or loops have hard-coded, ixed termination criteria, and are always executed more than once. [Line 122:] This i condition is always true due to a ault in the proram (the Alpha variable is not assined a value). 166

35 A.18 Observer s data sheet Subject s ID: Date: 1. How lon did the subject wait to report results, either on-line by manipulatin the eedback system or o-line by recordin inormation? 2. How well did the subject comprehend the process that s/he was perormin when asked? I.e., how well did the subject reply when asked about the inputs, outputs, and exit criteria o the process? 3. How lon did the subject wait to report data about a completed process? 4. How well did the subject conorm to the prescribed process? Was the process ollowed aithully? 5. Other comments. 167

36 A.19 Debriein questionnaire Your ID: Date: You have taken part in an experiment that compared the use o process inormation on paper with process inormation on the screen. Please enter your opinions about this experiment below. Naturally you can use the reverse side or additional sheets. 1. Was suicient inormation provided to perorm the exercises? 2. Did you eel that the instructions were too restrictive or the work? Please explain. 3. How helpul were the quantitative uidelines? How did you use them? 4. What did you like better, workin with instructions on paper or on the screen? Please justiy your opinion! 5. Would you preer enterin data on a conventional data-collection orm or on the screen? Why? 168

37 6. How understandable were the instructions? Were the instructions made more or less understandable by movin them onto the computer screen? 7. Would a raphical or other non-text version o the instructions have been better, or was the textual description best suited or the oal o understandin the exercise? 8. Other comments? 169

38 170

From Java to C A Supplement to Computer Algorithms, Third Edition. Sara Baase Allen Van Gelder

From Java to C A Supplement to Computer Algorithms, Third Edition. Sara Baase Allen Van Gelder From Java to C A Supplement to Computer Alorithms, Third Edition Sara Baase Allen Van Gelder October 30, 2004 ii clcopyriht 2000, 2001 Sara Baase and Allen Van Gelder. All rihts reserved. This document

More information

Status. We ll do code generation first... Outline

Status. We ll do code generation first... Outline Status Run-time Environments Lecture 11 We have covered the ront-end phases Lexical analysis Parsin Semantic analysis Next are the back-end phases Optimization Code eneration We ll do code eneration irst...

More information

a<b x = x = c!=d = y x = = x false true

a<b x = x = c!=d = y x = = x false true 1 Introduction 1.1 Predicated execution Predicated execution [HD86, RYYT89, DT93, KSR93] is an architectural model in which each operation is uarded by a boolean operand whose value determines whether

More information

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado A SUIF Interace Module or Eli W. M. Waite Department o Electrical and Computer Enineerin University o Colorado William.Waite@Colorado.edu 1 What is Eli? Eli [2] is a domain-specic prorammin environment

More information

Image Fusion for Enhanced Vision System using Laplacian Pyramid

Image Fusion for Enhanced Vision System using Laplacian Pyramid Imae Fusion or Enhanced Vision System usin aplacian Pyramid Abhilash G, T.V. Rama Murthy Department o ECE REVA Institute o Technoloy and Manaement Banalore-64, India V. P. S Naidu MSDF ab, FMCD, CSIR-National

More information

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem Perormance and Overhead Measurements on the Makbilan Yosi Ben-Asher Dror G. Feitelson Dtment o Computer Science The Hebrew University o Jerusalem 91904 Jerusalem, Israel E-mail: yosi,dror@cs.huji.ac.il

More information

Improving Computer Security using Extended Static Checking

Improving Computer Security using Extended Static Checking Improvin Computer Security usin Extended Static Checkin Brian V. Chess Department o Computer Enineerin University o Caliornia, Santa Cruz Abstract We describe a method or indin security laws in source

More information

Linear Network Coding

Linear Network Coding IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 49, NO. 2, FEBRUARY 2003 371 Linear Network Codin Shuo-Yen Robert Li, Senior Member, IEEE, Raymond W. Yeun, Fellow, IEEE, Nin Cai Abstract Consider a communication

More information

2. Getting Started with the Graphical User Interface

2. Getting Started with the Graphical User Interface February 2011 NII52017-10.1.0 2. Getting Started with the Graphical User Interace NII52017-10.1.0 The Nios II Sotware Build Tools (SBT) or Eclipse is a set o plugins based on the popular Eclipse ramework

More information

OCC and Its Variants. Jan Lindström. Helsinki 7. November Seminar on real-time systems UNIVERSITY OF HELSINKI. Department of Computer Science

OCC and Its Variants. Jan Lindström. Helsinki 7. November Seminar on real-time systems UNIVERSITY OF HELSINKI. Department of Computer Science OCC and Its Variants Jan Lindström Helsinki 7. November 1997 Seminar on real-time systems UNIVERSITY OF HELSINKI Department o Computer Science Contents 1 Introduction 1 2 Optimistic Concurrency Control

More information

A Nearest Neighbor Method for Efficient ICP

A Nearest Neighbor Method for Efficient ICP A Nearest Neihbor Method or Eicient ICP Michael Greenspan Guy Godin Visual Inormation Technoloy Group Institute or Inormation Technoloy, National Research Council Canada Bld. M50, 1500 Montreal Rd., Ottawa,

More information

Section II. Nios II Software Development

Section II. Nios II Software Development Section II. Nios II Sotware Development This section o the Embedded Design Handbook describes how to most eectively use the Altera tools or embedded system sotware development, and recommends design styles

More information

Composite functions. [Type the document subtitle] Composite functions, working them out.

Composite functions. [Type the document subtitle] Composite functions, working them out. Composite unctions [Type the document subtitle] Composite unctions, workin them out. luxvis 11/19/01 Composite Functions What are they? In the real world, it is not uncommon or the output o one thin to

More information

FPGA Technology Mapping: A Study of Optimality

FPGA Technology Mapping: A Study of Optimality FPGA Technoloy Mappin: A Study o Optimality Andrew Lin Department o Electrical and Computer Enineerin University o Toronto Toronto, Canada alin@eec.toronto.edu Deshanand P. Sinh Altera Corporation Toronto

More information

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto MetaTeD A Meta Lanuae or Modelin Telecommunication Networks Kalyan S. Perumalla and Richard M. Fujimoto (kalyan@cc.atech.edu and ujimoto@cc.atech.edu) Collee o Computin Georia Institute o Technoloy Atlanta,

More information

Thread-based vs Event-based Implementation of a Group Communication Service

Thread-based vs Event-based Implementation of a Group Communication Service Thread-based vs Event-based Implementation o a Group Communication Service Shivakant Mishra and Ronuan Yan Department o Computer Science University o Wyomin, P.O. Box 3682 Laramie, WY 8271-3682, USA. Email:

More information

A Classification System and Analysis for Aspect-Oriented Programs

A Classification System and Analysis for Aspect-Oriented Programs A Classiication System and Analysis or Aspect-Oriented Programs Martin Rinard, Alexandru Sălcianu, and Suhabe Bugrara Massachusetts Institute o Technology Cambridge, MA 02139 ABSTRACT We present a new

More information

Global Constraints. Combinatorial Problem Solving (CPS) Enric Rodríguez-Carbonell (based on materials by Javier Larrosa) February 22, 2019

Global Constraints. Combinatorial Problem Solving (CPS) Enric Rodríguez-Carbonell (based on materials by Javier Larrosa) February 22, 2019 Global Constraints Combinatorial Problem Solving (CPS) Enric Rodríguez-Carbonell (based on materials by Javier Larrosa) February 22, 2019 Global Constraints Global constraints are classes o constraints

More information

RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract

RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract RE2C { A More Versatile Scanner Generator Peter Bumbulis Donald D. Cowan Computer Science Department and Computer Systems Group University o Waterloo April 15, 1994 Abstract It is usually claimed that

More information

B.31 Specification for program ntree (Document ES7)

B.31 Specification for program ntree (Document ES7) ISERN 95 02 B.31 Specification for program ntree (Document ES7) B.31 Specification for program ntree (Document ES7) Name ntree Functions for managing a tree Usage ntree input-file Description ntree reads

More information

2. Recommended Design Flow

2. Recommended Design Flow 2. Recommended Design Flow This chapter describes the Altera-recommended design low or successully implementing external memory interaces in Altera devices. Altera recommends that you create an example

More information

A Rigorous Correctness Proof of a Tomasulo Scheduler Supporting Precise Interrupts

A Rigorous Correctness Proof of a Tomasulo Scheduler Supporting Precise Interrupts A Riorous Correctness Proo o a Tomasulo Scheduler Supportin Precise Interrupts Daniel Kroenin Λ, Silvia M. Mueller y, and Wolan J. Paul Dept. 14: Computer Science, University o Saarland, Post Box 151150,

More information

10. SOPC Builder Component Development Walkthrough

10. SOPC Builder Component Development Walkthrough 10. SOPC Builder Component Development Walkthrough QII54007-9.0.0 Introduction This chapter describes the parts o a custom SOPC Builder component and guides you through the process o creating an example

More information

9. Reviewing Printed Circuit Board Schematics with the Quartus II Software

9. Reviewing Printed Circuit Board Schematics with the Quartus II Software November 2012 QII52019-12.1.0 9. Reviewing Printed Circuit Board Schematics with the Quartus II Sotware QII52019-12.1.0 This chapter provides guidelines or reviewing printed circuit board (PCB) schematics

More information

#prama omp or or( int i=0; i<n; i++ ) process( data[i] ); nodeptr list, p;... Fiure 1: The OpenMP or Prama or( p=list; p!=null; p=p->next ) process(p-

#prama omp or or( int i=0; i<n; i++ ) process( data[i] ); nodeptr list, p;... Fiure 1: The OpenMP or Prama or( p=list; p!=null; p=p->next ) process(p- Flexible Control Structures or Parallelism in OpenMP Sanjiv Shah, Grant Haab, Paul Petersen, & Joe Throop Kuck & Associates, Incorporated 1906 Fox Drive Champain, IL 61820 http://www.kai.com sanjiv,rant,petersen,jthroop@kai.com

More information

Formalizing Cardinality-based Feature Models and their Staged Configuration

Formalizing Cardinality-based Feature Models and their Staged Configuration Formalizing Cardinality-based Feature Models and their Staged Coniguration Krzyszto Czarnecki, Simon Helsen, and Ulrich Eisenecker 2 University o Waterloo, Canada 2 University o Applied Sciences Kaiserslautern,

More information

Using VCS with the Quartus II Software

Using VCS with the Quartus II Software Using VCS with the Quartus II Sotware December 2002, ver. 1.0 Application Note 239 Introduction As the design complexity o FPGAs continues to rise, veriication engineers are inding it increasingly diicult

More information

Larger K-maps. So far we have only discussed 2 and 3-variable K-maps. We can now create a 4-variable map in the

Larger K-maps. So far we have only discussed 2 and 3-variable K-maps. We can now create a 4-variable map in the EET 3 Chapter 3 7/3/2 PAGE - 23 Larger K-maps The -variable K-map So ar we have only discussed 2 and 3-variable K-maps. We can now create a -variable map in the same way that we created the 3-variable

More information

THE FINANCIAL CALCULATOR

THE FINANCIAL CALCULATOR Starter Kit CHAPTER 3 Stalla Seminars THE FINANCIAL CALCULATOR In accordance with the AIMR calculator policy in eect at the time o this writing, CFA candidates are permitted to use one o two approved calculators

More information

COMS W4705, Spring 2015: Problem Set 2 Total points: 140

COMS W4705, Spring 2015: Problem Set 2 Total points: 140 COM W4705, pring 2015: Problem et 2 Total points: 140 Analytic Problems (due March 2nd) Question 1 (20 points) A probabilistic context-ree grammar G = (N, Σ, R,, q) in Chomsky Normal Form is deined as

More information

Chapter 4. Coding systems. 4.1 Binary codes Gray (reflected binary) code

Chapter 4. Coding systems. 4.1 Binary codes Gray (reflected binary) code Chapter 4 Codin systems Codin systems define how information is mapped to numbers. Different codin systems try to store/transmit information more efficiently [Sec. 4.], or protect it from damae while it

More information

Research Article Synthesis of Test Scenarios Using UML Sequence Diagrams

Research Article Synthesis of Test Scenarios Using UML Sequence Diagrams International Scholarly Research Network ISRN Sotware Engineering Volume 2012, Article ID 324054, 22 pages doi:10.5402/2012/324054 Research Article Synthesis o Test Scenarios Using UML Sequence Diagrams

More information

Keysight Technologies Specifying Calibration Standards and Kits for Keysight Vector Network Analyzers. Application Note

Keysight Technologies Specifying Calibration Standards and Kits for Keysight Vector Network Analyzers. Application Note Keysight Technologies Speciying Calibration Standards and Kits or Keysight Vector Network Analyzers Application Note Introduction Measurement errors in network analysis can be separated into two categories:

More information

Lab 9 - GEOMETRICAL OPTICS

Lab 9 - GEOMETRICAL OPTICS 161 Name Date Partners Lab 9 - GEOMETRICAL OPTICS OBJECTIVES Optics, developed in us through study, teaches us to see - Paul Cezanne Image rom www.weidemyr.com To examine Snell s Law To observe total internal

More information

foldr CS 5010 Program Design Paradigms Lesson 5.4

foldr CS 5010 Program Design Paradigms Lesson 5.4 oldr CS 5010 Program Design Paradigms Lesson 5.4 Mitchell Wand, 2012-2014 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. 1 Introduction In this lesson,

More information

Connecting Definition and Use? Tiger Semantic Analysis. Symbol Tables. Symbol Tables (cont d)

Connecting Definition and Use? Tiger Semantic Analysis. Symbol Tables. Symbol Tables (cont d) Tiger source program Tiger Semantic Analysis lexical analyzer report all lexical errors token get next token parser construct variable deinitions to their uses report all syntactic errors absyn checks

More information

ARCS LIGHTNING PROGRAMMER S REFERENCE, VERSION February 2000 Stephentown, New York

ARCS LIGHTNING PROGRAMMER S REFERENCE, VERSION February 2000 Stephentown, New York ARCS LIGHTNING PROGRAMMER S REFERENCE, VERSION 1.0 3 February 2000 Stephentown, New York cl Copyriht 2000 by Advanced Realtime Control Systems, Inc. All Rihts Reserved ii Contents 1 Gettin Started 1 1.1

More information

mga in C: A Messy Genetic Algorithm in C Kalyanmoy Deb and David E. Goldberg University of Illinois at Urbana-Champaign Urbana, IL 61801

mga in C: A Messy Genetic Algorithm in C Kalyanmoy Deb and David E. Goldberg University of Illinois at Urbana-Champaign Urbana, IL 61801 mga in C: A Messy Genetic Alorithm in C Kalyanmoy Deb and David E. Goldber Department o General Enineerin University o Illinois at Urbana-Champain Urbana, IL 61801 IlliGAL Report No. 91008 September 1991

More information

Reflection and Refraction

Reflection and Refraction Relection and Reraction Object To determine ocal lengths o lenses and mirrors and to determine the index o reraction o glass. Apparatus Lenses, optical bench, mirrors, light source, screen, plastic or

More information

2. Design Planning with the Quartus II Software

2. Design Planning with the Quartus II Software November 2013 QII51016-13.1.0 2. Design Planning with the Quartus II Sotware QII51016-13.1.0 This chapter discusses key FPGA design planning considerations, provides recommendations, and describes various

More information

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University ommunication Networks (0368-3030) / Sprin 0 The lavatnik School o omputer Science, Tel-viv University llon Waner urose & Ross, hapters 5.5-5.6 (5 th ed.) Tanenbaum & Wetherall, hapters 4.3.4 4.3.8 (5 th

More information

Compiler construction

Compiler construction This lecture Compiler construction Lecture 5: Project etensions Magnus Mreen Spring 2018 Chalmers Universit o Technolog Gothenburg Universit Some project etensions: Arras Pointers and structures Object-oriented

More information

CS 161: Design and Analysis of Algorithms

CS 161: Design and Analysis of Algorithms CS 161: Design and Analysis o Algorithms Announcements Homework 3, problem 3 removed Greedy Algorithms 4: Human Encoding/Set Cover Human Encoding Set Cover Alphabets and Strings Alphabet = inite set o

More information

9.8 Graphing Rational Functions

9.8 Graphing Rational Functions 9. Graphing Rational Functions Lets begin with a deinition. Deinition: Rational Function A rational unction is a unction o the orm P where P and Q are polynomials. Q An eample o a simple rational unction

More information

B.43 Specification for program nametbl (Document ES9)

B.43 Specification for program nametbl (Document ES9) ISERN 95 02 B.43 Specification for program nametbl (Document ES9) B.43 Specification for program nametbl (Document ES9) Name nametbl Functions for a symbol table Usage nametbl input-file Description nametbl

More information

A Proposed Approach for Solving Rough Bi-Level. Programming Problems by Genetic Algorithm

A Proposed Approach for Solving Rough Bi-Level. Programming Problems by Genetic Algorithm Int J Contemp Math Sciences, Vol 6, 0, no 0, 45 465 A Proposed Approach or Solving Rough Bi-Level Programming Problems by Genetic Algorithm M S Osman Department o Basic Science, Higher Technological Institute

More information

A Series Lighting Controller Modbus Register Map

A Series Lighting Controller Modbus Register Map DEH41097 Rev. 3 g A Series Lighting Control Panelboards A Series Lighting Controller Modbus Register Map Table o Contents Introduction...1 RTU Transmission Mode...1 Message rame...1 RTU Mode Message Frames...1

More information

Efficient and Provably Secure Ciphers for Storage Device Block Level Encryption

Efficient and Provably Secure Ciphers for Storage Device Block Level Encryption Efficient and Provably Secure Ciphers for Storae Device Block evel Encryption Yulian Zhen SIS Department, UNC Charlotte yzhen@uncc.edu Yone Wan SIS Department, UNC Charlotte yonwan@uncc.edu ABSTACT Block

More information

A Requirement Specification Language for Configuration Dynamics of Multiagent Systems

A Requirement Specification Language for Configuration Dynamics of Multiagent Systems A Requirement Speciication Language or Coniguration Dynamics o Multiagent Systems Mehdi Dastani, Catholijn M. Jonker, Jan Treur* Vrije Universiteit Amsterdam, Department o Artiicial Intelligence, De Boelelaan

More information

A Fault Model Centered Modeling Framework for Self-healing Computing Systems

A Fault Model Centered Modeling Framework for Self-healing Computing Systems A Fault Model Centered Modeling Framework or Sel-healing Computing Systems Wei Lu 1, Yian Zhu 1, Chunyan Ma 1, and Longmei Zhang 2 1 Department o Sotware and Microelectronics, Northwestern Polytechnical

More information

x y x mod p g y mod p K= g xy mod p Alice Eve Bob g g x mod p x mod p g y y mod p y mod p K1= g mod p K2= g mod p

x y x mod p g y mod p K= g xy mod p Alice Eve Bob g g x mod p x mod p g y y mod p y mod p K1= g mod p K2= g mod p 6.857 Computer and Network Security Fall Term, 1997 Lecture 15 : October 23rd, 1997 Lecturer: Ron Rivest Scribe: Ben Adida 1 Topics Covered An Active Attack on RSA smart cards Secure Channels over Insecure

More information

MATRIX ALGORITHM OF SOLVING GRAPH CUTTING PROBLEM

MATRIX ALGORITHM OF SOLVING GRAPH CUTTING PROBLEM UDC 681.3.06 MATRIX ALGORITHM OF SOLVING GRAPH CUTTING PROBLEM V.K. Pogrebnoy TPU Institute «Cybernetic centre» E-mail: vk@ad.cctpu.edu.ru Matrix algorithm o solving graph cutting problem has been suggested.

More information

SUPER RESOLUTION IMAGE BY EDGE-CONSTRAINED CURVE FITTING IN THE THRESHOLD DECOMPOSITION DOMAIN

SUPER RESOLUTION IMAGE BY EDGE-CONSTRAINED CURVE FITTING IN THE THRESHOLD DECOMPOSITION DOMAIN SUPER RESOLUTION IMAGE BY EDGE-CONSTRAINED CURVE FITTING IN THE THRESHOLD DECOMPOSITION DOMAIN Tsz Chun Ho and Bing Zeng Department o Electronic and Computer Engineering The Hong Kong University o Science

More information

AN 459: Guidelines for Developing a Nios II HAL Device Driver

AN 459: Guidelines for Developing a Nios II HAL Device Driver AN 459: Guidelines or Developing a Nios II HAL Device Driver November 2008 AN-459-2.0 Introduction This application note explains the process o developing and debugging a hardware abstraction layer (HAL)

More information

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0 Masters Examination Department of Computer Science October 3, 998 Instructions This examination consists of nine problems. The questions are in three areas:. Theory and Alorithms: CSc 473, 545, and 573;

More information

2 CHAPTR 1. BOTTOM UP PARSING 1. S ::= 4. T ::= T* F 2. ::= +T 5. j F 3. j T 6. F ::= 7. j Fiure 1.1: Our Sample Grammar for Bottom Up Parsin Our beli

2 CHAPTR 1. BOTTOM UP PARSING 1. S ::= 4. T ::= T* F 2. ::= +T 5. j F 3. j T 6. F ::= 7. j Fiure 1.1: Our Sample Grammar for Bottom Up Parsin Our beli Chapter 1 Bottom Up Parsin The key diæculty with top-down parsin is the requirement that the rammar satisfy the LL1 property. You will recall that this entailed knowin, when you are facin the token that

More information

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton Compiler support or an RMI implementation usin NexusJava Fabian Bre Dennis Gannon December 16, 1997 1 Introduction Java [7] is a portable, object oriented prorammin lanuae. Its portability is obtained

More information

UNIT #2 TRANSFORMATIONS OF FUNCTIONS

UNIT #2 TRANSFORMATIONS OF FUNCTIONS Name: Date: UNIT # TRANSFORMATIONS OF FUNCTIONS Part I Questions. The quadratic unction ollowing does,, () has a turning point at have a turning point? 7, 3, 5 5, 8. I g 7 3, then at which o the The structure

More information

A Cell Burst Scheduling for ATM Networking Part II: Implementation

A Cell Burst Scheduling for ATM Networking Part II: Implementation A Cell Burst Schedulin or ATM Networkin Part II: Implementation C. Tan, A. T. Chronopoulos, Senior Member, IEEE Computer Science Department Wayne State University email:ctan, chronos@cs.wayne.edu E. Yaprak,

More information

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract Dartmouth Collee Computer Science Technical Report PCS-TR96-299 A Critique o the Telecommunication Description Lanuae (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu Department o Computer Science Dartmouth

More information

Section III. Advanced Programming Topics

Section III. Advanced Programming Topics Section III. Advanced Programming Topics This section provides inormation about several advanced embedded programming topics. It includes the ollowing chapters: Chapter 8, Exception Handling Chapter 9,

More information

Reducing the Bandwidth of a Sparse Matrix with Tabu Search

Reducing the Bandwidth of a Sparse Matrix with Tabu Search Reducing the Bandwidth o a Sparse Matrix with Tabu Search Raael Martí a, Manuel Laguna b, Fred Glover b and Vicente Campos a a b Dpto. de Estadística e Investigación Operativa, Facultad de Matemáticas,

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

Backwards-compatible bounds checking for arrays and pointers in C. programs. Richard W M Jones and Paul H J Kelly. Department of Computing

Backwards-compatible bounds checking for arrays and pointers in C. programs. Richard W M Jones and Paul H J Kelly. Department of Computing Backwards-compatible bounds checkin or arrays and pointers in C prorams Richard W M Jones and Paul H J Kelly Department o Computin Imperial Collee o Science, Technoloy and Medicine 180 Queen's Gate, London

More information

Automated Planning for Feature Model Configuration based on Functional and Non-Functional Requirements

Automated Planning for Feature Model Configuration based on Functional and Non-Functional Requirements Automated Planning or Feature Model Coniguration based on Functional and Non-Functional Requirements Samaneh Soltani 1, Mohsen Asadi 1, Dragan Gašević 2, Marek Hatala 1, Ebrahim Bagheri 2 1 Simon Fraser

More information

Neighbourhood Operations

Neighbourhood Operations Neighbourhood Operations Neighbourhood operations simply operate on a larger neighbourhood o piels than point operations Origin Neighbourhoods are mostly a rectangle around a central piel Any size rectangle

More information

2.3 Additional Relations

2.3 Additional Relations 3 2.3 Additional Relations Figure 2.3 identiies additional relations, indicating te locations o te object and image, and te ratio o teir eigts (magniication) and orientations. Ray enters te lens parallel

More information

Intelligent knowledge-based system for the automated screwing process control

Intelligent knowledge-based system for the automated screwing process control Intelligent knowledge-based system or the automated screwing process control YULIYA LEBEDYNSKA yuliya.lebedynska@tu-cottbus.de ULRICH BERGER Chair o automation Brandenburg University o Technology Cottbus

More information

ECE264 Spring 2013 Final Exam, April 30, 2013

ECE264 Spring 2013 Final Exam, April 30, 2013 ECE264 Spring 2013 Final Exam, April 30, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing

More information

Pre-defined class JFrame. Object & Class an analogy

Pre-defined class JFrame. Object & Class an analogy CS1M Lecture 17 Mar 29, 25 1 Announcements: Project 4 due Sunda 4/3 at 6pm Use Keboard class or reading input Section in classrooms this week Previous Lecture: Selection statement Reading input using Keboard

More information

GEOMETRICAL OPTICS OBJECTIVES

GEOMETRICAL OPTICS OBJECTIVES Geometrical Optics 207 Name Date Partners OBJECTIVES OVERVIEW GEOMETRICAL OPTICS To examine Snell s Law and observe total internal relection. To understand and use the lens equations. To ind the ocal length

More information

Agenda. Peer Instruction Question 1. Peer Instruction Answer 1. Peer Instruction Question 2 6/22/2011

Agenda. Peer Instruction Question 1. Peer Instruction Answer 1. Peer Instruction Question 2 6/22/2011 CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part II) Instructors: Randy H. Katz David A. Patterson http://inst.eecs.berkeley.edu/~cs61c/sp11 Spring 2011 -- Lecture

More information

Binary recursion. Unate functions. If a cover C(f) is unate in xj, x, then f is unate in xj. x

Binary recursion. Unate functions. If a cover C(f) is unate in xj, x, then f is unate in xj. x Binary recursion Unate unctions! Theorem I a cover C() is unate in,, then is unate in.! Theorem I is unate in,, then every prime implicant o is unate in. Why are unate unctions so special?! Special Boolean

More information

Decision Support Systems for E-Purchasing using Case-Based Reasoning and Rating Based Collaborative Filtering

Decision Support Systems for E-Purchasing using Case-Based Reasoning and Rating Based Collaborative Filtering Decision Support Systems or E-Purchasing using Case-Based Reasoning and Rating Based Collaborative Filtering ABSTRACT The amount o trade conducted electronically has grown dramatically since the wide introduction

More information

Imitation: An Alternative to Generalization in Programming by Demonstration Systems

Imitation: An Alternative to Generalization in Programming by Demonstration Systems Imitation: An Alternative to Generalization in Prorammin by Demonstration Systems Technical Report UW-CSE-98-08-06 Amir Michail University of Washinton amir@cs.washinton.edu http://www.cs.washinton.edu/homes/amir/opsis.html

More information

Coarse Grained Parallel Maximum Matching In Convex Bipartite Graphs

Coarse Grained Parallel Maximum Matching In Convex Bipartite Graphs Coarse Grained Parallel Maximum Matchin In Convex Bipartite Graphs P. Bose, A. Chan, F. Dehne, and M. Latzel School o Computer Science Carleton University Ottawa, Canada K1S 5B6 jit,achan,dehne,mlatzel@scs.carleton.ca

More information

Lecture 8: C language

Lecture 8: C language Lecture 8: C lanuae History of C Structure of a C proram C data types Variable declaration and scope C operators Loops and iterations Pointers Structures in C C and assembly lanuae Microprocessor-based

More information

Bus-Based Communication Synthesis on System-Level

Bus-Based Communication Synthesis on System-Level Bus-Based Communication Synthesis on System-Level Michael Gasteier Manfred Glesner Darmstadt University of Technoloy Institute of Microelectronic Systems Karlstrasse 15, 64283 Darmstadt, Germany Abstract

More information

Centrum voor Wiskunde en Informatica REPORTRAPPORT. Manifold Version 1.0 Programming: Programs and Problems

Centrum voor Wiskunde en Informatica REPORTRAPPORT. Manifold Version 1.0 Programming: Programs and Problems Centrum voor Wiskunde en Inormatica REPORTRAPPORT Maniold Version 1.0 Prorammin: Prorams and Problems C.L. Blom Computer ScienceDepartment o Interactive Systems CS-R9334 1993 Centrum voor Wiskunde en

More information

MAPI Computer Vision. Multiple View Geometry

MAPI Computer Vision. Multiple View Geometry MAPI Computer Vision Multiple View Geometry Geometry o Multiple Views 2- and 3- view geometry p p Kpˆ [ K R t]p Geometry o Multiple Views 2- and 3- view geometry Epipolar Geometry The epipolar geometry

More information

FSM ENCODING FOR BDD REPRESENTATIONS

FSM ENCODING FOR BDD REPRESENTATIONS Int. J. Appl. Math. Comput. Sci., 27, Vol. 7, No., 3 28 DOI:.2478/v6-7--6 FSM ENCODING FOR BDD REPRESENTATIONS WILSIN GOSTI, TIZIANO VILLA,, ALEX SALDANHA, ALBERTO L. SANGIOVANNI-VINCENTELLI, Cadence Desin

More information

Message authentication

Message authentication Message authentication -- Reminder on hash unctions -- MAC unctions hash based block cipher based -- Digital signatures (c) Levente Buttyán (buttyan@crysys.hu) Hash unctions a hash unction is a unction

More information

Managing IIS with PowerShell

Managing IIS with PowerShell 3 Managing IIS with PowerShell In this chapter we will cover the ollowing recipes: Installing and coniguring IIS Coniguring IIS or SSL Coniguring a Central Certiicate Store Coniguring IIS bindings Coniguring

More information

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

A Flexible Integration Strategy for In-Car Telematics Systems

A Flexible Integration Strategy for In-Car Telematics Systems A Flexible Interation Stratey for In-Car Telematics Systems Thomas Bauer Jens Herrmann Peter Liesmeyer Christopher Robinson-Mallett University of Potsdam Hasso-Plattner-Institute thomas.bauer @hpi.uni-potsdam.de

More information

Fast Focus Mechanism Using a Pair of Convergent and Divergent Lenses Differentially for Three-dimensional Imaging

Fast Focus Mechanism Using a Pair of Convergent and Divergent Lenses Differentially for Three-dimensional Imaging 5-1 MVA2011 IAPR Conerence on Machine Vision Applications, June 13-15, 2011, Nara, JAPAN Fast Focus Mechanism Usin a Pair o Converent and Diverent Lenses Dierentially or Three-dimensional Imain Akira Ishii

More information

9.3 Transform Graphs of Linear Functions Use this blank page to compile the most important things you want to remember for cycle 9.

9.3 Transform Graphs of Linear Functions Use this blank page to compile the most important things you want to remember for cycle 9. 9. Transorm Graphs o Linear Functions Use this blank page to compile the most important things you want to remember or cycle 9.: Sec Math In-Sync by Jordan School District, Utah is licensed under a 6 Function

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

Bright Advance Corporation USER INSTRUCTIONS

Bright Advance Corporation USER INSTRUCTIONS Briht Advance Corporation USER INSTRUCTIONS Weihin Scale Briht Advance Corporation TABLE OF CONTENTS BEFORE USING THE SCALE2 PREPARING TO USE THE SCALE2 LCD DISPLAY3 KEYBOARD FUNCTION4 OPERATION5 1 DISPLAY

More information

Generell Topologi. Richard Williamson. May 6, 2013

Generell Topologi. Richard Williamson. May 6, 2013 Generell Topologi Richard Williamson May 6, Thursday 7th January. Basis o a topological space generating a topology with a speciied basis standard topology on R examples Deinition.. Let (, O) be a topological

More information

Balanced Multiresolution for Symmetric/Antisymmetric Filters

Balanced Multiresolution for Symmetric/Antisymmetric Filters Balanced Multiresolution or Symmetric/Antisymmetric Filters Mahmudul Hasan Faramarz F. Samavati Mario C. Sousa Department o Computer Science University o Calgary Alberta Canada {mhasan samavati smcosta}@ucalgary.ca

More information

Chapter 5 THE MODULE FOR DETERMINING AN OBJECT S TRUE GRAY LEVELS

Chapter 5 THE MODULE FOR DETERMINING AN OBJECT S TRUE GRAY LEVELS Qian u Chapter 5. Determinin an Object s True Gray evels 3 Chapter 5 THE MODUE OR DETERMNNG AN OJECT S TRUE GRAY EVES This chapter discusses the module for determinin an object s true ray levels. To compute

More information

CS 416: Operating Systems Design March 9, 2015

CS 416: Operating Systems Design March 9, 2015 Page translation Operating Systems 10. Memory Management Part 2 Paging Page number, p Displacement (oset), d = page_table[p] Page Paul Krzyzanowski Rutgers University Spring 2015 CPU Logical address p

More information

Skill Sets Chapter 5 Functions

Skill Sets Chapter 5 Functions Skill Sets Chapter 5 Functions No. Skills Examples o questions involving the skills. Sketch the graph o the (Lecture Notes Example (b)) unction according to the g : x x x, domain. x, x - Students tend

More information

x = 3 * y + 1; // x becomes 3 * y + 1 a = b = 0; // multiple assignment: a and b both get the value 0

x = 3 * y + 1; // x becomes 3 * y + 1 a = b = 0; // multiple assignment: a and b both get the value 0 6 Statements 43 6 Statements The statements of C# do not differ very much from those of other programming languages. In addition to assignments and method calls there are various sorts of selections and

More information

Magical Least Squares - or When is One Least Squares Adjustment Better Than Another?

Magical Least Squares - or When is One Least Squares Adjustment Better Than Another? Magical Least Squares - or When is One Least Squares Adjustment Better Than Another? Earl F. Burkholder, PS, PE NMSU Dept o Sureying Engineering Las Cruces, NM 883 September 25 Introduction Least squares

More information

pp , John Wiley and Sons, 1991 No. 3, 1994, pp , Victoria, 1994 Vol. 37, No. 5, pp Baltimore, 1993 pp.

pp , John Wiley and Sons, 1991 No. 3, 1994, pp , Victoria, 1994 Vol. 37, No. 5, pp Baltimore, 1993 pp. termediate representation used is much simpler than a ull UI specication lanuae. We have also proposed to populate automatically the taret GUI builder space thus allowin desiners/developers to ully exploit

More information

AN 608: HST Jitter and BER Estimator Tool for Stratix IV GX and GT Devices

AN 608: HST Jitter and BER Estimator Tool for Stratix IV GX and GT Devices AN 608: HST Jitter and BER Estimator Tool or Stratix IV GX and GT Devices July 2010 AN-608-1.0 The high-speed communication link design toolkit (HST) jitter and bit error rate (BER) estimator tool is a

More information

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton Exploitin implicit loop parallelism usin multiple multithreaded servers in Java Fabian Bre Aart Bik Dennis Gannon December 16, 1997 1 Introduction Since its introduction in the late eihties, the lobal

More information

Integrated QOS management for disk I/O. Dept. of Comp. Sci. Dept. of Elec. Engg. 214 Zachry. College Station, TX

Integrated QOS management for disk I/O. Dept. of Comp. Sci. Dept. of Elec. Engg. 214 Zachry. College Station, TX Interated QOS manaement or disk I/O Ravi Wijayaratne A. L. Narasimha Reddy Dept. o Comp. Sci. Dept. o Elec. En. Texas A & M University 214 Zachry Collee Station, TX 77843-3128 ravi,reddy@ee.tamu.edu Abstract

More information