Application Architecture Guide 2.0 学习笔记(一)前言 - Quality Attributes

来源:互联网 发布:linux 串口登陆 编辑:程序博客网 时间:2024/06/03 19:38

Quality Attributes

The following guidelines will help you to understand how focusing on the quality attributes can produce a more successful design. The guidelines help you to understand how to design your application,  keeping security and performance in mind right from the beginning.

 

• How to design for security(如何为安全性设计)


Use threat modeling to systematically identify threats instead of applying security in a haphazard manner(使用威胁模型来系统的识别威胁,而不是杂乱的来应用安全). Itemize your application’s important characteristics, assets, and actors to help you identify threats(详细列举你的系统的重要特征、资产和执行者来帮助你确认威胁). A detailed understanding of your application will also help you uncover more relevant and detailed threats(对于你的应用程序的详细理解将有助于发现更相关与细节的威胁). Use a security frame to focus on areas where mistakes are most often made(使用一个安全控件来专注与最容易发生错误的区域). Key categories in a security frame include auditing and logging, authentication, authorization, configuration management, cryptography, exception management, input and data validation, and sensitive data(一个安全框架中的关键饭范畴包括:审核与日志、认证、授权、配置管理、密码管理、异常管理、输入与数据验证与敏感数据). Rate the threats based on the risk of an attack or occurrence of a security compromise and the potential damage that could result(基于攻击的风险或者安全危害的发生率与其可能带来的危害来对这些威胁评定等级). This allows you to deal with threats in the appropriate order(这允许你按照恰当的顺序来处理这些威胁).


For more information, see Chapter 7, “Quality Attributes.”


• How to design for performance(如何为性能设计)


Use performance modeling early in the design process to help you evaluate your design decisions against your objectives before you commit time and resources(在设计过程的早期,在花费时间与资源之前,使用性能模型来帮助评估设计决策). Identify your performance objectives, your workload, and your budgets(确认你的性能目标、工作量与预算). For example, performance objectives may include maximum execution time and resource utilization such as CPU, memory, disk I/O, and network I/O(举个例子,性能目标可能包括最大执行时间和资源利用率例如CPU、内存、磁盘I/O、网络I/O等). Identify your constraints, such as time and hardware budget(识别约束,例如时间与硬件预算). Use load testing and unit tests to measure performance(使用负载测试与单元测试测量性能), and identify if hardware or deployment scenarios are the cause of bottlenecks(并确认硬件或者部署场景是引起瓶颈的原因). Ensure that you test with data types and data volumes that match the actual run-time scenarios(要确保你的测试数据与数据量与实际运行时一致).


For more information, see Chapter 7, “Quality Attributes.”


• How to identify and evaluate performance issues(如何识别并评估性能问题)


Focus on the critical areas where the correct approach is essential and where mistakes are often made(……).Identify requirements, cost, and budget restraints, and whether improvements can come from additional hardware and infrastructure, improved application code, or by adopting a different deployment approach(明确需求、花费与预算约束,并明确因素是否能够带来性能提升:额外的硬件与基础设施、改善的代码或者采用不同的部署方法). Perform design inspections and code inspections to identify poor practices that could lead to bottlenecks(执行设计检查与代码检查来识别会带来瓶颈的差的做法). Organize and prioritize your performance issues by using a performance frame(使用性能框架 组织并确定性能问题的优先次序). Key categories in a performance frame include data structures and algorithms, communication, concurrency, resource management, coupling and cohesion, caching, and state management(性能框架的关键范畴包括:数据结构与算法、通信、并发、资源管理、耦合与内聚、缓存与状态管理等).


For more information, see Chapter 7, “Quality Attributes.”

原创粉丝点击