667481 members! Sign up to stay informed.

Sponsored Links


Resources

Enterprise Java
Research Library

Get Java white papers, product information, case studies and webcasts

News News News Messages: 30 Messages: 30 Messages: 30 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

The Top 10 Elements of Good Software Design

Posted by: Dion Almaer on May 19, 2004 DIGG
"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away" - Antoine de Saint-Exupery

Much is spoken of "good design" in the software world. It is what we all aim for when we start a project, and what we hope we still have when we walk away from the project. But how do we assess the "goodness" of a given design? Can we agree on what constitutes a good design, and if we can neither assess nor agree on the desirable qualities of a design, what hope have we of producing such a design?

  • 10. Considers the Sophistication of the Team that Will Implement It
  • 9. Uniformly Distributes Responsibility and Intelligence
  • 8. Is Expressed in a Precise Design Language
  • 7. Selects Appropriate Implementation Mechanisms
  • 6. Is Robustly Documented
  • 5. Eliminates Duplication
  • 4. Is Internally Consistent and Unsurprising
  • 3. Exhibits Maximum Cohesion and Minimum Coupling
  • 2. Is as Simple as Current and Foreseeable Constraints will Allow
  • 1. Provides the Necessary Functionality
Read the full article at The Top 10 Elements of Good Software Design

Threaded replies

·  The Top 10 Elements of Good Software Design by Dion Almaer on Wed May 19 10:18:06 EDT 2004
  ·  The Top 10 Elements of Good Software Design by Arjun Mukherjee on Wed May 19 12:09:12 EDT 2004
    ·  The Top 10 Elements of Good Software Design by Michael Mahemoff on Wed May 19 17:55:16 EDT 2004
    ·  Taste for Makers by Eduardo Ito on Thu May 20 12:32:12 EDT 2004
  ·  10. Considers the Sophistication of the Team that Will Implement by Yuval Goldstein on Wed May 19 12:44:10 EDT 2004
    ·  10. Considers the Sophistication of the Team that Will Implement by Mike Diehl on Wed May 19 12:59:04 EDT 2004
      ·  Project management is everything. by Yuval Goldstein on Thu May 20 02:37:54 EDT 2004
      ·  10. Considers the Sophistication of the Team that Will Implement by Kei Sugimoto on Tue May 25 03:31:37 EDT 2004
    ·  10. Considers the Sophistication of the Team that Will Implement by Juozas Baliuka on Wed May 19 13:40:31 EDT 2004
      ·  10. Considers the Sophistication of the Team that Will Implement by Kishore Dandu on Wed May 19 16:45:41 EDT 2004
        ·  10. Considers the Sophistication of the Team that Will Implement by Juozas Baliuka on Thu May 20 03:36:34 EDT 2004
        ·  OpenSource as a risk: not black or white by Yuval Goldstein on Sun May 23 03:08:20 EDT 2004
          ·  Misleading typo: "Many respected ISVs bundle JBoss, myself " by Yuval Goldstein on Sun May 23 03:09:58 EDT 2004
    ·  10. Considers the Sophistication of the Team that Will Implement by Mike Spille on Wed May 19 14:04:46 EDT 2004
  ·  The Top 10 Elements of Good Software Design by Kishore Dandu on Wed May 19 13:35:06 EDT 2004
  ·  The Top 10 Elements of Good Software Design by Michael Dowling on Wed May 19 14:45:52 EDT 2004
  ·  #10 is a sad reality by Argyn K on Wed May 19 17:10:18 EDT 2004
    ·  #10 is a sad reality by Sean Corfield on Thu May 20 14:08:18 EDT 2004
  ·  RE: The Top 10 Elements of Good Software Design by Dan Hestand on Wed May 19 18:01:27 EDT 2004
  ·  a different list by Ken Warkentyne on Wed May 19 19:19:44 EDT 2004
  ·  Re: The Top 10 Elements of Good Software Design by Henry Rollins on Wed May 19 19:22:55 EDT 2004
  ·  Shit by Huang Kai on Wed May 19 21:55:06 EDT 2004
    ·  process? by Argyn K on Thu May 20 01:49:50 EDT 2004
      ·  process? by Dorel Vaida on Thu May 20 02:49:59 EDT 2004
      ·  process? by Sanjaya Ganesh on Thu May 20 08:17:28 EDT 2004
        ·  again, SW development is NOT process driven by Argyn K on Thu May 20 09:38:45 EDT 2004
      ·  process? by Huang Kai on Thu May 20 21:50:07 EDT 2004
      ·  KISS, keep it simple stupid by mattias w on Sat May 22 04:32:28 EDT 2004
  ·  Think Again:The Top 10 Elements of Good Software Design by Rajneesh Bajaj on Thu May 20 09:17:38 EDT 2004
  ·  "good design" - Improving item 3 by glauco scheffel on Thu May 20 16:10:21 EDT 2004
  ·  Is cohesion still important? by Anthony Jayasekera on Fri May 21 05:45:11 EDT 2004
  Message #122788 Post reply Post reply Post reply Go to top Go to top Go to top

