-
复习资料涵盖了软件架构的考点内容
资源介绍
software architecture复习资料(包含考点)外教课 大部分附有中文翻译
1.Please summarise the state of the art of current software systems?(请总结一下当前软件系统的发展现状。)TOPIC0
Software is very complex today 今天的软件非常复杂
Hard for one to understand it all 很难理解所有
Difficult to express in terms all stakeholders understand 很难让所有利益相关者理解
Business drivers add pressure业务驱动增加压力
Shrinking business cycle收缩商业周期
Competition increasing竞争加剧
Ever rising user expectationsn 不断增长的用户期望
“Soft” Requirement“软”要求
A common threat to schedule, budget, success对计划、预算、成功的共同威胁
Too much change can cause failure太多的改变会导致失败
Flexibility and resilience to change is key灵活性和应变能力是关键
Ability to adapt to sudden market changes适应市场突然变化的能力
Design is solid enough that change does not impact the core design in a destabilising way设计是足够牢固的,改变不影响核心设计的不稳定的方式。
Willingness to re-architect as required愿意按要求重新设计
Most projects are unpredictable大多数项目都是不可预知的
Lack of knowing where and what to measure缺乏知道在何处和何来衡量
Lack of yardsticks to gauge progress缺乏衡量进步的尺度
Requirements creep is common需求蠕变是常见的
Scrap and rework is common废料和返工是常见的
Interminably 90% done没完没了地做了90%件
Lack of quality people results in failure缺乏质量导致失败
…in spite of best processes and tools! 尽管有最好的工艺和工具!
Managing people is difficult管理人是困难的
Major change is organisationally difficult重大变革在组织上是困难的
Reusing software artifacts is rare重用软件构件是罕见的
Architectures/Designs/Models建筑/设计/模型
Estimating processes估计过程
Team processesq Planning & Tracking procedures and reports团队流程规划和跟踪程序和报告
Software construction & management软件建设与管理
Reviews, testing评论、测试
etc. 等。
(The price and size of computers shrunk. Programmers could have a computers on their desks.
The JCL got replaced by GUI.
The most-used programming languages today are between 15 and 40 years old. The Fourth Generation Languages never achieved the dream of "programming without programmers".)
(计算机的价格和规模缩小了。程序员可以在桌子上放一台电脑。
JCL被GUI替换了。
目前使用最多的编程语言在15到40岁之间。第四代语言从未实现过“无程序员编程”的梦想。)
2. What is software architecture, in your own words? (什么是软件体系结构,用你自己的话?)TOPIC1
The software architecture of a system is the structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.(系统的软件体系结构是系统的结构,包括软件组件、这些组件的外部可见属性以及它们之间的关系。)
3.What do you think of *s' "Surgical Team"?(你觉得布鲁克斯的“手术队”怎么样?)
The ‘surgical team’: one cutter, many supporters(“手术队”:一个裁缝,很多支持者)
4. How did Fred *s Jr. describe the role of the architect in his "The Mythical Man-Month"?(小弗雷德.布鲁克斯在《人月神话》中是怎样描述架构师的角色的?)
The architect of a system, like the architect of a building, is the user’s agent.(系统的架构师,就像建筑的架构师一样,是用户的代理人。)
5. What have you learnt from David Parnas, for software development?(对如软件开发,你从David Parnas那里学到了什么?)
Parnas developed these ‘architectural’ concerns and turned them into fundamental tenets of Software Engineering. The main principles included:
Information Hiding as the basis of decomposition for ease of maintenance and reuse [72]
The separation of Interface from implementation of components [71, 72]
Observations on the separate character of different program elements [74]
The “uses” relationship for controlling the connectivity between components [79]
To increase extensibility
Principles for the detection and handling of errors [72, 76]
i.e., exceptions
Identifying commonalities in “families of systems” [76]
To provide coarse-grained, stable common structures
Recognition that structure influences non-functional ‘qualities’ of a system [76]