Look at history from the perspective of software architecture practitioners

No matter what, to paraphrase the words of Song Dandan, that has its past, present and future (jiǎng) to. So learn something, if they can learn a little of its history, it makes us why there is so little less tangled status quo, while there may only fly a little bit of insight into its future trend. Sparse rain outside the window last night, could not sleep, suddenly thought of the history of how the software architecture, so it online this morning walk around the encounter to the paper "The History of Software Architecture - In the Eye of the Practitioner", and therefore this is a translation.

Brother Fucai, not their ability to sort out such a huge topic, it can only translate. But I did not translate the entire content of the paper, such as appendix no translation. In the translation process, once I thought and hard to pronounce this English papers, other than reading English books and I've really difficult to read. Bow is no turning back, I still want to translate the translation part is over, it is inevitable that I lied place, forgive us.

The following is a translation:

 

1. Objectives and motivation

Those authoritative paper to software architecture as a separate discipline, a number of scientific journals also the perspective of architecture, architecture description language, the evolution of architecture as the cornerstone of their research and practice, from the perspective of these words, software architecture just celebrated its 25 Anniversary.

With the popularity of cloud-based delivery of various parts of distributed systems requires dynamic integration, business and social digital curve getting steeper, so that a rational design decisions include larger and more complex problem space. The importance of software architecture unprecedented support organization to carry out important projects is inseparable from the corresponding architecture practice. However, these 25 years, the practice of software architecture is how to evolve it? What are the challenges the future will face?

Summary of software architecture research and practice status quo, there had been various attempts, but lack the two issues from the perspective of practitioners to look above.

To fill this gap, we first out of 10 themes from 5622 scientific papers in Figure 3. Then we designed an online questionnaire based on these topics by with five to 20 years experience in software architecture 57 practitioners fill out this survey.

 

2. practitioner views of the past 25 years, software architecture and the future of the road

This paper, we focus on the investigation in the past 25 years, the software architecture of the most prominent topic which, as well as in the present and near future, which will be the topic of software architecture with the most far-reaching influence.

Questionnaire contains questions are:

Background a) participants, experience and other statistical information;

b) they are currently serving institution, type of project in the past few years to take over;

c) practice in the software architecture of the past 25 years;

d) it is the most influential and software architecture trend topics (including the past two years, new);

e) industry practice may in the future direction of the software architecture (next 5 years);

Based on participants' answers, we get the following result for fine.

Past : Figure 1.PAST summarizes practitioners believe that over the past 25 years of the 10 most influential software architecture topics. We can see that:

1. The most influential part of the topic "software development process" and "service-oriented architecture (SOA)", "architectural style", "Internet of Things (IoT)". These together account for 38% of GDP.

2.SOA as the figure shows as the other topics include more specific sub-topics: "software development process" includes Agile, continuous delivery integration, DevOps, domain-driven design, the role of demand, legacy (system / Code), risk and quality management, communication skills. "Architectural style" contains a variety of different styles have evolved over time from CS and distributed architecture, to the production line architecture, MVC, multi-tier architecture and so on. Finally, "IoT" including digitization, Web, Internet, and mobile industry 4.0 priority.

Digital FIG 1.PAST marked red indicating whether it appears in FIG. 3 (prior topic in the scientific literature 10). Similarly, we can see:

1. Industry first four topics also appear in the top 10 topics in academia, but some differences influence: "software development process" ranked No. 1 in the industry, but only the first row in academia 7, "SOA" in industry and academia are ranked second, there is obvious, "architectural style" influence in the industry is considered to be much larger, ranked No. 3, ranked No. 6 in academia.

2. The real big difference is the topic of "& architecture description language," which ranked No. 1 in academic institutions, and in the eyes of those who practice only routed No. 8. But this is not surprising, symbols and language often used as research academia love, but not much real use of the industry. But good, it can be used as a positive allow researchers and practitioners better describe and efficient communication opportunities.

There are some topics mentioned practitioners, but not the stuff of professional researchers. The most prominent example:

1. Software Quality (5): Obviously, the quality of the software architecture of property is becoming an important achievement in the past 25 years. "Quality" is sometimes also known as the quality compliance, performance, scalability, maintainability and so on.

2. Cloud Computing (6) and micro-services (7): They are considered very (14 votes per sample) influential. As SOA derivatives, they are considered to belong to the same topic - so you get a total of 42 votes, the past 25 years to become the most influential topic.

Now : Figure 1.PRESENT get today's most influential software architecture topics using the same analytical methods. This results, "architectural style" at No. 10 (next to the "SOA" and "architectural design decisions"). on the other hand:

1. "SOA" is "cloud" and "micro-service" alternative: We think this is a normal evolution of technology, as a general architectural style, SOA has been applied to various applications.

