作者:佚名 文章来源:软件部 点击数: 更新时间:2017-03-23 10:29:22
1、 什么是软件架构,谈谈你对软件架构的理解
某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素、这些元素的外部可减属性、这些元素之间的关系组成。
我认为软件架构就是某个软件系统在规划设计时,需要预先设计好框架结构,保证软件的设计大方向的正确性,确保设计好的软件的质量、安全、可扩展等性能得到保障。
2、什么是架构视图?为什么软件架构师需要提供多个不同的软件架构视图?
架构视图是一种设计架构、描述架构的核心手段,是对于从某一角度或某一点上看到的系统所作的简化描述,描述中涵盖了系统的某一特定方面,而省略了与此方面无关的实体。
由于软件团队和客户各自掌握的技术存在差异,为了完成各自的工作,他们需要了解整套软件架构决策的不同方面,所以软件架构师需要提供多个不同的软件架构视图,以便交流和传达设计思想。
3、 简述软件架构设计的3个原则
原则1:看透需求这是基础,设计人员要找全需求,搞清楚需求项之间的矛盾关系、追溯关系。
原则2:架构大方向正确这是一种策略,先设计概念架构,更重视“找对路子”。
原则3:设计好架构的各个方面,运用多视图设计方法从多方面进行架构设计,把问题研究、表达清楚,否则会有掩盖问题及延误解决问题的风险。
4、 软件架构设计过程包含哪些步骤以及之间的关系?
1) 需求分析
2) 领域建模
3) 确定关键需求
4) 概念架构设计
5) 细化架构设计
6) 架构验证
5、 软件架构设计过程中,如何确定关键需求?
1)确定关键质量
着重提高软件认可度相关的质量属性要求;充分考虑这些质量属性的相互制约或促进的关系;同时必须满足各种约束性需求。
2)确定关键功能
核心功能,必做功能,高风险功能,独特功能.
6、 在细化架构设计过程中,包括哪5个视图?每个视图分别包括哪些设计任务?
1)逻辑视图
模块划分、接口定义、领域模型 2)开发视图 技术选型、文件划分、编译关系 3)运行视图 技术选型、控制流划分、同步关系 4)物理视图 硬件分布、软件部署、方案优化 5)数据视图 技术选型、存储格式、数据分布
7、请简述概念架构设计阶段的1个决定、4个选择 决定如何划分顶级子系统,选择架构风格,选择开发技术,选择集成技术,选择二次开发技术。
8、 在软件架构设计中,如何进行架构验证?
1)原型法
用于项目型开发,借助专门工具营造出想要的场景,进行真实性测试,重点是质量属性测试,进行挑选原型实现的功能需求(用户最关心的,架构师最担心的那些)。
2)框架法
用于产品开发,将架构设计方案用框架的形式表现,并在此基础上进行评估验证。
9、简述用例驱动的模块划分过程 两环节、四步骤
1)需求分析环节
2)架构设计环节
第一步 回答“实现用例需要哪些类”的问题——运用鲁棒图、序列图。
第二步 回答“这些类应划归哪些模块”的问题——运用包图
9、 简述封装驱动设计方法(EDD方法)的步骤。 4步骤
1)研究需求重点是上下文图和功能树,发现问题,第一时间提出。
2)粗粒度分层根据功能树,粗粒度划分功能模块
3)细粒度划分模块