I am looking for a way to technically describe the behavior of the internal components of the implemented system. I need to be able to describe all the components and the behavior between them:

  1. Internal component structure
  2. Public interface available for other components
  3. Principles of internal behavior based on business rules
  4. Details of calculations, formulas of internal processes

I have tried Use Case scenarios but from my point of view is are more suitable for describing the system and user interaction without technical details. Which doesn't suit me if I need to have a specific technical description for programmers.


Indeed, use-cases are meant for presenting the system in its environment, with information and not its internal structure.

For the internals of the system, you may use:

  • component diagrams for the internal component structure
  • composite structure diagram to show the link between external interface and internal structure
  • the relevant behavior diagrams for the interaction between the components (e.g. sequence diagram) or even the activity of the overall system.
  • better not use the UML for the calculations and formulas. In code we trust. But if you really want, you can consider expressing constraints in OCL

You can also apply the method recursively, zooming on a component, and describing it in its (internal) environment with a use-case diagram and all the other diagrams to show its internals.

Important remark: this answer addresses your question without challenging it. But what is the purpose of your documentation: is it for specifying all the system up-front (wishful thinking?) or is it for documenting an existing system (in which case it would make sense not to get lost in details and provide only the overview and the information required that are difficult to obtain when looking at the code)?

  • It will used to describe system in analysis phase. Mentioned UML diagrams are useful for me, I'll use it. Could you more descriptive in question regarding details of formulas and calculations? Constraints are useable but I need to specify more complex formulas. – Artegon Mar 14 at 17:17
  • @Artegon UML is not a programming language but a modelling language. Nothing is foreseen for complex formulas. If it’s very complex, you can consider activity diagram to show in an algorithmic way how the components of the formula are computed and in which order. Simpler formulas probably correspond to some invariants of the domain (e.g “the surface is pi*r2” (sorry, it’s pi day, I had to mention pi somewhere)) so you can mention them as constraint attached to the method where it’s used. Constraints can be expressed in natural language, so certainly as well math language, or in formal OCL. – Christophe Mar 14 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.