I recently passed my CLA exam, and after a few uncertain weeks wondering how well I’d done – it turned out that I’d passed with 100% marks. I’ve since had a few discussions where I’ve been asked about how I prepared and my exam techniques on the day, so here’s my thoughts on the CLA exam.
Create a solid architecture in one hour
On my exam day, I managed to complete my architecture within 1hr 15 mins, I then had 2hr 45 to fill in requirements. This was plenty of time to ensure I covered every requirement and also get a good level of documentation throughout the application.
I think take a maximum of 5 minutes to read through the requirements document to confirm the number of UI’s needed and that your planned architecture can handle what is required. If it seems like it doesn’t – I think still go ahead with your architecture as at this point you don’t have time to change, and just put some comments in about changes you would make.
Pick an architecture that you know really well
At one stage I was looking through the sample exam solutions, and comparing those to my attempts, their architectures seemed much simpler. I was seriously considering using an architecture similar to the solutions for my actual exam attempt. I think this would be a big mistake however, as your main goal is to complete your architecture as quickly as possible, then get on to filling in requirements tags.
If you go with an architecture based around one which you use in your current projects, even if you don’t get time to practice as much as you’d like – you know that design inside out so you’ll be fast at getting it out on exam day.
Take any opportunity to practice
I quickly realised that I wouldn’t be able to fit in 4-hour practice sessions each week, so I decided to focus on squeezing in practice wherever I could. Firstly I decided to do 1 hour practice sessions and try to get my architecture complete in that hour. By doing this a few times, I managed to get my complete architecture done in 1 hour 15 mins on exam day – this included all UI’s, controller module, error handler and FGV for the database. I then had 2:45 to focuses on filling all requirements. Basically the only coding I did was in that first 1hr:15min.
Here’s some sample code from my exam practice sessions – this is what I was creating in those 1hr attempts to create a solid architecture. CLA Design 3 (LV10)
Secondly if you’re really struggling to fit in practice time, try to merge it in with your day to day work – rather than pulling out your usual code template, try to create it from scratch as quickly as possible. Obviously if you’re doing any kind of billable or chargeable work – this time can’t be included in those billed hours!
Make a very basic hardware abstraction layer
There is always the requirement to write the application using simulated interfaces that will be replaced by real hardware. My solution to this was extremely basic and similar to one of the example solutions. My top level modules were in a conditional disable structure under a simulated condition. I then had a hardware case which I put in a comment to copy the simulated module into here with hardware interfacing code.
Let me know how you get on with your attempts, and I hope this advice can be of use.