The Top 10 Elements of Good Software Design

Posted by: Arjun Mukherjee on May 19, 2004 in response to Message #122774
I think point #7 i.e. Selects Appropriate Implementation Mechanisms is not that critical initially if I have very pluggable design blueprint.

I might not have the most suitable implementation mechanism in the first iteration itself. Better implementations can be substituted during the evolution of the app.

  Message #122791 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Yuval Goldstein on May 19, 2004 in response to Message #122774
IMHO the issue of understanding the team's skillset is crucial when selecting implementation technologies, setting the level of abstraction in design and the tools used for development.

I often see architecture and design plans that are simply not cut out to match the size and skill of the team and the level of resources that the company is willing to invest in the project.
Too many smart people often forget that doing design is not like doing academic research and that the robustness of solution must match the allocated resources.

When starting projects this should be one of the first things to consider.
Yuval.

  Message #122797 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Mike Diehl on May 19, 2004 in response to Message #122791
Couldn't agree more. What's really interesting about this list is that no fewer than 2 of the 10 points (and arguably a couple of others) are more straight-up team and project management issues as opposed to typical "system design" activities.

The "M" word starts to become more of a recognizable factor for goodness, it seems. :-)

  Message #122806 Post reply Post reply Post reply Go to top Go to top Go to top

The Top 10 Elements of Good Software Design

Posted by: Kishore Dandu on May 19, 2004 in response to Message #122774
I think number 3 is easier said than done.

Many systems startout with 3 as a main objective. But it not simply practical.

  Message #122807 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Juozas Baliuka on May 19, 2004 in response to Message #122791
Too many smart people often forget that doing design is not like doing academic research and that the robustness of solution must match the allocated resources.When starting projects this should be one of the first things to consider. Yuval.
Yes, this is about risk managemet. Open source projects are good for research and innovations, but conservative architecture has a lot of advantages too.

  Message #122811 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Mike Spille on May 19, 2004 in response to Message #122791
I agree completely. The #1 success or failure factor in any project is the team, and you have to design the project around them (and not try to force it the other way around). The most spectacular failures I've seen all involved giving the wrong sort of work to the wrong team (often, it was with technology they'd never heard of, let alone used before).

    -Mike

  Message #122819 Post reply Post reply Post reply Go to top Go to top Go to top

The Top 10 Elements of Good Software Design

Posted by: Michael Dowling on May 19, 2004 in response to Message #122774
#10: Considers the Sophistication of the Team that Will Implement It

Ah yes. Really smart, smart developers/architects sometimes forget that, while the design might be really good in their head, and might be well understood in their head, they forget that an architecture or a design idea fails if it cannot be understood by a majority of the team who will be using it. It then becomes a bad/tedious design idea. Design reviews definitely help with this.

#8: Is Expressed in a Precise Design Language

I'm surprised that UML isn't used like it should be, although, I do remember first using it and misusing certain types of diagrams to clearly document an idea.

#6: Is Robustly Documented

IMHO, if a design can be easily documented in a Unit Test, then the design is probably (though, not always) a decent design to start with. If it can't, or it can't be articulated easily in a detailed design doc, then it's probably (though, not always) too complex.

  Message #122837 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Kishore Dandu on May 19, 2004 in response to Message #122807
