Пример извлек из документации Python:
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
If the result is small enough to fit in an int, return an int.
Else return a long.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> factorial(-1)
Traceback (most recent call last):
...
ValueError: n must be >= 0
Factorials of floats are OK, but the float must be an exact integer:
"""
import math
if not n >= 0:
raise ValueError("n must be >= 0")
if math.floor(n) != n:
raise ValueError("n must be exact integer")
if n+1 == n: # catch a value like 1e300
raise OverflowError("n too large")
result = 1
factor = 2
while factor <= n:
result *= factor
factor += 1
return result
def _test():
import doctest
doctest.testmod()
if __name__ == "__main__":
_test()
Я использовал как Poseidon UML , так и Enterprise Architect и должен сказать, что предпочитаю Poseidon, но не был полностью удовлетворен ни одним из них.
Раньше я использовал Enterprise Architect - платно, но не слишком дорого, и он позволяет создавать красивые диаграммы.
Поскольку во всех этих инструментах отсутствует функция проверки, их результатом являются просто рисунки, и лучший инструмент для создания красивых рисунков - лист бумаги и ручка. После этого вы можете сканировать свои диаграммы и вставлять их в вики вашей команды.
Я использовал Poseidon UML Community Edition , он не зависит от платформы и позволяет создавать четкие и понятные диаграммы. Скриншоты есть здесь .
Некоторое время назад я использовал DIA - бесплатный и платформенно-независимый. Это было хорошо. Сейчас я использую Enterprise Architect , но это не бесплатно.
BOUML является бесплатным, может реконструировать Java и C ++