What is UML?
a) Was released in 1997.
b) A method to diagram software design.
c) Designed by a consortium of the best minds in object oriented analysis and
So in all “The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.”
Goals of UML
a) Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
b) Provide extensibility and specialization mechanisms to extend the core concepts.
c) Be independent of particular programming languages and development processes.
d) Provide a formal basis for understanding the modeling language.
e) Encourage the growth of the OO tools market.
f) Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Benefits of UML
a) Your software system is professionally designed and documented before it is coded. You will know exactly what you are getting, in advance.
b) Since system design comes first, reusable code is easily spotted and coded with the highest efficiency. You will have lower development costs
c) Logic ‘holes’ can be spotted in the design drawings. Your software will behave as you expect it to. There are fewer surprises.
d) The overall system design will dictate the way the software is developed. The right decisions are made before you are married to poorly written code. Again, your overall costs will be less.
e) UML lets us see the big picture. We can develop more memory and processor efficient systems.
f) When we come back to make modifications to your system, it is much easier to work on a system that has UML documentation. Much less ‘relearning’ takes place. Your system maintenance costs will be lower.
g) If you should find the need to work with another developer, the UML diagrams will allow them to get up to speed quickly in your custom system. Think of it as a schematic to a radio. How could a tech fix it without it?
h) If we need to communicate with outside contractors or even your own programmers, it is much more efficient.
UML defines the notation and semantics for the following domains:
a) The User Interaction or Use Case Model – describes the boundary and interaction between the system and users. Corresponds in some respects to a requirements model.
b) The Interaction or Communication Model – describes how objects in the system will interact with each other to get work done.
c) The State or Dynamic Model - State charts describe the states or conditions that classes assume over time. Activity graphs describe the workflows the system will implement.
d) The Logical or Class Model – describes the classes and objects that will make up the system.
e) The Physical Component Model – describes the software (and sometimes hardware components) that make up the system.
f) The Physical Deployment Model – describes the physical architecture and the deployment of components on that hardware architecture.