UML Diagrams - Discussion [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
开发者_开发技巧 Improve this questionOn a big company, which diagrams (such as activity or class) are created before the development of a specific application?
And you guys recommend this type of practice on small projects?
Thanks
That is pretty open-ended and depends quite a bit on the type of development methodology the company is using. And, honestly, it depends on the expertise of the team, the type of system being developed, customer requirements, and many other factors as well.
In my experience, you will typically see (in a big, waterfall oriented company) behavioral (use cases, activity) , then interaction & class diagrams. Depending on the size, you may also see some high level architectural diagrams in the early phases of a project as well -- component/deployment.
Every project should identify the diagrams that will help them build the software, rather than using a cookie cutter approach. I would suggest the minimum diagramming that lets you think about the problem, document the solution for the future, and convey the problem/solution to the people building the software. What that means depends on the developer.
For example, if you have previously built 10 small applications that are very similar to the application you are about to build, you may not need much documentation at all. If you are brand new to the domain, or if you have a customer that wants specific diagrams, or your team is geographically dispersed, then you may need yet a different set of diagrams.
Sequence diagrams tend to be most helpful in understanding the behavior of your system while class diagrams tend to be most helpful in understanding the structure of your system.
I'm an ardent practitioner of GML++ myself.
It is always a good idea to do some design before beginning to code, whatever the size of the project. You may not need to create diagrams for all parts of the application but the exercise of creating these diagrams for the critical/complex parts will most probably clarify your understanding of the problem and save time over the development cycle. Class diagrams and sequence diagrams are the ones that I have seen being used most often.
Artifacts generated pretty much depend on the process followed. Agile modeling is particularly successful for small projects. These links shall help you to get some idea
http://www.agilemodeling.com/essays/modelingTechniques.htm (discusses all possible artifacts at each stage).
http://www.extremeprogramming.org/ ( good to have an understanding of extremeprogrammig, if you havent already).
精彩评论