Posted by: Eoin Woods | January 18, 2010

Viewpoints vs Perspectives

Yarc, a Norwegian software engineer has recently posted on his blog to ask “Why can’t we use viewpoints for quality attributes?

He asked this question in the context of understanding the idea of an architectural perspective, created by Nick Rozanski and myself, as introduced in our book.

This is a great question and one Nick  and I get asked a lot.  In fact there are people who know a lot more about architectural viewpoints than I do, like Rich Hilliard, editor of the new ISO standard 42010, who have come to the conclusion that perspectives really are viewpoints (in the IEEE 1471 sense of the term).

In our approach to software architecture, a viewpoint tells you how to define an architectural structure. The Functional structure (i.e. components, interfaces, …) the Information structure (entities, data ownership and flow, …), the Deployment structure (nodes, system software mapping components to runtime environments, …) and so on. So an architectural view (in your architectural description) corresponds to a viewpoint and contains models that define one of the structures in the software architecture of the system.

We defined a perspective as being a collection of activities, checklists and so on that guides an architect to help them make sure that their architectural design will exhibit a particular quality (performance, security, scalability, availability, …)

The key difference is that a perspective doesn’t result in a view. Rather you apply a perspective (its process, activities, checklists etc) to your architecture, normally as described in a set of views. For example, applying the security perspective might mean that you end up changing the functional view to partition components differently to allow them to be secured (and maybe add a security manager component) you change the information view for similar partitioning reasons and you change the deployment view to add in security mechanisms to the system’s runtime structure.

Some perspectives (security and performance being good examples) often do result in architectural deliverables (threat models, performance models and so on) but these aren’t structural definitions of the architecture, they’re supporting definitions.  So while important, we don’t consider that they add a new view.

So using a viewpoint results in a new view (a model or maybe a set of models). Using a perspective (probably) results in changes to one or more views in your architectural description. It doesn’t result in a new architectural structure itself.

I hope this helps!

Posted by: Eoin Woods | December 30, 2009

Design Principles Session at IASA London

I’m running a session on software design principles with Chris Cooper-Bland and Nick Rozanski at the UK IASA chapter meeting in London on 12th January. Thanks to Matt Deacon for the invitation.

  • Details are on Matt Deacon’s blog: http://tinyurl.com/ycdm5u7
  • Registration is via Event Brite: http://ukiasadp.eventbrite.com/
Posted by: Eoin Woods | December 28, 2009

Getting the Hard Drive out of a 2006 iMac

My early 2006 iMac gave up the ghost a few days before Christmas and refused to respond at all to being switched on, so it was clear that something pretty terminal must be wrong with it and I replaced it with a new aluminium iMac.  (As an aside, this went much more smoothly than expected thanks to a Time Machine backup, which meant that it really was a case of booting the new machine, attaching the Time Machine disk and it restored me back to where I was before the failure – just as the Apple advertising said it would, amazing!)

Anyway, this left me with the problem of a non functioning machine containing a hard drive that presumably still worked and contained all of my private data.  Not something that I want to send to the recycling centre.  A few Google searches later and it became clear that opening a 2006 era iMac (one of the ones with a white plastic case) and getting at the hard disk isn’t a job for the faint hearted.  It’s a lot easier if the machine is dead already, but even then, it’s hard to find out how to do it.

In the end I discovered this very useful photo slide show that shows how to open the machine, access the hard disk and get the thing assembled again.  Thanks to John Wood for publishing this guide.

In short …

  • Remove all of the cross-head and torx screws in the bottom of the iMac;
  • Then if you press in the memory chip retention arms, you’ll be able to pull the outer case off towards the front of the machine;
  • You can then unscrew the 4 deeply recessed #8 torx screws that hold the screen in place and (having pulled the black material at the bottom of the machine up), pull it upwards to peer underneath;
  • Disconnect the various leads that tie the screen to the motherboard and you can carefully pull it upwards and out of the way;
  • You can now see the hard drive and if you remove the two screws holding its cradle in place, and remove the lead to the temperature sensor, you can lift the hard drive out;
  • Assembly is “merely” the reverse of this process (as the Haynes manuals used to say!)

