Good architects are often formed by having better architects mentor them (Waldo 2006). One
reason may be that there are certain concerns that are common to nearly all projects. We have
already alluded to some of them, but here is a more complete list, with each concern phrased
as a question that the architect may need to consider during the course of a project. Of course,
individual systems will have additional critical concerns.
Functionality
What functionality does the product offer to its users?
Changeability
What changes may be needed in the software in the future, and what changes are unlikely
and need not be especially easy to make in the future?
Performance
What will the performance of the product be?
Capacity
How many users will use the system simultaneously? How much data will the system need
to store for its users?
Ecosystem
What interactions will the system have with other systems in the ecosystem in which it
will be deployed?
Modularity
How is the task of writing the software organized into work assignments (modules),
particularly modules that can be developed independently and that suit each other’s needs
precisely and easily?
Buildability
How can the software be built as a set of components that can be independently
implemented and verified? What components should be reused from other products and
which should be acquired from external suppliers?
Producibility
If the product will exist in several variations, how can it be developed as a product line,
taking advantage of the commonality among the versions, and what are the steps by which
the products in the product line can be developed (Weiss and Lai 1999)? What investment
should be made in creating a software product line? What is the expected return from
creating the options to develop different members of the product line?
In particular, is it possible to develop the smallest minimally useful product first and then
develop additional members of the product line by adding (and subtracting) components
without having to change the code that was written previously?
Security
If the product requires authorization for its use or must restrict access to data, how can
security of data be ensured? How can “denial of service” and other attacks be withstood?
Finally, a good architect realizes that the architecture affects the organization. Conway noted
that the structure of a system reflects the structure of the organization that built it (1968). The
architect may realize that Conway’s Law can be used in reverse. In other words, a good
architecture may influence an organization to change so as to be more efficient in building
systems derived from the architecture.
功能,可变性,性能,容量,生态系统,模块性,可构建性,可生产,安全性
这里中文只作一个简单参考,其中的Modularity和Buildability两者比较搞,慢慢细分
Modularity:按模块来设计,可以并行开发,且彼此之间容易且精确配合
Buildability:是可否构建一系列组件,可以被独立实现与验证
分享到:
相关推荐
You are an expert in sales and marketing specializing in helping potential customers overcome common concerns and objections about a product or service. You have helped many people before me to ...
分层架构有助于将关注点分离(Separation of Concerns),使不同的开发团队可以在不同层次上并行工作,同时有利于代码的复用、测试、维护和升级。分层架构常见的层次包括展示层、业务层、持久层和数据库层。在分层...
IEEE 1471标准中所涉及的核心概念包括架构(Architecture)、架构描述(Architectural Description)、系统(System)、干系人(Stakeholder)、关注点(Concerns)、视点(Viewpoint)和视图(View)等。...
视图是架构描述的一个核心组成部分,它是一组图表和文字,提供了架构中某个特定方面或利益相关者的关注点(concerns)的表示。每个视图都是由特定的架构视点(architectural viewpoint)所引导的,视点定义了视图的...
- **设计原则**:介绍了诸如关注点分离(Separation of Concerns)、单一职责原则(Single Responsibility Principle)等原则,帮助开发者创建清晰且易于理解的架构。 ##### 3. **架构决策与管理** - **决策过程**:...
此外,该标准还为软件架构师和其他相关人员提供了一套完整的指南,帮助他们在实际工作中遵循一致的方法论,从而提高软件产品的质量和效率。通过对架构进行规范化描述,可以显著减少因误解和沟通不畅导致的问题,进而...
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 ...
### 分析网络日志文章中人们的关注点 #### 摘要与背景 本文提出了一种分析网络日志(Weblog)文章中人们关注点的系统——KANSHIN。该系统通过收集大量的日语、汉语及韩语的网络日志文章来分析不同语言社区的人们对...
Javascript:关注点分离 目标 在本课程结束时,学生应该能够: 根据模型组织JavaScript代码并查看职责 指示 分叉并克隆此仓库。 转到项目目录。 请遵循您老师的指示。...在计算机科学中,关注点分离(SoC)是将...
ISO TR 22428-1:2020 Managing records in cloud computing environments - Part 1:Issues and concerns - 完整英文版(30页).pdf
【港股公司研究-信达国际控股-澳优01717.HK Solid result, industry concerns remain】 这篇研究报告关注的是港股上市的澳优乳业(01717.HK),该公司在婴幼儿配方奶粉市场占据领先地位,尤其在荷兰设有主要生产...
它可以帮助设计师更精确地表达架构设计,并支持自动化验证、分析和生成代码等功能。ADL通常包括两种类型的信息:构件(component)和连接件(connector)。构件描述了组件的功能特性,连接件则描述了组件之间如何...
在供应链管理领域,批发价契约是一种常见的合同形式,用以调节供应商与零售商之间的交易关系。然而,当零售商对公平性有所顾虑时,传统的批发价契约可能不再适用。本文主要研究在零售商具有公正性关切的条件下,批发...
30. 关注点(Concerns):关注点是指架构设计时需要考虑的特定方面,例如性能、安全性等。 31. 约束(Constraint):在架构中,约束是指限制系统设计或实现的规则、标准或限制条件。 32. 数据架构(Data ...
JS环球生活的审计师是安永会计师事务所,这为公司的财务报告提供了额外的信誉保障。分析师维持对公司“买入”评级,但由于物流压力,目标价下调至22.35港元,基于18倍的2022财年市盈率(之前为20倍)。目前股价为14....
面向切面编程(AOP)是一种编程范式,用于处理横切关注点(cross-cutting concerns)。例如日志记录、事务管理等,这些关注点通常会贯穿多个模块,通过AOP可以将这些关注点从业务逻辑中分离出来,实现更好的模块化。...
- **分离关注(Separation of Concerns)**:每一层都有明确的职责,使得代码更容易理解和维护。 - **模块化**:每个层都可以独立开发和测试,有利于团队协作。 - **可重用性**:业务逻辑层可以供多个用户界面使用,...
Margin notes, detailed diagrams, and lucid writing make this book easy to read and navigate, while analysis sections explore controversial issues and address common concerns. David Chappell's ...