Pre-Conference Workshops
Tuesday 3 June 2008
The following workshops run for a full day (from 09.30 to 17.30), with a short break in the morning and afternoon, and a lunch break at 13.00.
|
A Day of Patterns
WORKSHOP REF: SA1
Kevin Jones & Andy Clymer
The pressure of code delivery means that developers constantly find themselves writing code using the same old bag of tricks they learned during their “apprentice years”. In the same way that areas of the platform evolve, so does understanding of good Object Oriented practice. This workshop aims to bring developers up to date on these latest good practices.
The process of examining patterns not only facilitates the learning of standard solutions, but also helps a developer to evolve a better understanding of OO principles, enabling them to effectively apply these principles to their own unique problem spaces.
Patterns introduce a new standardised vocabulary to describe re-occurring techniques, enabling developers to communicate far more effectively. Patterns enable adaptive software and simple clear communication between developers and other team members.
Software development teams are continuing to focus on agile methods in order to compete. The techniques covered during the course of the day will show how it is possible to write code that allows for stable solutions that can evolve quickly. We will show how to write code that is closed for modification but open for extension, a key requirement for such solutions.
We will introduce patterns and pattern languages, and cover the main patterns in use today, including Observer, Decorator, Factory/Abstract Factory, Singleton, Command, and others. |
 |
|
Architecting Enterprise Class Applications with AJAX
WORKSHOP REF: SA2
Dino Esposito
AJAX pushes a change of paradigm in the design of Web applications. Simply put, the new generation of Web applications should communicate with the back end by sending requests and getting responses instead of proceeding submitting forms to get pages. No framework exists today to *fully* support this model. We have a lot of new patterns, we may appreciate the elegance and effectiveness of the REST model for services, we always think of the back end. But what about the users? Paradoxically, we claim that AJAX is about the user experience; but then developers don’t have adequate tools to build this user experience effectively. The demand of AJAX developers is not properly supported by browsers – that’s the (sad) reality. We are building a new Web using the same basic set of tools which sparked the Web to life 15 years ago. But if we move towards a richer set of tools in the browser, we break the astral conjunction which brought about a situation where 99% of the browsers support the same features – ultimately the only reason for the success of AJAX. With a browser model out of date, security, offline storage, rich graphics and media, effective layout is all on the developers’ shoulders.
In this workshop, we’ll toss around the problem of AJAX architectures and the Web in general to identify an easy and a not-so-easy way to AJAX with their positives and negatives, their features and drawbacks. You should devise an AJAX presentation layer as a two-tier model with a JavaScript-powered front-end and a service-based back-end communicating over HTTP and using JSON feeds. It looks like a plan, but the devil is in the detail. |
 |
|
Agile Architecture
WORKSHOP REF: SA3
Kevlin Henney
Software architecture and development agility are often considered to be in tension with another, even contradictory. There is a latent assumption that architecture-centric approaches are necessarily plan-driven and that agile approaches are necessarily architecture-lite. While this view does indeed characterise a number of approaches to architecture and to agility, it is not the whole picture. It is often the absence of a sustainable and feedback-driven development lifecycle that undermines many architecture-centric approaches, and the lack of a clear architectural vision that causes many agile-aspiring projects to spin wheels and run up a large design debt.
This session clarifies the various views of architecture and agility, and demonstrates that not only can the two concepts live side by side within a development, they actually complement and reinforce one another – co-operation rather than simply collocation. A sound architecture allows sustainable progress and responsive development. Effective agile development encourages loose coupling and offers concrete feedback on design utility and implementation robustness. A number of development techniques and architectural options are presented, with a strong emphasis on dependency management and lean process thinking. |
 |
|
Microsoft .NET 3.5 for Architects
WORKSHOP REF: SA4
Dave Wheeler & Richard Blewett
So, you’re an architect who’s designing and architecting systems using Microsoft .NET. But are you aware of the many features of the new .NET Framework, and how this impacts on your design decisions?
With the trio of Windows Presentation Foundation, Windows Workflow Foundation and Windows Communication Foundation at your disposal, not to mention the myriad of other technologies such as ASP.NET, ASP.NET AJAX, Windows Forms, LINQ and Entity Framework, there’s a ton of stuff to get straight before you can even begin designing.
In this workshop you’ll gain a solid overview of each of these technologies, and more importantly how they bolt together effectively to make a system that works. We’ll skip over the minutiae of the coding details and focus on how to make the most out of the features on offer.
If you want to get ahead in designing .NET applications, then this workshop is for you. |
 |
|
Coding the Architecture: from Developer to Architect
WORKSHOP REF: SA5
Simon Brown & Kevin Seal
This session is an interactive introduction to software architecture and what it means to be a software architect. It’s aimed at software developers who are looking towards their first software architect role, as well as architects that are new to the role. By attending this session you will gain:
• An understanding of what it means to be a software architect, and the responsibilities associated with the role.
• An understanding of the trade-offs that are made when making architectural decisions.
• Some experience of what it feels like to be an architect on a bespoke software development project; including gathering non-functional requirements, determining the drivers for architecture, and defining an architecture.
• An understanding that, as a software architect, it’s okay to do some coding.
The session is interactive; with a combination of presentation, group discussion and group working. Throughout the day you’ll be solidifying everything you learn by defining the architecture for a small software system. The overall goal is that you can take the experience gained here and apply it to your own projects. |
 |
|
Building Domain-Specific Modelling Languages with Full Code Generation
WORKSHOP REF: SA6
Steven Kelly
Domain-Specific Modelling (DSM) provides a viable solution for improving development productivity by raising the level of abstraction beyond coding. With DSM, the modelling language is made up of concepts from the problem domain world, not the code world (as in say UML). The architect or lead developer creates the modelling language for the domain, and automates the mapping of the concepts to code in a domain-specific code generator. As the language follows domain abstractions and semantics, when other developers in the team model with it they perceive themselves as working directly with domain concepts. Full, efficient product code can be automatically generated from these high-level specifications: light-years ahead of CASE or UML code generation, as now it is specified by the lead developer, not some tool vendor.
This workshop introduces DSM through real-life examples from various domains. The main part of the workshop addresses the guidelines for implementing DSM: how to identify the necessary language constructs, different ways of building code generators, how to keep generators simple by refactoring code into a domain framework, and how to build tool support for your modelling language. Participants will try their hand and learn these skills in practice in group exercises.
Experience levels: Intermediate and Advanced – most beneficial for lead developers, architects and team leads. |
 |
Return to Sessions introduction
|
|
|
|
Don’t miss it!
 Software Architect Thursday: Steven Kelly on Moving from Coding to Model-Driven Development
View Programme

Sponsors





|