Skip to content
Snippets Groups Projects
Commit 0a7abac3 authored by Dominik Zobel's avatar Dominik Zobel Committed by Tobias Koelling
Browse files

Add content to complexity in software design part

parent c48188ae
No related branches found
No related tags found
1 merge request!24complexity lecture
......@@ -137,20 +137,49 @@ These can come with **very** different complexity ratings.
For certain tasks (e.g. sorting, neighbors, averaging, or really anything...), think about what complexity class is expected.
If your program behaves differently, **change it** or **seek advice** from colleagues.
# Complexity in software design
## interdependence of components
possibly also amount of coordination and communication needed
# Complexity in Software Design
## ways to counteract
::::::::{.columns}
:::{.column width=50% .smaller}
_"Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test"_
Ray Ozzie, former Microsoft CTO
:::
::::::::
## Interdependence of Components
Here complexity refers to
- amount of interactions between objects
- resulting amount of coordination and communication needed
Complexity is not about complicated designs
(although simple designs are usually a good idea)
## Typical Ways to Counteract
- Use abstraction when suitable
- Encapsulate different concepts in different objects/classes/...
- Abstraction
- Encapsulation
## Maintainability
_Also focus on maintainability. This lecture might or might not be the right place, but it should be useful somewhere_
**If code works, why put more effort in it to reduce complexity and make it more approachable?**
- Your future self and others can understand faster,
- Changing and adding components should be easy and only require local adjustments,
- Bugs are easier to find when the complecity is low (and components individually testable),
- This also makes testing easier and more likely to test all code paths (high code coverage)
# Resources
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment