{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,22]],"date-time":"2023-10-22T12:43:17Z","timestamp":1697978597020},"reference-count":17,"publisher":"Wiley","issue":"2","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6480,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1989,2]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Although software development based on modules is now widely practiced and taught, specification of module interfaces has received far less acceptance. Languages such as Ada and Modula\u20102 require an interface specification, but it is syntactic, merely listing the exported procedures and functions and their signatures. No semantic information is given, leaving the effect of each call on the return value of other calls unspecified. Module users must either guess the interface semantics or infer them from the module implementation, seriously compromising the value of the modular approach. Formal methods, such as the algebraic and trace approaches, do specify interface semantics, but have proved difficult to teach and to apply in practice.<\/jats:p><jats:p>In this paper we present the software cost reduction (SCR) method for specifying the syntax and semantics of the module interface. We describe the basic approach and illustrate it on simple, but complete examples. We describe and demonstrate the additional features and techniques we have introduced to handle more complex problems. We also show the precise relationship between the SCR and trace techniques by presenting a method for converting any SCR specification to an equivalent trace specification.<\/jats:p>","DOI":"10.1002\/spe.4380190204","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T20:56:43Z","timestamp":1163797003000},"page":"127-148","source":"Crossref","is-referenced-by-count":3,"title":["Practical interface specification"],"prefix":"10.1002","volume":"19","author":[{"given":"Daniel","family":"Hoffman","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312940"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1980.230208"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/355602.361309"},{"key":"e_1_2_1_6_2","volume-title":"A standard organization for specifying abstract interfaces","author":"Clements P.","year":"1984"},{"key":"e_1_2_1_7_2","volume-title":"Reference Manual for the Ada Programming Language","year":"1982"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-96757-3"},{"key":"e_1_2_1_9_2","volume-title":"Ada for Specification: Possibilities and Limitations","author":"Goldsack S. J.","year":"1985"},{"key":"e_1_2_1_10_2","volume-title":"A Discipline of Programming","author":"Dijkstra E. W.","year":"1976"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232191"},{"key":"e_1_2_1_12_2","volume-title":"Software Development: A Rigorous Approach","author":"Jones C. B.","year":"1980"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00260922"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-08934-9_80"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.6168"},{"key":"e_1_2_1_16_2","volume-title":"C Programming in the Berkeley Unix Environment","author":"Horspool R. N.","year":"1986"},{"key":"e_1_2_1_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/828.829"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010218"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380190204","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380190204","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T23:45:54Z","timestamp":1697931954000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380190204"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,2]]},"references-count":17,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1989,2]]}},"alternative-id":["10.1002\/spe.4380190204"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380190204","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,2]]}}}