By following this process, I managed to safely extract the hard disk and get the machine together again … mind you, it was broken already so I don’t know if a healthy machine would have survived my efforts!  One tip is that to access those damn torx screws that secure the screen you’ll need a #8 torx driver, with a magnetic tip to prevent you dropping the screws into the middle of the machine (or a very small straight head screwdriver if you don’t mind mangling the torx screws a bit).

Naturally this process invalidates any remaining warranty for the iMac.  All in all, if it was a drive upgrade rather than a simple extraction, I think I’d leave it to the experts at a Mac service centre.  Still, it was an interesting process!

Posted by: Eoin Woods | December 28, 2009

Resurrecting old PowerPoint files

I was recently browsing through some archived files from a job long ago and discovered that I couldn’t open the PowerPoint files.  This surprised me because I thought that MS Office was able to open files from any previous version, but it appears not.

Digging further, I found that the files in question were in PowerPoint 4.0 format (from Office 4).  I created these in 1993 or 1994 and today’s Powerpoint can’t open these (and doesn’t seem to recognise them as PowerPoint files at all).  As far as I can tell, files created by software earlier than MS Office 97 (Office 8.0) may not be recognised by the current software.  Now 1993 is sixteen years ago so these files are certainly old, but it’s not that long ago.  There must be a lot of files of that vintage still around in people’s archives.

I couldn’t find any way of resurrecting these files without installing an old version of Office (e.g. Google Docs won’t read them) so I installed Office 2000 and found that it would read these PowerPoint files successfully and I managed to save them in a more recent format that today’s MS Office would recognise.  (To make matters a little bit more complicated, at home I’m working on Macs these days, so I needed to install WinXP in a VirtualBox VM to allow me to install Office 2000 but that was easy enough).

This worked nicely and I got my files back, but it did occur to me that if I hadn’t had an old version of Office lying around this wouldn’t have been possible.  I’ll think twice before chucking out old software in the future (and be a bit more careful about the file formats I’m using to archive data).

Interestingly, Word doesn’t seem to have the same problem.  I managed to open Word files of that era using MS Word for Mac 2008 and they seem to be OK.  I don’t have any Excel from that era to experiment with so I don’t know what the score with it is.

Posted by: Eoin Woods | November 15, 2009

Exception Handling Article

An article that Andy Longshaw and I wrote a couple of years ago on exception handling patterns has now been published by the ACCU in their Overload magazine, so the article is now available in a much more accessible form than before (first part here, second part here).

Posted by: Eoin Woods | November 15, 2009

OOP 2010

OOP 2010 is an event where oop2010-logoI’ve been lucky enough to be asked to give a couple of talks for 2010 when the conference is Munich in January. I’ll be giving one talk on the Viewpoints and Perspectives approach to software architecture and a second on how architects can work with agile teams. I’ll post more details closer to the event.  Thanks to Frances Paulisch for the invitation.

Posted by: Eoin Woods | September 19, 2009

Sadly Missing JAOO 2009

jaoo_logo

Unfortunately an immovable work commitment has just emerged that means I won’t be able to be at JAOO 2009, which is a real shame.

Posted by: Eoin Woods | August 6, 2009

Speaking at SA2009

Software Architect 2009I’ve been fortunate enough to have a talk selected again this year for Bearpark Publishing’s excellent Software Architect 2009 conference.  This year the conference is at the Royal College of Physicians in Regent’s Park, London and it’s running from 29th September to 1st October. I’ll be giving my talk on the “Top 10 Software Architecture Mistakes” on Wednesday 30th September in the afternoon.  Hope to see you there!

Posted by: Eoin Woods | August 6, 2009

WICSA 2009 Early Bird Registration Closes Soon

The WICSA 2009 early bird registration prices are only available until August 15th, so if you’re planning to come to the conference, now is a good time to register!

Hope to see you there.

Also we now have a great group of sponsors but if your organisation is interested in sponsoring the event and reaching a large group of top software architects then do get in touch.

Posted by: Eoin Woods | August 6, 2009

