Your browser does not support JavaScript!

access icon free Extending the SEMAT Kernel with the TDD practice

Coping with ever increasing complexity is one of the main challenges of software engineering. Applying proven practices through established software processes is a viable way to introduce consistency and tame complexity. The SEMAT is a novel meta-process aiming to encompass commonalities across a disparate set of different software processes. The goal is to create a framework, giving proper jumpstart to any proprietary customisation. This is crucial, as various types of software demand diverse software processes (there is no one-size-fits-all method). On the other hand, all processes strive for a disciplined application of valid development and maintenance routines.

This paper analyses a set of methodologies for several software development lines to recognise common and specific development practices. A special emphasise is put on the test-driven development (TDD), showcasing its significant contribution in improving the total quality of the end product. The SEMAT Kernel is extended with additional set of alphas, which are elaborated in detail including containing states, transitions and dependencies. The TDD practice activities were analysed for each introduced alpha as state transition triggers. Consequently, the high-level development plan is expanded with newly defined alphas, providing a powerful tool for performing all sorts of system analysis.


    1. 1)
      • 6. Kazman, R., Klein, M., Clements, P.: ‘Quality attribute characterizations’, in: ‘ATAM: method for architecture evaluation’ (Carnegie Mellon University, 2000), pp. 912.
    2. 2)
      • 12. Kniberg, H.: ‘Defining ready and done’, in: ‘Lean from the trenches: managing large-scale projects with Kanban’ (The Pragmatic Programmers, 2011), pp. 3538.
    3. 3)
      • 5. Meyer, B.: ‘Technical principles’, in: ‘Agile! the good, the hype and the ugly’ (Springer International Publishing, 2014), pp. 7078.
    4. 4)
      • 7. Brown, A., Ambler, S., Royce, W.: ‘Improving software economics”, “Deploying agile know-how at enterprise scale”’. ‘Agility at Scale: Economic Governance, Measured Improvement, and Disciplined Delivery’ (35th Int. Conf. on Software Engineering (ICSE 2013)), pp. 874879.
    5. 5)
      • 8. Humble, J., Farley, D.: ‘“Commit stage principles and practices”, “implementing acceptance tests”, “automating capacity testing”’, in: ‘Continuous delivery: reliable software releases through build, test, and deployment automation’ (Addison-Wesley, 2011), pp. 169186, pp. 204–212, pp. 238–244.
    6. 6)
      • 4. Cohn, M.: ‘Team structure’, in: ‘Succeeding with agile: software development using scrum’ (Addison-Wesley, 2010), pp. 182188.
    7. 7)
      • 10. Rubin, K.: ‘Technical debt’, in: ‘Essential scrum: a practical guide to the most popular agile process’ (Addison-Wesley, 2013), pp. 139162.
    8. 8)
      • 1. Jacobson, I., Spence, I., Seidewitz, E.: ‘Industrial-scale agile: from craft to engineering’, Commun. ACM, 2016, 59, (12), pp. 6371.
    9. 9)
      • 11. Kniberg, H.: ‘How we do testing’, in: ‘Scrum and XP from the trenches’ (C4Media Inc., 2015), pp. 113126.
    10. 10)
      • 9. Ambler, S.: ‘Disciplined agile teams are enterprise aware’, in: ‘Going beyond scrum: disciplined agile delivery’ (Disciplined Agile Consortium, 2013), pp. 913.
    11. 11)
      • 3. Jacobson, I., Pan-Wei, N., McMahon, P., et al: ‘“A 10,000-foot view of the full Kernel”, “developing the system”, “reaching out to different kinds of development”’, in: ‘The essence of software engineering, applying the SEMAT Kernel’ (Addison-Wesley, 2013), pp. 2336o, pp. 131–156, pp. 191–200.
    12. 12)
      • 13. ‘SAFe 4.0 for lean software and systems engineering’, available at
    13. 13)
      • 14. Varga, E.: ‘TDD as an API design technique’, in: ‘Creating maintainable APIs’ (Apress, 2016), pp. 6995.
    14. 14)
      • 2. Jeners, S., Clarke, P., O'Connor, R., et al: ‘Harmonizing software development processes with software development settings – a systematic approach’, available at
    15. 15)
      • 15. Fucci, D., Erdogmus, H., Turhan, B., et al: ‘A dissection of test-driven development: does it really matter to test-first or to test-last?’, IEEE Trans. Softw. Eng., 2016, (99), doi: 10.1109/TSE.2016.2616877.

Related content

This is a required field
Please enter a valid email address