Extending the SEMAT Kernel with the TDD practice

Extending the SEMAT Kernel with the TDD practice

For access to this article, please select a purchase option:

Buy article PDF
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend to library

You must fill out fields marked with: *

Librarian details
Your details
Why are you recommending this title?
Select reason:
IET Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

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)
      • I. Jacobson , I. Spence , E. Seidewitz .
        1. Jacobson, I., Spence, I., Seidewitz, E.: ‘Industrial-scale agile: from craft to engineering’, Commun. ACM, 2016, 59, (12), pp. 6371.
        . Commun. ACM , 12 , 63 - 71
    2. 2)
      • S. Jeners , P. Clarke , R. O'Connor .
        2. Jeners, S., Clarke, P., O'Connor, R., et al: ‘Harmonizing software development processes with software development settings – a systematic approach’, available at
    3. 3)
      • I. Jacobson , N. Pan-Wei , P. McMahon . (2013)
        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.
    4. 4)
      • M. Cohn . (2010)
        4. Cohn, M.: ‘Team structure’, in: ‘Succeeding with agile: software development using scrum’ (Addison-Wesley, 2010), pp. 182188.
    5. 5)
      • B. Meyer . (2014)
        5. Meyer, B.: ‘Technical principles’, in: ‘Agile! the good, the hype and the ugly’ (Springer International Publishing, 2014), pp. 7078.
    6. 6)
      • R. Kazman , M. Klein , P. Clements . (2000)
        6. Kazman, R., Klein, M., Clements, P.: ‘Quality attribute characterizations’, in: ‘ATAM: method for architecture evaluation’ (Carnegie Mellon University, 2000), pp. 912.
    7. 7)
      • A. Brown , S. Ambler , W. Royce .
        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.
        . ‘Agility at Scale: Economic Governance, Measured Improvement, and Disciplined Delivery’ (35th Int. Conf. on Software Engineering (ICSE 2013)) , 874 - 879
    8. 8)
      • J. Humble , D. Farley . (2011)
        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.
    9. 9)
      • S. Ambler . (2013)
        9. Ambler, S.: ‘Disciplined agile teams are enterprise aware’, in: ‘Going beyond scrum: disciplined agile delivery’ (Disciplined Agile Consortium, 2013), pp. 913.
    10. 10)
      • K. Rubin . (2013)
        10. Rubin, K.: ‘Technical debt’, in: ‘Essential scrum: a practical guide to the most popular agile process’ (Addison-Wesley, 2013), pp. 139162.
    11. 11)
      • H. Kniberg . (2015)
        11. Kniberg, H.: ‘How we do testing’, in: ‘Scrum and XP from the trenches’ (C4Media Inc., 2015), pp. 113126.
    12. 12)
      • H. Kniberg . (2011)
        12. Kniberg, H.: ‘Defining ready and done’, in: ‘Lean from the trenches: managing large-scale projects with Kanban’ (The Pragmatic Programmers, 2011), pp. 3538.
    13. 13)
      • 13. ‘SAFe 4.0 for lean software and systems engineering’, available at
    14. 14)
      • E. Varga . (2016)
        14. Varga, E.: ‘TDD as an API design technique’, in: ‘Creating maintainable APIs’ (Apress, 2016), pp. 6995.
    15. 15)
      • D. Fucci , H. Erdogmus , B. Turhan .
        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.
        . IEEE Trans. Softw. Eng. , 99

Related content

This is a required field
Please enter a valid email address