{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T09:31:02Z","timestamp":1775899862249,"version":"3.50.1"},"reference-count":0,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[1984,4,1]],"date-time":"1984-04-01T00:00:00Z","timestamp":449625600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGSOFT Softw. Eng. Notes"],"published-print":{"date-parts":[[1984,4]]},"abstract":"<jats:p>Software design - from 'topmost' specification down to final implementation - is viewed as a chain of uniform steps, each step being a transformation between two linguistic levels. A canonical form of the step is discussed and it is argued that all rational design activities are expressible as a combination of canonical steps. The role of backtracking in software design is explained and a mechanism for introducing changes, both indigeneous and exogeneous, is proposed, again entirely by a combination of canonical steps. The main tenet of the 'canonical step approach' is that a design step contains a degree of unconstrained, creative invention and a calculable part which is the actual transformation effected.<\/jats:p>","DOI":"10.1145\/1010925.1010928","type":"journal-article","created":{"date-parts":[[2004,7,21]],"date-time":"2004-07-21T23:30:10Z","timestamp":1090452610000},"page":"38-53","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":36,"title":["Another look at software design methodology"],"prefix":"10.1145","volume":"9","author":[{"given":"M. M.","family":"Lehman","sequence":"first","affiliation":[{"name":"DoC, Imperial College, London"}]},{"given":"V.","family":"Stenning","sequence":"additional","affiliation":[{"name":"Imperial Software Technology, London"}]},{"given":"W. M.","family":"Turski","sequence":"additional","affiliation":[{"name":"Warsaw University, Poland"}]}],"member":"320","published-online":{"date-parts":[[1984,4]]},"container-title":["ACM SIGSOFT Software Engineering Notes"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1010925.1010928","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1010925.1010928","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:25:41Z","timestamp":1750281941000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1010925.1010928"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,4]]},"references-count":0,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1984,4]]}},"alternative-id":["10.1145\/1010925.1010928"],"URL":"https:\/\/doi.org\/10.1145\/1010925.1010928","relation":{},"ISSN":["0163-5948"],"issn-type":[{"value":"0163-5948","type":"print"}],"subject":[],"published":{"date-parts":[[1984,4]]},"assertion":[{"value":"1984-04-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}