Thursday, 7 April 2011

UML and Model Driven Development, a beginner’s opinion


Todd, a bright young software developer and the latest addition to Objektum explores the common perception of UML and shares with us why his view on UML has changed... 

Having recently joined Objektum after graduating last year, the team and I thought it would be a good exercise to write down my initial impressions of the work I do with UML class modelling and how it relates to software engineering, as much for your benefit as my own.

It might first be a good idea to give you an overview of my level of exposure to UML before joining the team. The truth is that I was only offered modules covering UML during the first year of my degree and despite choosing advanced programming options in later years the subject wasn’t approached again.

It was very much my experience that we were being taught UML without it ever being explained as to what exactly it was useful for, or how it might be applied to a real-life situation.

One example that I’m sure will be familiar to anyone who has studied UML is modelling a video rental scenario. We would study a text and find the actors and use cases to create a Use Case diagram but then we would move onto the next topic. The step between using the model to conceptualise the problem and actually creating the system was never taken.

It left me wondering just when UML diagrams were actually supposed to be used: should they be used in the planning stages, as a way or document functionality after the fact or as a high level overview for explaining a system? Suffice it to say that I couldn’t immediately tell you the benefits of modelling.

Something that I think my lectures would have benefitted from and something that was quite surprising to me when being shown around the tools and systems we use here in the office is just how easy it is to generate code directly from class diagrams.
Now you might be thinking that it’s a doddle just to sit down and write a skeleton class and start adding methods and attributes and all the rest of it by hand as-and-when you need them, but think about how much longer it would take if you later realised that you needed to inherit from another class.

Traditionally you would have to go to each affected class and add the changes by hand, taking up valuable time and presenting an opportunity for bugs to creep in. Automatically generating classes from a UML model means that all the hassle and potential problems you might otherwise encounter are completely side-stepped and the same task can be accomplished in much less time. Not only that but creating accurate class diagrams makes discussing and reviewing much easier, and you can quickly sketch a diagram on a whiteboard or paper and know exactly what’s going on without the need for pseudo-code.

I don’t expect to have sold you on the idea of using UML in your project quite so easily but I do hope after reading this you’ve at least come away with the impression that UML isn’t just a tool for making diagrams with funny stickmen on, and if you’re hesitant to give UML a chance then it might just pay to ask yourself why, and to look at where your preconceptions come from.

When I mentioned to friends that I was using UML in software development they were very curious as to what exactly I used it for- the general comment being ‘Oh do people actually use that?’. To me it seems to highlight a real problem in the way that UML is currently taught, a problem that only serves to keep model driven development as a fringe activity. 

In keeping with the university theme, if this were a lecture this is around the time that I would mention some dusty books for you to go away and read (that you would ignore) so if you’re interested in learning more about how good use of UML can be a positive influence on your software project you could do much worse than this well written and practical essay by Leon Starr.

Friday, 11 March 2011

Camtasia Studio top tips for Software Demos


Fiona has been busy putting together software demonstrations for our Legacy Bridge Technology and shares her top tips on using Camtasia....

Camtasia Studio is the first video editing software I’ve ever experienced, thus my knowledge of video editing was previously limited and restricted.  Initially it was an overwhelming task to gain a full understanding of the software and to manufacture a video which looked and sounded flawless. However, Camtasia is designed in a way which allows the user to complete sophisticated and involved tasks with ease of navigation and expertise. 

My experience of Camtasia has increased significantly after hours of scrupulous editing and re-editing and I have been able to create a polished and professional demo video and presentation video. Hence, I have pieced together a few handy tips which may be useful to somebody who is evaluating the available video editing packages or has decided upon Camtasia Studio for their video production.

Before recording commences there are certain considerations which need to be well thought-out. For example, there’s nothing more frustrating than to be in the midst of a perfect recording only to be interrupted by a phone ringing in the background or an email notification suddenly appearing on the screen.  A contingency plan can be devised prior to recording to avoid this situation. Ensure the recording takes place in a quiet, out-of-the-way room. Also make certain all applications are closed except those specifically needed for the recording; in particular all email accounts should be closed. 

With regards to editing here are a couple of time-saving tips. Adjust the select area dimensions before recording the screen; this will skirt painstaking editing after recording is complete. In the same vein, when recording a presentation video use the cursor liberally and then remove the cursor visibility in the editing process by deselecting mouse cursor visible. It is also possible to achieve the reverse effect and emphasise the cursor by adding a highlight effect. 

A handy hint to make a demonstration video more interesting and dynamic is to add callouts which are ready made shapes such as an arrow, which can be used to visually communicate information and will engage viewer’s attention. Zoom levels are another way to visually convey a message to the viewer. It is possible to zoom and pan to the specific areas of the screen being discussed in the audio adding clarity and understanding to the communication.

Finally, once a recording has been edited and is ready for production, select custom production settings, this will allow variation in the file format for the production of the final video. The file formats available range from avi to mp4. 

All it remains to say is, happy recording!

Thursday, 10 March 2011

He Shoots! He Scores! – Finding Actor Goals


Alex, our expert Systems Engineer, continues to help us fully understand use cases and their purpose with his latest blog post...

Identifying the primary actors has allowed us to validate the context of the system however it is the goals of the primary actors that we are really looking for as they will help us discover our use cases.

