|
Thanks. Appreciated.
Btw, your profile page is a trip.
|
|
|
|
|
I have researched the compatibility between starUML and Visio. Apparently, the standard XML for describing UML, called XMI, can be read and exported by both Visio and starUML.
StarUML can import and export XMI
http://staruml.sourceforge.net/en/about-2.php
Visio can export to it (I assume it can read it, too)
http://msdn.microsoft.com/en-us/library/aa140339.aspx
I will be testing this out, probably.
|
|
|
|
|
Is it conceptually possible and/or appropriate to create a use case, robustness and sequence diagrams for a sql stored procedure? This would allow business analyst to see clearly what the stored procedure is doing and its purpose.
|
|
|
|
|
It's possible since the user in a use case is not necessarily a person; could be a process (whatever calls the SP).
If it helps the BA then why not do it? In my experience BAs need all the help they can get.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
|
|
|
|
|
|
When designing a Robotics system with an interface needed to a database, without creating Action Diagrams and Sequence diagrams which showed the everyone concerned the planned interaction between User, Robot and Data I don't think the project would have suceeded. So sounds good to me.
|
|
|
|
|
Thanks. Like everything database oriented, it typically isn't treated the same as developing with oop languages. I appreciate your input.
|
|
|
|
|
hii...
i would like to know more about software development in 3-t architecture and its pros and cons.
|
|
|
|
|
|
Hi,
Are there any standards for programming a console application based on menus?
Please do not answer just "well, use switch.."
I mean, a big console application.. where you need to administrate something, adding, editing, deleting and listing registries, and submenus within menus... etc
I can easily model the libraries used by the console app, but it's kind of difficult to model the console application itself...
Help please? Tips?
|
|
|
|
|
Hello,
I am looking for a good book which explains how to identify objects from your requirements,how to map those objects into classes(Class diagrams) and then how to finally apply these class diagrams to create business methods using C#.
I am not looking for design patterns. I am purely looking for OOAD.
Please suggest me with good book.
Regards,
Pavas
|
|
|
|
|
Hi,
I need to submit project plan for certification, my project is elearning. Can anybody provide me some sample documents of project plan.
some of the topic to be covered are...
INPUTS
PROJECT PLAN DETAILS
Reuse/Customization Plan:
Project Schedule
Size, Effort, Schedule and Defect estimates
Deliverables & Milestones
Project Monitoring
Risk Management
Method for risk monitoring
Tailoring Notes
QUALITY PLANNING
Audits
Quality Control
Conventions used in the project
Configuration structure
Access Rights in Configuration Management Tool
Training effectiveness measurement
Thankyou
YPKI
|
|
|
|
|
Does anyone know of good books on the subject of managing complex (i.e. frakking large) software projects? Especially touching on good design principals for large projects, best testing practice and estimating the impact of changes etc ?
An ideal candidate would be one covering real life situations that wouldn't put my limited attention span to sleep in 5 minutes. Not asking much .
10110011001111101010101000001000001101001010001010100000100000101000001000111100010110001011001011
|
|
|
|
|
I have had this book [^] since it came out. I recommend it, which does not guarantee it will work for you but it's all I can do.
|
|
|
|
|
Manage It! by Johanna Rothman, published by Pragmatic Bookshelf, 2007
ISBN-10: 0-9787392-4-8
ISBN-13: 978-0-9787392-4-9
I think it's a good take on PM and covers all the bases.
Regards
David R
|
|
|
|
|
Hello,
I have a situation where I have a cycle:
Group <>---- Contact
..........-----<>
I have the class Contact which has name (eg. John), addr, etc.
And the class Group which has a name (eg. Friends) and a list of contacts List<contact>
The thing is that I want the Contact to know what groups contain him
For example lets say I have the groups Family, Friends, Job and they all contain John (and others)
I want that these groups contain John and that John knows he is member of these groups.
I want to avoid the cycle,
Should I use an Interface? or maybe other solution?
modified on Wednesday, April 15, 2009 6:14 PM
|
|
|
|
|
|
I don't see the problem.
A Group holds zero, one or more Contacts.
and each Contact wants to hold a list of all the Groups it belongs to.
So a Group either *is* a list, or *contains* a list.
and a Contact contains a list.
IIRC that is called aggregation: putting information (list of Groups) in members of the class (Contact).
Refinement: I didn't provide type information for the lists; it could be that:
a Group either *is* a list, or *contains* a list of Contacts.
and a Contact contains a list of Groups.
or you could define a common ancestor for Group and Contact, and use that type as the type held in both lists (Inheritance).
Conclusion: I don't need interfaces to "break" the cycle, there wasn't really a cycle if you ask me.
If you insist on having an interface, how about IListable; both Group and Contact implement IListable (not sure what the functionality would be though); and both lists could contain IListables.
|
|
|
|
|
Hi, thanks for replying!..
"there wasn't really a cycle if you ask me."
The cycle is between Contact and Group.. We've been told in University that we have to avoid these cycles because of dependency and coupling (which I don't see but was hoping that someone here could tell me)..
An example where I can see the solution more clearly is for example a Car that contains an Engine, and the Engine must notify the Car that contains him something..
One solution, the one I have to avoid is: Car contains Engine, Engine contains Car
In that case one would put an interface ISomething (Car : ISomething) and the Engine instead of having a Car would have an ISomething
The difference might be that the Engine must do something on the Car (turn it on for example). And here, the contact doesnt have to do anything on the group and viceversa.
Am i right? Should i go with the cycle anyway?
|
|
|
|
|
In the car-engine situation, I would do:
car contains an engine, and is fully aware of its functionality, not its internals of course.
engine knows nothing about cars, but holds one or more public events (.NET speak), where an event is a list of delegates, a delegate basically is a function pointer or a callback.
So the car tells the engine it is interested in some events;
the car engine signals those occurrences through the appropriate event, without knowing anything about the subscriber(s); all it knows is the syntax of the delegate (number and type of parameters, there normally is no return value).
Again no interface is involved; although you could achieve the same with an interface (your ISomething, I would say IAmInterestedInSomeEngineStuff). The advantage of events is they can hold and serve multiple listeners without the engine even being aware of that.
modified on Thursday, April 16, 2009 11:06 PM
|
|
|
|
|
In my opinion, also if you ask your profs, you should avoid cyclic dependencies between assemblies but not between classes. You should try to minimize coupling but you can not avoid it altogether. Afterall, the classes need to communicate with each other to accomplish whatever needs to be accomplished.
You can create an interface and you can always do so but remember you still have a cyclic dependency but it is less direct. Now you are tied to something which implements the interface.
If you never want to allow contact creation without group, then do not allow its creation unless from within the group: Contact c = aGroup.NewContact() and Group will call contact's constructor.
Cyclic dependency is bad between assemblies because of compilation race.
CodingYoshi
Visual Basic is for basic people, C# is for sharp people. Farid Tarin '07
|
|
|
|
|
Interesting topic. It is very frustrating when interfaces express very complicated dependencies between objects. Cyclic dependencies may result in endless loops and weird state control.
An interface specifies a unidirectional 'control panel': You can use it to push and pull, but you have the initiative and don't want be interrupted while using the interface. However, if cycles exist between interfaces (or between objects), you may be interrupted each time you try to operate a certain object via an interface. If this happens a lot, you have spaghetti code.
Our world is full of interconnected objects that control each others, so what to do about these when modeling them in software? A very simple example is a Nut and a Bolt. Sometimes the Nut turns the Bolt and sometimes the Bolt turns the Nut.
Lets say an interface for both Nut and Bolt is ITurnable and it contains a turn(float angle) method. No interface cycle exists.
Now, if Bolt is turned, it decides whether an attached Nut should be turned or not.
Likewise, if Nut is turned, it decides whether an inserted Bolt should be turned or not.
These decisions are implementation specific, and it may be that Nut and Bolt call each other recursively, but the ITurnable interface is clear about direction of control.
Yes, I know. The Bolt and Nut need to be connected, if they should know something about each other e.g. friction, or if they should be able to turn each other; how could that be expressed with interfaces?
A) Interface for a made up object. You can make a fictional interface that ties a Nut and a Bolt e.g. an IConnection implemented by a 3rd class e.g. Connection . If a Nut actively unscrews itself, it will direct control to the IConnection implementor that is responsible for letting the Bolt know.
B) Interface for existing objects. You can implement an attach/detach interface for Nut and Bolt e.g. IConnector implemented in both classes. This interface could just have an attach(IConnector connector) and a detach(IConnector connector) method. Again the direction of control is clear, and it is specified via IConnector that Nut and Bolt can be interconnected.
C) Interfaces for existing objects. You can implement attach/detach in interfaces of Nut and Bolt e.g. INut and IBolt , respectively. INut could have an attach(IBolt bolt) and a detach(IBolt bolt) method, and IBolt likewise, but with INut arguments. Again the direction of control is clear, and it is explicitly specified that Nut and Bolt can be interconnected.
In my opinion, all of the above solutions could be used, and taste and priorities determine which one you would choose. Solutions B) smells of a cycle, but really just is an interdependency. I guess solution C) contains a cycle, but what to do, if you really want to avoid anything weird (very general) being connected to your Nut or Bolt?
What do you think? What does your teacher say about this?
|
|
|
|
|
I have an application that does some multiplication and division on numbers provided by clients.
After having gone through all the possible permutation and combinations.
I have a result set of about 2.5million. there number is unique based on the calculations we have to do. The 2.5million is summarised into a different unique groups totalling to 6000.
I can think of 2 ways to do this only and would like any suggetions that I have missed out in my thinking.
First is the easy way. Put the 2.5 million in a database with the coresponding group and let the database handle the optimization with the primary key. The primary key will not help since the 2.5million are unique numbers. which leads to the same thing as being dumb and use binary search from the application and store the result set in a text file and avoid the network traffic.
The second option is to use 64bits in binary and create a flag for every scenerio and try and work my way from there. Never done this before will be a good challenge however it will frustrating tried to look for some good articles on binary and was unsucessful. If you have any good articles. I would love to read up on the binary bitwise logic and algorithm.
I am having a difficult time making a decision looking for someone to shed some light.
Thanks to everyone who responds in advance.
|
|
|
|
|
Hi,
I have no idea what your app is about, however if I understood you correctly you have two phases right now, one creating millions of numbers somehow, and the second reducing that to a few thousand numbers. I would be inclined to not split that in two phases at all, avoid all storage and searching, instead calculate the numbers if and when you need them. Of course, if those calculations are really expensive then that would not be a good idea.
Anyhow, when considering two alternatives, one you fully grasp and one you are not familiar with, I would be pragmatic and go for the former unless there are good reasons to expect big advantages from the latter.
You might get more specific replies if you provide more context and more details.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
I should elaborate more I guess.
Clients have a variable number of choices to decide what they wish to do and what there best scenerio is.
Lets say they have 50 numbers to chose from and depending on their choices there is a certain path that needs to be taken to do the calculations. I have tried all the possible combinations and permutations on this. I have come up with a static 2.5million unique numbers. Those 2.5 million numbers are grouped into 6000 and from there depending on the group the number has fallen they get their best choice for their buck.
Change the 50 to 7 to simplify -> from 7 select 5-> 21 possible ways the result of 21 from 21 pick the best. My 21 is 2.5million different combinations. Instead of doing the calculations everytime, I was thinking of creating the final 2.5million records with all possible combinations.
Initially never thought the number would be this high. The idea however was as soon as the choices were made go get the static result back and display it as opposed to doing the calculations over and over again everytime. However once the number got to 2.5 million the idea went to the shelf as it would be crazy to create a lookup function in the app with that many records.Even though we are currently doing them as soon as we get to the office in the morning.
However not willing to give up, since the calculations are done everyday. It would be worth the effort to automate it.
Hence I could only think of the 2 ways.
Hope I have clarified further.
|
|
|
|
|