Pattern-Based Software Dev – Day 3

February 17th, 2010

Today was hand-in day for the first part of this module’s coursework – to design a shop, based on four requirements, using Object-Oriented design principles. Specifically, we had to use the State, Strategy and Item Description patterns, although I also worked in a couple of other patterns I like – Decorator (solves problems of composing functionality using recursion) and Iterator (hides implementation details of collections behind a simple object you can only iterate over).

I quite enjoyed having a simple pet problem like this, with a real reason to work through some aspects of it. If you’re interested in having a go yourself, the assignment reminded me of the first pragprog Code Kata – Supermarket Pricing.

As a result of the coursework, I’ve found a UML tool I can live with – Visual Paradigm. I’ll probably do a bit of a review and compare with the other tools I tried soon, but suffice to say it was by some margin the most pleasant and easy-to-use tool of the 5 or 6 I tried. £40 needed to get rid of the invasive watermark, but it looks like when it comes to CASE tools you get what you pay for.

The lectures are proving tricky to keep on top of – the pace is kinda slow (maybe that’s just me), so I find myself struggling to maintain attention. Still, the lecture notes are very detailed, so I spent a a few hours reviewing last week’s notes creating myself some revision material. I’ve been using a piece of software called Freemind to do ‘mind-mapping’, something I found out about in a presentation by Steve Brett in last years’ unsheffield unconference. It seems to work pretty well for the way I do revision, here’s a screenshot if you’ve not seen a mind map before.

Freemind Screenshot

So anyway, it’s all good. Coursework part 2 starts now, two more lectures in this module.

Paul Brabban Computer Science, MSc

Pattern-Based Software Dev – Day 2

February 9th, 2010

My Dell Vostro gave up the ghost a couple of days before the Software Development module was about to start. I tried the first day of the course without a laptop, but it wasn’t really working out so I bit the bullet and bought a new machine. I’ve only had it a couple of days, but so far I’m very happy with my new purchase. I’ll probably do a review after I’ve had it for long enough to judge, but here’s a photo of the new kit at the side of the old kit.

New HP dm3-1020ea (centre) versus Dell Vostro (right)

New HP dm3-1020ea (centre) versus Dell Vostro (right)

As for the course itself, day two brought in patterns to help understand the problem domain and patterns to help design at a higher level than software implementation, as defined by IBM.

The coursework requirements were also laid out.

15% will be a solution for a set of requirements, resulting in a object-oriented design for an electronics store. To be completed individually, assessment consists of UML Class diagrams in a 4-page report explaining how the classes solve the problems.

35% will be a 4-person team project, analysing a real e-business solution. Assessment will be a 15-page report, and includes team management aspects.

The other 50% will be assessed by exam around June.

Paul Brabban MSc

Pattern-Based Software Dev – Day 1

February 8th, 2010

I got a couple of great surprises this morning on turning up in Manchester for the module starting today.

First up, the lectures were originally timetabled for a 9:30am start, and are now timetabled for 11:00am. That gives me loads of time between arriving in Manchester at 08:00 and starting lectures to eat, get to the library, do any admin stuff that’s easier when I’m onsite and generally chill out before getting started.

Second – I signed up for ‘IBM Patterns for e-Business Applications’, because I wanted to get some Software Engineering coverage as part of my MSc, and there was some coverage of design patterns in the syllabus for this module in 2009. I was in two minds about it, studying something with ‘IBM’ on it didn’t seem entirely right for an academic course.

To my surprise, the course has been re-branded ‘Pattern-Based Software Development’ overnight, and a complete re-write of the lectures has started to appear that appears to focus on understanding and applying some of the GoF design patterns – pretty much the exact course I wanted to take. I’ve studied and applied some of the GoF patterns before, and I’m really looking forward to learning the syllabus and having my work critically reviewed.

As an aside, it looks like the Manchester CS department is completely re-working its taught MSc Advanced Computer Science proposition, organising the taught modules into ‘pathways’ like Artificial Intelligence and Natural Language Processing. Looks like a good move to me, helpful for students choosing modules.

The lecture material introduced the Strategy, State, Proxy and Item Description patterns. The first three are pretty well known, but it’s the first time I’ve come across the last one.

Coursework material involves UML Class diagrams and designing a system to solve a loosely defined business problem. Unfortunately, it seems that good UML tools are tough to find. After a few days of battling working with the Eclipse project’s UML2 plugin I’ve come to the conclusion that I don’t much like it for simple diagramming. I’ve tried a few other tools with limited success, just a couple left to try. It might be you do have to pay $$$ to get a good one – but we’ll see.

Paul Brabban Computer Science, MSc