Re: Urgent!!! UPGRADE METHODOLOGY



dondora wrote:

While I was making the program,
I comformed to the design procedure which is widely used in practice.
I drew up requirement specifications and drew actor-class diagram, use
case and related diagrams.
And then I extracted candidate classes and drew up data dictionary and
blah blah sequence, class diagrams also.

I don't know what the professors have told you, but that's not a primary
development "methodology". Modeling is just a way to visual a proposed or
existing design; it's not a complete system to verify that design.

One primary development methodology that is deceptively simple but extremely
effective is Test Driven Development, with Refactoring.

That means, for each line of code you intend to write, you first write a
simple test case that fails because the line is not there yet. This is not a
"unit test" or a "QA test" - it's just a test that can fail for the correct
reason - the line is not there yet. You run the test and successfully
predict it will fail, before you upgrade the tested code.

When you pass the test, you write whatever sloppy bad design you need. It
will only be a few edits-worth of sloppy code, so it's safe. When all the
tests pass, only then do you upgrade the design. You try to see how many
lines of code you can delete, and how you can simplify the design. You
should only make small edits and pass all the tests after each one.

If at any time the tests fail unexpectedly, you should revert and try again.
People using that system always report these benefits:

- almost no debugging
- simple clear designs
- no bugs released to production
- your project velocity does not decay over time
- you can deploy to production daily

"Project velocity" is the average time required to implement one feature.

This system has a lot of mindshare among our industry's leading
consultants - the people whose job is rescuing huge projects from years of
junior programmers attempting to over-design everything the way their
professors told them to.

--
Phlip


.



Relevant Pages

  • Re: OOA?
    ... I don't think they are design choices. ... "One of the most crucial steps in software engineering is to model the ... The most frequently used diagrammatic techniques are ... diagrams, Entity-Relationship Diagrams, Object Diagrams, and ...
    (comp.object)
  • Software Design Tools
    ... engineering tool for requirements management, software modeling, code ... CSC use WinA&D for structured analysis & design, multi-task design, UML ... WinA&D 4.0 packs major enhancements for modeling, reengineering, report ... Package and class diagrams show class structure. ...
    (comp.object)
  • UML, Code Generation & Reengineering for Ada
    ... engineering tool for requirements management, software modeling, code ... CSC use WinA&D for structured analysis & design, multi-task design, UML ... WinA&D 4.0 packs major enhancements for modeling, reengineering, report ... Package and class diagrams show class structure. ...
    (comp.lang.ada)
  • Re: use cases and reuse
    ... either design the objects for re-use ... their use cases, plan to add the features, and see what re-use you can now ... > have gigantic sequence diagrams. ...
    (comp.object)
  • Re: use cases and reuse
    ... in order to reuse the objects we must add operations ... either design the objects for re-use ... objects that have a lot of dependencies coming into them and introduce ... >have gigantic sequence diagrams. ...
    (comp.object)