Loading ...
Sorry, an error occurred while loading the content.

RE: [XP] Physical System Analogy

Expand Messages
  • Arrizza, John
    ... model) ... Using a coverage tool I assume. How did you come up with the axes?
    Message 1 of 25 , Jul 2 12:38 PM
    • 0 Attachment
      > -----Original Message-----
      > From: Michael Schneider [mailto:michael.schneider@...]
      > Here are the Axis that we are working with:
      >
      > 1) Design Goals of Architecture - what do you want your
      > architecture to look like
      >
      > 2) Actual Design of Architecture - What is the current structure (static
      model)
      >
      > 3) Binary Dependency Structure - who calls who, how many
      > times, (hot spot from a link dependency)
      >
      > 4) Compile Dependency Structure - To compile file X, how much
      > of the world to I have to compile
      >
      > 5) Run Time Path Data - We run system tests against the code
      > to find out which areas are exercised when user scenarios are executed
      Using a coverage tool I assume.

      How did you come up with the axes?
    • Arrizza, John
      ... Is there a correlation between probabilities of events and the locality of defects or of complex code?
      Message 2 of 25 , Jul 2 12:42 PM
      • 0 Attachment
        > -----Original Message-----
        > From: Hugo Garcia [mailto:xpjava@...]
        > Still a casual description but by measuring the
        > probrabilities of events you avoid the mechanistic
        > view of things.

        Is there a correlation between probabilities of events and the locality of
        defects or of complex code?
      • Michael Schneider
        ... Axis 1) Is the architecture design, It is basically a UML Diagram with tools to enforce package dependency. Robert Martin from Object Mentor helped us
        Message 3 of 25 , Jul 2 12:56 PM
        • 0 Attachment
          "Arrizza, John" wrote:

          > > -----Original Message-----
          > > From: Michael Schneider [mailto:michael.schneider@...]
          > > Here are the Axis that we are working with:
          > >
          > > 1) Design Goals of Architecture - what do you want your
          > > architecture to look like
          > >
          > > 2) Actual Design of Architecture - What is the current structure (static
          > model)
          > >
          > > 3) Binary Dependency Structure - who calls who, how many
          > > times, (hot spot from a link dependency)
          > >
          > > 4) Compile Dependency Structure - To compile file X, how much
          > > of the world to I have to compile
          > >
          > > 5) Run Time Path Data - We run system tests against the code
          > > to find out which areas are exercised when user scenarios are executed
          > Using a coverage tool I assume.
          >
          > How did you come up with the axes?

          Axis 1) Is the architecture design, It is basically a UML Diagram with tools to
          enforce package dependency. Robert Martin from Object Mentor helped us
          with the techniques for Axis 1)

          Axis 2) This axis came from the impact of our legacy system on the new design,
          we would come up with great designs for Axis 1, but when you came to realize
          them in the context of the system, you were challenged. Axis 2 was a short cut
          to allows have everybody that knew how that old system "really-worked"
          in one room. By automating this, and visualizing it, the architecture could
          review the "as-is" and say Whoah There!!!, that is not quite right. It is the
          big picture tool of the architecture

          Axis 3) This was gleaned from the exe's and the library archives, it was the
          call tree, for each exe

          Axis 4) came from #include info, our tools group has been gather this info for
          ~8 years, we just had to mine what they already had, source navigator is
          a nice Free tool to get this kind of information

          Axis 5) This came from our system test data, this is data contributed by customers,
          and defects over time. This also has beta test ...... This is to try to get as close to a
          "customer-oriented" view as possible.

          The data from the 5 axis are relatively easy to get, the hard part was visualization,
          and axis relationships. graphVis and java3d can help with this.

          This approach seems to hold up, it is the relationship between the axis that
          we are working on most now.

          It is just 5 different meta-models of the architecture, no one is perfect, but
          together, they can give you good info on the state of your system.

          Don't rely on it to heavily though, it just give you approximate state
          of the system. Number can lull you into a false sense of security,
          or a false panic.

          Hope this helps,
          Mike


          >
          >
          > To Post a message, send it to: extremeprogramming@...
          >
          > To Unsubscribe, send a blank message to: extremeprogramming-unsubscribe@...
          >
          > Don't miss XP UNIVERSE, the first US conference on XP and Agile Methods. see www.xpuniverse.com for details and registration.
          >
          > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
        • Arrizza, John
          ... Actually, I meant why those axes and not some other set? John
          Message 4 of 25 , Jul 2 1:37 PM
          • 0 Attachment
            > -----Original Message-----
            > From: Michael Schneider [mailto:michael.schneider@...]
            > > How did you come up with the axes?
            >
            > Axis 1) Is the architecture design, It is basically a UML
            <snip>

            Actually, I meant why those axes and not some other set?
            John
          • Ron Jeffries
            ... The word legacy would have answered my question simply but without deep understanding of what you do. Your detailed remarks are very helpful. Thanks!
            Message 5 of 25 , Jul 2 2:02 PM
            • 0 Attachment
              Responding to Michael Schneider (03:37 PM 7/2/2001 -0400):

              >Very good question, I will do my best to answer it.
              >
              >Our code base has evolved over the last 20 years ...

              The word "legacy" would have answered my question simply but without deep
              understanding of what you do. Your detailed remarks are very helpful. Thanks!



              Ronald E Jeffries
              http://www.XProgramming.com
              http://www.objectmentor.com
            • Michael Schneider
              John, Those were developed over time to meet business/technical needs. We looked at the problems that we were facing, looked at the work others were doing,
              Message 6 of 25 , Jul 2 2:18 PM
              • 0 Attachment
                John,

                Those were developed over time to meet business/technical needs.
                We looked at the problems that we were facing, looked at the work
                others were doing, then tried several things over time.

                We picked axis that had some overlap, but gave a look at the architecture
                from a different view. The overlap allowed relationships to be established,
                the differences allowed views that were not possible without the
                axis.

                You may be able to get similar info from different axis, this set seems
                to work well for us so far. Next year it may be the 7 axis, or we may
                figured out how to merge 2 into 1 and then it would be the 4 axis.

                With the relationships that we have now, it takes 5.

                Hope this helps,
                Mike



                "Arrizza, John" wrote:

                > > -----Original Message-----
                > > From: Michael Schneider [mailto:michael.schneider@...]
                > > > How did you come up with the axes?
                > >
                > > Axis 1) Is the architecture design, It is basically a UML
                > <snip>
                >
                > Actually, I meant why those axes and not some other set?
                > John
                >
                > To Post a message, send it to: extremeprogramming@...
                >
                > To Unsubscribe, send a blank message to: extremeprogramming-unsubscribe@...
                >
                > Don't miss XP UNIVERSE, the first US conference on XP and Agile Methods. see www.xpuniverse.com for details and registration.
                >
                > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
              • Hugo Garcia
                Hmmmmm...... Good question. I will have to ponder for a while. -H ... __________________________________________________ Do You Yahoo!? Get personalized email
                Message 7 of 25 , Jul 2 8:56 PM
                • 0 Attachment
                  Hmmmmm......

                  Good question. I will have to ponder for a while.

                  -H



                  --- "Arrizza, John" <john.arrizza@...> wrote:
                  > > -----Original Message-----
                  > > From: Hugo Garcia [mailto:xpjava@...]
                  > > Still a casual description but by measuring the
                  > > probrabilities of events you avoid the mechanistic
                  > > view of things.
                  >
                  > Is there a correlation between probabilities of
                  > events and the locality of
                  > defects or of complex code?
                  >
                  > To Post a message, send it to:
                  > extremeprogramming@...
                  >
                  > To Unsubscribe, send a blank message to:
                  > extremeprogramming-unsubscribe@...
                  >
                  > Don't miss XP UNIVERSE, the first US conference on
                  > XP and Agile Methods. see www.xpuniverse.com for
                  > details and registration.
                  >
                  > Your use of Yahoo! Groups is subject to
                  > http://docs.yahoo.com/info/terms/
                  >
                  >


                  __________________________________________________
                  Do You Yahoo!?
                  Get personalized email addresses from Yahoo! Mail
                  http://personal.mail.yahoo.com/



                  [Non-text portions of this message have been removed]
                • Arrizza, John
                  ... I couldn t help but notice the similarity of the axes you chose to Lakos s recommendations in Large Scale C++ Development.
                  Message 8 of 25 , Jul 3 12:48 PM
                  • 0 Attachment
                    > -----Original Message-----
                    > From: Michael Schneider [mailto:michael.schneider@...]
                    > Those were developed over time to meet business/technical needs.

                    I couldn't help but notice the similarity of the axes you chose to Lakos's
                    recommendations in Large Scale C++ Development.
                  • Arrizza, John
                    ... Just a thought: If the probability of an event is high then the likelihood of a defect is low. In other words, if an event occurs a lot then defects, if
                    Message 9 of 25 , Jul 6 6:37 AM
                    • 0 Attachment
                      > -----Original Message-----
                      > From: Hugo Garcia [mailto:xpjava@...]
                      > Good question. I will have to ponder for a while.
                      > --- "Arrizza, John" <john.arrizza@...> wrote:
                      > > > -----Original Message-----
                      > > > From: Hugo Garcia [mailto:xpjava@...]
                      > > > Still a casual description but by measuring the
                      > > > probrabilities of events you avoid the mechanistic
                      > > > view of things.
                      > >
                      > > Is there a correlation between probabilities of
                      > > events and the locality of defects or of complex code?

                      Just a thought: If the probability of an event is high then the likelihood
                      of a defect is low. In other words, if an event occurs a lot then defects,
                      if any, will manifest themselves more often therefore they tend to get
                      fixed. (This also seems to jive with my experience.)

                      In a sense, this is one of the reasons behind Unit Testing. It causes events
                      to occur with (almost) even probability.

                      back to legacy systems:
                      On first blush, this implies that the first Unit Tests should be written for
                      the least used code. But perhaps there is low-use code and then there is
                      low-use code. An example of the latter is dead code. No point in unit
                      testing that. Ditto but less so for code that implements low priority/low
                      use features.

                      So what's left? Code that implements high-use features but is invoked "once
                      in a while".

                      And that implies this snippet:
                      1) Identify and remove all dead code by running a line coverage tool while
                      running the system over all features.
                      2) Identify code implementing high-use features by running a line coverage
                      tool while those features are run.
                      3) Write Unit Tests for the remaining code in all of the classes identified
                      in step1.

                      let me know what you think...
                      John
                    Your message has been successfully submitted and would be delivered to recipients shortly.