Dissertation Proposal

mike55

Contributor
Joined
Mar 26, 2004
Messages
727
Location
Ireland
Hi all,

Am trying to identify a suitable subject area/topic for a dissertation for a MSc. in Software Engineering, unfortunately I am drawing a blank. I would appreciate it if anyone could suggest any such topic.

Mike55.
 
Any thoughts on the following subject areas:
1. Model Driven Architecture, or
2. Service Orientated Architecture.

Mike55.
 
Model Driven Architecture (MDA) has been around for a while and is starting to gain a lot of steam with a wider acceptance of UML (and the "soon" to be standardized UML2.0 standard). I'm working on a multi-year, very expensive project for the US DoD that is using MDA techniques and technologies to create a next generation Joint Forces combat system. We are using a tool developed by a UK company, Kennedy-Carter, to develop the actual combat system. KC created what they call xUML or Executable UML. It's basically a subset of UML with a middle layer language somewhere between code and UML. The xUML is platform independent and can be generated using a model compiler into a platform specific model for any platform (gnu C++, C++ .Net, C# .net, etc...). As far as I know, this is the single biggest project anyone has ever attempted with xUML. And it works pretty well for the most part.

Some interesting questions an independent third party observer might be able to ask about a project like this might be:
What are the actual time savings?
Is it really easier?
Does the "model is the code" concept really save time?
How much does MDA really save when you consider supplemental and interfacing code? What about model compilers and training? Is the code actually better?
How Platform Independent can a model really become for a real world application?
What about defects? The whole purpose of going to a higher level language is that you are getting closer to the problem domain which allows you to write algorithms in a more problem natural language which should introduce fewer flaws and bugs. Is this actually the case?
Is this actually the "next big thing"?

Another interesting thing -- I've noticed negative cultural effects with this process, as well -- the model tends to be treated as the end all, be all documentation so very little work actually goes into requirements and other documentation. It's almost like we've taken one step forward and two steps back, throwing out years of Software Engineering techniques and best practices. At least, this was the case at first. Folks have started noticing recently that the model isn't as definitive a source of documentation as it was originally touted.

The stuff I'm working on would make a great case study, but being from Ireland, you won't be able to gain access to it. You can probably find some other possible case studies at the OMG web site and at the Kennedy-Carter web site (for this particular implementation of MDA). I also have come across some interesting papers on the subject, one in particular by either Andy Hunt, Dave Thomas or both that was a particularly good read. I don't have a link for it right now, sorry.
 
All right. My ramblings before were well and good, but here's something you can actually use.

In Frederick Brooks' "No Silver Bullet" essay, Brooks argued that no single advancement in software engineering techniques would allow for an order of magnitude improvement in productivity when creating software -- in other words, there is no silver bullet to slay the monster of bad software engineering. In this essay, Brooks specifically cited both graphical programming and automatic programming as being close but still not silver. I think it would be very interesting to assess these two techniques in terms of MDA and either offer a rebuttal or further support given these new techniques. Is MDA, a combination of both Automatic and Graphical programming, the silver bullet Brooks postulated would not occur in a decade (it's been almost 20 years)? If it is, what makes it so great? If it's not, why not? Brooks did write a follow up to his original essay which you would also have to read to really take this all the way. I think this would be extremely interesting to read about. I have heard a lot of talk about MDA through the project I'm currently on and a lot of people have at one point or another touted xUML/MDA as a silver bullet in so many words.

Anyway, I don't know how many pages you're looking at (I'd image more than a few) so this along with some of the thoughts from my previous post, some analysis on current implementations, and a basic overview would probably be more than enough for any paper.
 
mskeel said:
All right. My ramblings before were well and good, but here's something you can actually use.

In Frederick Brooks' "No Silver Bullet" essay, Brooks argued that no single advancement in software engineering techniques would allow for an order of magnitude improvement in productivity when creating software -- in other words, there is no silver bullet to slay the monster of bad software engineering. In this essay, Brooks specifically cited both graphical programming and automatic programming as being close but still not silver. I think it would be very interesting to assess these two techniques in terms of MDA and either offer a rebuttal or further support given these new techniques. Is MDA, a combination of both Automatic and Graphical programming, the silver bullet Brooks postulated would not occur in a decade (it's been almost 20 years)? If it is, what makes it so great? If it's not, why not? Brooks did write a follow up to his original essay which you would also have to read to really take this all the way. I think this would be extremely interesting to read about. I have heard a lot of talk about MDA through the project I'm currently on and a lot of people have at one point or another touted xUML/MDA as a silver bullet in so many words.

Anyway, I don't know how many pages you're looking at (I'd image more than a few) so this along with some of the thoughts from my previous post, some analysis on current implementations, and a basic overview would probably be more than enough for any paper.

Hi mskeel,

Many thanks for the suggestions that you have offered. Recently read Brook's paper "No Silver Bullet" - quite an interesting paper - as a contrast I also read the follow up by Turski "And no philosopher's stone, either".

The dissertation must consist of at least 20K word. What I am allowed to do is to break the dissertation into 3 seperate papers and then write a general introduction for the papers. The areas that I am considering are as following:
1. How MDA will affect the quality of the product eventually produced?
2. Is MDA an option for small Irish based s/w development companies (small => 10 to 100 personnel)
3. (Based on your suggestion) Is MDA a "silver bullet"?

My biggest problem at the moment is now finding a lecturer to discuss the subject area with and determine what, if any changes in need to make.

I will let you know how that goes, again I am gratefull for your suggestions.

Mike55.
 
Yeah, and the more I think about, the more I think that MDA might be the best silver bullet candidate yet. Not really as a single concept, but because it brings together so many different ideas that all make improvements: OO, code generation/automatic programming, graphical programming, better reusability, higher level language, etc. At least, that is what is supposed to be coming together. I think the big caveat in Brooks' paper was the no single technique would make the improvement. But, MDA seems to be the combination of several great techniques...

Those look like very interesting subjects - you should have a fun time and learn tons. If those subjects are approved and you need any help, feel free to pm me and I might be able to offer some help. Glad I could be of some assistance and good luck.
 
Back
Top