软件需求分析知识点(二)

需求启发

需求工程师综合不同涉众的利益编出需求。涉众无资格、无责任提供需求。需求启发的时候,交流内容聚焦于涉众利益

客户看不懂UML怎么办?客户不接受用例文档怎么办?模型和视图分离,与客户交流的形式采用视图

如果涉众直接给出需求怎么办?只当作材料,供需求过程中参考和提炼。

需求启发技术:研究资料、问卷调查、访谈、观察、研究竞争对手。

涉众代表必须名副其实。涉众代表 != 部门主管。应该选择经验丰富的涉众(老师傅型的,系统就是为了学习他的经验)。

研究竞争对手

类型(左右划线)

  • 防御战:领先者完善自己,进攻另外的领域(Google vs Google,微软 vs 微软)
  • 进攻战:攻击领先者强势中的弱点(Compaq vs IBM,Nokia vs Motorola)
  • 侧翼战:在无人区发动突击(各种创新)
  • 游击战:紧紧守住小块市场(地区报纸,小区商店)

攻击优点背后不可更改的缺陷。比如麦当劳定位于儿童,风格活泼。此风格无法有效覆盖成熟人群,Burger King就定位于11岁以上的绅士,以获取市场。

  • 老牌——陈旧
  • 市场占有率高——不能为每个客户精心服务
  • 聪明——不稳重
  • 有钱而且帅——花心

分析

分析:提炼核心域知识

设计:添加非核心域知识

人脑对机理的把握度是有限的,所以必须分解机理。面向对象分解为对象的协作,面向过程是功能分解。面向对象的分解比面向过程的分解更好是因为人脑更容易把握。

类的关系

  • 泛化(静态)
  • 关联(静态)
  • 依赖(动态)

泛化是集合之间的关系,关联是个体之间的关系

识别关联

  • 连接(直线)
  • 聚合(空心菱形):整体与部分的生命周期不同
  • 组合(实心菱形):整体与部分的生命周期一样

考虑的出发点:责任分配

出题:根据一段文字画类图。练习P10

序列图和类图的映射

序列图中

消息的传入:类的操作——责任

消息的传出:类完成操作所需合作——协作

箭头代表责任分配而非数据流动

责任分配

交互原则

  • 专家原则——资源决定消息内容
  • 老板原则——由老板发送消息给我
  • 可视原则——只发消息给朋友

状态图

属性值变化导致行为发生变化——转换

假设状态图是对的,序列图错在哪里???

彩色建模

P7, 41

???练习题最后一题

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Back to Top