Tag Archives: Software Factory

Posted: Industry Vertical Episode 001

I am proud to present the first episode of Industry Vertical the twice monthly net cast about industrializing software development with Software Factories, Guidance Automation and Domain Specific Languages at http://tinyurl.com/aamnov. This episode starts out with the basics of Software Factories and trys to answer the question “What is a Software Factory”.

Industry Vertical Pre-Production Begins

I’ve decided to try my hand at webcasting. I’m in the stages of preparing a webcast series around using software factories, guidance automation and domain-specific languages called Industry Vertical. I’m planning on taking it slow starting out by providing some introductory material around what software factories are, their benefits and their life-cycle. Then I’ll take everyone step by step building out a software factory from the ground up. I’m hoping this will help everyone out there get started in industrializing software development.


So far, I’ve spent the last month getting my scripts together, creating graphics, setting up a new web site, purchasing audio equipment and I just found a great deal on a Sony HVR-A1 High Definition Camcorder, so once it arrives I’ll be ready to get down to business and start recording the first episode.


Hopefully, my busy work schedule will stay out of the way long enough to keep releases to a regular interval, but we’ll just have to wait and see what happens.


Don't call store.Dispose() if you didn't create it!

So, I’m happily plugging along, adding the ability to import a WSDL file into one of the DSLs for a new Software Factory we’re building at work. And after reading and re-reading the documentation and the DSL Book, I decide I need to call store.Dispose() in my code because I’m finished adding ModelElements to the model and I am leaving the command handler. You know, be neat and tidy when you exit a function dispose of any COM+ interfaces you’ve might have AddRef’d, etc.


So now I’m running the DSL and everything is working like it did before my single line of code, but now after adding the ModelElements to the model POOF! my model explodes! and I’ve lost everything in the model. I try it again a couple more times, kinda like pushing the car back up the hills to see if the brakes will fail for a second time after they did the first, you know typical programmer mentality and sure enough POOF! POOF! POOF! it keeps doing the same thing over and over.


So I trace through the code and notice that after I execute the store.Dispose() and exit the function, I get rerouted to the DocData class and it is trying to save the file and throws an Exception because the diagrams no longer exist.


So I go back and review my code and notice that I am not creating a new store and loading in the model, but I’m using the existing store that is opened by the DSL Editor and when I call store.Dispose(), I’m pulling the rug out from underneath me, the editor and Visual Studio as well.


So, I removed the single line of code that caused me an hour’s worth of grief and everything is working just hunky dory.


I guess it will always be engrained in my head, that unless I’m actually creating the store, I shouldn’t be disposing of it ,otherwise I’ll cause terrible things to happen.


Hopefully this will keep the rest of you from making the same mistake I did.