Mac Finance Packages

Recently I decided that I really should be tracking my finances using a dedicated package, as I’ve been using online banking and Excel to do this for quite a while and it seems like there must be a better way.

I use Macs at home for most jobs and so I decided to find a good personal finance package for everyday use. My needs are pretty simple (import transactions from my bank, set up a simple set of transaction types for classification, allow me to analyse past expenditure and predict future expenditure) so I wasn’t expecting this to be difficult. Well it just goes to show how wrong you can be!

Since I switched to Macs about 3 years ago, I’ve been consistently impressed by the quality of the software available for the platform, but whatever has resulted in this situation for most software seems to have passed most of the personal finance packages by. Let’s just say that I wasn’t terribly impressed overall.

The Test

I found 10 personal finance packages for OS/X (which was more than I was expecting in fact) and I downloaded them all for a quick test drive to see how they fared. I performed the same test with each package, which was quite simple, just being:

  • Create a new account
  • Remove all the supplied categories and add about 8 of my own
  • Import two OFX files with about 120 transactions over 4 weeks
  • Try to categorise the transactions and show a graph of expenditure by category

While this is pretty simple stuff, the different packages coped with these tasks very differently.

The Applications

Cha-Ching (2.0b96)

Looks promising because it’s simple and reliable and seems to work well but is also very basic, without any charting or analysis yet.  Currently in beta (and free) so one to keep an eye on.

CheckBook (2.0.3) – $14.95 ($24.95 for Pro)

Simple transaction based tracking package that seems to be well written and offers the basics, but appears to have many of the same problems as others in the sense that simple things (like changing the category of a number of transactions at once) causes problems.

The “Pro” version adds reporting and searching and seems to nearly be there from my perspective, but still has some reliability problems (again updating categories for a group of transactions appeared to cause the same problems as in the basic version).

Fortura Fresh Finance (1.3.4) – $44.95

Quite a new package on Windows and Mac. Not all that visually attractive but works very reliably and offers a good set of basic core features (import rules, simple reporting and graphing, transaction import, simple forcasting). Nice import filters including a self-training feature based on existing transactions.

Strong set of keyboard shortcuts, some of which are Mac compliant and some aren’t (e.g. Cmd-i being to add an item rather than to show the Info Inspector).

Lacking the visual pizazz of iBank and the number of more sophisticated features that some of the other packages offer, but for my simple needs, it seems to be the best bet.

iBank (3.4.2) – $59.99

This is a package that appears to have fantastic potential but is let down by poor basic software engineering that results in reliability problems.  It looks fantastic and is very Mac like, with nice usability, consistent OS/X conventions and so on.

Functionally, it seems powerful with the basics all covered and nice additional features like real time graphing, clicking through graphs to underlying data, smart accounts, budgets, …  It also has good import rules, allowing multi match on one field or match across many fields.

However this package’s Achilles heel is its reliability. When setting transaction attributes (e.g. categories) it crashed repeatedly. This seemed to be related to multi-select and/or changing the categories of transactions, but it was so bad I managed to crash iBank every few minutes. However it’s not just me, reading the support forums on their site suggests that a lot of people crash this application a lot!

iCash (5.4.2) – €39.90

This package seems to have a somewhat complicated model of accounts, tied to categories. For my simple needs, this seemed like duplication (I had an account called “household” and also needed a category called “household”).  All the same, it probably offers a level of sophistication that many people find useful.

The application is quite Mac like, but when you’ve used it for a while you realise that its usability is quite spotty. To delete accounts, it’s a one by one thing, each one being 3 clicks with no keyboard shortcuts being provided. Unfortunately categories use the same interface with the same limitations. Similarly changing a set of transactions means selecting them and then selecting “Edit” and confirming that you want to edit multiple txns and then finally making the update.

The most maddening usability thing I found was that the transaction viewing interface only allows calendar month based display rather than a display between any given set of dates (e.g. only 1st to 31st March is allowed rather than 22nd Feb to 21st March).

There are quite a number of good things about this application (for example the graphing is nice and the application was reliable throughout, which many of the others weren’t) but from a usability perspective, there are just too many awkward things about it for it to be an easy choice.