An actor goal represents a service that the primary actor requires from the system.

A use case is always started by an actor and so focussing on the actors yields good results.

In addition, there may be external events that we must react to such as start-up, shut-down and time related events that we might not have considered given our set of actors. When identifying actor goals we should consider:

  • What are the tasks of an actor?
  • Does the actor need to be informed about certain occurrences in the system?
  • Are there any external events that affect the system? What actor informs the system about those events?
  •  How the system starts-up and shuts down
  • How the system is maintained?
  • How will we handle training users of the system?
  •   Does the system store information? What actors will create, read, update or destroy that information?

A table is often created during this phase and is frequently referred to as an actor goal list.  If a large number of primary actors have been created then this table is likely to be quite extensive. This is not overly significant as the worst that is likely happen is that we will generate the same goal more than once.  Once the actor goal list has been generated, the list must be reviewed and rationalised.

The rationalised actor goal list provides an initial list of use cases that must now be documented.

It is likely that you will not find all the goals during this stage, no matter how careful or diligent you are.  New ones will appear when documenting the use cases.

Wednesday, 2 March 2011

How to Make the Most of Memberships

We have just signed up for membership of the Object Management Group for the second time in our company lifetime. (OMG is the not-for-profit consortium who defines standards for SysML, UML, CORBA etc.) The first time (nearly 10 years ago) admittedly, the membership was nothing more than a badge on our website and so this time around we were determined that we would all make the most of the opportunities open to us as a member. With everybody’s diaries full and to-do lists running down to the floor, it’s not natural to put being an active member of a group at top priority. So what simple steps can you take to benefit from a membership and make the most of your investment? Here’s our checklist... 

 
1. Know  who your key contacts are - Who do you go to for technical advice? Is there someone in the working for the organisation that has a particular interest in what you do and can offer you advice? What if you want to promote something to members, is there a Marketing manager?

This is the first this I would suggest that you do. Understand who those key contacts are and then get to know them.

Don't just use the badge on your signature!
When we joined the OMG, we were speaking with the contacts in the US and then found out that their Technical Director was based in the UK near us so we invited him to spend the day with us, which proved to be invaluable. He spoke to the whole team about OMG and what was happening within the group so everyone at Objektum Solutions, both technical and otherwise, could see where they could get involved and be proactive about being a member. We also briefly went into the work we were doing on the Legacy Bridge Suite and automatic software migration, which the Technical Director was impressed with and is going to come back so he can understand more and continue building the relationship, which leads on to my next point…

2. Make sure the organisation understands what you do! – Chances are, if you’re interested in what they do, they’ll be interested in what you do. Make sure that your contacts who work for the organisation are in a position to make valuable introductions and point you towards suitable opportunities.

3. Flag their emails to read - Don’t let the emails from your membership organisation join spam/marketing emails that end up in your mailbox. They’re a good source of information so although with a full inbox it’s tempting, don’t ignore them.

4. Get to know other members – Although at number 4, this is one of the most important points. Whether it is by attending events, joining in on online discussions, making specific introductions, meet people. If there’s a members list, have a good look through it. Is there someone who you want to know?

I think the trick with this is to be able to switch between having a purpose and being open, and you need to do both. (Essentially this point is about networking, but you’ve probably all seen your fair share of blog posts about how to be a top networker and make millions.)

5. Directories - Have they got any directories you can put yourselves on? Simple point but don’t forget to do it.

6. If they have one, join their LinkedIn group – For international organisations this is invaluable for continuing discussions in-between events. At the very least, make sure you know what people are talking about. It will be a good indicator as to what is happening in your industry. (Sales people should be taking note of these conversations, not sending out millions of messages about how they can solve every problem that is being discussed. If appropriate, send a private message to the person with the problem and then let them decide whether they will tell the group about this amazing solution they’ve found. Believe me , this will have a lot more impact)

7. Attend events – And not just those run by organisation, will they and fellow members be at the tradeshow you are going to? Do it the traditional way. Smile, shake some hands and have interesting conversation. Keep it fairly light at these kinds of events. If you want to get into more details arrange a time to have some 1-2-1 time over a coffee or find a time to meet at a later date.

8. Help – What is the organisation trying to achieve? Can you help in anyway? Whether this is joining a committee or sharing resources, join forces with the organisation and your fellow members to strive for a common goal. This will help form bonds, open doors and raise your profile.

9. Cross-marketing – Is there any way you can promote your product or service  to your fellow members (if this is also your market) by offering a special offer for members only? Membership organisations often get asked for comment on certain issues in the industry. Do they know that you’re available to help them by providing comment from someone “in the industry”?

10. Focus -  Don’t spread yourself too thinly, limit your memberships to two to three groups and if you’re in an organisation perhaps get different people involved in each group.

There is a great deal to gain from being a member but remember that the members will make it and so put your effort in giving to the group, that’s where the gains are.

Cat 

Tuesday, 1 March 2011

Video: Space Shuttle Launch Viewed from Aeroplane

Normally we aim to give you insightful blog posts, but there's no denying this one is just a bit of fun... 


Imagine flying past Kennedy Space Center. Imagine seeing the Discovery space shuttle pierce the sky as it fires up into space. Imagine it was it's last flight, a piece of history. Imagine you'd forgotten your camera... 

Don't panic. This chap captured it on his.