Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #10084

Re: Standard Design and Development Methodologies

From Lew <lewbloch@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Standard Design and Development Methodologies
Date 2011-11-19 20:13 -0800
Organization http://groups.google.com
Message-ID <4908121.2133.1321762391730.JavaMail.geo-discussion-forums@prou19> (permalink)
References <Xns9FA29593FF4C2jpnasty@94.75.214.39> <p4_xq.30508$Pm3.8310@newsfe12.iad>

Show all headers | View raw


Arved Sandstrom wrote:
> Novice wrote:
>> What are the standard design and development methodologies being used in 
>> systems departments these days and, ideally, where can I find tutorials for 
>> them, preferably free and online? 
>> 
> You could probably do worse than to read
> http://en.wikipedia.org/wiki/Software_development_methodology. This is
> of value primarily because it introduces a lot of common terminology.
> 
> Ultimately _every_ software development methodology (SDM) boils down to:
> 
> 1. requirements analysis - understanding what the client needs you to do;
> 2. analysis & design - how you intend to meet those needs. See
> http://en.wikipedia.org/wiki/Object-oriented_analysis_and_design, since
> we are talking Java, for general concepts;
> 3. implementation - actually write code;
> 4. testing - ensuring that your code, as written, satisfies the
> requirements;
> 5. maintenance - nurturing the application over its lifespan.
> 
> How all the various approaches differ is how they break up and sequence
> these activities. What really matters is that all these activities are
> important.

There's a comprehensive little pamphlet reviewing various software development methodologies called /Wicked Problems, Righteous Solutions/ by DeGrace and Stahl, 1990, that is as relevant today as when first published. 

Its main conclusion, after a very neutral overview of the extant pet theories, is that successful methodologies rest on two key features: an individual who maintains the project architecture and structures in his/her own mind, and iteration.

As such an individual (as you should be, too), I have a toolbox of ways to look at a programming assignment - a kit of ontologies.  

First and most fundamental skill - to look it up.  Whatever the unfamiliar concept or skill, there is never an expert enough who's patient enough with time enough and communication talent enough to explain it for you.  You have to be able to do with fragments of advice (at best) and what you discover for yourself - through hard, hard study and very pragmatic experimentation.  A former mentor of mine trained me that any IT person spending less than 20% over and above their normal work time to study and practice was doomed to fall behind.

'Struth.

As for ontologies, the most useful ones I know are event-driven programming, object-oriented programming, MVC (model-view-controller), layers (Law of Demeter), and "noun-and-verb" modeling.  That last is my own term for using the language of the problem domain (its nouns and verbs) to define your program structures.

There's one style trick that induces better code:  Keep it short.  After about 500 lines of code and comment (yes, and comment) your class should feel too large, and after about 700-800 lines you should be castigating yourself.  

The pressure to keep it short helps you think more clearly about structure.

And there's one mandatory, cross-methodology practice:  Javadoc the shit out of your code.  Document private and package-private methods and all static variables down to private.  The extra asterisk at the start of the comment block hurts nothing.

Don't use specious comments, the kind that repeat what the code already says:

  for (Foo foo : bunchOfFoos) // operate on each of the Foos

Pfeh!  If a person doesn't know what a for-each loop is, such a comment will not rescue them.

Do liberally comment anything that makes a maintainer go, "Hmm."

  // volatile: thread calling close() might not be same as called perform()
  private volatile boolean isStopping;

This advice might not fit your idea of what constitutes a "methodology", but for Pete's sake, think.  What does that "ology" suffix buy you but buzzword compliance?  The real need is for a _method_, a process by which you can produce effective, reliable, correct software on time to spec.  In the end it's all about your personal commitment and skill.

