The team at ObjetX has the experience to design or help you design an architecture that will meet your specific requirements.
We believe that the ObjetX Application Framework provides a strong foundation for any Microsoft .Net based system; the needs of your application may go beyond the structure of a standard application.
Two different approaches to system design may both meet functional requirements - the right architecture can make the difference between a system that works well and one that fails miserably.
One of the key challenges to producing high-quality software architecture is identifying and understanding the software’s architecturally significant requirements.
These requirements are the ones that have the most far-reaching effect on the architecture.
Determining which requirements have architectural significance is currently a matter of experience and judgment.
For any particular system, architecturally significant requirements must be coupled to the business and mission goals for the system.
If functionality is the only concern in designing an architecture, just about any structure will do.
Architecturally significant requirements often arise from
- Quality attributes. Security, performance, reliability, modifiability, and so forth are all quality attributes that might affect the structure of the system. Each quality attribute has a collection of structural techniques (i.e., architectural tactics) that are used to achieve it.
- Volume of functionality. Any particular function will not have an impact on structure, but large collections of similar functionality will. One example of a structural impact is breaking up the functionality so it can be implemented in a timely fashion. Another example is identifying commonality within the functionality to reduce implementation and maintenance time.
- Architecting for a family of related systems. When requirements are being gathered for a collection of similar systems such as in a software product line, the commonalities and variations in those systems may be architecturally significant.
- Choice of technologies. There may be a requirement to use a particular technology for a system, such as .NET or J2EE (Java 2 Enterprise Edition). These requirements may be architecturally significant, since many other decisions will be constrained by the use of particular technologies.
- Integration characteristics. The need to tie disparate technologies together into a seamless system will have a significant impact on the structure of the solution.
- Deployment and operations. Requirements that describe an anticipated deployment strategy and how the system will be operated may be architecturally significant, since structural entities may be required to support deployment or operational considerations.