There are two areas which I judge to be of great interest to the industry regarding architecture, and I see very little interest from academia
First, how much effort should be put into architecting? In industry there never are unlimited man-power and indefinite time plans. So how do you know that you have done enough architecting? Or did too many people working with the architecture for a too long time? Or when are the gains in putting another man-hour too small to make it worthwhile?
Second, how to define an architecture based on imperfect premises? In practice the architects never have the full picture. There might be requirements missing, stakeholders unavailable or implicit constraints. Similarly the architects themselves are no super-humans, there will be inconsistencies in what they do, things forgotten, lack of crucial knowledge or personal biases, all which cause an imperfect architecture.
Personally I think that these two areas are more important from an industrial viewpoint than further software architecture research on Architecture Description Languages, formal methods or Service Oriented Architectures (the latter may be contested, but I think I am not alone).
At the 4th European Conference on Software Architecture the workshop in imperfect architecture was cancelled, probably due to too little interest (I heard only 3 papers were submitted). On the other hand I found 7 papers when I scanned the LNCS proceedings which in their title relates to the subjects above.
I don't find this very promising. Eoin Woods had a similar conclusion on the state of software architecture research at his ECSA talk when talking about the relationship between code and other design information, such as architecture, where he thought the academic research and the industrial needs are diverging and not converging.
You can also read this related column from IEEE Software: The Top 10 Burning Research Questions from Practitioners. Especially #4 "Architecture and agile—how much design is enough for different classes of problem?" should get more attention at software architecture conferences.
A colleague of mine at Volvo had an interesting proposition: Since software engineering as a dsiciplin comes from the practitioners the research community wants to keep some distance, in contrast to the "fundamental" researchers in e.g. physics who would be enthusiastic if somebody is interested in applying their theories.
Sunday, August 29, 2010
Friday, August 27, 2010
ECSA 2010 pt3
The conference had three interesting keynote speakers: Jan Bosch, Philippe Kruchten and Jim Webber.
It must be quite nice to be a keynote speaker, then you have the authority of making statements like "Control is an expensive illusion causing inefficiency in the system" (JB) or "When ever you hear Service-Oriented Architecture think of orange men in rubber suits coming to rescue you" (JW) without having to prove them scientifically. Convincing and entertaining statements nevertheless.
Philippe Kruchten's keynote was a summary of the tutorial he gave together with Paris Avgeriou. The slides for both are available on-line.
It must be quite nice to be a keynote speaker, then you have the authority of making statements like "Control is an expensive illusion causing inefficiency in the system" (JB) or "When ever you hear Service-Oriented Architecture think of orange men in rubber suits coming to rescue you" (JW) without having to prove them scientifically. Convincing and entertaining statements nevertheless.
Philippe Kruchten's keynote was a summary of the tutorial he gave together with Paris Avgeriou. The slides for both are available on-line.
Thursday, August 26, 2010
ECSA 2010 pt2
I did not find this year's conference as inspiring as last year's in Cambridge. I don't know why. I think both the quality of the presentation and the gap on what was presented to industrial application varied more.
There are some papers which I plan to re-read, for example
The last three papers were all from the industry track (which also included the presentation by myself), which I thought was as interesting as the rest of the conference together. For some reason the industry track papers was not published by Springer in their LNCS series, but I was told they would be available at the ACM digital library.
There are some papers which I plan to re-read, for example
- Lightweight and Continuous Architecture Software Quality Assurance using the aSQA Technique, on how to to architecture analysis in agile-type development.
- Experiences in Making Architectural Decisions during the Development of a New Base Station Platform
- Unifying Software Architecture with its Implementation, on the need to include architectural documentation in what actually gets maintained, i.e. the code
- Structuring Very Large Domain Models, if you think you have big models see what was studied here...
- Towards a Process Maturity Model for Evolutionary Architecting of Embedded System Product Lines, interesting but also similar to Knowit's Architecture Capability Evaluation.
The last three papers were all from the industry track (which also included the presentation by myself), which I thought was as interesting as the rest of the conference together. For some reason the industry track papers was not published by Springer in their LNCS series, but I was told they would be available at the ACM digital library.
Tuesday, August 24, 2010
ECSA 2010 pt1
I'm at the 4th European Conference on Software Architecture in Copenhagen. The presentations varies, both in presentation skills, scientific rigour and relevance (at least to me).
Jan Bosch stressed 3 key take-aways in his keynote last morning, he might post the presentation on his homepage:
I'm not convinced that all of his conclusions are valid outside of pure software business domains. But I guiess there are som things to learn even if one makes software for systems like cars, communication satellites etc.
Now I'm of to listen to Philippe Kruchten.
Jan Bosch stressed 3 key take-aways in his keynote last morning, he might post the presentation on his homepage:
- An increase in speed trumps any increase in efficiency
- Software engineering is moving from integration to composition
- Software architecture is the key to delightful products in software eco-systems
I'm not convinced that all of his conclusions are valid outside of pure software business domains. But I guiess there are som things to learn even if one makes software for systems like cars, communication satellites etc.
Now I'm of to listen to Philippe Kruchten.
Tuesday, August 3, 2010
Geely owns Volvo Cars
Volvo Car Corporation is now fully owned by Geely. The deal was closed yesterday.
You can read the full story at Reuters or Gasgoo Auto News. New CEO will be Stefan Jacoby, formerly of VW North America.
You can read the full story at Reuters or Gasgoo Auto News. New CEO will be Stefan Jacoby, formerly of VW North America.
Monday, August 2, 2010
Exploring variation mechanisms in the automotive industry: a case study
I supervised a thesis project on run-time variability in an AUTOSAR architecture.
You can read about the project, and download the thesis report, at the student's web site: quandoo.
You can read about the project, and download the thesis report, at the student's web site: quandoo.
Friday, July 2, 2010
Books on programming embedded systems
I'm looking for a good text an programming embedded systems (for example an automotive ECU) but I can't find any that suits the bill. I was hoping to suggest something to students that avoids the trial and error learning methodology I had to endure.
A quick search on Amazon shows some which could be relevant:
I was thinking of writing a book myself on the subject. But it would mostly haven been a collection of data one can find on the internet with some detective work. Subjects to include would be:
A quick search on Amazon shows some which could be relevant:
- Programming Embedded Systems: With C and GNU Development Tools by Michael Barr and Anthony Massa
- An Embedded Software Primer by David E. Simon
- Embedded C by Michael J Pont
- Embedded Software Development with C by Kai Qian, David Den Haring and Li Cao
I was thinking of writing a book myself on the subject. But it would mostly haven been a collection of data one can find on the internet with some detective work. Subjects to include would be:
- Introduction to C, since embedded systems are programmed in C. Period....
I like K&R, but you can choose any book that suits the bill. - Good coding practices in C, for example MISRA C rules.
Read some example of MISRA C-rules here, here and here. - RTOS basics, since this is what is used on most embedded systems.
Read chapter 1 in the User & reference manual of rt:kernel from rt:labs for a good introduction. But personally I prefer the "run-to-completion" type of tasks which don't wait for external events for predictability. - Interrupts, stacks, and memory handling - ISR, RAM, NVRAM, ROM, Flash and every other acronym you can think of...
- Development environments, and compilers for embedded development
My experience is that this is pretty much decided by the OS you are using. I have experienced very mysterious bugs just by not having the correct compiler version, so I can' imagine what could happen when having a compiler from a different vendor... IAR graciously provides all of their manuals free of charge and their IDE and compilers on 30-day on a 30-day free trial. - Various hardware on a typical embedded controller - Details on how to access hardware with code examples.
You can see examples of typical hardware devices in the Freescale MC9S12XS256 Reference Manual, a typical automotive processor, especially chapter 10-19. Mind you that this manual is 738 pages long, so it's pedagogical value is limited. - Debugging - Too much to cover for this blog post. This is the real dark arts...
- Architecture of embedded systems
Almost all embedded systems are layered, but why? And how do you know which layers to have in your system? And how do you identify the tasks you should have when schedule the system?
Subscribe to:
Posts (Atom)