官术网_书友最值得收藏!

Importance of software architecture

So far, we have discussed the fundamental principles of software architecture, and also seen some of its characteristics. These sections, of course, assumed that software architecture is important, and is a critical step of the software development process.

It is time to play devil's advocate, and look back at software architecture and ask some existential questions about it as follows:

  • Why software architecture?
  • Why is software architecture important?
  • Why not build a system without a formal software architecture?

Let us take a look at the critical insights that software architecture provides, which would otherwise be missing from an informal software development process. We are only focusing on the technical or developmental aspects of the system in the following table:

There are a number of other aspects which are related to the business context of a system, into which architecture provides valuable insights. However, since this is a book mostly on the technical aspects of software architecture, we have limited our discussion to the ones given in the preceding table.

Now, let us take on the second question:

Why not build a system without a formal software architecture?

If you've been following the arguments so far thoroughly, it is not very difficult to see the answer for it. It can, however, be summarized in the following few statements:

  • Every system has an architecture, whether it is documented or not
  • Documenting an architecture makes it formal, allowing it to be shared among stakeholders, making change management and iterative development possible
  • All the other benefits and characteristics of software architecture are ready to be taken advantage of when you have a formal architecture defined and documented
  • You may be still able to work and build a functional system without a formal architecture, but it would not produce a system which is extensible and modifiable, and would most likely produce a system with a set of quality attributes quite far away from the original requirements
主站蜘蛛池模板: 修文县| 台北县| 怀集县| 连平县| 酒泉市| 辉南县| 舞钢市| 高碑店市| 沂源县| 石渠县| 读书| 无锡市| 繁昌县| 星子县| 齐齐哈尔市| 板桥市| 清苑县| 万荣县| 灵璧县| 昔阳县| 农安县| 达拉特旗| 凤凰县| 南川市| 宁明县| 襄樊市| 青田县| 台北市| 株洲市| 宽城| 莱芜市| 昌图县| 财经| 鄱阳县| 同仁县| 南靖县| 普安县| 大足县| 西贡区| 呼伦贝尔市| 山阴县|