dgk/django-business-logic

View on GitHub
docs/static/uml/ExecutionEnvironment.svg

Summary

Maintainability
Test Coverage
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="817.33056640625" height="494"><defs/><g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="816" y="422" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="809" y="415" width="254.33056640625" height="77"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 415 L 1063.33056640625 415 L 1063.33056640625 492 L 809 492 L 809 415 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 440 L 1063.33056640625 440" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="885.948974609375" y="434.5">ProgramInterface</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="457.5">+title: String {unique}</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="472.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="487.5">+arguments: ProgramArgument[1..*]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="816" y="302" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="809" y="295" width="254.33056640625" height="77"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 295 L 1063.33056640625 295 L 1063.33056640625 372 L 809 372 L 809 295 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 320 L 1063.33056640625 320" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="911.2412109375" y="314.5">Program</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="337.5">+title</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="352.5">+code</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="367.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="816" y="134" width="254.33056640625" height="130" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="809" y="127" width="254.33056640625" height="130"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 127 L 1063.33056640625 127 L 1063.33056640625 257 L 809 257 L 809 127 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 152 L 1063.33056640625 152" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 809 235 L 1063.33056640625 235" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="889.560791015625" y="146.5">ProgramVersion</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="169.5">+title: String</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="184.5">+description: String</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="199.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="214.5">+entry_point: Node</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="229.5">+is_default: Boolean = false</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="814" y="252.5">+execute()</text></g></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 936 373 L 936 414" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#000000" stroke="none" d="M 931.790482243984 403.83732514237585 L 936 414 L 940.209517756016 403.83732514237585 L 936 392"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 931.790482243984 403.83732514237585 L 936 414 L 940.209517756016 403.83732514237585 L 936 392 L 931.790482243984 403.83732514237585" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 936 258 L 936 294" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#000000" stroke="none" d="M 931.790482243984 283.83732514237585 L 936 294 L 940.209517756016 283.83732514237585 L 936 272"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 931.790482243984 283.83732514237585 L 936 294 L 940.209517756016 283.83732514237585 L 936 272 L 931.790482243984 283.83732514237585" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="273" y="246" width="408.60400390625" height="152" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="266" y="239" width="408.60400390625" height="152"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 239 L 674.60400390625 239 L 674.60400390625 391 L 266 391 L 266 239 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 264 L 674.60400390625 264" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="405.26708984375" y="258.5">ExecutionEnvironment</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="281.5">+title: String {unique}</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="296.5">+description: String</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="311.5">+libraries: FunctionLibrary[0..*]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="326.5">+debug: Boolean = false</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="341.5">+log: Boolean = false</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="356.5">+cache: Boolean = true</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="371.5">+exception_handling_policy: ExceptionHandlingPolicy = INTERRUPT</text></g></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 808 415 L 676 376" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 686.9389357614178 374.8425526329147 L 676 376 L 684.5534345379951 382.91655677373006 L 697.0983895772958 382.2336151023828"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 686.9389357614178 374.8425526329147 L 676 376 L 684.5534345379951 382.91655677373006 L 697.0983895772958 382.2336151023828 L 686.9389357614178 374.8425526329147" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 808 328 L 676 323" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 686.3147291402411 319.17817285013297 L 676 323 L 685.9960548153608 327.59117502697313 L 697.9842341353674 323.8327361414912"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 686.3147291402411 319.17817285013297 L 676 323 L 685.9960548153608 327.59117502697313 L 697.9842341353674 323.8327361414912 L 686.3147291402411 319.17817285013297" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="273" y="470" width="408.60400390625" height="90" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="266" y="463" width="408.60400390625" height="90"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 463 L 674.60400390625 463 L 674.60400390625 553 L 266 553 L 266 463 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 501 L 674.60400390625 501" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="426.93798828125" y="480.5">«enumeration»</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="398.7607421875" y="495.5">ExceptionHandlingPolicy</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="518.5">IGNORE</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="533.5">INTERRUPT</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="548.5">RAISE</text></g></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 470 462 L 470 392" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 474.209517756016 402.16267485762415 L 470 392 L 465.790482243984 402.16267485762415 L 470 414"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 474.209517756016 402.16267485762415 L 470 392 L 465.790482243984 402.16267485762415 L 470 414 L 474.209517756016 402.16267485762415" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="478.726806640625" y="446.5">1</text></g></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 808 226 L 676 261" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 684.7443484838544 254.32644250845826 L 676 261 L 686.9021058668992 262.4642703530843 L 697.2651689526563 255.36150823225023"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 684.7443484838544 254.32644250845826 L 676 261 L 686.9021058668992 262.4642703530843 L 697.2651689526563 255.36150823225023 L 684.7443484838544 254.32644250845826" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="273" y="86" width="408.60400390625" height="87" opacity="0.2"/></g><g transform="translate(-256,-69) scale(1,1)"><rect fill="#ffffff" stroke="none" x="266" y="79" width="408.60400390625" height="87"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 79 L 674.60400390625 79 L 674.60400390625 166 L 266 166 L 266 79 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 266 104 L 674.60400390625 104" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="425.50341796875" y="98.5">FunctionLibrary</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="121.5">+title: String {unique}</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="271" y="136.5">+functions: FunctionDefinition[0..*]</text></g></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 470 167 L 470 238" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 465.790482243984 227.83732514237585 L 470 238 L 474.209517756016 227.83732514237585 L 470 216"/></g><g transform="translate(-256,-69) scale(1,1)"><path fill="none" stroke="#000000" d="M 465.790482243984 227.83732514237585 L 470 238 L 474.209517756016 227.83732514237585 L 470 216 L 465.790482243984 227.83732514237585" stroke-miterlimit="10"/></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="447.5" y="194.5">0..*</text></g></g><g transform="translate(-256,-69) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="447.5" y="222.5">0..*</text></g></g></g></svg>