example use case templatesample test plan templateProject plan template
ICS 121: Implementation Concerns
- What concerns are addressed during implementation?
- Mapping from design to implementation
- Modularity and package structure
What concerns are addressed during implementation?
- Implementation is the phase where the product is actually
- Some product qualities affected by implementation
- Product code: Correctness, robustness, efficiency,
maintainability, security, testability
- Testing code: coverage, maintainability
- How do developers do their work?
- Version control and issue tracking
- Sharing documents and discussions
- Programming tools
- Code generation and reverse engineering tools
- Build automation tools
- Test automation tools
Mapping from design to implementation
- The mapping from UML to Java, C++, or C# source code is
- UML packages are Java packages
- UML classes are Java classes, UML interfaces are java interfaces
- UML attributes and operations are Java member variables and methods
- UML associations are Java member variables, or collections
- State machines can be implemented Java code
- UML dependencies can be Java "import" statements, if needed.
- There are many ways to implement the same design.
Modularity and package structure
- Packages define namespaces so that class names will not
conflict with other classes of the same name.
- Packages group logically related classes together so that they
are easier to find and understand
- Packages define a "package scope" in Java: classes can be
private to only their own package.
- Packages are units of reuse:
- Any reusable library is in a package
- Other developers reuse whole packages, not individual
- Packages are larger units of compilation and testing:
- Ideally, the dependencies between packages form a DAG
(directed acyclic graph) so that they could be compiled one at
- Ideally, each package being tested should only depend on
other code that has already been tested.
- UML can model packages and dependencies