As complexity in a system grows, so does the need for sound principles in software engineering and service oriented architecture. The only chance for a complex, multi-tiered application to succeed is through management of strict standards over how each component within that application is designed, built, maintained, documented and tested.
At BengalCore, we start with an execution plan. Customer input, architectural diagrams, use case definitions, UI prototypes, feedback loops, detailed designs and process control all flow one into the next. Two key results of this plan are:
- the customer stays involved and knows where the development is at all times
- the actual coding becomes nearly trivial by the time the process and technology is sufficiently understood
High level systems diagrams give a birds-eye view of the entire application, and gives a good overview of the number of subsystems at play.
Layer diagrams group components by functionality, and define calling relationships. The layer diagram is the basis for future diagram such as use case completeness.
Interaction diagrams define strict calling relationships and build order. They are an early indicator of complexity in the system and inter-dependencies.