Reliable Delivery Models for Enterprise Solutions |
Designing at Ishi is a highly iterative discipline. While design drives software construction, it also provides feedback to business modeling and use case modeling activities.
It is driven by:
Domain – Object, Process and Rules models, Use Cases and Interaction Flow Diagrams
It is guided by:
- Application Architecture – Frameworks, Protocols, Services (e.g. security)
- Principles – Layering, Design by Contract, High Cohesion, Low Coupling and Simplicity
- Best Practices – Design Patterns and Anti–Patterns
- Experience – Knowledge, project experiments and proofs of concept
Elaboration Workflows
Elaboration involves at least 2 to 3 iterations where requirements, architecture and design are nailed down. However refinement activity continues in the Construction phase. During Elaboration, users are continuously engaged in evaluation and feedback. To elaborate the system we:
- Develop the Core Architecture and deliver an Executable Architecture
- Resolve high-risk elements (e.g. prototyping)
- Define most requirements (Use Cases, Non Functional, UI)
- Develop design and test models
- Estimate the overall schedule and resources.
Executable Architecture
We produce an executable architecture (a partial implementation of the system) during Elaboration. This lays down a solid foundation for complete functional capability of the system. This gives us an opportunity to evaluate solutions to critical technical risks such as performance, throughput, capacity, reliability, etc. This becomes the baseline architecture on which the architecture is built during subsequent construction iterations. We thus build the executable architecture as an evolutionary prototype, with the idea of retaining what works, and making it part of the deliverable system.
