目录

  • 1 第一单元
    • 1.1 项目启动:团队计划
    • 1.2 新建课程目录
    • 1.3 项目启动:开发环境搭建
    • 1.4 第一循环:需求获取
    • 1.5 第一循环:需求获取实践
    • 1.6 建立项目计划:甘特图
  • 2 第二单元
    • 2.1 第二循环阶段预备知识:软件质量
    • 2.2 第二循环实践描述
    • 2.3 第二循环:涉众分析
    • 2.4 用户需求风险分析
    • 2.5 开发用户界面原型
    • 2.6 需求规格说明
    • 2.7 系统级别的测试
    • 2.8 修订项目计划实践
  • 3 第三单元
    • 3.1 第三循环阶段预备知识:软件架构
    • 3.2 第三循环阶段实践描述
    • 3.3 第三循环阶段之筛选关键需求
    • 3.4 架构备选方案和风险分析
    • 3.5 开发演化式架构原型
    • 3.6 软件架构设计文档
    • 3.7 架构评审会议实践
    • 3.8 集成测试计划和用例
    • 3.9 工作量估算及估算实践
    • 3.10 第三循环阶段实验手册及评价标准
  • 4 第四单元 第四循环
    • 4.1 预备知识:软件测试技术
    • 4.2 第四循环阶段实践描述
    • 4.3 详细设计实践
    • 4.4 编码活动实践
    • 4.5 单元测试
    • 4.6 执行各阶段测试
    • 4.7 内部项目评审
    • 4.8 第四循环阶段实验手册和评价标准
  • 5 项目部署
    • 5.1 项目部署阶段实践描述
    • 5.2 项目发布实践
    • 5.3 软件维护活动及维护准备
    • 5.4 用户验收实践
    • 5.5 项目组总结实践
    • 5.6 项目部署阶段实验手册及评价标准
第三循环阶段预备知识:软件架构

5.1.1 软件架构的含义  

  1. 定义

    • 软件架构包含一系列对系统组织方法的重大决策,包括选择组成系统的结构化元素和它们的接口,元素之间协作所指定的行为,组织结构化和行为化的元素成为较大些的子系统,以及组织过程中有指导意义的架构风格。软件架构还涉及其他一些方面的问题,比如功能性、易用性、性能、重用性、经济和技术限制等。  

    • 最高层次的系统分解 ;系统中不易
      改变的决定;在一个系统中也可能存在多种不同的架构;对于什么在架构上意义重大的观点也会随着系统的生命周期变化;最后,架构就归纳成一些重要的东西,无论它们是什么。

    • 一个程序或计算系统的软件架构是系统的一种结构或一组结构,包含了软件元素、这些元素的外部可见属性以及它们之间的关系。  

    • 软件架构是为了满足所有的技术和业务要求而定义结构化解决方案的过程,同时优化常见的质量属性,比如性能、安全性和可维护性等。  

  • 软件架构主要关注系统高层结构中那些共性的抽象定义,还要考虑系统建立时的风格和构造模式,以达到系统特定的需求。  

5.1.2 软件架构的目标  

  • 用户使用软件的方式。

  • 将软件部署到生产和管理环境中的方式。

  • 软件的质量需求,如安全性、性能、并发和国际化等。

  • 随着时间推移,软件的可变性和可维护性可能会变得很重要。

  • 现在或者部署后,可能会影响到软件的软件架构发展趋势。  

涉众关注点:

  • 所有者。他们想知道项目是否能够在给定的资源和进度约束下完成。

  • 架构工程师、开发工程师和质量保障人员。他们首先考虑的是最初的构建,以及之后的维护与演进

  • 项目经理。他们需要组织团队和制定迭代计划。  

  • 用 户 ,包括最终用户、系统管理员,以及安装、部署、准备和配置的人员。

  • 市场人员。他们想通过产品的质量特点实现与竞争者的差异化。  

软件架构的目标是识别那些影响软件架构的需求,建立降低业务风险的技术解决方案。

清晰地公开出系统的架构,但把实现细节隐藏起来。• 理解所有的用例和场景,但区别优先级。• 尝试权衡和解决各种涉众的需求。• 同时处理功能性和非功能性的需求。