Yes, this is about risk managemet. Open source projects are good for research and innovations, but conservative architecture has a lot of advantages too.
Why do u think open source projects are risky? What about different frameworks that are used in many live systems rightnow(Struts, Tapestry etc). How about JBoss do you think that will apply only to academic settings.

In my opinion architecture(not necessarity conservative) and opensource projects can sure go together.

Please don't mislead people.

  Message #122840 Post reply Post reply Post reply Go to top Go to top Go to top

#10 is a sad reality

Posted by: Argyn K on May 19, 2004 in response to Message #122774
10. It's unfortunate, but true. I think that it should be the other way: "forms a team capable of implementing the design". Unfortunately, it's impossible, usually.

Ideally, we shouldn't be constrained by sophistication of them, but only with its size. In reality, we meet all sorts of people in the field. Some should be doing anything else but code :)

  Message #122846 Post reply Post reply Post reply Go to top Go to top Go to top

The Top 10 Elements of Good Software Design

Posted by: Michael Mahemoff on May 19, 2004 in response to Message #122788
I think point #7 i.e. Selects Appropriate Implementation Mechanisms is not that critical initially if I have very pluggable design blueprint.
I think point #7 is correct by definition, a common theme with several elements here. How would this sound as an element of good software design: "Select Inappropriate Implementation Mechanisms"?

The article contains some interesting tips for software newcomers or developers who are stuck in a code 'n' fix mode of working. However, many statements here are of the motherhood variety. "Provides The Necessary Functionality"???

Tell me how to do all this, Mr Ed. Yes, experience would indicate team sophistication matters. And yes, this might be news to some people. But really, it would be a lot more useful to tell me *how* it matters and what I should do about it ... what are the patterns that I can use to deal with these truisms?

  Message #122847 Post reply Post reply Post reply Go to top Go to top Go to top

RE: The Top 10 Elements of Good Software Design

Posted by: Dan Hestand on May 19, 2004 in response to Message #122774
Yes these are all good ideas. But the reality is that each of these have counters. #1 for instance sounds great but how many shops actually know how to gather requirements adequately and how many are driven by over-promised BS from marketing so that "the necessary functionality" is not what a customer wants but what some marketer interprets as a need. #10 has to be considered but if you scale the technology to suit the expertise of the team, you may create an architecture that is not suitable to the performance and/or scalability requirements of the system. If you choose the technology to suit the application and have a team without expertise to exploit the advantages, then you will have the same trouble. #8 is a pipe-dream. A precise specification language is one that is completely unambiguous and formally verifiable. For all but the simplest applications, this is not feasible. The very fact that we mostly use English to communicate (note that our programming languages all use English keywords) suggests that ambiguity is built in to the communication mechanism. And I could go on...

  Message #122854 Post reply Post reply Post reply Go to top Go to top Go to top

a different list

Posted by: Ken Warkentyne on May 19, 2004 in response to Message #122774
1. the design meets the requirements (functional and non-functional)
2. the design is clean
3. the design is efficient
4. the design is easy to use

Cleanliness embodies:

consistency - do similar things in similar ways
orthogonality - do not link what is independent and do not separate what is dependent
propriety - don't define the same thing twice, don't add unecessary things
generality - do not impose unecessary restrictions

This is all from a PhD thesis by Martin van Sinderen.

  Message #122855 Post reply Post reply Post reply Go to top Go to top Go to top

Re: The Top 10 Elements of Good Software Design

Posted by: Henry Rollins on May 19, 2004 in response to Message #122774
There's really nothing new here. Therefore, I must ask, why do I care what this guy thinks? Who is he anyway? I don't see any credentials, CV, bio, or even a real name on his site.

Seems to me his blog is more of a personal crusade against XP than anything. The only hit I get on Google for his email address, r.bailey@bigpond.net.au, is him being a troll on comp.software.extreme-programming.

Yawwwwn .....

  Message #122864 Post reply Post reply Post reply Go to top Go to top Go to top

Shit

Posted by: Huang Kai on May 19, 2004 in response to Message #122774
All bullshit.It just a text-book and stero-typed speaking.Only #4 make some real sense.
Software design need proper&feasible process, not those seen-everywhere guideline. Could TSS do not waste my eyes posting these kind of naive or academical article?

  Message #122876 Post reply Post reply Post reply Go to top Go to top Go to top

