Archive for the 'software engineering' Category

Do you remember programming languages?

Mike Papazoglou gave an interesting keynote talk at ENASE 2009 in Milan last week. I especially enjoyed this sentence:

Do you remember programming languages?

He said that in a longing, melancholic tone, as if he was reaching deep inside his memories of long gone conferences of yore when people actually discussed programming languages. It’s true. We don’t discuss programming languages nowadays. They seem to have been relegated to specialised conferences. Programming used to be most of what software was. Today, it’s just a small part. A very small one.

Deadline for PhD applicants closing soon

A couple of months ago I announced an opening for a PhD student at the Heritage Lab where I work. The deadline for applications is closing on 15th January, so I encourage you to have a look at the call ASAP if you’re planning to apply.

Download the call here in Spanish or English.

Wirfs-Brock responsibility model, ISO/IEC 24744 and organisational roles

This is why I love my job. I get to do all this experimental stuff and I get paid for it!

Okay, let me explain.

We are undergoing some reorganisation at work. In case you still don’t know, I work at a research lab of over 40 people where I try to apply software engineering to cultural heritage. Most of my workmates, however, are archaeologists, historians, anthropologists or soil scientists. Anyway. A few weeks ago we decided that we should define a few key roles that people should be playing at the lab. How do you define a role? Mmmmm… Well, ISO/IEC 24744 says that a role is a collection of responsibilities that a producer can take, where a producer is, usually, an individual in an organisation. I like ISO/IEC 24744 because I believe it can be applied to much more than software development methodologies, and the definitions are quite good. The fact that I was a key contributor to it has nothing to do, of course.

Continue reading ‘Wirfs-Brock responsibility model, ISO/IEC 24744 and organisational roles’

Talk at the EUVE

I’ll be giving an invited talk at the Heritage and New Technologies mini-conference organised by the European Virtual Engineering Technology Centre (EUVE) in Vitoria, Spain, next Wednesday 12th November. My talk is titled “Information Technologies and Cultural Heritage: Learned Lessons”, and I’ll be describing the whys and hows of a few technologies that I and my team tried to apply to archaeology and heritage management in the past with various success rates; some were promising but didn’t work, and some did work albeit they lacked a solid foundation.

If you happen to be nearby Vitoria on the 12th, contact EUVE and drop by!

Juanolas and OO modelling

What do throat lozenges and OO modelling have in common?

In particular, what do Juanolas and whole/part relationships in class diagrams have in common? I guess you’ll understand if you follow the links, or if you are familiar with both Juanolas and OO modelling.

Let me give you some background.

I am participating in a project where a formal language for the description of heritage buildings is being developed. The project team is made of two archaeologists, an architect, and me as the software guy. They are the domain specialists; I am the techie. From the very beginning, I started using class diagrams to capture the information that my three colleagues would consider relevant, and they seemed to like them. They got themselves a copy of Visio and started producing their own class diagrams. I gave them a quick description of what specialisation, whole/part relationships and associations mean, and showed them how to use different symbols to depict them. No, I didn’t use UML symbols. UML is broken and invariable drives you to irresoluble quandaries, so I wouldn’t be so mean to expose my poor software-virgin humanities friends to mind-twisting UML. I used OPEN/Metis notation, as I have been doing for almost a decade now.

The outcomes of all this is that, after a few weeks, my team mates are actually class modelling now. Amazing. The only unorthodox bit is that they call whole/part diamonds “Juanolas” for evident reasons.

Call for pre-docs

As I said a few days ago, I am seeking excellent candidates to do doctoral studies with me here at CSIC. We are offering a good grant/position package plus extra funding for travel and stays.

You can download the full text of the call in Spanish and English here.

If you are interested, please let me know by 30th November. Thanks!

Building up the team

I am trying to build up a team to do research on information technologies applied to cultural heritage. This is not an easy task, the major difficulty being, of course, finding the right people. At the moment I am looking for somebody who would like to to enroll as a PhD student in this area and also for a good software developer with experience with the Microsoft .NET platform.

Please contact me if you’re interested. Thanks!

ISO/IEC 24744 and looking back

I am told that the new ISO/IEC 24744 international standard is available for purchase from the ISO web site since last Wednesday.

So what?

Well, I am the proud co-father of the creature. Brian Henderson-Sellers and I have been the project editors and main conductors of the standard, and we are happy that it has just been released to the public.

I am particularly happy because this standard encapsulates the results of many years of work. I might trace it all back to 1995-ish, when I started studying the Fusion method at the Laboratory of Archaeology and Cultural Forms at the University of Santiago de Compostela. I adapted Fusion to suit our needs and it became the Adapted Fusion Method (MFA) that I later described in my PhD thesis in 2000. In the late 1990s I rewrote it as a full methodology and called it Metis, and used it at Neco for internal and external projects. That was when Brian and I met and we started exchanging ideas. I soon joined the OPEN Consortium and recast Metis as an instance of OPEN, renaming it OPEN/Metis. Then I moved to UTS to work with Brian and started envisioning what would, in 2004, be published as the Australian Standard AS 4651 “Standard Metamodel for Software Development Methodologies”. This, in turn, served as base document for the development of the international standard, which has now just been published.

What is it about? Oh, don’t worry.

All right, take a look.

Introducing Unimod

Lately I have been working on a skunkworks project that I call Unimod. “Unimod” is supposed to stand for “universal modelling”, which describes what Unimod is supposed to be: a low-level, highly generic modelling platform on top of which you can construct modelling environments.

For example, you may think that object-oriented modelling is quite simple: you have classes with attributes and associations, and you can instantiate them into objects with values and links. Only six modelling primitives and we can express so many things. But this is not that simple. Take, for example, the classic question “what is a class?” From a structural perspective, a class has a name and a collection of attributes. Each attribute, in turn, has a name and a data type, at least. For some people, operations (or methods) are essential components of classes too. For some other people they are not essential. And what about events? Are events (in the C# sense) part of a class? We can enrich the basic object-oriented approach with more complex constructs. For example, many find the concept of interface (again, in its C# or Java sense) very useful, and definitely part of the object-oriented approach. So, must the interface concept be a modelling primitive too?

Continue reading ‘Introducing Unimod’

The QPC paradox

I think that almost everybody in the software industry would agree that most of the software that is produced today does not have the quality that it should. Let’s assume that this is a fact: the quality of software, in general, is deficient.

How can we improve the quality of the software that we produce? Many experts have proposed myriads of tools, techniques, methodologies, approaches and paradigms that promised to deliver better software, that is, software of higher quality. Supposedly, this was to be achieved because the proposed tools, techniques, etc. were more powerful than the current ones. The argument goes like this: if the results that you are obtaining are of poor quality, use more powerful tools. Better tools will allow you to create the same things, but of higher quality. And it makes sense, doesn’t it.

However, the average quality of software has not improved for decades. I would love to insert a quotation here to back this up, but I can’t remember where I saw it. I promise. Somebody (presumably an expert) recently said that the average quality of software has remained constant for decades. How come, if we have more powerful tools than ever?

Continue reading ‘The QPC paradox’

Next Page »