‘A NEW SOFTWARE ENGINEERING – SEMAT’ TraditionalSoftware Engineering lacks strong foundational understanding and it is merelyadapting the practices from other disciplines of engineering leading todisastrous results.
So, it is high time that today’s software engineering hasto be built by taking the experiences from software craftsmen who will put downtheir understanding as a foundation which will be helpful to instill knowledgefor the newcomers in Software development projects.” SEMAT” (SoftwareEngineering Method and Theory) is an international initiative to develop theSoftware Engineering that includes both methods and strong theoreticalfoundation. The author explains how the Kernel framework and Agile methodology puttogether helps in laying a good foundation for the Software developmentprojects. Importance of Agility in Software Development: The Agility inSoftware Development is the best example for Software Craftsmanship.
In Agile methodology,the projects are developed in short iterations. At the end of each iteration theuser can see the workable version of software. In short, the software isproduced in small increments and by obtaining the feedback for every iteration,the agile team continuously addresses the issues if there are any. It isalready known that in every project the requirements tend to change. Agile methodologyholds these changes and uses them to progress. Agile methodology supports thedevelopers in building quality software. The agility can be applied in the softwareengineering methods. Methods are a combination of number of practices.
The softwaredevelopment teams can pull in all the best practices necessary for theirdevelopment tasks and they can also go ahead and replace old practices with newones. The KERNEL forSoftware Engineering: The KERNEL acts asa basic foundation for Software engineering. The Kernel consists of elementswhich are common for all software development projects. It is a framework whichcaptures all the things that needs to be worked and are called as alphas. The alphasare helpful for measuring the progress and health of software development tasks.
Each alpha has states which helps to guide the software development team. TheKernel also help in classifying the activities required for progressing of asoftware endeavor. It also has the set of capabilities required to carry outthe activities. With the help of a Kernel, the software developer can easilyunderstand whether the proposed method has any gaps in its practices and how toresolve them. It also helps to come up with new ideas, help the teams toimprove their method of working either by adding or removing the practices.
Inshort, the Kernel can be classified as the strong basis of foundation insoftware engineering. Conclusion: According to the authors, the Kernel basedapproach in Software Engineering is a true paradigm shift in this field. Thishelped the Traditional Software engineering to think about the true engineeringinstead of just adapting the practices from other engineering disciplines. However,the real shift truly happens only when the development teams truly understandthe benefits of Kernel and try to incorporate them in their daily set ofpractices. Reference information:Authors: Ivar Jacobson,Ed SeidewitzDOI:10.1145/2677034Link:https://www.ivarjacobson.com/sites/default/files/field_iji_file/article/a_new_software_engineering_final_version.pdf