process?

Posted by: Argyn K on May 20, 2004 in response to Message #122864
SW development is not a fast food production. Process can't guarantee quality. Right people do right software regardless of the process. wrong people do wrong software regardless of the process.

  Message #122878 Post reply Post reply Post reply Go to top Go to top Go to top

Project management is everything.

Posted by: Yuval Goldstein on May 20, 2004 in response to Message #122797
I think that smart project management results in design, tools and code that matches the requirements and provide business value.
Developers should think about aiming to fulfill requirements, but sometimes this is forgotten and replaced by the fun of toying with a cool new library/technology/design concepts (and yes, it is fun!)

Many Agile methods are really about project management, because software is really not just code, it is people, thoughts, politics and processes.
Good design concepts are essentials, but they should come second to smart project tactics.

Yuval.

  Message #122880 Post reply Post reply Post reply Go to top Go to top Go to top

process?

Posted by: Dorel Vaida on May 20, 2004 in response to Message #122876
SW development is not a fast food production. Process can't guarantee quality. Right people do right software regardless of the process. wrong people do wrong software regardless of the process.
No sh*t. Can you specify please the size/number of developers in the bigest project you've been involved in ? I've seen right people managed like sh*t and they weren't producing the right software if anything. Also I've seen "wrong people" smartly managed and they were producing the right software in time and on budget all the time.

I don't quite understand what do you mean by "wrong people" though.

You can't get the best developers all the time. But you can get your developers to do it right.

  Message #122885 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Juozas Baliuka on May 20, 2004 in response to Message #122837
I do not said it, you just understand it tis way :)
Open Source is better for innovations, it reduces risk (more people can review it) and one of ways in not open project is to use to more conservatyve ways to
to reduce risk. Is it not clear ?

  Message #122901 Post reply Post reply Post reply Go to top Go to top Go to top

process?

Posted by: Sanjaya Ganesh on May 20, 2004 in response to Message #122876
SW development is not a fast food production. Process can't guarantee quality. Right people do right software regardless of the process. wrong people do wrong software regardless of the process.
Crazy! That just means you are using wrong processes. I am not talking about the likes of CMM, CMMi, *MM models. Identifying what is the "intent" of what these *MM models say and trying to work that out is the MOST EFFICIENT way for software development. 90% of the *MM practitioners are just preachers and they try to interpret it without ever having seen how a project runs. So I would say go by the intent of what the standard models say and that would result in excellent software design. Processes are the key. Try doing a software project with no configuration management process in place. Have you?

-Sanjay

  Message #122909 Post reply Post reply Post reply Go to top Go to top Go to top

Think Again:The Top 10 Elements of Good Software Design

Posted by: Rajneesh Bajaj on May 20, 2004 in response to Message #122774
10. Considers the Sophistication of the Team that Will Implement It

A good design is alway simple...yet the implementation can use simple or complex constructs.

9. Uniformly Distributes Responsibility and Intelligence
8. Is Expressed in a Precise Design Language.

How about C#,Java or C++ ?

7. Selects Appropriate Implementation Mechanisms

Not a design issue

6. Is Robustly Documented

How much is enough and if it simple then would it need elaborate documentation

5. Eliminates Duplication

Implementation....

4. Is Internally Consistent and Unsurprising

Yes I agree

3. Exhibits Maximum Cohesion and Minimum Coupling

Universal Truth

2. Is as Simple as Current and Foreseeable Constraints will Allow

Should be done on Case to case basis

1. Provides the Necessary Functionality

That can only said when the first Release is in the market.

  Message #122914 Post reply Post reply Post reply Go to top Go to top Go to top

again, SW development is NOT process driven

Posted by: Argyn K on May 20, 2004 in response to Message #122901
So I would say go by the intent of what the standard models say and that would result in excellent software design. Processes are the key. Try doing a software project with no configuration management process in place. Have you?-Sanjay
Good designers will do good design. If you are not a good designer it doesn't matter what process/methodology is used. You'll make a bad design. That's it.

As to configuration management: it has nothing to do with design. It's like a supporting service, you know, like janitors, for example. Yes, it sucks without a good toilet, but it won't make a good design on its own.

