The Artima Developer Community
Sponsored Link

Design Forum
Goals of good software design

1 reply on 1 page. Most recent reply: Jan 4, 2007 10:36 PM by jens bendig

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Parag Shah

Posts: 24
Nickname: parags
Registered: Mar, 2003

Goals of good software design Posted: Sep 27, 2006 11:46 PM
Reply to this message Reply
Advertisement
Hello,

I am in the process of creating a section on Object Oriented design on my web based learning website, and this led me to ask some very basic questions of myself:

What are the goals of good software design?

Here are some points that come to mind:

1. Flexibility:
We may have to change the way in which certain things work. The design must be able to accomodate these changes with minimum effort.

2. Extensibility:
The software will need new features. The design must be able to accomodate them easily. Ideally we must be able to add new stuff by adding code and not by modifying existing code, because modifying existing code may break stuff that was already working.

3. Maintainability:
maintainability = Flexibility + Extensibility ?
Perhaps, but also important for maintainability is being able to understand the code. Which can be achieved by assigning appropriate responsibilities to classes, and not abusing inheritance.

These are common, but are there oher goals?

I came accross an article on the net that suggests that the design should be appropriate to the skill level of the team. That is, we should avoid using complex language features if the team in inexperienced, because they may not be able to maintain the code easily. I think this is slightly controversial. Would it not be better to use the complex features (I am assuming that their usage will bring significant benefit), and educate the team on how to use them?

How about Robustness. Can design influence robustness, or is it something that is attributed more to the process (like having a suite of unit tests, etc)?

Where does "Time to deliver" figure? Should it influence design decisions?

Is there anything else that I am missing?

Will appreciate thoughts from other community members.

Thanks
Parag


jens bendig

Posts: 9
Nickname: jensbendig
Registered: Jul, 2006

Re: Goals of good software design Posted: Jan 4, 2007 10:36 PM
Reply to this message Reply
Hello Parag,

I am convinced that there is a overall design-goal, leading to most of the other goals: It´s readability. You are writing your Code for other readers. If those readers easily can read and understand, they can maintain and change as well.

Best,

Jens

Flat View: This topic has 1 reply on 1 page
Topic: Small sized web application design guidance. Previous Topic   Next Topic Topic: Data binding analysis of AJAX DataSet and DBControl in AJAX WebShop

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use