Software architecture

Tags: KC IT

Architecture

Software architecture is reputed to be a complex matter. Many failures in software projects are admittedly due to poor architecture (which in turn occurs for a variety of reasons). This is because it is a relatively abstract aspect of software development and very much depends on the specific software under development.

In a software project, many situations can arise, maybe integrating with existing software, maybe geographically distributed systems, maybe high performance requirements and etc. In most cases it will be a combination of one or all of these.

The entire software development process attempts to address this situation, particularly in the analysis and design phases.

Here is an overview of a few of the most valuable best practices in this area (some of which are developed in more detailed KCards):

The 4 generic axis

  • Technical and functional architecture (projection)
  • Abstraction level reduction
  • Dependency minimisation