CMM/ISO and other stuff like that has nothing to do with design. These certifications are used by consulting companies to pretend that they have "processes" and can produce quality software. I guess all outsourcing companies try to get one of these certifications now. Mostof them produce crappy code anyways.

  Message #122936 Post reply Post reply Post reply Go to top Go to top Go to top

Taste for Makers

Posted by: Eduardo Ito on May 20, 2004 in response to Message #122788
A very nice discussion about good design. Recommended.

http://www.paulgraham.com/taste.html

A summary:

Good design is simple.
Good design is timeless.
Good design solves the right problem.
Good design is suggestive.
Good design is often slightly funny.
Good design is hard.
Good design looks easy.
Good design uses symmetry.
Good design resembles nature.
Good design is redesign.
Good design can copy.
Good design is often strange.
Good design happens in chunks.
Good design is often daring.

  Message #122947 Post reply Post reply Post reply Go to top Go to top Go to top

#10 is a sad reality

Posted by: Sean Corfield on May 20, 2004 in response to Message #122840
>10. Considers the Sophistication of the Team that Will Implement It<

Yes, unfortunately that is something a design needs to consider. And not only the implementation team but also the maintenance team (which may well be different and often has a lower skill set). And this has been true for many, many years.

>9. Uniformly Distributes Responsibility and Intelligence<

That's not much more than a sound-bite, IMO. What does it really mean?

>8. Is Expressed in a Precise Design Language<

Overkill for a lot of situations and not really about the design itself.

>7. Selects Appropriate Implementation Mechanisms<

Another sound-bite. "appropriate" is very subjective.

>6. Is Robustly Documented<

Again, nothing to do with the design per se. It also seems to preclude XP.

>5. Eliminates Duplication<

OK.

>4. Is Internally Consistent and Unsurprising<

Good advice but still subjective and hard to measure.

>3. Exhibits Maximum Cohesion and Minimum Coupling<

Hmm, that sounds a bit absolutist (and a bit elitist). It can also work against the principle of simplicity - ensuring maximum cohesion and minimum coupling can complicate a design in order to achieve the desired levels of isolation.

>2. Is as Simple as Current and Foreseeable Constraints will Allow<

Bit of a sound-bite and could well be at odds with #3.

>1. Provides the Necessary Functionality<

Well, duh! Yeah, that's the most important point, that it actually solves the problem it's supposed to.

  Message #122969 Post reply Post reply Post reply Go to top Go to top Go to top

"good design" - Improving item 3

Posted by: glauco scheffel on May 20, 2004 in response to Message #122774
I would like to suggest some principles to help:

Liskov Substitution Principle (LSP)
     http://c2.com/cgi/wiki?LiskovSubstitutionPrinciple

Dependency Inversion Principle (DIP)
     http://c2.com/cgi/wiki?DependencyInversionPrinciple

Open-Closed Principle (OCP)
     http://c2.com/cgi/wiki?OpenClosedPrinciple

Law Of Demeter
     http://c2.com/cgi/wiki?LawOfDemeter

n Layer Architecture
     http://c2.com/cgi/wiki?FourLayerArchitecture
     With no ciclic dependencies between layers
Modular (cohesive and loosely coupled modules)
     http://www.manageability.org/blog/stuff/six-operators-of-modularity

IMO

  Message #122991 Post reply Post reply Post reply Go to top Go to top Go to top

process?

Posted by: Huang Kai on May 20, 2004 in response to Message #122876
Good people is an factor of success,but not as important as process.Process i refered here is not those CMM stuff,it's operable practice like TDD, FDD, Nightly build & constant integretion, how document&requirements synchronized with design. As someone said, a team composed of ten excellent guys may as match as (a good PM+a good Team leader+ 5 normal programmer).
So my point is the operabality, senario, tailor of rules, the process of design is much like making a cocktail---adjust those rules to fit the taste of project

  Message #123025 Post reply Post reply Post reply Go to top Go to top Go to top

Is cohesion still important?

