8

I am new to UML designing and read few articles on this. bit confused where to start.. Do i need to prepare all of the UML diagrams for a web application or is some diagrams are only essential for an application. Thanks,

Gangnus
  • 24,044
  • 16
  • 90
  • 149
user3290914
  • 127
  • 1
  • 5
  • for better understanding of associations, read http://stackoverflow.com/a/21478862/715269. Have +1 for a "encyclopedic" question, too. It was interesting to answer it. – Gangnus Feb 12 '14 at 08:45

2 Answers2

11

Start from Use Case - define, who will use your application(actors) and what they will do with it(use cases). Also, join close use cases into subsystems.

Component diagram - what main parts the system has and what info they will send to each other and if some part belongs to another

Go on with State machine - define what states will have your components and on what reasons can they change they states to other ones.

Deployment diagram will define on what PCs will these components live and about the connections/protocols/interfaces between them

Plan your user interfaces - now only the set of pages and frames and navigation between them and commands on them. Do not solve placing and colors yet

Class diagrams for every component

If for for some of your classes some instances are specifically important, use object diagram.

Draw the look of the UI

Code.

Gangnus
  • 24,044
  • 16
  • 90
  • 149
1

UML is there to help you. Pick only what you need. You'll hardly ever need all diagram types. Plus, it is convenient for the reader if he needs to know only a predefined UML subset to understand your draft.

observer
  • 2,925
  • 1
  • 19
  • 38
  • So I can use use case diagram ,class diagram, component diagram, deployment ,sequence diagram.. And one more question, at what point creation of class diagram can be done. Is it done before SAD doc is prepared or after SAD doc is prepared and get the approved – user3290914 Feb 10 '14 at 23:04
  • I don't know your exact workflows and artifacts. For me it makes sense to refine the technical concept in iterations. Define interfaces and important method calls first. Only then you define important (public) attributes. It is key that you get a grip of how your proposed software decomposes into modular components and how they interact because the internal details of your classes are way easier (thus cheaper) to change later than an interface design. If you like an answer please upvote / accept it. Have fun on StackOverflow. – observer Feb 11 '14 at 10:39