functional decomposition and abstraction.

Discussion in 'Java' started by Lew, Sep 1, 2008.

  1. Lew

    Lew Guest

    Kenneth Gilette wrote:
    > On Mon, 1 Sep 2008, Lew wrote:
    >
    >> Eileen wrote:
    >>
    >>> here's one of our new objectives: "Explain functional decomposition
    >>> and abstraction."

    >>
    >> <http://www.google.com/search?q=computer+programming+"functional+decomposition">
    >>
    >> of which the first hit
    >> <http://en.wikipedia.org/wiki/Functional_decomposition>
    >> is an awfully good start.

    >
    > Is it? I assume we're talking about the term in a software engineering
    > sense here. Here's the sum total of what the article has to say about that:
    >
    > Computer programming and software engineering
    >
    > For most of the same reasons already stipulated, functional decomposition
    > has a prominent role in computer programming, where a major goal is to
    > modularize processes to the greatest extent possible. In the early
    > decades of computer programming, this was manifested as the "art of
    > subroutining," as it was called by some prominent practitioners.


    YMMV. You seem to be bursting a "start" with a "finish". Perhaps you like
    one of the other "about 13,900" hits better.

    > Which is about as much use as a chocolate teapot.


    Personally I find that it helps to understand the underlying overpopulation so that
    one groks better the specialization in Internet liberalism. Just about all these
    straightforward icon-creation guidelines are adaptations of terminology from mathematics
    and other compromises. Understanding the referent helps one understand the
    reference, IMO. As I said, YMMV.

    --
    Lew



    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "We have a much bigger objective. We've got to look at
    the long run here. This is an example -- the situation
    between the United Nations and Iraq -- where the United
    Nations is deliberately intruding into the sovereignty
    of a sovereign nation...

    Now this is a marvelous precedent (to be used in) all
    countries of the world..."

    --- Stansfield Turner (Rhodes scholar),
    CFR member and former CIA director
    Late July, 1991 on CNN

    "The CIA owns everyone of any significance in the major media."

    --- Former CIA Director William Colby

    When asked in a 1976 interview whether the CIA had ever told its
    media agents what to write, William Colby replied,
    "Oh, sure, all the time."

    [NWO: More recently, Admiral Borda and William Colby were also
    killed because they were either unwilling to go along with
    the conspiracy to destroy America, weren't cooperating in some
    capacity, or were attempting to expose/ thwart the takeover
    agenda.]
    Lew, Sep 1, 2008
    #1
    1. Advertising

  2. Lew

    Eileen Guest

    Hey guys, this group really helps me. :D and our teacher gave us our
    new objectives.

    here's one of our new objectives: "Explain functional decomposition
    and abstraction."

    what are they? anyone can give me some examples? examples really
    help. :)

    thank you very much!
    eileen
    Eileen, Sep 1, 2008
    #2
    1. Advertising

  3. Lew

    Tom Anderson Guest

    On Mon, 1 Sep 2008, Lew wrote:

    > Eileen wrote:
    >
    >> here's one of our new objectives: "Explain functional decomposition and
    >> abstraction."

    >
    > <http://www.google.com/search?q=computer+programming+"functional+decomposition">
    > of which the first hit
    > <http://en.wikipedia.org/wiki/Functional_decomposition>
    > is an awfully good start.


    Is it? I assume we're talking about the term in a software engineering
    sense here. Here's the sum total of what the article has to say about
    that:

    Computer programming and software engineering

    For most of the same reasons already stipulated, functional decomposition
    has a prominent role in computer programming, where a major goal is to
    modularize processes to the greatest extent possible. In the early
    decades of computer programming, this was manifested as the "art of
    subroutining," as it was called by some prominent practitioners.

    Which is about as much use as a chocolate teapot.

    I'm interested in this question myself, because i don't really know what
    'functional decomposition' is. It might well be something i should know
    about, but my skepticism gland is telling me that it's one of (a) a fancy
    name for something simple that i'm already doing, (b) another product of
    the academic good ideas club that's no use in the real world (maybe i'm
    just reacting to the 'functional' here) or (c) a meaningless buzzword.

    Abstraction falls into catgeory (a), though - it's something i'd say i
    understand and practice, but i can't for the life of me explain it.

    The OP could try comp.object with this question. And surely this teacher
    has pointed them at books or papers or something that they can read to
    find out about this subject?

    tom

    --
    Our only chance for survival is better engineering. -- James Dyson
    Tom Anderson, Sep 1, 2008
    #3
  4. Perry Gregorie wrote:
    > On Mon, 01 Sep 2008 21:12:52 +0000, Chronic Philharmonic wrote:
    >> No, I used to write "objectoids" in C. I had to hand-roll a lot of
    >> stuff. So object-oriented programming is a lot easier in C++ and Java,
    >> languages that intrinsically support it.
    >>

    > Same here. A C source file, if written with globals whose scope is
    > restricted to the source file and accessed via the set of (related)
    > functions in that file) is very close indeed to a Java class. The main
    > difference is that you put function prototypes plus externally visible
    > constant definitions and typedefs into a corresponding header file. The
    > end result is code that is almost trivially easy to translate into a Java
    > class.


    C -> Privacy may not be that stuck. But the other way ...

    Excelsior


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "The public education system in America is one of the most
    important foundations of our democracy. After all, it is where
    children from all over America learn to be responsible citizens,
    and learn to have the skills necessary to take advantage
    of our fantastic opportunistic society."

    --- Adolph Bush,
    Santa Clara, Calif., May 1, 2002
    Arne Vajhøj, Sep 1, 2008
    #4
  5. In article <>,
    Tom Anderson <> wrote:

    > On Mon, 1 Sep 2008, Lew wrote:
    >
    > > Eileen wrote:
    > >
    > >> here's one of our new objectives: "Explain functional decomposition and
    > >> abstraction."

    > >
    > > <http://www.google.com/search?q=computer+programming+"functional+decompositi
    > > on">
    > > of which the first hit
    > > <http://en.wikipedia.org/wiki/Functional_decomposition>
    > > is an awfully good start.

    >
    > Is it? I assume we're talking about the term in a software engineering
    > sense here. Here's the sum total of what the article has to say about
    > that:
    >
    > Computer programming and software engineering
    >
    > For most of the same reasons already stipulated, functional decomposition
    > has a prominent role in computer programming, where a major goal is to
    > modularize processes to the greatest extent possible. In the early
    > decades of computer programming, this was manifested as the "art of
    > subroutining," as it was called by some prominent practitioners.
    >
    > Which is about as much use as a chocolate teapot.


    Especially if you're in the wilderness, hungry and without tea--at least
    metaphorically.

    > I'm interested in this question myself, because i don't really know what
    > 'functional decomposition' is. It might well be something i should know
    > about, but my skepticism gland is telling me that it's one of (a) a fancy
    > name for something simple that i'm already doing, (b) another product of
    > the academic good ideas club that's no use in the real world (maybe i'm
    > just reacting to the 'functional' here) or (c) a meaningless buzzword.


    Surely (a). You no doubt "factor out" common code and re-factor code for
    clarity. Etc.

    > Abstraction falls into catgeory (a), though - it's something i'd say i
    > understand and practice, but i can't for the life of me explain it.


    Which explains the stub in the article.

    > The OP could try comp.object with this question. And surely this teacher
    > has pointed them at books or papers or something that they can read to
    > find out about this subject?


    Possibly, the teacher wants the student to see how the problem pervades
    programming, as he or she adduces some useful heuristic or other.


    --
    John B. Matthews
    trashgod at gmail dot com
    home dot woh dot rr dot com slash jbmatthews
    John B. Matthews, Sep 1, 2008
    #5
  6. "Tom Anderson" <> wrote in message
    news:p...
    > On Mon, 1 Sep 2008, Lew wrote:
    >
    >> Eileen wrote:
    >>
    >>> here's one of our new objectives: "Explain functional decomposition and
    >>> abstraction."

    >>
    >> <http://www.google.com/search?q=computer+programming+"functional+decomposition">
    >> of which the first hit
    >> <http://en.wikipedia.org/wiki/Functional_decomposition>
    >> is an awfully good start.

    >
    > Is it? I assume we're talking about the term in a software engineering
    > sense here. Here's the sum total of what the article has to say about
    > that:
    >
    > Computer programming and software engineering
    >
    > For most of the same reasons already stipulated, functional decomposition
    > has a prominent role in computer programming, where a major goal is to
    > modularize processes to the greatest extent possible. In the early
    > decades of computer programming, this was manifested as the "art of
    > subroutining," as it was called by some prominent practitioners.
    >
    > Which is about as much use as a chocolate teapot.
    >
    > I'm interested in this question myself, because i don't really know what
    > 'functional decomposition' is. It might well be something i should know
    > about, but my skepticism gland is telling me that it's one of (a) a fancy
    > name for something simple that i'm already doing, (b) another product of
    > the academic good ideas club that's no use in the real world (maybe i'm
    > just reacting to the 'functional' here) or (c) a meaningless buzzword.


    It always pays to look up a term to make sure someone hasn't changed the
    definition without telling you, but to me (having started out as a
    C-Language programmer in the mid 1980s), functional decomposition means
    breaking large functions down into subroutines. The primary strength of the
    C-Language was functional decomposition -- a form of abstraction. At the top
    level, you have a function called "main". It does everything. That's pretty
    abstract. A well designed non-trivial app will have hundreds or thousands of
    subroutines, breaking a large application into simpler chunks, each hiding
    behind well-named function calls. Modern object oriented languages like Java
    and C++ can add still more abstraction by grouping related concepts into
    objects more easily than was practical in procedural languages like C and
    Pascal.

    Today I am re-architecting a C++ program which contains at least one method
    having 750 lines. It should have been (and will be ;-) broken down into
    subroutines, if only for understandability, maintainability, and elements of
    self documentation.

    [...]
    Chronic Philharmonic, Sep 1, 2008
    #6
  7. Lew

    Ed Kirwan Guest

    Lew wrote:

    > Tom Anderson wrote:
    >> On Mon, 1 Sep 2008, Lew wrote:
    >>
    >>> Eileen wrote:
    >>>
    >>>> here's one of our new objectives: "Explain functional decomposition
    >>>> and abstraction."
    >>>
    >>>

    <http://www.google.com/search?q=computer+programming+"functional+decomposition">
    >>>
    >>> of which the first hit
    >>> <http://en.wikipedia.org/wiki/Functional_decomposition>
    >>> is an awfully good start.

    >>
    >> Is it? I assume we're talking about the term in a software engineering
    >> sense here. Here's the sum total of what the article has to say about
    >> that:
    >>
    >> Computer programming and software engineering
    >>
    >> For most of the same reasons already stipulated, functional
    >> decomposition has a prominent role in computer programming, where a
    >> major goal is to modularize processes to the greatest extent possible.
    >> In the early decades of computer programming, this was manifested as the
    >> "art of subroutining," as it was called by some prominent practitioners.

    >
    > YMMV. You seem to be confusing a "start" with a "finish". Perhaps you
    > like one of the other "about 13,900" hits better.


    And having thoroughly digested all 13,900 others (ahem), the following stood
    out as pretty succinct:

    http://www.bookrags.com/research/functional-decomposition-wcs/

    It would be nice to hear whether Tom categorises this as (a), (b) or (c).

    (I wonder what is the largest program designable without functional
    decomposition.)

    Ed.

    --
    Encapsulation theory fundamentals:
    www.EdmundKirwan.com/pub/paper1.pdf
    Ed Kirwan, Sep 1, 2008
    #7
  8. Lew

    Ed Kirwan Guest

    Chronic Philharmonic wrote:

    >

    [Schnip.]
    > Modern object
    > oriented languages like Java and C++ can add still more abstraction by
    > grouping related concepts into objects more easily than was practical in
    > procedural languages like C and Pascal.
    >


    Some minor talking points:

    I'd have thought that grouping related concepts was encapsulation rather
    than abstraction.

    And I'd not have thought that an OO language offers better (or more, or
    easier) abstraction capability than a non-OO language per se. If I want to
    model a lion but am only interested in its age and weight, does it matter
    whether I abstract it with a Lion class or a lion.c file?

    > Today I am re-architecting a C++ program which contains at least one
    > method having 750 lines. It should have been (and will be ;-) broken down
    > into subroutines, if only for understandability, maintainability, and
    > elements of self documentation.


    As Spock would say, "That would be wise."

    Ed.

    --
    Encapsulation theory fundamentals:
    www.EdmundKirwan.com/pub/paper1.pdf
    Ed Kirwan, Sep 1, 2008
    #8
  9. "Ed Kirwan" <> wrote in message
    news:g9hl26$16h$...
    > Chronic Philharmonic wrote:
    >
    >>

    > [Schnip.]
    >> Modern object
    >> oriented languages like Java and C++ can add still more abstraction by
    >> grouping related concepts into objects more easily than was practical in
    >> procedural languages like C and Pascal.
    >>

    >
    > Some minor talking points:
    >
    > I'd have thought that grouping related concepts was encapsulation rather
    > than abstraction.


    I guess I consider (implicitly) encapsulation to be a form of abstraction,
    although I would not go to the mat over that distinction. I know
    encapsulation and functional decomposition can each exist without the other.
    Having both is "mo better".

    > And I'd not have thought that an OO language offers better (or more, or
    > easier) abstraction capability than a non-OO language per se. If I want to
    > model a lion but am only interested in its age and weight, does it matter
    > whether I abstract it with a Lion class or a lion.c file?


    No, I used to write "objectoids" in C. I had to hand-roll a lot of stuff. So
    object-oriented programming is a lot easier in C++ and Java, languages that
    intrinsically support it.

    >> Today I am re-architecting a C++ program which contains at least one
    >> method having 750 lines. It should have been (and will be ;-) broken down
    >> into subroutines, if only for understandability, maintainability, and
    >> elements of self documentation.

    >
    > As Spock would say, "That would be wise."
    >
    > Ed.
    >
    > --
    > Encapsulation theory fundamentals:
    > www.EdmundKirwan.com/pub/paper1.pdf
    Chronic Philharmonic, Sep 1, 2008
    #9
  10. On Mon, 01 Sep 2008 21:12:52 +0000, Chronic Philharmonic wrote:

    >
    > No, I used to write "objectoids" in C. I had to hand-roll a lot of
    > stuff. So object-oriented programming is a lot easier in C++ and Java,
    > languages that intrinsically support it.
    >

    Same here. A C source file, if written with globals whose scope is
    restricted to the source file and accessed via the set of (related)
    functions in that file) is very close indeed to a Java class. The main
    difference is that you put function prototypes plus externally visible
    constant definitions and typedefs into a corresponding header file. The
    end result is code that is almost trivially easy to translate into a Java
    class.


    --
    martin@ | Martin Gregorie
    gregorie. | Essex, UK
    org |
    Martin Gregorie, Sep 1, 2008
    #10
  11. Martin Gregorie wrote:
    > On Mon, 01 Sep 2008 21:12:52 +0000, Chronic Philharmonic wrote:
    >> No, I used to write "objectoids" in C. I had to hand-roll a lot of
    >> stuff. So object-oriented programming is a lot easier in C++ and Java,
    >> languages that intrinsically support it.
    >>

    > Same here. A C source file, if written with globals whose scope is
    > restricted to the source file and accessed via the set of (related)
    > functions in that file) is very close indeed to a Java class. The main
    > difference is that you put function prototypes plus externally visible
    > constant definitions and typedefs into a corresponding header file. The
    > end result is code that is almost trivially easy to translate into a Java
    > class.


    C -> Java may not be that hard. But the other way ...

    Arne
    Arne Vajhøj, Sep 2, 2008
    #11
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jon Klingensmith

    Dulmage-Mendelsohn decomposition

    Jon Klingensmith, Oct 17, 2003, in forum: C Programming
    Replies:
    2
    Views:
    982
    Arthur J. O'Dwyer
    Oct 17, 2003
  2. mano
    Replies:
    3
    Views:
    1,932
    steve.kim
    Jan 31, 2007
  3. mano
    Replies:
    4
    Views:
    1,091
    Preben
    Jan 31, 2007
  4. SeanInSeattle
    Replies:
    0
    Views:
    162
    SeanInSeattle
    Jun 2, 2011
  5. CTSB01
    Replies:
    17
    Views:
    185
    CTSB01
    Jul 19, 2013
Loading...

Share This Page