需求启发
需求工程师综合不同涉众的利益编出需求。涉众无资格、无责任提供需求。需求启发的时候,交流内容聚焦于涉众利益。
客户看不懂UML怎么办?客户不接受用例文档怎么办?模型和视图分离,与客户交流的形式采用视图。
如果涉众直接给出需求怎么办?只当作材料,供需求过程中参考和提炼。
需求启发技术:研究资料、问卷调查、访谈、观察、研究竞争对手。
涉众代表必须名副其实。涉众代表 != 部门主管。应该选择经验丰富的涉众(老师傅型的,系统就是为了学习他的经验)。
研究竞争对手
类型(左右划线)
- 防御战:领先者完善自己,进攻另外的领域(Google vs Google,微软 vs 微软)
- 进攻战:攻击领先者强势中的弱点(Compaq vs IBM,Nokia vs Motorola)
- 侧翼战:在无人区发动突击(各种创新)
- 游击战:紧紧守住小块市场(地区报纸,小区商店)
攻击优点背后不可更改的缺陷。比如麦当劳定位于儿童,风格活泼。此风格无法有效覆盖成熟人群,Burger King就定位于11岁以上的绅士,以获取市场。
- 老牌——陈旧
- 市场占有率高——不能为每个客户精心服务
- 聪明——不稳重
- 有钱而且帅——花心
分析
分析:提炼核心域知识
设计:添加非核心域知识
人脑对机理的把握度是有限的,所以必须分解机理。面向对象分解为对象的协作,面向过程是功能分解。面向对象的分解比面向过程的分解更好是因为人脑更容易把握。
类的关系
- 泛化(静态)
- 关联(静态)
- 依赖(动态)
泛化是集合之间的关系,关联是个体之间的关系
识别关联
- 连接(直线)
- 聚合(空心菱形):整体与部分的生命周期不同
- 组合(实心菱形):整体与部分的生命周期一样
考虑的出发点:责任分配
出题:根据一段文字画类图。练习P10
序列图和类图的映射
序列图中
消息的传入:类的操作——责任
消息的传出:类完成操作所需合作——协作
箭头代表责任分配而非数据流动
责任分配
交互原则
- 专家原则——资源决定消息内容
- 老板原则——由老板发送消息给我
- 可视原则——只发消息给朋友
状态图
属性值变化导致行为发生变化——转换
假设状态图是对的,序列图错在哪里???
彩色建模
P7, 41
???练习题最后一题