Update on Semat moving forward
2011/05/06
Time flies. Semat seems to have been quiet for a long time, but for very good reasons. Silence doesn’t imply inactive. On the contrary, activities have been going on quietly and have never stopped. In this blog, I give you a few glimpses of what’s new with Semat, and how you could get involved and contribute.
Basically we have been working on three things:
- Moving the work on the kernel and the language to OMG. A Request for Proposal (RFP) was submitted on Feb 21, 2011, and this proposal was discussed one month later in an OMG meeting.
- Working on a Semat response to the RFP. This is basically just continuing what we started before. The intention is to have the first version of the response by early this summer.
- Working on how to move Semat forward. Even the kernel and the language have been moved to Object Management Group (OMG), there are still a lot to do within Semat to implement the Grand Vision. As a first effort, we have been working on two papers: a) Semat – The Three Year Vision, and b) Towards The Vision.
Since mid November 2010 around 20 people have been working on these three subjects. Bertrand and Richard have become part of the advisory board; many other people have stepped up to work on implementing concrete ideas.
The story so far
As you may recall, the Grand Vision of Semat was to refound software engineering based on a widely agreed upon kernel representing the essence of software engineering. The kernel would include elements covering societal and technical needs that support the concerns of industry, academia and practitioners.
Within a short period of time, a dozen corporate and academic organizations, and some 3 dozen renowned individuals from the field of software engineering and computer science, have become signatories to support the vision. In addition, more than 1500 other supporters agreed to the call.
In November 2010, the troika agreed that we would move the work on the kernel and the language to OMG to get the proper governance we needed.
Moving the development of the kernel to OMG
In order to move the work to OMG, we have to follow a standard procedure for all OMG related work. First, a request for proposal (RFP) has to be worked out and presented to a couple of groups within OMG. Upon approval, people can submit proposals as responses to the RFP.
In our case an RFP has been developed by a couple of people from Semat and a couple of OMG members. The RFP is called ‘ESSENSE: A domain-specific language and a kernel of essentials for software engineering.’ This RFP draft was first presented in early December 2010 in Santa Clara, CA. It was positively received, and then followed up by a RFP document, which was discussed at an OMG meeting in Arlington, VA, in March this year. The feedback was very constructive and passionate. The RFP will be improved to address the relationship between the current proposal and the previous OMG standardization of SPEM (Software Process Engineering Metamodel). The RFP will also detail the requirements for the ESSENSE language and the kernel.
The next time when an updated RFP proposal will be presented will be in June 2011 in Salt Lake City.
Our proposal to a kernel
Since March last year a group of 12-15 people have been working on a proposal for a kernel. This team is continuing with its work and plans to respond to the OMG RFP. Despite the work has been slowing down due to focusing on the OMG RFP, we will deliver some results of value that can be used by industry within the next few months. Those who are involved in this effort are as enthusiasm as ever about Semat, and believe even more strongly today than before based on the ongoing work that a kernel of widely accepted essentials will successfully be achieved. The kernel will not be large. We are estimating the initial version will only have 7-8 elements, but we have already begun to see the potential value this kernel can bring to the practitioner, to industry and to academia.
The kernel is just a first step towards the Grand Vision of Semat; much more work needs to be done from different aspects by different teams.
Semat moving forward
With the development of the kernel moving under the OMG umbrella, Semat remains active with tackling the other challenges set out in the Grand Vision. For example, we need to:
- collaborate with OMG to make sure that the results delivered meet the community’s needs
- support the community in its effort to get reusable practices,
- transfer the work to the academic community to inspire the development of new curricula and practical research.
Therefore, a vision for the next couple of years is needed. A team of eight people has been working for more than a month to develop a proposal for a Three Year Vision of Semat. It focuses on the anticipated impact on Semat’s three key user groups: the practitioners, industry and academia, and discusses how Semat’s benefits can be realized and assessed.
As a self-organized community, the governance of ourselves is important. However, first and foremost, we need to agree on the direction we would like to go.
Call for participation
Moving forward we need competent people to actively participate in the different task groups. We need people with the following expertise: user experience design to give the language a graphical, intuitive syntax; formal language designers to make sure the concrete syntax is mapped to meaningful semantics; identifying and defining kernel elements (modeling expertise); metrics and measurement experts to help measure the impact of Semat on the external world and to help measure each of its practices; open source tool support for language and kernel; requirement specification of what Semat should do, and more.
Final words
Arguably, the goals of Semat have from its beginning been very ambitious: to refound software engineering as a rigorous discipline based on a kernel of widely agreed upon elements. Such a kernel works as a common ground for everything we do when developing software, thus it is the essence of software engineering. The work will reveal many differences to the past history of process engineering, but it aligns very well with new ideas such as now promoted by agile approaches. In fact it prepares us better for even the next ‘big thing’ living harmoniously with what we already have and have had.
Please contact me if you feel you can and are willing to contribute.
Thank you!
Shihong Huang
Member of the executive committee
2011/05/06 at 11:23
All sounds really good and very ambitious. I guess getting under OMG is a first big achievement and a very important milestone. I’d like to contribute, if at all possible.
2011/05/06 at 11:50
The sum and substance seems to that we did not make much progress on defining the kernel. SEMAT was started more than a year ago during which time a couple of workshops were conducted and a few committees were formed. We are yet to see the results of the efforts of those committees.
In my first post on this blog, I requested defining the phrase “software engineering” before moving further. If we cannot define this phrase, can we really move forward?
Now the initiative was started more than an year ago and if it takes two more years, isn’t that (three years) too long a period in IT which has a very fast obsolescence rate? Can we really be sure what we come out with is really credible in 2013?
Please do not conclude that mine is a criticism. I am very interested in seeing that clarity comes to SE and I offered my service whenever asked for. I am certainly pained at not making much progress in this vital initiative.
Murali Chemuturi
2011/05/31 at 04:54
As a supporter from the beginning, it feels good to hear about the progress made so far in the background, including move to OMG. Please keep us updated regularly from time to time.
2011/06/11 at 20:30
Murali,
Yes it does seem like a long period, but given that few (actually I think no one) works on SEMAT full time, – progress has been made.
The work is about finding common ground undet the plethora of concepts, terms, marketing vibes, misunderstandings etc. This is NOT an easy task.
You ask for a definition of Software Engineering – perhaps you could suggest a definiton your self?
2011/06/11 at 21:23
I did suggest something on those line in one of my earlier posts. In fact, I did email the content to Ivar on 12th December 2009. I am re-posting the same content here for your benefit.
***********************************
In producing software we have three layers. The first layer is that of user requirements (or product specifications) and the last layer is the code. The middle layer is the engineering. In my humble opinion, we have attained maturity in the top as well as the bottom layers but we are woefully short of satisfaction as far as the middle layer is concerned. While many attempts have been made to develop tools for software engineering, those tools are no where near the precision or clarity of engineering drawings used in other disciplines of engineering such as mechanical engineering or electrical engineering. What we ought to focus our effort is to develop a set of tools that match up with engineering drawings for software development. Engineer is one who converts product specifications or user requirements into a form that can assist the programmer to construct the necessary code to build the product. Engineering is the combination of processes and tools that assist us in so doing. The first step is to come up with a clear and unambiguous definition of software engineering from which we can build further. Engineering is defined thus, “the process by which the requirements of the customer are converted into drawings, parts lists, material specifications, process descriptions, and test specifications for use by the manufacturing organization in the fabrication, assembly, and testing the finished product” (The Handbook of Industrial Engineering and Management, by Eugene L. Grant and W. Grant Ireson, 1955). I personally like this definition and would like to substitute the words “drawings, parts lists, material specifications, process descriptions, and test specifications” with equally powerful software engineering tools and the words “fabrication, assembly” with “construction, building” in the above definition to come up with a definition of “software engineering”. Best wishes Murali Chemuturi
*************************************************************
I hoped that this would be discussed. It did attract one or two comments. perhaps, we can discuss taking this as the base.
Best wishes
Murali Chemuturi