Posted by: Anthony Jayasekera on May 21, 2004 in response to Message #122774
With the emergence of Aspect oriented development is the concept of cohesion still important? If system wide functionality is distributed across several method calls (as in the aspect oriented paradigm) does this not equate to low cohesion? I think that low cohesion at a method level is fine so long as there are other ways to track all system actions and use cases.

  Message #123135 Post reply Post reply Post reply Go to top Go to top Go to top

KISS, keep it simple stupid

Posted by: mattias w on May 22, 2004 in response to Message #122876
The list is just OO-bullshit or academic dreams.

The only guaranteed way to success is to keep the projects as small as possible but still more than 1 person, keep down the number of layers, and make a simple stupid design and implementation.

Research shows that real OO-projects are more expensive to create and twice as hard as debug.

  Message #123168 Post reply Post reply Post reply Go to top Go to top Go to top

OpenSource as a risk: not black or white

Posted by: Yuval Goldstein on May 23, 2004 in response to Message #122837
Lets consider some of today's products marketed by top companies:

IBM's WSAD is very much eclipse. IBM also use apache axis, and practically every major vendor (BEA doesn't) uses apache.
More and more vendors are willing to contribute their code to the open-source because they believe it will be useful for them in the long run.
Struts is also a successful Open Source, and any major IDE supports it (to a level).

Many respected ISVs bundle JBoss, myself and such.

Obviously, there are many bad open-source project as they are many bad commercial products.

So, to say "Open-source is a risk" as general statement, is not that accurate.
If its good use it, if its not dump it - commercial or open-source, the rule is the same.

Yuval.

PS: Log4J, Commons-Logging, Xerces, Hibernate, JUnit....

  Message #123169 Post reply Post reply Post reply Go to top Go to top Go to top

Misleading typo: "Many respected ISVs bundle JBoss, myself "

Posted by: Yuval Goldstein on May 23, 2004 in response to Message #123168
Sorry,
i wanted to say mySql, not myself:

"Many respected ISVs bindle JBoss, mySQL and such".

Thats it,

Yuval.

  Message #123319 Post reply Post reply Post reply Go to top Go to top Go to top

10. Considers the Sophistication of the Team that Will Implement

Posted by: Kei Sugimoto on May 25, 2004 in response to Message #122797
I also agree that considering the skill level of the team is extremely important. But it is not a matter of the quality of the design.
It is a matter of an appropriate project setting and management.
Consider a statement like "This system has a bad design because we
can not understand it well." The matter is, good design is good regardless of
the sophistication of the team, but occasionally it might not work. It is the
resposibility of the project management to find a balance between the good design and the avalable set of people.

New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com

Dependency Injection in Java EE 6 - Part 1

Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (November 2, Article)

SAML: It's Not just for Web services

SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options. (September 28, Article)

Programming is Also Teaching Your Team

Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team. (September 22, Article)

Can Java EE Deliver The Asynchronous Web?

Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies. (July 14, Article)

JSF Flex

JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags. (June 29, Article)

The Rules of SOA - A Road to a Successful SOA Implementation

In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project. (June 23, Tech Talk)

Ari Zilka Talks About Terracotta 3.1

Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now. (June 15, Tech Talk)

Enterprise Application Integration, and Spring

In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements. (June 15, Tech Talk)

Google Web Toolkit: An Introduction

In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls. (June 4, Tech Talk)

Just Enough Early Architecture to Guide Development

Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable. (May 28, Tech Talk)

Productive Programmer: On the Lam from the Furniture Police

This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work. (May 26, Tech Talk)

Auto-Scaling Your Existing Web Application

Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers. (May 21, Tech Talk)

Automating Hibernate Mapping and Queries For Java Web Development

Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application. (May 19, Article)

Auto-Scaling Your Existing Web Application

In this session Nati Shalom demonstrates how to take a standard Java EE web application and scale it out or down dynamically without changes to the application code. Seeing as most web applications are over-provisioned to meet infrequent peak loads, this is a dramatic change because it enables growing your application as needed, when needed, without paying for unutilized resources. (May 19, Tech Talk)

Free Book: Jakarta-Struts Live

Download the entire book of Jakarta-Struts Live and learn about Struts MVC, Tiles, the Validator, DynaActionForms, plug-ins, internationalization, and more.
(Book PDF Download)

Application Server Matrix

The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map