Liquid Ledger (2.3.3) – $49.99

Functionally Liquid Ledger doesn’t appear to be the top of the class, but it offers a good set of features and what is provided seems to work well. It imported transactions reliability, allowed categorisation and provides fairly good reporting and graphing (although the graphs don’t allow click through to see what’s behind them as iBank does). The reporting provided isn’t all that sophisticated though and can’t be customised, always reporting the current year, which is a bit annoying.

An interesting feature which the other packages didn’t have is MobileMe integration, providing backup of your data to your iDisk on demand, or when the application exits.

All this said, the software seems to be completely broken if you try to change the set of accounts and categories in the default set. You can delete one but then the delete button just fails to work. Deleting accounts seems to work for a while, but then you get a group called “0″ with an unnamed account in it. And it all goes down hill from there!

If you leave the default accounts and categories alone (and just rename them if needed) then the package appears to work pretty well. It’s not tremendously user friendly but it’s OK and better than a number I’ve tried as part of this exercise.

Money (3.3.1) – $39.00

This application looks like it has a lot of potential as it’s a real Mac app and does the basics fairly well.

It happily imported transactions, allowed new categories to be set up easily, has “smart” accounts (like smart playlists in iTunes) and provides good keyboard shortcuts allowing rapid categorisation of a transaction list.

Having started well though, I couldn’t get any graphs to display at all (although tabular reports were OK).  It also didn’t offer any import rules, which meant that importing and classifying transactions is a pain.  There were also a number of functional oddities (like Edit Graph working from the action menu, but not the context menu).

MoneyDance (2008r3) – $39.99

At first glance, this is definitely the package to go for because it is powerful, cross platform, written in Java, and allows you to write plugins for missing features.

The problem was that for the things I needed to do, it exhibited awful usability. For example, if you want to delete a number of categories, you have to delete the categories one by one rather than selecting a number and deleting as a group. The import model is also a bit odd, because transactions are imported into a “holding” area and need to be accepted one by one.  There is no provision for automatic classification rules, so this results in a lot of individual steps. MoneyDance tries to be helpful and guess what the classification should be, but it appears to need a perfect match on a field like “payee” (so “TESCO 234″ and “TESCO 242″ are different).

Staying on the subject of importing transactions, I was suprised to find that once imported, you then can’t edit the transactions further!  The other problem I had was that the auto matching feature automatically replaces the payee as well as setting the category which is annoying as this loses information

Minor gripes include the fact that graphs aren’t clickable to see what data is behind them, lots of lists won’t multi-select, no keyboard shortcuts are provided and there’s little of the Mac in the interface.

Money Well (1.4.8) – $49.99

This application seems to do what it promises and to do it rather well.  It’s based on the simple idea of “buckets” for your money, so that at the start of the month you allocate your income to buckets based on your priorities and liabilies (buckets being for mortgage, utility bills, travel, household expenses and so on).  It then tracks expenditure against these buckets to let you see how you’re doing against the plan.

The application seems to work pretty well implementing this model, importing transactions smoothly, providing a neat a “memorize” ability to auto classify transactions and allowing the creation of as many “buckets” as you want, with the application dealing with a large number without problems.

For me, the only problem was that this “track against bucket” model wasn’t quite what I was after and more importantly, the application has very limited historical reporting once you have the data in the application (which is what I really wanted).

Splash Money (4.09) – $19.95

This application looked very simple to set up and use, so I was quite hopefull about it, but it wouldn’t import HSBC OFX files, so that was that.  I couldn’t get my data into it.

Conclusion

Many of these applications appear to have been developed by small software houses who have poured a lot of effort into them, but in many cases they seem to have been left with one or more rough edges or functional limitations which mean that I think I’d be happier to just keep on using a spreadsheet.

For my particular set of biases and needs I chose Fortora Fresh Finance for Mac, which has been working well so far.  Transactions import smoothly, it’s learning all of my regular transactions for authomatic classification and the historical analysis is basic but reliable.

Older Posts »

Categories