Technologies?

How Much?

Our prototyping and mentoring services are delivered on a T&M basis, full- or part-time over a number of months.

For software development the contract can be either fixed price or T&M.

Existing Suppliers

If you have existing suppliers we are happy to work either alongside them or on a subcontract basis. Our skills will often complement rather than compete with their skillset.

Publications & Conferences

We have published a number of books and articles, and regularly present sessions at conferences and events.

The following is an alphabetical list of various technologies that appear elsewhere on this website.

AspectJ

Object orientation is very good at modularizing (business) domain-level concerns, by representing real-world concepts such as Customer and Order directly in the application. However, it struggles when dealing with technical system-level concerns such as transactions, security, error handling, synchronization, monitoring etc.

Aspect orientation then allows these system-level concerns to be modularized, making them easier to maintain. AspectJ is a seamless aspect-oriented extension to the Java programming language, with IDE support built into Eclipse.

For more information on AspectJ, see here.

Eclipse

Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. The flagship project is the Java IDE, but many other solutions have been built on top of Eclipse.

A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform.

For more information, see here.

Hibernate

Hibernate is a powerful, high performance object/relational persistence and query service, allowing businesses to use gain the benefits of both relational technology for persistence coupled with either Java or .NET for object-oriented applications.

Hibernate is open source and has significantly influenced the EJB3 specification, resulting in enterprise applications that are easier to build and maintain. It also has an IDE based on Eclipse.

For more information, see here.

Naked Objects

The Naked Objects Pattern is defined by the following principles:

  • A business system should be designed using behaviourally complete domain objects.
  • The business system should have an object-oriented user interface where the objects that the users view and interact with correspond directly to the underlying domain entity objects, and such that all functionality is initiated by explicitly invoking methods on a domain object.
  • Each domain object should constitute a single point of definition.

One way to think about NO is that it does for the user interface what Hibernate does for the persistence layer.

The Naked Objects Framework is the most mature implementation of this pattern, and is used as the basis for the Irish Government's SDM applications.

For more information, see here.

MDA

Model Driven Architecture, or MDA, is an initiative by the Object Management Group (OMG) to raise the level of abstraction for building computer systems.

It defines an open, vendor-neutral approach to the challenge of business and technology change. MDA separates the business and application logic from underlying platform technology. A platform-independent models (PIM) specifies the application's functionality or behaviour, built using UML and other associated OMG modelling standards. These are then mapped onto a platform-specific model (PSM) for a particular platform technology. As technologies change, the PSMs can change while the PIM is unaltered.

For more information, see here.

Spring

The Spring Framework is a full-stack Java/JEE application framework, also ported to .NET. Spring can be used at several levels. Its most fundamental service is to provide a container for configuring applications using Dependency Injection. This has been used extensively at the DSFA, for example.

Over and above this, if provides a set of frameworks for building enterprise Java applications, "increasing development productivity and runtime performance while improving test coverage and application quality". It also has an IDE based on Eclipse.

SQLj

SQLj is a set of ANSI standards for embedding either Java in SQL, or SQL in Java. It has been implemented by Sybase, Oracle, IBM and Borland among others.

SQLj part 0 is aimed at embedded SQL in Java, and is focused on client-side development. Part 1 is focused on the server-side, allowing stored procedures to be written in Java. Part 2 is also server-side and is perhaps the most interesting, allowing Java types to be used as columns within RDBMS tables.

For more information, see here.

Sybase

Sybase Inc's flagship product is Adaptive Server Enterprise RDBMS, that powers much of Wall Street and financial institutions around the world. Competing with the likes of Oracle and SQL Server, it offers enterprise-level scalability to meet the increasing demands of large databases and high transaction volumes, while providing a cost effective database management system.

Sybase Inc. have a range of other data-oriented products, including Sybase IQ analytics server, Replication Server and Sybase SQL Anywhere mobile database. There is also a range of database development tools, now based on Eclipse.

For more information, see here.

Subversion

Subversion is an open source version control system providing versioning of files, directories and arbitrary meta-data. It is accessible through a variety of protocols, with numerous clients available to access the file repository. In particular through TortoiseSVN it offers native Windows Shell integration, and through Subclipse it is integrated into the Eclipse IDE.

For more information, see here.

TogetherJ

TogetherJ (now just called Together) is a UML tool now owned by Borland. While supporting all the UML diagrams, its main claim to fame is that the UML class diagram can be automatically kept in sync with the underlying code. This substantially reduces the overhead in maintaining such artefacts, and effectively breaks down the waterfall-like distinction between design and coding for a much more agile way of working. Being able to view the application diagrammatically then allows it to be more readily understood at a higher level of abstraction.

This key synchronization capability has been built into Borland's JBuilder Java IDE, now based on and extending Eclipse. What was originally a capability available only in a very expensive product is now available for a very modest cost.

For more information on JBuilder 200x which embeds Together technology, see here. For more information on Together itself, see here.

UML

The Unified Modelling Language, or UML, provides a standard set of diagramming notations for representing application structure, behaviour and architecture as well as business process and data structure. These notations grew out of various competing notations for describing object-oriented systems in the 1990s. The Object Management Group (OMG) is now the owner and maintainer of these specifications.

For more information, see here.