UML popularity over the years is declining..for reasons like not able to capture non-functional requirements and has ambiguous in interpretation.
What do you think?
UML is like construction plan for a house but in software deciding on construction plan is quite quick decision and much detail not required in software compared with construction industry. Like in Agile TDD Test Driven design is chosen.When and where to adjust UML in test driven design TDD cycles.TDD cycle is test, code, refactor, (repeat) and then ship. Trace-ability matrix are helping use cases to capture level of User Interface dependency.Class diagrams are going into even database design.Under UML2.0 specifications Composite structure diagram shows internal structure of class and collaboration that this structure makes possible.UML2.0 gives more options for sequence diagram to show process interact with one another which is going to be critical for emerging parallel computing or parallelism market….with cloud computing and hadoop based systems taking world by storm.
Agile system recommends work on both static and dynamic model at same time.
4+1 view describe four views:
Use case view sits on top of all these views:Outside world perspective of system.
Logical View:Shows system and its interaction using classes and Objects.
Process View:Shows system processes mostly shown by activity diagram.
Physical View:Maps software to hardware shown by deployment diagrams.
Development View: Shows systems module or components e.g packages and class libraries. represented by Component and package diagram.In multiple device world , and cloud computing its becoming even more important…for things like ubiquitous computing to capture interactions between software deployed over range of platform.
In UML 2.0 Activity diagram changed from being state-machine semantics to now being based on Petri- net semantics.Petri net is like mathematical modelling language for description of distributed systems. distributed tokens run at multiple PLACES and TRANSITION from input ARC to output ARC. Interaction diagram can contain both sequence and communication diagram as it show time, interaction and communication between different elements of software and logic.
OOAD design principle Open-Close principle say:(classes , models, functions should be open for extension but closed fro modifications).