Adelson, B. & Soloway, E. (1985), ‘The role of domain experience in software design’, IEEE Transactions on Software Engineering 11(11), 1351–1360.
Akin, O. (1990), ‘Necessary conditions for design expertise and creativity’, Design Studies 11(2), 107–113.
Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King, I. & Angel, S. (1977), A Pattern Language, Oxford University Press.
Ali, M. S., Babar, M. A., Chen, L. & Stol, K.-J. (2010), ‘A systematic review of comparative evidence of aspect-oriented programming’, Information and Software Technology 52(9), 871– 887.
Allman, E. (2012), ‘Managing technical debt’, Commun. ACM 55(5), 50–55. URL: http://doi.acm.org/10.1145/2160718.2160733
Anjum, M. & Budgen, D. (2012), A mapping study of the definitions used for Service Oriented Architecture, in ‘Proceedings of EASE 2012’, IET Press, pp. 57–61.
Anjum, M. & Budgen, D. (2017), ‘An investigation of modelling and design for software service applications’, PLoS ONE 12(5), e0176936.
Arlow, J. & Neustadt, I. (2005), UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2nd edn, Addison-Wesley.
Avison, D. E. & Fitzgerald, G. (1995), Information Systems Development: Methodologies, Techniques and Tools, 2nd edn, McGraw-Hill.
Bailey, J., Budgen, D., Turner, M., Kitchenham, B., Brereton, P. & Linkman, S. (2007), Evidence relating to Object-Oriented software design: A survey, in ‘Proceedings of First International Symposium on Empirical Software Engineering and Measurement (ESEM)’, pp. 482–484.
Bano, M. & Zowghi, D. (2015), ‘A systematic review on the relationship between user involvement and system success’, Information & Software Technology 58(148–169).
Barrow, P. D. M. & Mayhew, P. J. (2000), ‘Investigating principles of stakeholder evaluation in a modern (is) development approach’, Journal of Systems & Software 52(2-3), 95–103.
Bass, L., Clements, P. & Kazman, R. (2013), Software Architecture in Practice, 3rd edn, Pearson.
Bates, B., Sierra, K., Freeman, E. & Robson, E. (2009), Head First Design Patterns, O'Reilly.
Beck, K. (2000), Extreme Programming Explained: Embrace Change, Addison-Wesley.
Beck, K. & Cunningham, W. (1989), ‘A laboratory for teaching object-oriented thinking’, ACM SIGPLAN Notices 24(10), 1–6.
Bennett, K. H. & Rajlich, V. T. (2000), Software maintenance and evolution: A roadmap, in ‘Proceedings of the Conference on the Future of Software Engineering’, ICSE ‘00, ACM, New York, NY, USA, pp. 73–87. URL: http://doi.acm.org/10.1145/336512.336534
Bennett, K., Layzell, P., Budgen, D., Brereton, P., Macaulay, L. & Munro, M. (2000), Service-based software: The future for flexible software, in ‘Proceedings of Seventh Asia-Pacific Software Engineering Conference’, IEEE Computer Society Press, pp. 214–221.
Blackwell, A. & Green, T. (2003), Notational systems—the cognitive dimensions of notations framework, in J. M. Carroll, ed., ‘HCI Models, Theories, and Frameworks: Toward a Multidisciplinary Science’, Morgan Kaufman, chapter 5.
Boehm, B. W. (1981), Software Engineering Economics, Prentice-Hall.
Boehm, B. W. (1988), ‘A spiral model of software development and enhancement’, IEEE Computer 21(5), 61–72.
Boehm, B. W. (2002), ‘Get ready for agile methods, with care’, IEEE Computer 35(1).
Booch, G. (1994), Object-Oriented Analysis and Design with Applications, 2nd edn, Benjamin Cummings.
Bosu, A., Greiler, M. & Bird, C. (2015), Characteristics of useful code reviews: An empirical study at Microsoft, in ‘12th IEEE/ACM Working Conference on Mining Software Repositories’, IEEE Computer Society Press, pp. 1–11.
Breivold, H. P., Crnkovic, I. & Larsson, M. (2012), ‘A systematic review of software architecture evolution research’, Information & Software Technology 54, 16–40.
Brereton, P. & Budgen, D. (2000), ‘Component based systems: A classification of issues’, IEEE Computer 33(11), 54–62.
Brooks, F. P. (1987), ‘No silver bullet: Essences and accidents of software engineering’, IEEE Computer 20(4), 10–19.
Brooks, F. P. (1988), Grasping reality through illusion – interactive graphics serving science, in ‘Proceedings of the ACM SIGCHI Conference’, pp. 1–11.
Brown, A. W. (2000), Large-Scale Component-Based Development, Prentice-Hall.
Brown, A. W. & Short, K. (1997), On components and objects: the foundations of component-based development, in ‘Proceedings of 5th International Symposium on Assessment of Software Tools and Technologies’, IEEE Computer Society Press, pp. 112–121.
Brown, A. W. & Wallnau, K. C. (1998), ‘The current state of cbse’, IEEE Software 15(5), 37–46.
Brown, W. J., Malveau, R. C., McCormick, H. W. & Mowbray, T. J. (1998), Antipatterns: Refactoring Software, Architectures, and Projects in Crisis, Wiley.
Budgen, D. (2014), Software Designers in Action: A Human-Centric Look at Design Work, Chapman & Hall, chapter 12.
Budgen, D., Brereton, P., Drummond, S. & Williams, N. (2018), ‘Reporting systematic reviews: Some lessons from a tertiary study’, Information and Software Technology 95, 62–74.
Budgen, D., Brereton, P. & Turner, M. (2004), Codifying a Service Architectural Style, in ‘Proceedings 28th International Computer Software & Applications Conference - COMPSAC’, IEEE Computer Society Press, pp. 16–22.
Budgen, D., Brereton, P., Williams, N. & Drummond, S. (2018), ‘The contribution that empirical studies performed in industry make to the findings of systematic reviews: A tertiary study’, Information and Software Technology 94, 234–244.
Budgen, D., Brereton, P., Williams, N. & Drummond, S. (2020), ‘What support do systematic reviews provide for evidence-informed teaching about software engineering practice?’, e-Informatica 14(1), 7–60.
Budgen, D., Burn, A., Brereton, P., Kitchenham, B. & Pretorius, R. (2011), ‘Empirical evidence about the UML: A systematic literature review’, Software — Practice and Experience 41(4), 363–392.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. & Stal, M. (1996), Pattern-Oriented Software Architecture, Wiley.
Carney, D. & Long, F. (2000), ‘What do you mean by COTS? Finally, a useful answer’, IEEE Software 17(2), 83–86.
Chen, J., Xiao, J., Wang, Q., Osterweil, L. J. & Li, M. (2016), ‘Perspectives on refactoring planning and practice: An empirical study’, Empirical Software Engineering 21, 1397–1436.
Chen, P. P. (1976), ‘The entity-relationship model: Toward a unified view of data’, ACM Transactions on Database Systems 1(1), 9–37.
Chidamber, S. R. & Kemerer, C. F. (1994), ‘A metrics suite for object oriented design’, IEEE Transactions on Software Engineering 20(6), 476–493.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F. & Jeremes, P. (1994), Object-Oriented Development: The Fusion Method, Prentice-Hall.
Connor, D. (1985), Information System Specification and Design Road Map, Prentice-Hall.
Cooke, P. (1984), ‘Electronic design warning’, Engineering Design 9(6), 8.
Coplien, J. O. (1997), ‘Idioms and patterns as architectural literature’, IEEE Software 14(1), 36–42.
Crnkovic, I. & Larsson, M. (2002), ‘Challenges of component-based development’, Journal of Systems & Software 61(3), 201–212.
Crnkovic, I., Stafford, J. & Szyperski, C. (2011), ‘Software components beyond programming: From routines to services’, IEEE Software 28(3), 22–26.
Cunningham, W. (1992), The WyCash portfolio management system, in ‘Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications (Addendum)’, OOPSLA ‘92, ACM, New York, NY, USA, pp. 29–30.
Curtis, B., Krasner, H. & Iscoe, N. (1988), ‘A field study of the software design process for large systems’, Communications of the ACM 31(11), 1268–1287.
Curtis, B. & Walz, D. (1990), The psychology of programming in the large: Team and organizational behaviour, in ‘Psychology of Programming’, Academic Press, pp. 253–270.
Cusumano, M. A. & Selby, R. W. (1989), ‘How Microsoft builds software’, Communications of the ACM 40(6), 53–61.
De Marco, T. (1978), Structured Analysis and System Specification, Yourdon Press.
Détienne, F. (2002), Software Design – Cognitive Aspects, Springer Practitioner Series.
Diebold, P. & Dahlem, M. (2014), Agile practices in practice—a mapping study, in ‘Proceedings 18th Conference on Evaluation & Assessment in Software Engineering (EASE 2017)’, ACM Press.
Dybå, T. & Dingsøyr, T. (2008), ‘Empirical studies of agile software development: A systematic review’, Information & Software Technology 50, 833–859.
Edwards, H. M., Thompson, & J. B. Smith, P. (1989), ‘Results of survey of use of SSADM in commercial and government sectors in United Kingdom’, Information & Software Technology 31(1), 21–28.
Elbanna, A. & Sarker, S. (2016), ‘The risks of agile software development: Learning from adopters’, IEEE Software 33(5), 72–79.
Ericsson, K. & Simon, H. (1993), Protocol Analysis: Verbal Reports as Data, MIT Press.
Erl, T. (2009), SOA Design Patterns, Prentice Hall.
Fagan, M. (1976), ‘Advances in software inspections’, IEEE Transactions on Software Engineering 12(7), 744–751.
Fayad, M. E. & Schmidt, D. E. (1997), ‘Object-oriented application frameworks’, Communications of the ACM 40(10), 32–38.
Feitosa, D., Avgeriou, P., Ampatzoglou, A. & Nakagawa, E. Y. (2017), The evolution of design pattern grime: An industrial case study, in ‘Proceedings PROFES 2017 International Conference on Product-Focused Software Process Improvement’.
Fenton, N. E. & Bieman, J. M. (2014), Software Metrics: A Rigorous and Practical Approach, CRC Press.
Fichman, R. G. & Kemerer, C. F. (1997), ‘Object technology and reuse: Lessons from early adopters’, IEEE Computer 30(10), 47–59.
Fink, A. (2003), The Survey Handbook, 2nd edn, Sage Books. Volume 1 of the Survey Kit.
Finkelstein, A., Kramer, J., Nuseibeh, B., Finkelstein, L. & Goedicke, M. (1992), ‘Viewpoints: A framework for integrating multiple perspectives in system development’, Int. Journal of Software Eng. and Knowledge Eng. 2(1), 31–57.
Floyd, C. (1984), A systematic look at prototyping, in R. Budde, K. Kuhlenkamp, I. Mathiassen & H. Zullighoven, eds, ‘Approaches to Prototyping’, Springer-Verlag, pp. 1–18.
Fowler, M. (1999), Refactoring: Improving the Design of Existing Code, Addison-Wesley.
Gamma, E., Helm, R., Johnson, R. & Vlissides, J. (1995), Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley.
Gane, C. & Sarsen, T. (1979), Structured Systems Analysis: Tools and Techniques, Prentice-Hall.
Garlan, D., Allan, & R. Ockerbloom, J. (2009), ‘Architectural mismatch: Why reuse is still so hard’, IEEE Software 26(4), 66–69.
Garlan, D., Allen, R. & Ockerbloom, J. (1995), ‘Architectural mismatch: Why reuse is so hard’, IEEE Software 12(6), 17–26.
Garlan, D. Perry, & D. E. (1995), ‘Introduction to the Special Issue on Software Architecture’, IEEE Transactions on Software Engineering 21, 269–274.
Green, T. R. G. & Petre, M. (1996), ‘Usability analysis of visual programming environments: A ‘cognitive dimensions' framework’, Journal of Visual Languages and Computing 7, 131–174.
Guindon, R. & Curtis, B. (1988), Control of cognitive processes during software design: What tools are needed?, in ‘Proceedings of CHI’88’, ACM Press, pp. 263–268.
Hadhrawi, M., Blackwell, A. & Church, L. (2017), A systematic literature review of cognitive dimensions, in L. Church & F. Hermans, eds, ‘Proceedings of 28th PPIG Annual Workshop’, Psychology of Programming Interest Group, pp. 1–12.
Hall, A. (1990), ‘Seven myths of formal methods’, IEEE Software 7(5), 11–19.
Hannay, J., Dybå, T., Arisholm, E. & Sjøberg, D. (2009), ‘The effectiveness of pair programming. A meta-analysis’, Information & Software Technology 51(7), 1110–1122.
Harel, D. (1987), ‘Statecharts: A visual formalism for complex systems’, Science of Computer Programming 8, 231–274.
Harel, D. (1988), ‘On visual formalisms’, Communications of the ACM 31(5), 514–530.
Harel, D. & Gery, E. (1997), ‘Executable object modelling with statecharts’, IEEE Computer 30(7), 31–42.
Hatley, D. J. & Pirbhai, I. (1988), Strategies for Real-Time System Specification, Dorset House.
Hayes-Roth, B. & Hayes-Roth, F. (1979), ‘A cognitive model of planning’, Cognitive Science 3(4), 275–310.
Heineman, G. T. & Councill, W. T. (2001), Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley.
Hughes, B. (2000), Practical Software Measurement, McGraw Hill.
Izurieta, C. & Bieman, J. M. (2007), How software designs decay: A pilot study of pattern evolution, in ‘Proceedings of Empirical Software Engineering & Measurement, 2007’.
Jabangwe, R., Borstler, J., Smite, D. & Wohlin, C. (2015), ‘Empirical evidence on the link between object-oriented measures and external quality attributes: A systematic literature review’, Empirical Software Engineering 20, 640–693.
Jackson, M. A. (1975), Principles of Program Design, Academic Press.
Jacobson, I., Booch, G. & Rumbaugh, J. (1999), The Unified Software Development Process, Addison-Wesley.
Jacobson, I., Christerson, M., Jonsson, P. & Overgaard, G. (1992), Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley.
Jacobson, I., Spence, I. & Kerr, B. (2016), ‘Use-Case 2.0’, Communications of the ACM 59(5), 61–69.
Jacobson, I., Spence, I. & Seidewitz, E. (2016), ‘Industrial-scale agile—from craft to engineering’, Communications of the ACM 59(12), 63–71.
Jézéquel, J.-M. & Meyer, B. (1997), ‘Design by contract: The lessons of Ariane’, IEEE Computer 30(1), 129–130.
Johnson, R. A. & Hardgrave, W. C. (1999), ‘Object-oriented methods: Current practices and attributes’, Journal of Systems & Software 48(1), 5–12.
Jones, J. C. (1970), Design Methods: Seeds of Human Futures, Wiley-Interscience.
Kitchenham, B. (2010), ‘What's up with software metrics? – a preliminary mapping study’, Journal of Systems & Software 83, 37–51.
Kitchenham, B. A., Budgen, D. & Brereton, P. (2015), Evidence-Based Software Engineering and Systematic Reviews, Innovations in Software Engineering and Software Development, CRC Press.
Kruchten, P. (2004), The Rational Unified Process: An Introduction, 3rd edn, Addison-Wesley.
Kruchten, P. B. (1994), ‘The 4+1 view model of architecture’, IEEE Software 12(6), 42–50.
Kupiainen, E., Mäntylä, M. V. & Itkonen, J. (2015), ‘Using metrics in agile and lean software development – a systematic literature review of industrial studies’, Information & Software Technology 62, 143–163.
Lanza, M. & Marinescu, R. (2006), Object-Oriented Metrics in Practice, Springer.
Larman, C. (2004), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edn, Prentice Hall.
le Goues, C., Jaspan, C., Ozkaya, I., Shaw, M. & Stolee, K. T. (2018), ‘Bridging the gap: From research to practical advice’, IEEE Software 35(5), 50–57.
Littman, D. C., Pinto, J., Letovsky, S. & Soloway, E. (1987), ‘Mental models and software maintenance’, Journal of Systems & Software 7, 351–355.
Litz, M. & Montazeri, B. (1996), ‘Chidamber and kemerer's metrics suite: A measurement theory perspective’, IEEE Transactions on Software Engineering 22(4), 267–271.
Long, J. (2001), ‘Software reuse antipatterns’, ACM Software Engineering Notes 26(4), 68–76.
Longworth, G. (1992), Introducing SSADM Version 4, Blackwell Publishing.
Lunn, K. (2003), Software Development with UML, Palgrave Macmillan.
Mangano, N., Toza, T. D. L., Petre, M. & van der Hoek, A. (2015), ‘How software designers interact with sketches at the whiteboard’, IEEE Transactions on Software Engineering 41(2), 135–156.
Mayvan, B. B., Rasoolzadegan, A. & Yazdi, Z. G. (2017), ‘The state of the art on design patterns: A systematic mapping of the literature’, Journal of Systems & Software 125, 93–118.
McIntosh, S., Kamei, Y., Adams, B. & Hassan, A. E. (2016), ‘An empirical study of the impact of modern code review practices on software quallity’, Empirical Software Engineering 21, 2145–2189.
Miller, G. A. (1956), ‘The magical number seven, plus or minus two: Some limits on our capacity for processing information’, The Psychological Review 63(2), 81–97.
Mills, H. (1971), Chief programmer teams, principles, and procedures, Technical report, IBM Federal Systems Division.
Mohagheghi, P. & Conradi, R. (2007), ‘Quality, productivity and economic benefits of software reuse: A review of industrial studies’, Empirical Software Engineering 12, 471–516.
Mohagheghi, P. & Dehlen, V. (2008), Where is the proof? – a review of experiences from applying MDE in industry, in ‘ECMDA-FA, LNCS 5095’, Springer, pp. 432–443.
Moody, D. L. (2009), ‘The “physics” of notations: Toward a scientific basis for constructing visual notations in software engineering’, IEEE Transactions on Software Engineering 35(6), 756–779.
Myers, G. J. (1973), ‘Characteristics of composite design’, Datamation 19(9), 100–102.
Norman, D. A. (2002), The Design of Everyday Things, Basic Books.
Offermann, P. & Bub, U. (2009), Empirical comparison of methods for information systems development according to SOA, in ‘Proceedings 17th European Conference on Information Systems (ECIS 2009)’, pp. 1–13.
Olbrich, S. M., Cruzes, D. S. & Sjøberg, D. I. K. (2010), Are all code smells harmful? A study of god classes and brain classes in the evolution of three open source systems, in ‘Proceedings of 26th International Conference on Software Maintenance’, IEEE Computer Society Press.
Owen, S., Budgen, D. & Brereton, P. (2006), ‘Protocol analysis: A neglected practice’, Communications of the ACM 49, 117–122.
Ozkaya, M. (2017), ‘Do the informal and formal software modeling notations satisfy practitioners for software architecture modeling’, Information & Software Technology 95, 15–33.
Page-Jones, M. (1988), The Practical Guide to Structured Systems Design, 2nd edn, Prentice-Hall.
Pahl, G. Beitz, W. (1996), Engineering Design: A Systematic Approach, 2nd edn, Springer-Verlag.
Palomba, F., Bavota, G., Penta, M. D., Fasano, F., Oliveto, R. & Lucia, A. D. (2018), ‘On the diffuseness and the impact on maintainability of code smells: A large scale empirical investigation’, Empirical Software Engineering 23, 1188–1221.
Parnas, D. L. (1972), ‘On the criteria to be used in decomposing systems into modules’, Communications of the ACM 15(12), 1053–1058.
Parnas, D. L. (1979), ‘Designing software for ease of extension and contraction’, IEEE Transactions on Software Engineering 5(2), 128–137.
Parnas, D. L. & Clements, P. C. (1986), ‘A rational design process: How and why to fake it’, IEEE Transactions on Software Engineering 12(2), 251–257.
Parnas, D. L. & Weiss, D. M. (1987), ‘Active design reviews: Principles and practices’, Journal of Systems & Software 7, 259–265.
Perry, D. E. Wolf, A. L. (1992), ‘Foundations for the study of software architecture’, ACM Software Engineering Notes 17(4), 40–52.
Peters, L. & Tripp, L. (1976), ‘Is software design ‘wicked’ too?’, Datamation 22(5), 127.
Petre, M. (2013), UML in practice, in ‘Proceedings of the 2013 International Conference on Software Engineering (ICSE)’, IEEE Computer Society Press, pp. 722–731.
Petre, M. & van der Hoek, A. (2016), Software Design Decoded: 66 Ways Experts Think, The MIT Press.
Pfleeger, S. L. & Atlee, J. M. (2010), Software Engineering: Theory and Practice, 4th edn, Pearson.
Pohthong, A. & Budgen, D. (2000), Accessing software component documentation during design: An observational study, in ‘Proceedings of Seventh Asia-Pacific Software Engineering Conference’, IEEE Computer Society Press, pp. 196–203.
Pohthong, A. & Budgen, D. (2001), ‘Reuse strategies in software development: An empirical study’, Information & Software Technology 43(9), 561–575.
Pugh, S. (1991), Total Design: Integrated Methods for Successful Product Engineering, Addison-Wesley.
Purchase, H. C., Welland, R., McGill, M. & Colpoys, L. (2004), ‘Comprehension of diagram syntax: An empirical study of entity relationship notations’, International Journal of Human-Computer Studies 61(2), 187–203.
Qumer, A. & Henderson-Sellers, B. (2008), ‘An evaluation of the degree of agility in six agile methods and its applicability for method engineering’, Information & Software Technology 50, 280–295.
Radjenović, D., Heričko, M., Torkar, R. & Živkovič, A. (2013), ‘Software fault prediction metrics: A systematic literature review’, Information & Software Technology 55, 1397–1418.
Ratcliffe, M. & Budgen, D. (2001), ‘The application of use case definitions in system design specification’, Information & Software Technology 43(6), 365–386.
Ratcliffe, M. & Budgen, D. (2005), ‘The application of use cases in systems analysis and design specification’, Information & Software Technology 47, 623–641.
Rentsch, T. (1982), ‘Object-oriented programming’, ACM SIGPLAN Notices 17(9), 51–57.
Rittel, H. & Webber, M. (1984), Planning problems are wicked problems, in N. Cross, ed., ‘Developments in Design Methodology’, Wiley, pp. 135–144.
Robinson, P. J. (1992), Hierarchical Object-Oriented Design, Prentice-Hall.
Rumbaugh, J., Jacobson, I. & Booch, G. (1999), The Unified Modeling Language Reference Manual, Addison-Wesley.
Runeson, P., Höst, M., Rainer, A. & Regnell, B. (2012), Case Study Research in Software Engineering: Guidelines and Examples, Wiley.
Ruparelia, N. (2010), ‘Software Development Lifecycle Models’, ACM SigSoft Software Engineering Notes 35(3), 8–13.
Schmidt, D. C. (2006), ‘Model-driven engineering’, IEEE Computer 39(2), 25–31.
Schwaber, K. (2004), Agile Project Management with Scrum, Microsoft Press.
Schwaber, K. & Beedle, M. (2002), Agile Software Development with Scrum, Prentice Hall.
Shadish, W., Cook, T. & Campbell, D. (2002), Experimental and Quasi-Experimental Design for Generalized Causal Inference, Houghton Mifflin Co.
Shahin, M., Liang, P. & Babar, M. A. (2014), ‘A systematic review of software architecture visualization techniques’, Information & Software Technology 94, 161–185.
Shapiro, S. (1997), ‘Splitting the difference: The historical necessity of synthesis in software engineering’, IEEE Annals of the History of Computing 19(1), 20–54.
Sharp, H., Preece, J. & Rogers, Y. (2019), Interaction Design: Beyond Human-Computer Interaction, 5th edn, John Wiley & Sons.
Shaw, M. & Clements, P. C. (1997), A field guide to boxology: Preliminary classification of architectural styles for software systems, in ‘Proceedings COMPSAC’97’, IEEE Computer Society Press, pp. 6–13.
Shaw, M. & Garlan, D. (1996), Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall.
Sheetz, S. D. & Tegarden, D. P. (1996), ‘Perceptual complexity of object oriented systems: A student view’, Object Oriented Systems 3(4), 165–195.
Simon, H. A. (1973), ‘The structure of ill-structured problems’, Artificial Intelligence 4, 181–201.
Sjøberg, D., Hannay, J., Hansen, O., Kampenes, V., Karahasanovic, A., Liborg, N. & Rekdal, A. (2005), ‘A survey of controlled experiments in software engineering’, IEEE Transactions on Software Engineering 31(9), 733–753.
Smith, G. (2000), The Object-Z Specification Language, Springer.
Snyder, A. (1993), ‘The essence of objects: Concepts and terms’, IEEE Software 10(1), 31–42.
Spivey, J. M. (1998), The Z notation: A reference manual, Technical report, Programming Research Group, University of Oxford.
Stapleton, J., ed. (1999), Dynamic Systems Development Method (Version 3), Tesseract Publishing.
Stapleton, J., ed. (2002), DSDM: Business Focused Development, Addison-Wesley.
Steinmacher, I., Silva, M. A. G., Gerosa, M. A. & Redmiles, D. F. (2015), ‘A systematic literature review on the barriers faced by newcomers to open source software projects’, Information & Software Technology 59(67–85).
Stevens, W. P. (1991), Software Design: Concepts and Methods, Prentice-Hall.
Stevens, W. P., Myers, G. J. & Constantine, L. L. (1974), ‘Structured design’, IBM Systems Journal 13(115–139).
Szyperski, C. (1998), Component Software: Beyond Object-Oriented Programming, Addison-Wesley.
Taivalsaari, A. (1993), ‘On the notion of object’, Journal of Systems & Software 21(1), 3–16.
Tempero, E., Gorschek, T. & Angelis, L. (2017), ‘Barriers to refactoring’, Communications of the ACM 60(10), 54–61.
Tiwari, S. & Gupta, A. (2015), ‘A systematic literature review of use case specifications research’, Information & Software Technology 67, 128–158.
Tomayko, J. (1996), Carnegie Mellon's Software Development Studio: A five year retrospective, in ‘Proceedings of 9th Conference on Software Engineering Education’, IEEE Computer Society Press, pp. 119–129.
Truex, D., Baskerville, R. & Klein, H. (1999), ‘Growing systems in emergent organisations’, Communications of the ACM 42(8), 117–123.
Turner, M., Brereton, P. & Budgen, D. (2006), ‘Service-enabled access control for distributed data’, IEE Proceedings – Software 153, 24–30. Special Section on RBAC.
Turner, M., Budgen, D. & Brereton, P. (2003), ‘Turning software into a service’, IEEE Computer 36(10), 38–44.
Vale, T., Crnkovic, I., de Almeida, E. S., da Mota Silviera Neto, P. A., Cavalcanti, Y. a. C. & de Lemos Meira, S. R. (2016), ‘Twenty-eight years of component-based software engineering’, Journal of Systems & Software 111, 128–148.
van Aken, J. E. (2004), ‘Management research based on the paradigm of the design sciences: The quest for field-tested and grounded technological rules’, Journal of Management Studies 41(2), 219–246.
van der Hoek, A. & Petre, M. (2014), Software Designers in Action: A Human-Centric Look at Design Work, CRC Press.
van Vliet, H. & Tang, A. (2016), ‘Decision making in software architecture’, Journal of Systems & Software 17(638–644).
Vessey, I. & Conger, S. (1994), ‘Requirements specification: Learning object, process and data methodologies’, Communications of the ACM 37, 102–113.
Visser, W. & Hoc, J.-M. (1990), Expert software design strategies, in J.-M. Hoc, T. Green, R. Samurçay & D. Gilmore, eds, ‘Psychology of Programming’, Academic Press, pp. 235–249.
Ward, P. T. & Mellor, S. J. (1985), Structured Development for Real-Time Systems, Yourdon Press.
Weaver, P. L., Lambrou, N. & Walkley, M. (2002), Practical Business Systems Development Using SSADM: A Complete Tutorial Guide, 3rd edn, Pearson Education.
Weinberg, G. M. (1971), The Psychology of Computer Programming, Van Nostrand Reinhold.
Weinberg, G. M. & Freedman, D. P. (1987), ‘Reviews, walkthroughs and inspections’, IEEE Transactions on Software Engineering 10(1), 68–72.
Wendorff, P. (2001), Assessment of design patterns during software reengineering: Lessons learned from a large commercial project, in ‘Proceedings of 5th European Conference on Software Maintenance and Reengineering (CSMR’01)’, IEEE Computer Society Press, pp. 77–84.
Whittle, J., Hutchinson, J. & Rouncefield, M. (2014), ‘The state of practice in model-driven engineering’, IEEE Software 31(3), 7985.
Wieringa, R. (1998), ‘A survey of structured and object-oriented software specification methods and techniques’, ACM Computing Surveys 30(4), 459–527.
Williams, B. J. & Carver, J. C. (2010), ‘Characterizing software architecture changes: A systematic review’, Information & Software Technology 52(1), 31–51.
Wirth, N. (1971), ‘Program development by stepwise refinement’, Communications of the ACM 14(4), 221–227.
Wood, M., Daly, J., Miller, J. & Roper, M. (1999), ‘Multi-method research: An empirical investigation of object-oriented technology’, Journal of Systems & Software 48, 13–26.
Woodcock, J., Larsen, P. G., Bicarregui, J. & Fitzgerald, J. (2009), ‘Formal methods: Practice and experience’, ACM Computing Surveys 41(4), 1–36.
Wu, M.-W. & Lin, Y.-D. (2001), ‘Open source software development: An overview’, IEEE Computer 34(6), 33–38.
Yakimovich, D., Bieman, J. M. & Basili, V. R. (1999), Software architecture classification for estimating the cost of COTS integration, in ‘Proceedings of 21st International Conference on Software Engineering (ICSE’99)’, IEEE Computer Society Press, pp. 296–302.
Yin, R. K. (2014), Case Study Research: Design & Methods, 5th edn, Sage Publications Ltd.
Yourdon, E. & Constantine, L. L. (1979), Structured Design, Prentice-Hall.
Zhang, C. & Budgen, D. (2012), ‘What do we know about the effectiveness of software design patterns?’, IEEE Transactions on Software Engineering 38(5), 1213–1231.
Zhang, C. & Budgen, D. (2013), ‘A survey of experienced user perceptions about design patterns’, Information & Software Technology 55(5), 822–835.
Zhang, C., Budgen, D. & Drummond, S. (2012), Using a follow-on survey to investigate why use of the Visitor, Singleton and Facade design patterns is controversial?, in ‘Proceedings 6th International Symposium on Empirical Software Engineering and Measurement (ESEM)’, ACM Press, pp. 79–88.