System Design Pointer
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
enterprise architect. Excellent modeling tool[^]. 30 day free trail, not very expensive.
"People who bite the hand that feeds them usually lick the boot that kicks them." Eric Hoffer "The failure mode of 'clever' is 'asshole'" John Scalzi "Only buzzards feed on their friends" Patrick Dorinson
-
Lego. :)
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me
D@mn! Beat me to it! 5!
m.bergman
For Bruce Schneier, quanta only have one state : afraid.
To succeed in the world it is not enough to be stupid, you must also be well-mannered. -- Voltaire
Honesty is the best policy, but insanity is a better defense. -- Steve Landesberg
-
enterprise architect. Excellent modeling tool[^]. 30 day free trail, not very expensive.
"People who bite the hand that feeds them usually lick the boot that kicks them." Eric Hoffer "The failure mode of 'clever' is 'asshole'" John Scalzi "Only buzzards feed on their friends" Patrick Dorinson
Which edition do you recommend?
The difficult we do right away... ...the impossible takes slightly longer.
-
Which edition do you recommend?
The difficult we do right away... ...the impossible takes slightly longer.
My employer (large multi-national) has standardized on Corporate, but Professional is likely more than adequate. It is a pretty complete tool, handling everything from requirements to detailed design...
"People who bite the hand that feeds them usually lick the boot that kicks them." Eric Hoffer "The failure mode of 'clever' is 'asshole'" John Scalzi "Only buzzards feed on their friends" Patrick Dorinson
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
You might consider also posting this question in the "Design and Architecture" Forum here on CP, under the "Product LifeCycle" section of the Fora. I'm glad to see you got at least one serious response, and comments on the response, to your question ! best, Bill
"The first principle is that you must not fool yourself, and you are the easiest person to fool." Richard Feynman
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
Pencil or paper, or just my brain.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
mixture of: - pen && paper - Whiteboard (and occasionally surrounding wall, but then even as a child i had trouble colouring within the lines) - brain (entirely optional) - trial && error (mainly the latter) - dreams (true story, once went to bed with a design problem on my mind, woke up to find the answer scribbled on a piece of paper along with 2 other problems i needed to solve and hadn't previously thought of!)
Pedis ex oris Quidquid latine dictum sit, altum sonatur
-
mixture of: - pen && paper - Whiteboard (and occasionally surrounding wall, but then even as a child i had trouble colouring within the lines) - brain (entirely optional) - trial && error (mainly the latter) - dreams (true story, once went to bed with a design problem on my mind, woke up to find the answer scribbled on a piece of paper along with 2 other problems i needed to solve and hadn't previously thought of!)
Pedis ex oris Quidquid latine dictum sit, altum sonatur
GParkings wrote:
- dreams (true story, once went to bed with a design problem on my mind, woke up to find the answer scribbled on a piece of paper along with 2 other problems i needed to solve and hadn't previously thought of!)
I have a feeling if I have a dream about this project, it will be a nightmare.
Brad Deja Moo - When you feel like you've heard the same bull before.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
Mindjet Mindmanager 8 for the initial database and class design. Once i have the initial overall structure broken down into projects/folders in Visual Studio and i have started coding, i just use the map to keep track of database changes and class changes are made in my head, but i sometime still stick them back into a map it they get too much. :wtf:
-
Which edition do you recommend?
The difficult we do right away... ...the impossible takes slightly longer.
I am using the Professional version, and it serves me well. It's very good for personal use, or, more generally, if you are the only one who uses it to design anything. For using it in a team, where several people actively design UML diagrams of any kind, you might prefer the Corporate edition. Note that others can always use the free 'Lite' version to view what you design, no matter what version you use. That's also quite handy if you want to share some diagrams with people outside your team. All that said and done, I've found that my primary uses are not designing class interactions, but (a) generating an initial framework of classes for any new code I write, or (b) analyzing legacy code by reverse-enegeneering existing code into class diagrams. I ususally don't bother with interactions, unless tehy are non-trivial - and in that case I usually start on paper, and only resort to EA when I realize paper is not [su|e]fficient.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
Mostly P&P, but when it gets too complicated I may resort to sequence diagrams using Enterprise Architect (link already provided above). (actually I start with class diagrams, and only bother with interaction if I'm dubious about the details: figuring out the interaction can greatly help to shape the class interface) I don't see how VS or Mind Mapping would be any help, as they're tools meant for totally different purposes. It's not like you normally use either a swiss army knife or chop sticks for eating chicken broth. Both may be helpful for dealing with the tangible bits, but for the most part you may just as well not use them at all.
-
Mostly P&P, but when it gets too complicated I may resort to sequence diagrams using Enterprise Architect (link already provided above). (actually I start with class diagrams, and only bother with interaction if I'm dubious about the details: figuring out the interaction can greatly help to shape the class interface) I don't see how VS or Mind Mapping would be any help, as they're tools meant for totally different purposes. It's not like you normally use either a swiss army knife or chop sticks for eating chicken broth. Both may be helpful for dealing with the tangible bits, but for the most part you may just as well not use them at all.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
I use paper/pencil, and usually away from the computer. However, I don't go farther than a few objects at a time unless I have a really clear idea where things are. That said, if I do find I'm making a large model, I'll open up a word processor and do a multi-level bulleted list. That way, I can add things as I need. Where an outer item points back into the model later (such as a sport team under Rugby pointing back into a location under countries/cities), I'll put that in parentheses afterwards. I'll do this in cycles until the entire model is done.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
My answer as to what to use to design the class interactions would be "all of the above." A more specific and, perhaps, more helpful answer would be to classify your tools on a scale of "informal and free-form" verses "formal and rigid" and pick your tools as you design your software system moving from the left hand of the scale (informal) to the right hand of the scale (formal.) For example, if you have no clue where to begin and you need to overcome the static friction in the design process (that is, "get the ball moving") using pen and paper or, perhaps better, SimpleDiagrams. In this way, your tool allows you the maximum amount of freedom in designing the system. As you overcome the static friction in the design process, though, you will want to use tools that enforce more of a rigid, orderly design process (UML, ERD, flow charts, et. al.). There are several good tools out there that allow you to do this. Dia is one such tool, and is Open Source. Microsoft's Visio tool is another such tool. I've herd lots of good things about VS's UML diagramming tools, but I haven't used them myself, so I can't stump for them. Hope this helps!
Robert Miesen
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
-
What tool do you use to design your class interaction? 1. Pencil and paper 2. Visual Studio 3. Mind Mapping program 4. or something else Most of the things I have worked on before have been small projects or ones that pretty much had just one solution. I have to rewrite our main product. It is suppose to be all inclusive, containing all of the tools that live outside the product now. I'm upgrading it from VB6. There is a lot of inline functionality that I want to break into reusable classes and make the project more modular to simplify upgrading in the future. Everyone refers to it as the house of cards because any changes usually make the whole crash. I'm just stuck as to where to start with designing the class layout and interaction. I have toyed with Visual Studio and XMind for roughing out the classes. Both have their advantages and disadvantages. Where do you start?
Brad Deja Moo - When you feel like you've heard the same bull before.
You may wish to consider a more agile approach... I would recommend reading "applying uml and patterns" by Craig Larman. The answer to your question then becomes Whiteboard.
-
VS2010 ultimate comes with UML diagram editors
Pedis ex oris Quidquid latine dictum sit, altum sonatur
Ah, forgot about that. I dimly remember seeing the feature in the trial version, but I never bothered to even look at it because I already had EA. ;)
-
mixture of: - pen && paper - Whiteboard (and occasionally surrounding wall, but then even as a child i had trouble colouring within the lines) - brain (entirely optional) - trial && error (mainly the latter) - dreams (true story, once went to bed with a design problem on my mind, woke up to find the answer scribbled on a piece of paper along with 2 other problems i needed to solve and hadn't previously thought of!)
Pedis ex oris Quidquid latine dictum sit, altum sonatur
How about a keyboard and start typing furiously?