目录

  • 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.3 筛选关键需求

该循环中需要关注的不仅是功能性需求,还要平衡可能相互有冲突的质量需求,这些关键性需求就是影响架构的主要风险。因此,一般包括以下两个步骤。1)确定关键的功能需求。2 )分析关键的非功能需求。  

5 . 3 . 1 确定关键的功能需求  

软件架构设计的主要目标是研究如何对系统进行划分和划分为那些部分,从篙求规格说明中筛选出对于软件架构具有决定性因素的“关键功能子集”,然后再从关键功能子集中确定出可能影响系统架构的“关键功能需求”  。

可以利用如下4方面的问题,以需求规格说明中的用例为粒度确定关键的功能子集。1)确定主要功能:哪些是系统的核心或主要功能性需求?2 )确定必须实现功能:哪些虽是非核心,但必须被实现的功能性需求?3 )具有风险的功能:哪些是极可能存在技术风险的功能性需求?    

4 )特殊的功能:哪些虽并非以上3 点功能性需求,但很可能是重要扩展方向的?  

*Sharing Team选择出的师生交流系统中的关键功能子集。核心功能:信息管理、 日志管理、 日程管理。必做功能:登录、用户管理.风险功能:登录。特殊功能:无。其中,由于登录可能需要利用外部邮件系统完成,所以定义为风险功能*  

对于得到的关键功能子集,还希望能进一步完整地识别出更细的关键功能需求,这时需要注意的是:• 主要功能是那些与软件业务层直接相关的功能。• 必做功能要视项目的拥有者和使用者的要求而定。・特殊的功能主要是那些能够极大地提高用户满意度的功能。・确定关键功能需求并没有标准答案,并且和需求规格说明相比,选择比例最好按照实际情况而定。  

*Sharing Team针对关键功能子集中确定出的每一项,继续定义出它们的关键功能需求:核心功能如下。1)信 息 管 理 :在对信息的管理中,由于需求定义中不允许修改信息,因此需要的功能包括信息查询、信息删除和信息发布。其中,信息发布是最核心的部分,可能会直接影响到软件的架构。因此,定义信息管理中的新信息发布功能是关键功能需求,主要需要解决的是信息的发布或者接收方式

2)日志管理:……  

5.3.2 确定关键的非功能需求

推荐使用以下 3 个层次的问题来确定关键的质量属性。1 )系统所需的质量属性有哪些?2 )哪些关键需求是和这些质量相关的?它们实际上都是可量化的吗?3 )建立了哪些验收标准来测试系统是否达到质量要求?  

在确定质量需求时,还要注意下面3 个原则。1 )从技术角度来看,关键质量需求要能帮助区别好的和坏的系统架构。  

2 )无法测试的质量需求不能认为是关键的。3 )任何时候只要关键质量需求多于一个,都要查看是否会相互矛盾,然后做出权衡,确定优先级或者做出取舍。  

一旦需要折中或权衡两个以上的关键质量需求,要注意以下几点。  

1 )分别考查两个质量需求影响到的参与者,尽量确保影响较多参与者的质量需求得到满足。  

2 )根据系统本身的性质、领域和规模特点来进行权衡。