Based on https://msdn.microsoft.com/en-us/library/ee658094.aspx#Interoperability
Conceptual integrity defines the consistency and coherence of the overall design. This includes the way that components or modules are designed, as well as factors such as coding style and variable naming.
Can be achived by
- Design Style Guides
- Code Standarts
- Code reviews
- Cleaning legacy
- Refactoring
- Having "body" for the new members
Maintainability is the ability of the system to undergo changes with a degree of ease. These changes could impact components, services, features, and interfaces when adding or changing the functionality, fixing errors, and meeting new business requirements.
Can be achived by
- Informing/educating team member about new technologies/libraries
- Discussing architecture decisition
- Doing architect changes globaly, do not left legacy
- Having regression tests
- Supporting documentation
Performance is an indication of the responsiveness of a system to execute any action within a given time interval. It can be measured in terms of latency or throughput. Latency is the time taken to respond to any event. Throughput is the number of events that take place within a given amount of time.
Can be achived by
- Descreasing communication with the server: caching
- Increasing network bandwidth: files minimization, caching
- Asynchronous operations
- Choosing effective types of transactions
- Choosing hi-performed libraries
Reliability is the ability of a system to continue operating in the expected way over time. Reliability is measured as the probability that a system will not fail and that it will perform its intended function for a specified time interval.
Can be achived by
- Static typed code
- Immutability
- Unit tests
- Errors notification system. Inner or outer, like New Relic
Reusability is the probability that a component will be used in other components or scenarios to add new functionality with little or no change. Reusability minimizes the duplication of components and the implementation time.
Can be achived by
- Functional code and Curring
- Code reviews
- Refactoring