bookmark_borderChoosing a Software Quality Model

For my thesis (Software Quality) I am currently figuring out how to choose a proper Software Quality Model in order to lay down the foundation of a Software Quality Definition for the project I am working on.

For now I have choosen this approach, and I’d like to hear from others how they (would) have tackled this problem.

It is good to know that I have narrowed down what “Software Quality” is. I’ll be focussing on the product (Garvin, Gosby) quality and the targetted audience are Software Engineers.

At first I will determine what kind of product I am working on. In this case it is a website, selling things. Some characteristics come to mind, like “24/7” or “should display always the correct (price) information”.

With these characteristics, I’ll look up Software Quality Attributes that would fit in.

This gives me a table, with in the first column all the characteristics, and next to them a few Software Quality Attributes that would fall into that specific characteristic description.

Now that I have a list of Software Quality Attributes, I can look up what Quality Model has the most matching Software Quality Attributes in them as well. Models that focus on different attributes would not interest me anymore, because it would not apply to the kind of product I focus on.

I found a nice model comparison, with Software Quality Attributes, from NASA. For your convenience I show it here:

With this, it would be possible to choose a Software Quality Model and work from there.

I am half-way with this method, and so far I think this is the way to go. If you think this is a bit too easy, or I should really take other considerations. Please let me know.

Note: thanks to Wouter for his suggestion who got me into this direction.

bookmark_borderDon’t forget your resources directory! (Maven/Eclipse/Sysdeo-tomcat)

Recently I had to set up a XMLRPC Server. Using Apache’s XMLRPC it should not be that hard to set up.

It wasn’t. But it did not work the first time.

The XMLRPC Serlvet would not be initialized properly because it could not find the XmlRpcServlet.properties file. I was a bit suprised, because I had it in my src/main/org/apache/xmlrpc/webserver path… so why did it not work?

The reason is that whenever you run your Tomcat webserver, configured to look into your project directory (using the tomcat-sysdeo maven plugin) which is set up using maven; you’ll be using your classpath as set up there. If you look into your project->build path settings (tab source), you’ll see that everything under src/main is only including **/*.java, meaning it will not find the properties file at all!

Once I moved the XmlRpcServlet.properties to src/main/resources/org/apache/xmlrpc/webserver (where it belongs), it worked fine.

So remember, classpath, classpath, classpath!

bookmark_borderItunes and Windows 7 64 bit hot-fix – Did it work for you?

In my previous post I have mentioned a Windows hot-fix for the synchronisation bug you may encounter using Windows 7 64 bit and iTunes 9.0.2.

I can see in the stats that many people have found this blog post. The big question remains: Did it work for you?

Please let me know (add a comment to this post).

bookmark_borderWindows 7 64bit and iTunes 9.02 sync problems

Do you have Windows 7? Perhaps the 64 bits version? Do you have an iPhone, iPod?

Do the following things happen when you try to sinc with iTunes?

– your iphone stops saying it is synchronizing, but iTunes still thinks it is.
– your computer becomes very slow, so slow you actually have to restart it in order to
do your daily things again.
– synchronisation works fine only for Contacts or Calendar items.
“heavier” stuff (ie photo’s or
music) causes the symptoms above.

Don’t worry: You are not alone.

In fact many others have been suffering from the same issue. But, there is hope.

I have tried several ‘solutions’: An XML trick, tweaking your power manager, lowering your max ram or disabling your “standard enhanced pci to usb” device. But I was still not satisfied with the ‘fix’ or ‘workaround’.

The first 2 only work temporarily, or not at all. The 3rd is not desirable, I had installed Win 7 64 bits, so I could use all my 4 GB of RAM.

The last one though works ok, but it disables your USB 2.0 support and thus makes synchronisation very very slow.

I figured that since this seemed to be related to  the USB ports (ie, the last ‘fix’ worked), I dug into Win 7 64 bits USB port related problems. I had found this particular problem. It kind of had the same symptoms, and I found some saying it also infected the iPhone/iPod synchronisation. And, the best news is:

Microsoft have brought up a hot fix to solve this issue

I have tested this fix (just like I did with all the others I have described) and I am glad to say that it works!

If you cannot find it, try this . It has some unofficial download links that may work for you.

I hope it  helps you out, it sure did for me.

bookmark_borderEasyMock Class Extension – IllegalStateException on expect method

When I write unit tests, I find using EasyMock extremely helpful. Especially using EasyMock Class Extensions give me the ability to mock objects which do not have an interface, or objects that are so legacy (and untested) that I don’t dare to touch them yet.

I say “yet” , because once I have reduced this ‘fear to break things’ factor by writing enough tests to ensure the legacy code works as it should, I *will* touch them.

One little piece of advice when writing your test, is that the ‘expect’ method will throw an exception when you tend to do that on methods that are final.

This might give you an IllegalStateException with the message : “no last call on a mock available”.

This basically means “Help I could not mock this call, and now you want me to mock it anyway!”.

Step back a bit and think how this EasyMock Class Extension would work in order to Mock existing classes? What would you do? Yes, you would extend this class, and override the methods!

That is what the EasyMock Class Extension does. So what happens when you make a method final? You cannot override it!

If you have any IllegalStateException from the EasyMock Class Extension, check your methods you tend to ‘expect’ (override) if they are marked “final”.

Remove the “final” keyword and you will be able to continue your work.

I’ll leave the question : “Should i just remove this ‘final’ keyword?” to your own wisdom…