Differences of Opinion
----------------------
You are correct: I do believe that the business process should be understood before design.
Business
---------
I have issues with this statement you made:
However, if the 'interactive system' is the computer instead of the Purchasing Department, then the <Business use case>s are identical to the <Design Use Cases> which is confusing. Hence, I worry about going that far.
The computer, PDA, phone, whatever, is never EVER the "system". It is merely the "boundary object" used to interface with the system. Let's take the scenario of the purchasing department:
Business Level:
The ordering manager for a branch office types up an order for office supplies. He gets the branch manager to sign it, and drops it in the office outgoing mail. When the mail is delivered to the purchasing department, the administrator reviews the purchase request and contacts their supplier. The administrator gives the supplier the order and the branch address, and fulfills the order.
There's alot of business processes there, which need to be modelled. Once the process is understood, then its time to convert it into a DESIGN level use case, with an overview of the process:
The ordering manager enters an order for office supplies into a vb form. He saves it in a qeue for his branch manager to validate. Once validated, its moved to a Purchasing Department qeue. A purchasing administrator reviews the order, and submits it to their supplier via the supplier's online ordering system.
As you can see, the business and design use cases are not identical at all. One is pure business process, the other involves tech "jargon"
(NOTE: the comment I made about Jargon was that the design level use cases would have more technical merits than the business level, and could be confusing to someone not technically inclined. Where you percieved that to mean business jargon, I'm not sure. Further, certain business terms should be documented in a repository anyway, for further understanding by the team)
I stand firm in this: You cannot build a system without understanding the business processes driving it.
Iconix and Understanding the business
-------------------------------------
Unfortunately, I see my assumptions as correct.

I would hope that your company doesn't tread off into the world of building construction. How would it look if you didn't understand exactly how the skyscraper should be built, from blue prints, to plumbing diagrams, to floor plans...and just start building with a half-done set of designs, only to change them mid way? This is how we see software development: Figure out what you're building, then build it. Does that mean that changes won't occur? Of course not. But having a detailed model makes changes much easier to incorporate into the design.
My last company performed the way you describe. They were a little extreme mind you (minimal modeling, if any at all) but basically felt that modeling all the business processes was a waste of time. Their staff continue to work excessive hours with high stress because of the lack of design artifacts. It just so happens that their software is very buggy, and field many complaints. The cost and time overflow required to dig them selves out of that is much less than what would have been required if proper diagramming would have been done.
Mining your classes and methods from your sequence diagram, in my opinion, IS backwards thinking. Iconix does teach that yes: sequence is the last thing you do. But guess what: so did my ENTIRE schooling (which was not based on Iconix and was taught by a project manager with many years experience). How can I describe a sequence if I don't know what components are part of it? How can I effectively map out my tiers if I don't even know what code I'm going to be needing?! From my experience, that is what robustness has been able to give me: A clear picture of the code I need, and where it lives.
Also, keep in mind that I don't think (and neither does Iconix teach) that Robustness is a replacement for Sequence (not sure if you think that, but your comment
I would NOT advise any of my teams to do that. I think the concept of 'Robustness' is mathematically significantly weaker than 'Sequence'. I'll start a new thread on this. lends itself to that conclusion). Rather, its a bridge TO sequence.
Advice to Angie
---------------
Instead of commenting on Gil's advice, i'll just give you my own:
A system is not a computer. A system is a set of processes that together or by itself accomplishes a task. As IT professionals, we're given the task of taking processes and making them efficient utilizing technology.
The systems we build are based on business processes. So it only seems logical that to build a correct system, we need to understand what the processes are. If a person wants to build a house, the architect draws out the blueprint, reviews teh design with the customer, and once everything is in place builds the house. This too should be our attitude in software design. Unfortunately, its not one that is widely adopted. Isn't it interesting to note that 80% of all software projects fail...maybe they started building without a blueprint?
IT is not about building what a business needs, its about building what the CUSTOMER WANTS! We are a CUSTOMER SERVICE industry. Gone are the days when we knew best, when everyone else were doing things wrong and we were the gallant knights to save them. You may like extra pickles on your burger. The McDonald's employee serving you might think thats disgusting. Doesn't matter though, they give you the burger. Same with systems development: model their processes, have the customer agree with the design, and then build it. Doesn't matter how much you disagree, THEY'RE PAYING THE CHEQUE.
But most importantly Angie, research as many methodologies as you can! There are a great deal of them out there, and as Gil has said: All are valid competing techniques and different people will have different preferences. The main thing is to find one that you believe in, that you feel suits what you need best, and roll with it. Personally, i find the Iconix methodology a great starting point. It has a limited set of diagrams (4), an easy to follow flow, and doesn't bother with some older, more archaic diagrams that can simply cause confusion. It might be a good place to start, and there are some great books on it.
Jack