Software Engineering Principles and Methods
Online or Face-to-face
6 x 4-hr sessions
Share This Course:
The JCSE is offering a six session course on Software Engineering Principles and Methods. This course is an accredited Wits University Short Course targeted at a post-graduate or professional developer level.
Leading organisations apply contemporary approaches to delivering software more quickly, with higher quality and at competitive costs. These outcomes rely on the adoption of appropriate software engineering principles which result in bringing discipline and effective ways-of-working to teams – whether Agile or Plan-driven.
The course first focuses on the behaviour of a team under the influence of governance. An appropriate balance of governance encourages a team to display behaviour that is suitable to the situation, be it Agile or Plan-driven. Hence the term “Situational Software Engineering” (SSE).
The concept of SSE is then further explored by introducing Barry Boehm’s ICSM – Incremental Commitment Spiral Model. Against the background of SSE and ICSM we introduce Essence – a standard for software engineering – adopted by the OMG (Object Management Group – www.omg.org ) in 2014. (Other OMG-adopted standards include CORBA, UML and BPMN).
Essence is the primary result of the SEMAT initiative – Software Engineering Method and Theory – and is used to give further substance to situational approaches to software engineering.
Two core stages of the course then focus on the selection of practices of software engineering: first from the perspective of plan-driven, controlled quality, and then from an agile, crafted quality point of view. The course concludes by exploring the meaning of Technical Debt in the broader context of Situational Software Engineering.
Completing this course will help you:
Who is the course for?
This is an advanced-level course. It is aimed at those who are professional developers with 5 or more years of relevant experience. Although there are no formal educational pre-requisite courses required for this course, familiarity with coding and professional software development will be an advantage.
I'm Barry Myburgh - your lecturer for this course
After graduating from Wits with a B.Sc. Eng. (Elec) degree, it did not take long for me to start working in the Computer Industry. Some years later I graduated from UNISA with a Master in Business Leadership (MBL) degree. (UNISA’s equivalent of an MBA.)
Throughout my career I have delighted in sharing with others things that I have managed to understand and master. This naturally led to me getting involved with training and education from my earliest days in the Industry.
(a) The Complex Adaptive Situational Model (CASM): (i) Essentials of complexity science; (ii) Forces of management and production governance; (iii) States of dynamic equilibrium; ((iv) Overview of the characteristics of each CASM state including each state’s propensity to incurring technical debt; (v) Similarities between CASM and Kent Beck’s 3X model.
b) A new definition for software engineering
a) ICSM Overview
b) ICSM Phase: (i) Exploration; (ii) Valuation; (iii) Foundations; (iv) Development; (v) Production and Operations
a) The Essence of Software Engineering: (i) The OMG Standard; (ii) Areas of Concern; (iii) Alphas, Alpha States and Checklists; (iv) Activity Spaces; (v) Competencies
b) How Essence enables situational software engineering
a) The Life Cycle – SEMAT Plan-driven Abacus
b) Key Practices: (i) Requirements; (ii) Design; (iii) Development; (iv) Verification and Validation
a) Iterative life cycle – SEMAT Exploratory Abacus
b) Key Practices
a) Scope of Technical Debt
b) Management of Technical Debt
c) Technical Debt Defined
d) Management of Technical Debt: (i) In engineering; (ii) In management; (iii) In process