-- 
Lew

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Standard Design and Development Methodologies Novice <novice@example..com> - 2011-11-19 19:42 +0000
  Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-19 21:22 -0500
    Re: Standard Design and Development Methodologies Novice <novice@example..com> - 2011-11-20 16:55 +0000
      Re: Standard Design and Development Methodologies "Charles Hottel" <chottel@earthlink.net> - 2011-11-20 22:20 -0500
  Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-19 23:01 -0400
    Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-19 20:13 -0800
      Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-19 20:16 -0800
      Re: Standard Design and Development Methodologies "Derek K. Wodenhouse" <dkw@none.of.your.biz> - 2011-11-19 23:49 -0500
        Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-19 23:45 -0800
          Re: Standard Design and Development Methodologies "Derek K. Wodenhouse" <dkw@none.of.your.biz> - 2011-11-20 03:49 -0500
            Re: Standard Design and Development Methodologies Robert Klemme <shortcutter@googlemail.com> - 2011-11-20 13:58 +0100
            Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-20 08:32 -0800
              Re: Standard Design and Development Methodologies "Derek K. Wodenhouse" <dkw@none.of.your.biz> - 2011-11-20 18:24 -0500
        Re: Standard Design and Development Methodologies Patricia Shanahan <pats@acm.org> - 2011-11-20 03:27 -0800
          Re: Standard Design and Development Methodologies spk <jhic@speak.invalid> - 2011-11-20 09:54 -0400
            Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-20 08:33 -0800
            Re: Standard Design and Development Methodologies thoolen <th00len@th0lenbot.thorium> - 2011-11-20 18:30 -0500
      Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-20 09:35 -0400
      Re: Standard Design and Development Methodologies Novice <novice@example..com> - 2011-11-20 17:18 +0000
        Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-20 10:30 -0800
          Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-21 07:23 -0400
      Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 21:51 -0500
        Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-25 20:07 -0800
    Re: Standard Design and Development Methodologies Novice <novice@example..com> - 2011-11-20 17:08 +0000
      Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-20 12:18 -0500
      Re: Standard Design and Development Methodologies markspace <-@.> - 2011-11-20 10:29 -0800
      Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-20 10:55 -0800
        Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-20 14:07 -0500
          Re: Standard Design and Development Methodologies Lew <lewbloch@gmail.com> - 2011-11-20 11:50 -0800
      Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-21 07:19 -0400
  Re: Standard Design and Development Methodologies Roedy Green <see_website@mindprod.com.invalid> - 2011-11-20 22:27 -0800
    Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-21 07:02 -0400
      Re: Standard Design and Development Methodologies Robert Klemme <shortcutter@googlemail.com> - 2011-11-22 18:52 +0100
        Re: Standard Design and Development Methodologies markspace <-@.> - 2011-11-22 11:37 -0800
          Re: Standard Design and Development Methodologies Gene Wirchenko <genew@ocis.net> - 2011-11-22 14:27 -0800
            Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 22:06 -0500
              Re: Standard Design and Development Methodologies Gene Wirchenko <genew@ocis.net> - 2011-11-26 21:16 -0800
                Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-12-02 21:53 -0500
                Re: Standard Design and Development Methodologies Gene Wirchenko <genew@ocis.net> - 2011-12-04 21:25 -0800
                Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-12-05 22:41 -0500
                Re: Standard Design and Development Methodologies Gene Wirchenko <genew@ocis.net> - 2011-12-05 19:58 -0800
          Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-22 19:57 -0400
            Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 22:04 -0500
              Re: Standard Design and Development Methodologies Gene Wirchenko <genew@ocis.net> - 2011-11-26 21:18 -0800
                Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-11-27 08:34 -0400
                Re: Standard Design and Development Methodologies Patricia Shanahan <pats@acm.org> - 2011-11-27 08:39 -0800
                Re: Standard Design and Development Methodologies Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-27 20:07 +0000
                Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-12-02 21:48 -0500
                Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-12-03 14:52 -0400
                Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-12-05 22:50 -0500
                Re: Standard Design and Development Methodologies Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-12-06 07:21 -0400
      Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 21:54 -0500
    Re: Standard Design and Development Methodologies Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 21:47 -0500

csiph-web