메뉴 건너뛰기




Volumn , Issue , 2010, Pages 1-368

Composing software components: A software-testing perspective

Author keywords

[No Author keywords available]

Indexed keywords


EID: 84891444900     PISSN: None     EISSN: None     Source Type: Book    
DOI: 10.1007/978-1-4419-7148-7     Document Type: Book
Times cited : (8)

References (101)
  • 1
    • 0021199968 scopus 로고
    • Optimizing preventive service of software products
    • Adams, E.N.: Optimizing preventive service of software products. IBM J. Research and Development 28, 2-14 (1984)
    • (1984) IBM J. Research and Development , vol.28 , pp. 2-14
    • Adams, E.N.1
  • 2
    • 0003492187 scopus 로고    scopus 로고
    • Addis, W.: Structural Engineering: The Nature of Theory and Design. Ellis Horwood (1991) Although Addis's book is out of print, it is well worth seeking in the library. He holds joint degrees in civil engineering and philosophy and is one of only a handful of writers on 'philosophy of engineering.' His historical studies of structural engineering are rich and detailed. This book is the only one I know that tries to explain what 'engineering theory' is and how it relates to practice. He makes a strong case that for an engineer, 'theory' is the same as 'design rules,' the codified ways that design is to be carried out. The fascinating insight Addis proposes is that good design rules are not necessarily in agreement with reality. If they can be followed easily and include adequate safety factors from past experience, they can be quite at odds with physical laws yet remain in successful use for years, or even centuries. Lorenzo Strigini first put me onto the book.
    • Structural Engineering: The Nature of Theory and Design
    • Addis, W.1
  • 6
    • 0033907702 scopus 로고    scopus 로고
    • Automatically checking an implementation against its formal specification
    • The implementations of this paper are abstract data types written in C++ and the formalism is that of algebraic equations suitably restricted to eliminate difficulties like non-confluence. Its major contribution is Antoy's idea that the abstraction/representation mapping relating the concrete implementation of a data type to its abstract mathematical structure should be explicitly made part of the implementation. This allows random testing to be completely automated, thus extending the ideas of DAISTS [30] and Mills [29]. The example used for illustratation exposes the weakness of random testing in the presence of state that it may fail to use enough long sequences
    • Antoy, S., Hamlet, R.G.: Automatically checking an implementation against its formal specification. IEEE Trans. on Softw. Eng. 26, 55-69 (2000) The implementations of this paper are abstract data types written in C++ and the formalism is that of algebraic equations suitably restricted to eliminate difficulties like non-confluence. Its major contribution is Antoy's idea that the abstraction/representation mapping relating the concrete implementation of a data type to its abstract mathematical structure should be explicitly made part of the implementation. This allows random testing to be completely automated, thus extending the ideas of DAISTS [30] and Mills [29]. The example used for illustratation exposes the weakness of random testing in the presence of state that it may fail to use enough long sequences.
    • (2000) IEEE Trans. on Softw. Eng. , vol.26 , pp. 55-69
    • Antoy, S.1    Hamlet, R.G.2
  • 7
    • 0016646747 scopus 로고
    • Iterative enhancement: A practical technique for software development
    • Basili, V., Turner, A.: Iterative enhancement: A practical technique for software development. IEEE Trans. on Softw. Eng. 1(4), 390-396 (1975)
    • (1975) IEEE Trans. on Softw. Eng. , vol.1 , Issue.4 , pp. 390-396
    • Basili, V.1    Turner, A.2
  • 9
    • 0024012763 scopus 로고
    • A spiral model of software development and enhancement
    • Boehm, B.W.: A spiral model of software development and enhancement. IEEE Computer pp. 61-72 (1988)
    • (1988) IEEE Computer , pp. 61-72
    • Boehm, B.W.1
  • 10
    • 84897710145 scopus 로고
    • Flow diagrams, Turing machines, and languages with only two formation rules
    • Boehm, C., Jacopini, G.: Flow diagrams, Turing machines, and languages with only two formation rules. Comm. of the ACM 9, 366-371 (1966)
    • (1966) Comm. of the ACM , vol.9 , pp. 366-371
    • Boehm, C.1    Jacopini, G.2
  • 11
    • 0037247312 scopus 로고    scopus 로고
    • Comparing partition and random testing via majorization and schur functions
    • Boland, P., Singh, H., Cukik, B.: Comparing partition and random testing via majorization and schur functions. IEEE Trans. on Softw. Eng. 29, 88-94 (2003)
    • (2003) IEEE Trans. on Softw. Eng. , vol.29 , pp. 88-94
    • Boland, P.1    Singh, H.2    Cukik, B.3
  • 12
    • 84891386592 scopus 로고    scopus 로고
    • Pure corba
    • Bolton, F.: Pure Corba. Sams (2001)
    • (2001) Sams
    • Bolton, F.1
  • 13
    • 0027306938 scopus 로고
    • The infeasibility of experimental quantification of life-critical software reliability
    • The clear conclusion of this well-thought-out paper is that 'ultrareliability,' that is, failure rates below about 10?8/run, cannot be investigated using testing. The number of test points required to obtain confidence in ultrareliabilty is too large to be practical, even under the best possible circumstances. The roughly 107 seconds in a work-year are not enough to conduct the roughly 109 necessary test runs. The paper considers a number of ingenious ways to try to get around this stubborn fact, and shows that each must fail. The technical device used to obtain results is hypothesis testing, which makes the derivations more forbidding than need be. Most of the results could be obtained with less statistical machinery using failure-rate bounds and upper confidence bounds as in Chapter 12
    • Butler, R.W., Finelli, G.B.: The infeasibility of experimental quantification of life-critical software reliability. IEEE Trans. on Softw. Eng. 19(1), 3-12 (1993) The clear conclusion of this well-thought-out paper is that 'ultrareliability,' that is, failure rates below about 10?8/run, cannot be investigated using testing. The number of test points required to obtain confidence in ultrareliabilty is too large to be practical, even under the best possible circumstances. The roughly 107 seconds in a work-year are not enough to conduct the roughly 109 necessary test runs. The paper considers a number of ingenious ways to try to get around this stubborn fact, and shows that each must fail. The technical device used to obtain results is hypothesis testing, which makes the derivations more forbidding than need be. Most of the results could be obtained with less statistical machinery using failure-rate bounds and upper confidence bounds as in Chapter 12.
    • (1993) IEEE Trans. on Softw. Eng. , vol.19 , Issue.1 , pp. 3-12
    • Butler, R.W.1    Finelli, G.B.2
  • 15
    • 46449086982 scopus 로고    scopus 로고
    • An upper bound on software testing effectiveness
    • to appear
    • Chen, T.Y., Merkel, R.: An upper bound on software testing effectiveness. IEEE Trans. on Softw. Eng. (2008). (to appear)
    • (2008) IEEE Trans. on Softw. Eng.
    • Chen, T.Y.1    Merkel, R.2
  • 16
    • 0036983282 scopus 로고    scopus 로고
    • Semi-proving: An integrated method based on global symbolic evaluation and metamorphic testing
    • Chen, T.Y., Tse, T.H., Zhou, Z.: Semi-proving: an integrated method based on global symbolic evaluation and metamorphic testing. SIGSOFT Softw. Eng. Notes 27(4), 191-195 (2002)
    • (2002) SIGSOFT Softw. Eng. Notes , vol.27 , Issue.4 , pp. 191-195
    • Chen, T.Y.1    Tse, T.H.2    Zhou, Z.3
  • 17
    • 0025510192 scopus 로고
    • Engineering software under statistical quality control
    • Although some of the mathematics is garbled in the printed version, this paper makes a good case for prioritizing software failures for attention by frequency of occurrence. The paper popularizes very original work by Adams [1] in which he suggests that many failures are simply not worth fixing-they will probably never occur again. My own experience with operating-system crashes agrees: Bug after bug is fixed, often with great difficulty, but the failure rate of the system hardly improves because there is a large supply of very lowfrequency failures
    • Cobb, R.H., Mills, H.D.: Engineering software under statistical quality control. IEEE Software pp. 44-54 (1990) Although some of the mathematics is garbled in the printed version, this paper makes a good case for prioritizing software failures for attention by frequency of occurrence. The paper popularizes very original work by Adams [1] in which he suggests that many failures are simply not worth fixing-they will probably never occur again. My own experience with operating-system crashes agrees: Bug after bug is fixed, often with great difficulty, but the failure rate of the system hardly improves because there is a large supply of very lowfrequency failures.
    • (1990) IEEE Software , pp. 44-54
    • Cobb, R.H.1    Mills, H.D.2
  • 18
    • 0000673732 scopus 로고    scopus 로고
    • The aetg system: An approach to testing based on combinatorial design
    • Cohen, D.M., Dalal, S.R., Fredman, M.L., Patton, G.C.: The aetg system: An approach to testing based on combinatorial design. IEEE Trans. on Softw. Eng. 23(7), 437-444 (1997)
    • (1997) IEEE Trans. on Softw. Eng. , vol.23 , Issue.7 , pp. 437-444
    • Cohen, D.M.1    Dalal, S.R.2    Fredman, M.L.3    Patton, G.C.4
  • 20
    • 0003983574 scopus 로고
    • Davis Has Collected the Papers of Gödel, Church, Turing, and Post Written in the 1930s, Which Define the Idea of Mechanical or 'Rote' Computation, and Explore Its Limits. Certainly These Papers Are among the Most Important and Difficult in the History of Mathematical Logic. It Is Impossible to Be Sure of the Effect This Work Had on the Development of Electronic Computers in the Following Decade. It Certainly Did Not Suggest How Real Machines Should Be Built- von Neumann's Design Is Nothing Like A Turing Machine or A Post System, Closer in Fact to Babbage's Mechanical Engine-but the Idea That from the Simplest Operations All Possible Computations Can Be Built May Have Been Important Raven Press
    • Davis, M.: The Undecidable. Raven Press (1965) Davis has collected the papers of Gödel, Church, Turing, and Post written in the 1930s, which define the idea of mechanical or 'rote' computation, and explore its limits. Certainly these papers are among the most important and difficult in the history of mathematical logic. It is impossible to be sure of the effect this work had on the development of electronic computers in the following decade. It certainly did not suggest how real machines should be built- von Neumann's design is nothing like a Turing machine or a Post system, closer in fact to Babbage's mechanical engine-but the idea that from the simplest operations all possible computations can be built may have been important.
    • (1965) The Undecidable
    • Davis, M.1
  • 21
    • 0017959155 scopus 로고
    • Hints on test data selection: Help for the practicing programmer
    • DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: Help for the practicing programmer. Computer 11, 34-41 (1978)
    • (1978) Computer , vol.11 , pp. 34-41
    • Demillo, R.A.1    Lipton, R.J.2    Sayward, F.G.3
  • 22
    • 0021453259 scopus 로고
    • An evaluation of random testing
    • Joe Duran was an early and tireless advocate of random testing, whose insights are well expressed in this paper. Its contribution was a way of analyzing subdomain testing (called "partition testing" in this and other papers) by simulating its distributions. It is not an exaggeration to say that this paper opened up a new area, generating many similar publications (some say too many), e.g., [55, 11]. The most recent development comes from T-Y. Chen and his co-workers, who are beginning to find fundamental explanations for the limitations of systematic testing [15], and perhaps will be able to unravel the way in which so-called 'faults' are expressed in a program's input space
    • Duran, J., Ntafos, S.: An evaluation of random testing. IEEE Trans. on Softw. Eng. 10, 438-444 (1984) Joe Duran was an early and tireless advocate of random testing, whose insights are well expressed in this paper. Its contribution was a way of analyzing subdomain testing (called "partition testing" in this and other papers) by simulating its distributions. It is not an exaggeration to say that this paper opened up a new area, generating many similar publications (some say too many), e.g., [55, 11]. The most recent development comes from T-Y. Chen and his co-workers, who are beginning to find fundamental explanations for the limitations of systematic testing [15], and perhaps will be able to unravel the way in which so-called 'faults' are expressed in a program's input space.
    • (1984) IEEE Trans. on Softw. Eng. , vol.10 , pp. 438-444
    • Duran, J.1    Ntafos, S.2
  • 23
    • 0035250541 scopus 로고    scopus 로고
    • Dynamically discovering likely program invariants to support program evolution
    • Ernst, M., Cockrell, J., Griswold,W.G., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. IEEE Trans. on Softw. Eng. 27, 99-123 (2001)
    • (2001) IEEE Trans. on Softw. Eng. , vol.27 , pp. 99-123
    • Ernst, M.1    Cockrell, J.2    Griswold, W.G.3    Notkin, D.4
  • 24
    • 0017292244 scopus 로고
    • Design and code inspections to reduce errors in program development
    • Fagan, M.E.: Design and code inspections to reduce errors in program development. IBM Systems Journal 15(3), 182-211 (1976)
    • (1976) IBM Systems Journal , vol.15 , Issue.3 , pp. 182-211
    • Fagan, M.E.1
  • 25
    • 0002780749 scopus 로고
    • Assigning meanings to programs
    • Amer. Math. Soc Floyd's paper is generally credited with originating program proving, although Turing [95, ?A-] and others had provided earlier examples. I first read the paper as a grad student, and I remember telling my thesis advisor that I was sure Floyd was onto something truly wonderful. I had previously written a paper for a class in which I attempted to describe Algol programs in first-order logic, a paper that received a B+ with the comment that the professor (Buzz Hunt) didn't think it was practical, so I was in a position to appreciate just how well Floyd had done. So far, Hunt appears to have been right
    • Floyd, R.W.: Assigning meanings to programs. In: Proceedings Symposium Applied Mathematics, vol. 19, pp. 19-32. Amer. Math. Soc (1967) Floyd's paper is generally credited with originating program proving, although Turing [95, ?A-] and others had provided earlier examples. I first read the paper as a grad student, and I remember telling my thesis advisor that I was sure Floyd was onto something truly wonderful. I had previously written a paper for a class in which I attempted to describe Algol programs in first-order logic, a paper that received a B+ with the comment that the professor (Buzz Hunt) didn't think it was practical, so I was in a position to appreciate just how well Floyd had done. So far, Hunt appears to have been right.
    • (1967) Proceedings Symposium Applied Mathematics , vol.19 , pp. 19-32
    • Floyd, R.W.1
  • 26
    • 0019021103 scopus 로고
    • Error sensitive test cases analysis (estca)
    • Foster's background was in hardware testing, and he was seeking to find for software an analogy to hardware tests for so-called 'stuck-at' faults (in fabrication technology that has now changed). It is a lack of fault models-details of how things might go wrong-that makes software testing very different from hardware testing. For hardware the engineer knows what might fail and tests for it; when it's not found all is well. For software the catalog of possible problems seems unlimited, so when all tests succeed it means almost nothing. The difference is that in hardware manufacture the whole point is to control and confine the possibilities for mistakes, but in software the point is to allow a human programmer as much power as possible
    • Foster, K.A.: Error sensitive test cases analysis (estca). IEEE Trans. on Softw. Eng. 6(3), 258-264 (1980) Foster's background was in hardware testing, and he was seeking to find for software an analogy to hardware tests for so-called 'stuck-at' faults (in fabrication technology that has now changed). It is a lack of fault models-details of how things might go wrong-that makes software testing very different from hardware testing. For hardware the engineer knows what might fail and tests for it; when it's not found all is well. For software the catalog of possible problems seems unlimited, so when all tests succeed it means almost nothing. The difference is that in hardware manufacture the whole point is to control and confine the possibilities for mistakes, but in software the point is to allow a human programmer as much power as possible.
    • (1980) IEEE Trans. on Softw. Eng. , vol.6 , Issue.3 , pp. 258-264
    • Foster, K.A.1
  • 27
    • 0027644148 scopus 로고
    • An experimental comparison of the effectiveness of branch testing and data flow testing
    • Frankl, P.G.,Weiss, S.N.: An experimental comparison of the effectiveness of branch testing and data flow testing. IEEE Trans. on Softw. Eng. 19(8), 774-787 (1993)
    • (1993) IEEE Trans. on Softw. Eng. , vol.19 , Issue.8 , pp. 774-787
    • Frankl, P.G.1    Weiss, S.N.2
  • 28
    • 0024091830 scopus 로고
    • An applicable family of data flow testing criteria
    • Frankl, P.G.,Weyuker, E.J.: An applicable family of data flow testing criteria. IEEE Trans. on Softw. Eng. 14, 1483-1498 (1988)
    • (1988) IEEE Trans. on Softw. Eng. , vol.14 , pp. 1483-1498
    • Frankl, P.G.1    Weyuker, E.J.2
  • 31
    • 0017971624 scopus 로고
    • Test data as an aid in proving program correctness
    • For many years this paper stood alone as a serious attempt to aid program proofs using test data. (Other 'testing/proving' papers were mostly the obverse.) Geller recognized that in special cases a few test points constitute a proof in conjunction with knowledge of the program code. For example, if some part of the code can be seen to be implementing a linear function, it is sufficient to test two points to show that it is the correct line. This kind of analysis is exactly what takes place in the best unit tests. But Geller was able to come up with only a few examples, mostly for the integer data type. The current work in metamorphic testing [16] may be the long-sought generalization of this promising start
    • Geller, M.M.: Test data as an aid in proving program correctness. Comm. of the ACM pp. 368-375 (1978) For many years this paper stood alone as a serious attempt to aid program proofs using test data. (Other 'testing/proving' papers were mostly the obverse.) Geller recognized that in special cases a few test points constitute a proof in conjunction with knowledge of the program code. For example, if some part of the code can be seen to be implementing a linear function, it is sufficient to test two points to show that it is the correct line. This kind of analysis is exactly what takes place in the best unit tests. But Geller was able to come up with only a few examples, mostly for the integer data type. The current work in metamorphic testing [16] may be the long-sought generalization of this promising start.
    • (1978) Comm. of the ACM , pp. 368-375
    • Geller, M.M.1
  • 32
    • 0024029267 scopus 로고
    • The growth of software testing
    • Gelprin, D., Hetzel, B.: The growth of software testing. Comm. of the ACM 31(6), 687-695 (1988)
    • (1988) Comm. of the ACM , vol.31 , Issue.6 , pp. 687-695
    • Gelprin, D.1    Hetzel, B.2
  • 33
    • 0016992842 scopus 로고
    • Observations of fallibility in applications of modern programming methodologies
    • Gerhart, S.L., Yelowitz, L.: Observations of fallibility in applications of modern programming methodologies. IEEE Trans. on Softw. Eng. 2(3), 195-207 (1976)
    • (1976) IEEE Trans. on Softw. Eng. , vol.2 , Issue.3 , pp. 195-207
    • Gerhart, S.L.1    Yelowitz, L.2
  • 34
    • 0016520230 scopus 로고
    • Toward a theory of test data selection
    • The tentative title correctly indicates that the authors present only the beginnings of a theory, long on definitions but short on theorems. They assume that programs have neither persistent state nor concurrency. Nevertheless, this paper set the standard for practially all subsequent theoretical work in software testing. It was a revelation because testing was treated using a functional mathematical model, in contrast to other treatments that were merely exposition of practical methods. The exciting prospect that opened up was the possibility of proving results rather than supporting them only with empirical studies. The workshop on Testing And Verification (TAV) first organized by Susan Gerhart and Bill Howden in Ft. Lauderdale, FL in 1979, which eventually evolved into the International Symposium on Software Testing and Analysis (ISSTA), had this paper and Howden's on subdomain testing [64] as prime motivation
    • Goodenough, J.B., Gerhart, S.L.: Toward a theory of test data selection. IEEE Trans. on Softw. Eng. 1, 156-173 (1975) The tentative title correctly indicates that the authors present only the beginnings of a theory, long on definitions but short on theorems. They assume that programs have neither persistent state nor concurrency. Nevertheless, this paper set the standard for practially all subsequent theoretical work in software testing. It was a revelation because testing was treated using a functional mathematical model, in contrast to other treatments that were merely exposition of practical methods. The exciting prospect that opened up was the possibility of proving results rather than supporting them only with empirical studies. The workshop on Testing And Verification (TAV) first organized by Susan Gerhart and Bill Howden in Ft. Lauderdale, FL in 1979, which eventually evolved into the International Symposium on Software Testing and Analysis (ISSTA), had this paper and Howden's on subdomain testing [64] as prime motivation.
    • (1975) IEEE Trans. on Softw. Eng. , vol.1 , pp. 156-173
    • Goodenough, J.B.1    Gerhart, S.L.2
  • 37
    • 84860355182 scopus 로고
    • Machine-independent computer programming
    • Washington, DC
    • Halstead, M.H.: Machine-Independent Computer Programming. Spartan Books, Washington, DC (1962)
    • (1962) Spartan Books
    • Halstead, M.H.1
  • 40
    • 4644341563 scopus 로고    scopus 로고
    • What can we learn by testing a program? In: Proc
    • Hamlet, D.: What can we learn by testing a program? In: Proc. ISSTA, pp. 50-52 (1998)
    • (1998) ISSTA , pp. 50-52
    • Hamlet, D.1
  • 41
    • 0034592905 scopus 로고    scopus 로고
    • On subdomains: Testing, profiles, and components
    • Portland, OR
    • Hamlet, D.: On subdomains: testing, profiles, and components. In: Proceedings ISSTA '00, pp. 71-76. Portland, OR (2000)
    • (2000) Proceedings ISSTA '00 , pp. 71-76
    • Hamlet, D.1
  • 42
    • 0036983202 scopus 로고    scopus 로고
    • Continuity in software systems
    • Rome
    • Hamlet, D.: Continuity in software systems. In: Proceedings ISSTA '02, pp. 196-200. Rome (2002)
    • (2002) Proceedings ISSTA '02 , pp. 196-200
    • Hamlet, D.1
  • 44
    • 34247333027 scopus 로고    scopus 로고
    • Subdomain testing of units and systems with state
    • Portland, ME
    • Hamlet, D.: Subdomain testing of units and systems with state. In: Proceedings ISSTA 2006, pp. 85-96. Portland, ME (2006)
    • (2006) Proceedings ISSTA 2006 , pp. 85-96
    • Hamlet, D.1
  • 46
    • 37249058377 scopus 로고    scopus 로고
    • Software component composition: Subdomain-based testing-theory foundation
    • A detailed presentation of the subdomain-based composition theory, but only for the stateless, non-concurrent case. The SYN tools are mentioned only in passing. The paper includes a brief review of related work
    • Hamlet, D.: Software component composition: subdomain-based testing-theory foundation. J. Software Testing, Verification and Reliability 17, 243-269 (2007) A detailed presentation of the subdomain-based composition theory, but only for the stateless, non-concurrent case. The SYN tools are mentioned only in passing. The paper includes a brief review of related work.
    • (2007) J. Software Testing, Verification and Reliability , vol.17 , pp. 243-269
    • Hamlet, D.1
  • 48
    • 66949161076 scopus 로고    scopus 로고
    • Tools and experiments supporting a testing-based theory of component composition
    • This publication was originally intended as the experimental companion to the stateless theory [46]. Its primary purpose was to investigate the behavior of measurement and prediction errors as subdomains shrink. But long delays in publication and referee demands allowed it to include cases with state (including a minimal theoretical treatment of state), and other case studies, for example on substituting one component for another. The SYN tools are heavily used, but without any attention to them in their own right
    • Hamlet, D.: Tools and experiments supporting a testing-based theory of component composition. ACM Trans. on Softw. Eng. Methodology 18 (2009) This publication was originally intended as the experimental companion to the stateless theory [46]. Its primary purpose was to investigate the behavior of measurement and prediction errors as subdomains shrink. But long delays in publication and referee demands allowed it to include cases with state (including a minimal theoretical treatment of state), and other case studies, for example on substituting one component for another. The SYN tools are heavily used, but without any attention to them in their own right.
    • (2009) ACM Trans. on Softw. Eng. Methodology , vol.18
    • Hamlet, D.1
  • 52
    • 0035000893 scopus 로고    scopus 로고
    • Theory of software reliability based on components
    • Hamlet, D., Mason, D., Woit, D.: Theory of software reliability based on components. In: Proceedings ICSE '01, pp. 361-370. Toronto, Canada (2001) Although papers in the CBSE workshop [51] and ISSTA [41] first presented information on the subdomain theory of component composition that is the subject of the present monograph, its first detailed presentation was at ICSE 2001. (An identical paper was submitted to ICSE 2000 but rejected-the authors like to think this meant it was ahead of its time, but it probably only illustrates the wildly inconsistent reviewing of software engineering papers.) A slightly modified version appears in Lau's collection [53]. There are three serious mistakes in this initial paper: (1) The non-functional property described is reliability rather than run time, which lets in all the issues described in Chapter 12, detracting from the theory; (2) It was not realized that the synthesis of loop approximations is algorithmic, so the paper is weaker than it might have been; (3) The use of a 'transfer matrix' from one component's subdomains to another following in series does not generalize to further compositions, compromising the paper's claim that an arbitrary system can be synthesized. It was the implementation of the SYN tools that exposed these mistakes.
    • (2001) Proceedings ICSE '01 , pp. 361-370
    • Hamlet, D.1    Mason, D.2    Woit, D.3
  • 55
    • 0025530786 scopus 로고
    • Partition testing does not inspire confidence
    • Hamlet, D., Taylor, R.: Partition testing does not inspire confidence. IEEE Trans. on Softw. Eng. 16, 1402-1411 (1990)
    • (1990) IEEE Trans. on Softw. Eng. , vol.16 , pp. 1402-1411
    • Hamlet, D.1    Taylor, R.2
  • 57
    • 0017517121 scopus 로고
    • Testing programs with the aid of a compiler
    • Hamlet, R.G.: Testing programs with the aid of a compiler. IEEE Trans. on Softw. Eng. pp. 279-289 (1977)
    • (1977) IEEE Trans. on Softw. Eng. , pp. 279-289
    • Hamlet, R.G.1
  • 59
    • 0023365727 scopus 로고
    • Statecharts: A visual formalism for complex systems
    • Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 231-274 (1987)
    • (1987) Science of Computer Programming , vol.8 , pp. 231-274
    • Harel, D.1
  • 60
    • 0018918712 scopus 로고
    • Specifying software requirements for complex systems: New techniques and their applications
    • Heninger, K.L.: Specifying software requirements for complex systems: new techniques and their applications. IEEE Trans. on Softw. Eng. 6, 2-13 (1980)
    • (1980) IEEE Trans. on Softw. Eng. , vol.6 , pp. 2-13
    • Heninger, K.L.1
  • 61
    • 84945708698 scopus 로고
    • An axiomatic basis for computer programming
    • Hoare, C.A.R.: An axiomatic basis for computer programming. Comm. of the ACM 12, 576-583 (1969)
    • (1969) Comm. of the ACM , vol.12 , pp. 576-583
    • Hoare, C.A.R.1
  • 62
    • 0018005391 scopus 로고
    • Communicating sequential processes
    • Hoare, C.A.R.: Communicating sequential processes. Comm. of the ACM 21(8), 666-677 (1978)
    • (1978) Comm. of the ACM , vol.21 , Issue.8 , pp. 666-677
    • Hoare, C.A.R.1
  • 63
    • 0016506990 scopus 로고
    • Methodology for the generation of program test data
    • Howden, W.: Methodology for the generation of program test data. IEEE Trans. Computers 24, 554-559 (1975)
    • (1975) IEEE Trans. Computers , vol.24 , pp. 554-559
    • Howden, W.1
  • 64
    • 0016994996 scopus 로고
    • Reliability of the path analysis testing strategy
    • Howden, W.E.: Reliability of the path analysis testing strategy. IEEE Trans. on Softw. Eng. 2, 208-215 (1976) In the title, "Reliability" does not refer to the engineering measure of probable success, but to the social-science notion that various attempts to judge something will agree with each other, often applied to diagnosis of mental illness. The various attempts are test-point choices from subdomains, and they agree if they all fail or all succeed; then in Howden's terminology such subdomains are "reliable." Despite the unfortunate choice of a technical word (in hindsight), this notion is just what a tester wants from a subdomain breakdown: not to be misled by success; to miss no failures. Using a functional model to define test success, Howden formally defines subdomain testing, then experimentally investigates the path-coverage subdomains for a set of programs containing common beginners' mistakes. His mathematics is sound and precise and the examples give an excellent insight into why subdomains sometimes work for testing and sometimes don't. The workshop on Testing And Verification (TAV) first organized by Susan Gerhart and Bill Howden in Ft. Lauderdale, FL in 1979, which eventually evolved into the International Symposium on Software Testing and Analysis (ISSTA), had this paper and Goodenough and Gerhart's [34] as prime motivation. A short summary and appreciation of Howden's paper appears in a retrospective session of ISSTA 98 [40].
    • (1976) IEEE Trans. on Softw. Eng. , vol.2 , pp. 208-215
    • Howden, W.E.1
  • 65
    • 0020152782 scopus 로고
    • Weak mutation testing and completeness of test sets
    • Howden, W.E.: Weak mutation testing and completeness of test sets. IEEE Trans. on Softw. Eng. 8, 371-379 (1982)
    • (1982) IEEE Trans. on Softw. Eng. , vol.8 , pp. 371-379
    • Howden, W.E.1
  • 68
    • 0021425467 scopus 로고
    • Literate programming
    • Knuth, D.E.: Literate programming. The Computer Journal 27(2), 97-111 (1984)
    • (1984) The Computer Journal , vol.27 , Issue.2 , pp. 97-111
    • Knuth, D.E.1
  • 70
    • 84891479137 scopus 로고    scopus 로고
    • Case studies in computer-based software engineering
    • Lau, K.K. (ed.): Case Studies in Computer-based Software Engineering. World Scientific (2004)
    • (2004) World Scientific
    • Lau, K.K.1
  • 71
    • 0025414676 scopus 로고
    • The use of self checks and voting in software detection: An empirical study
    • Leveson, N.G., Cha, S.S., Knight, J.C., Shimeall, T.J.: The use of self checks and voting in software detection: An empirical study. IEEE Trans. on Softw. Eng. 16, 432-443 (1990)
    • (1990) IEEE Trans. on Softw. Eng. , vol.16 , pp. 432-443
    • Leveson, N.G.1    Cha, S.S.2    Knight, J.C.3    Shimeall, T.J.4
  • 73
    • 0004026606 scopus 로고    scopus 로고
    • ARIANE 5-Flight 501 Failure-Report by the Inquiry Board
    • Paris
    • Lions, J.L.: ARIANE 5-Flight 501 Failure-Report by the Inquiry Board. European Space Agency (ESA), Paris (1996)
    • (1996) European Space Agency (ESA)
    • Lions, J.L.1
  • 75
    • 0014650053 scopus 로고
    • Properties of programs and partial function logic
    • In: B. Meltzer, D. Michie (eds.)Edinburgh University Press
    • Manna, Z., McCarthy, J.: Properties of programs and partial function logic. In: B. Meltzer, D. Michie (eds.) Machine Intelligence 5, pp. 27-39. Edinburgh University Press (1969)
    • (1969) Machine Intelligence , vol.5 , pp. 27-39
    • Manna, Z.1    McCarthy, J.2
  • 76
    • 15844395454 scopus 로고
    • Experience with the cost of different coverage goals for testing
    • Portland, OR
    • Marick, B.: Experience with the cost of different coverage goals for testing. In: Pacific Northwest Software Quality Conference, pp. 147-164. Portland, OR (1991)
    • (1991) Pacific Northwest Software Quality Conference , pp. 147-164
    • Marick, B.1
  • 80
    • 23744513315 scopus 로고    scopus 로고
    • Automated black-box testing of functional correctness using function approximation
    • Boston
    • Meinke, K.: Automated black-box testing of functional correctness using function approximation. In: Proceedings ISSTA '04, pp. 143-153. Boston (2004)
    • (2004) Proceedings ISSTA '04 , pp. 143-153
    • Meinke, K.1
  • 82
    • 0039688909 scopus 로고
    • Mills, H., Basili, V., Gannon, J., Hamlet, D.: Principles of Computer Programming: A Mathematical Approach. Allyn and Bacon (1987) Although intended as a textbook at the freshman (!) level, this is the best exposition of Harlan Mills's denotational-semantic calculus for the Pascal programming language. It first defines a minimal language subset ("CF Pascal" for "Character-File") that reduces the detail required in proof examples, then treats (most of) the full language. Two features of the formalism recommend it over (say) Hoare's axiomatic treatment: (1) The mathematical basis is functions rather than relations, and (2) The rules for proving loops are much easier to use than assertions. (The loop function must still be guessed, but checking it is more straightforward than the proof that Hoare logic requires.) The 'box' notation was introduced in this book; it is an adaptation of Kleene's [66] notational way of distinuishing a program (Gödel number) from the (partial recursive) function it computes. (Horrors! Most computer science papers confuse the two notationally.) As befits a textbook, there are numerous exercises. Mills probably did not invent his calculus, but the extensive development in this text was new. At the same time the book was published, Mills and Hamlet wrote a summary for Computing Reviews. That paper was assigned to the database editor (!), who first "had difficulty finding referees," and never completed handling the paper. The junior author did not at that time grasp how unprofessional this treatment is (or even that such treatment was a possibility!) and was too diffident to complain effectively. The paper remains in limbo.
    • (1987) Principles of Computer Programming: A Mathematical Approach
    • Mills, H.1    Basili, V.2    Gannon, J.3    Hamlet, D.4
  • 84
    • 84941181463 scopus 로고
    • Operational profiles in software-reliability engineering
    • Musa, J.D.: Operational profiles in software-reliability engineering. IEEE Software 10, 14-32 (1993)
    • (1993) IEEE Software , vol.10 , pp. 14-32
    • Musa, J.D.1
  • 86
    • 0021517864 scopus 로고
    • On required element testing
    • Ntafos, S.: On required element testing. IEEE Trans. on Softw. Eng. 10, 795-803 (1984)
    • (1984) IEEE Trans. on Softw. Eng. , vol.10 , pp. 795-803
    • Ntafos, S.1
  • 87
    • 0024033855 scopus 로고
    • The category-partition method for specifying and generating functional tests
    • Ostrand, T.J., Balcer, M.J.: The category-partition method for specifying and generating functional tests. Comm. of the ACM 16, 676-686 (1988)
    • (1988) Comm. of the ACM , vol.16 , pp. 676-686
    • Ostrand, T.J.1    Balcer, M.J.2
  • 88
    • 0005296647 scopus 로고
    • On a "Buzzword": Hierarchical structure
    • North-Holland Publishing Co.
    • Parnas, D.: On a "Buzzword": Hierarchical structure. In: Proc. IFIP Congress, pp. 336-339. North-Holland Publishing Co. (1974)
    • (1974) Proc. IFIP Congress , pp. 336-339
    • Parnas, D.1
  • 89
    • 0015482049 scopus 로고
    • On the criteria to be used in decomposing systems into modules
    • Parnas is best known for his deep insights into software engineering and their expression in revealing concrete examples; there is no better illustration of these strengths than this famous paper. Its example is the design for a program for KWIC indexing, which now also serves the unexpected purpose of keeping this neglected variant of index-making alive. To the modern student, it seems that Parnas is just presenting object-oriented design in an unfamiliar way; this is chronologically reversed, since O-O was barely a glimmer in Alan Kay's and O-J Dahl's eyes when Parnas wrote. His ideas came from software engineering, not programming languages; he was mostly thinking of operating systems written in assembly language
    • Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Comm. of the ACM (1972) Parnas is best known for his deep insights into software engineering and their expression in revealing concrete examples; there is no better illustration of these strengths than this famous paper. Its example is the design for a program for KWIC indexing, which now also serves the unexpected purpose of keeping this neglected variant of index-making alive. To the modern student, it seems that Parnas is just presenting object-oriented design in an unfamiliar way; this is chronologically reversed, since O-O was barely a glimmer in Alan Kay's and O-J Dahl's eyes when Parnas wrote. His ideas came from software engineering, not programming languages; he was mostly thinking of operating systems written in assembly language.
    • (1972) Comm. of the ACM
    • Parnas, D.L.1
  • 91
    • 0019110928 scopus 로고
    • A case study in specifying the semantics of a programming language
    • Sethi, R.: A case study in specifying the semantics of a programming language. In: Proc. POPL 1980, pp. 117-130 (1980)
    • (1980) Proc. POPL 1980 , pp. 117-130
    • Sethi, R.1
  • 93
    • 0004142101 scopus 로고    scopus 로고
    • 2nd edn Addison-Wesley Almost every citation to this much-cited monograph is pointing to its definition of software component, and justly so, for Szyperski was among the first to think deeply about this concept. Perhaps the close reasoning and careful abstraction that characterize the book were necessary to come to framing a suitable definition, but the general reader will find it hard going
    • Szyperski, C.: Component Software, 2nd edn. Addison-Wesley (2002) Almost every citation to this much-cited monograph is pointing to its definition of software component, and justly so, for Szyperski was among the first to think deeply about this concept. Perhaps the close reasoning and careful abstraction that characterize the book were necessary to come to framing a suitable definition, but the general reader will find it hard going.
    • (2002) Component Software
    • Szyperski, C.1
  • 94
    • 84960561455 scopus 로고
    • On computable numbers, with an application to the entscheidungsproblem
    • Turing, A.: On computable numbers, with an application to the entscheidungsproblem. London Mathematical Society pp. 230-265 (1936-37) Reprinted, including the correction (1937), in Davis's fine collection [20, ?A-]. Davis's annotation of the paper is right on: "...read this paper for its general sweep, ignoring the petty technical details." But of course the sweep would not be there if the author had not been convinced that the details (hardly 'petty' unless all programming is, which Davis may very well believe) supported it. A modern proof of Turing's result is often component-based [56], in that a number of simple Turing machines are devised to solve various bookkeeping problems, then combined into a 'system' that is a universal machine. It is probably safe to say that none of the many 'implementations' of the universal machine is likely to be correct-there are too many details, and none has been tested! But carrying through the exercise is absolutely convincing. One sees clearly that it can be done, even as one makes mistakes trying to do it. The modern reader has difficultly keeping in mind just how little was established about computability in 1936, requiring Turing to feel his way cautiously to each application.
    • (1936) London Mathematical Society , pp. 230-265
    • Turing, A.1
  • 95
    • 0004729187 scopus 로고
    • Checking a large routine
    • This short paper is from Turing's second career as a programmer on the early machines. In it he anticipates some of what Floyd [25, ?A-] would publish almost 20 years later. Mathematicians (his colleagues in his first career) lamented Turing's loss to the profession: What good work he might have done if he hadn't been seduced by those digital computers! Reprinted with corrections and annotations in "An early program proof by Alan Turing," L. Morris and C. B. Jones, Ann. Hist. Computing 6 (2) pp 129-143 (1984), and in The early British computer conferences, MIT Press, 1989, pp 70-72
    • Turing, A.: Checking a large routine. In: Report of a conference on high speed automatic calculating machines (EDSAC inaugral conference), pp. 67-69 (1949) This short paper is from Turing's second career as a programmer on the early machines. In it he anticipates some of what Floyd [25, ?A-] would publish almost 20 years later. Mathematicians (his colleagues in his first career) lamented Turing's loss to the profession: What good work he might have done if he hadn't been seduced by those digital computers! Reprinted with corrections and annotations in "An early program proof by Alan Turing," L. Morris and C. B. Jones, Ann. Hist. Computing 6 (2) pp 129-143 (1984), and in The early British computer conferences, MIT Press, 1989, pp 70-72.
    • (1949) Report of A Conference on High Speed Automatic Calculating Machines (EDSAC Inaugral Conference , pp. 67-69
    • Turing, A.1
  • 97
    • 0003886605 scopus 로고
    • Johns Hopkins University Press , This collection of chapter examples from aircraft engineering provides an invaluable insight into how engineers think about and solve problems. One particularly notable theme is the transition from pure guesswork in design to experimentation that determines the best combination of parameters. Before this is possible there must be enough theory to delineate the parameters to be monitored in experiments
    • Vincenti, W.G.: What Engineers Know and How They Know It. Johns Hopkins University Press (1993) This collection of chapter examples from aircraft engineering provides an invaluable insight into how engineers think about and solve problems. One particularly notable theme is the transition from pure guesswork in design to experimentation that determines the best combination of parameters. Before this is possible there must be enough theory to delineate the parameters to be monitored in experiments.
    • (1993) What Engineers Know and How They Know It
    • Vincenti, W.G.1
  • 99
    • 0020157396 scopus 로고
    • Programmers use slices when debugging
    • Weiser, M.: Programmers use slices when debugging. Comm. of the ACM 25(7), 446-452 (1982)
    • (1982) Comm. of the ACM , vol.25 , Issue.7 , pp. 446-452
    • Weiser, M.1
  • 100
    • 0019018929 scopus 로고
    • A domain strategy for computer program testing
    • White, L.J., Cohen, E.I.: A domain strategy for computer program testing. IEEE Trans. on Softw. Eng. 6(3), 247-257 (1980)
    • (1980) IEEE Trans. on Softw. Eng. , vol.6 , Issue.3 , pp. 247-257
    • White, L.J.1    Cohen, E.I.2


* 이 정보는 Elsevier사의 SCOPUS DB에서 KISTI가 분석하여 추출한 것입니다.