2. "software development process" remained stable (1). Compared to answer for the past 25 years, today's "everything is agile": After the agility it is DevOps, continuous architecture (continuous-architecting). We note that in agile development, architecture play a more important role in awareness is growing.

3. The same, "IoT" stable (4). Compared to the past, however, it is considered to have a greater influence, also changed the focus from mobile applications to IoT-based architecture. This is about 2018 and Gartner predicts major trends in technology strategy consistent with the prediction mentioned in the "smart object (intelligent things)", is the AI ​​and IoT integration.

4. Clearly, "Software Quality" (6), and "Security (7)" falling influence. This may be the architects who know how to deal with these issues, perhaps they feel have more important topics to pay attention.

In general, the topic of today's most influential accounted for 70% of the total answer. Wherein, process, service-oriented (and micro-cloud services), the IoT three accounted for 62%.

Moreover, in the first 10 topic today, there are some new term caught our attention:

1. "Big Data" (5): referred to as big data, or AI, machine learning, analysis machine.

2. "third-party software integration" (8): Over the past 25 years has been mentioned in the part, but ranked 14th, but both were obtained five votes. But the answer, you can see the software architecture is moving from closed to open.

未来:图 1.FUTURE,我们从调查反馈中看到比较高的不确定性。即使实践者们认为前4个话题在未来5年仍保持主流,但它们占据总票数的52%,比现今的影响力要小10%。

图1.FUTURE 展示了:

1.“软件开发流程”、“大数据”、“微服务”和“云计算”会继续扮演非常重要的角色,然而:

2.对于“软件开发流程”,实践者们更关注如何管理不断增加的复杂性,可能是跨组织的,并将注意力放到了更高的自动化上。

3.对于“大数据”,提到了AI将扮演的角色和大数据在我们日常生活中进行的各种预测。

4.“微服务”将成熟,新的“云”将关注点放在基于云架构的风格/模式,以及如何通过软件架构来实现XaaS商业模型。

5.“自适应系统”(第5),在过去的几年里火热于学术界,被认为在工业界也变得越来越重要。

6.在新的话题当中,“区块链”也位于前10(不过反应平平,可能出乎你的意料)。

7.其它冒出的新鲜话题、不在前10名单中的有机器人、数字化转型、智能互联、绿色软件、伦理学。

 

3. 反思与收获

除了之前呈现的结果以外,我们还要求实践者们根据自身经历反馈哪些架构话题在他们过去的25年里产生过最重大的影响,以每5年为一个周期,如下图:

图2 展示了过去(比如client-server架构,从1992-2001年)占据主流的话题如何被新话题(比如“架构设计决策”、“架构知识体系”,从2002-2011年)超越的,以及最新的一些话题(“信息物理系统cyber-physical systems”和IoT,从2012-2017年)是如何涌现的。这让我们得到至少以下的认知:

认知1. 在软件架构的历史中,架构的概念从先前的一系列系统结构,变成了处于大型的、复杂的、不断进化的环境中的软件系统。然而在这样的环境中,不只是关乎技术,还包括人员、社交、组织生态和整个社会。软件架构的实践者关注的面比研究者们要广泛,软件架构实践者同时追随其它学科,从AI、IoT、自适应增强,到能源和伦理学。

认知2. “软件开发流程”赢了。无论是过去,现在还是未来,软件架构始终关注如何更敏捷的进行开发,怎样的人员技能可以有助于开发。房间里的大象(明显存在的问题)可以用来形容软件架构沟通和形式化之间存在的窘境:“架构模型”和“架构设计”常常用来弥补“软件开发流程”,但却从来无法达到预期—将架构代码化,使得架构可重用并且可靠。

认知3. 对于软件架构这个话题,不存在革命性的新东西,只有在旧的东西之上默默地演化。比如“软件开发流程”演化成各种形式的敏捷开发,“架构风格”从“SOA”演化到“微服务”和“云”,“信息物理系统”进化融合到“IoT”和“自适应系统”。总的来说,我们讨论的是软件架构的全局趋势,通向更便捷性的,可管理更多复杂性。

认知4. 软件架构的研究和实践始终保持一致。当我们对比图3中的前10个研究课题和图2中工业界的主流话题,我们看到比如“客户端-服务器”和“架构风格”在研究和实践方面有非常类似的趋势。“软件架构设计”和“架构设计决策”虽然研究和实践方面有不同的趋势,但都保持着重要的地位。最明显的就是“架构描述&语言”,在研究领域炙手可热,而实践中少得多。

最后,我们希望从历史角度看到的软件架构演化史能给读者带来进一步的思考和灵感。

 

文章最初发表于:从实践者的角度看软件架构的历史

Guess you like

Origin www.cnblogs.com/woshiweige/p/11079904.html