需求:计算机能做的事及品质。或系统必须完成的事与必备的品质。
分为:1)功能需求 2)非功能需求(性能、可靠性、安全、扩展性、可伸缩性) 3)设计约束(环境)
层次:1)业务需求(问题的定义,与计算机无关) 2)用户需求(人、客户的角度分析) 3)系统需求(开发人员的角度)
失败原因: 1)不完整的需求 2)没有用户的介入 3)不实际的客户期望 4)需求与规范的变更 5)提供了不在需要的功能
需求工程:
基线管理:设置需求优先级,先进行高优先级的需求开发,忽略需求变化。避免频繁变更导致的开发工作难以为继。 变更管理:需求变更工作。响应需求的变化,重新计划以良好的解决问题。 需求跟踪:需求是否已经实现,需求的变更会对那些元素产生影响。
需求开发活动:
明确用户需求的三个步骤:
1.明确业务需求 2.理解业务流程 3.明确用户需求(What(收集什么信息)、Where(从哪收集)、 How(如何收集)
捕获需求的方式:
评价用例的方式:
用例建模工作流 : 1.识别参与者 2.寻找用例 3.描述参与者和用例的交互方式 4.用包来组织用例和参与者(可选) 5.通过用例图表示用例模型 6.细化用例模型 7.评估用例模型
模型的分类:
1)用例模型--组织需求
2)类模型-->概念模型-->领域模型(专业问题)
3)交互模型( 描述事件流)
设计阶段的核心任务包括:将需求转换成对未来系统的设计,逐步开发出强壮的系统架构,使设计合适于实施环境,为了提高性能而设计。
具体目的: 1.将实现工作划分成更易于管理的各个部分。 2.捕获子系统间的主要接口。 3.通过对单个子系统,接口和类进行设计,为后续开发打下基础。 4.深入理解与功能性需求、非功能性需求、设计约束相关的问题。
分为: 1.架构设计(架构建模):也称概要设计或高层设计,将软件需求转换成软件系统结构。对应于面向对象设计就是划分成包和构件,以及确定接口。而结构化设计则是确定模块以及模块之间的接口和调用关系。
2.详细设计(构件建模):也称低层设计,将对构件进行细化。分析出详细的类,以及类之间的关系。关注结构、算法和流程。
架构建模:软件架构的可视化建模的关键在于体现出不同的构建之间如何组成应用。数据和业务流程如何被共享。
用例视图:就是需求建模的结果,是架构设计的输入;
设计视图:在需求建模完成的概念(领域)模型的基础上,重点在于包的组织以及包之间的依赖;
进程视图:在架构设计阶段相对弱化;
实现视图:架构设计的重点,关键在于理清系统中的构件组成及构件间的关系;
部署视图:根据解决方案的特点,对部 署模型进行初步的设计
流程:1.确定核心元素(将分析类映射到设计元素、定义子系统接口、融合子系统、调整子系统、辅助说明)
2.引入外围元素
3.优化组织结构(层次结构、管道和过滤器架[插入]构、网状结构、出版者/订阅者架构、代理结构)
4.构建部署视图
详细设计构件的步骤:
确定参与类(包括设计类)、类的属性与操作(职责)以及类与类之间的交互关系(细化类模型);确定类与类之间的交互的控制流(顺序图、协作图、活动图、状态机图等);阐述接口的实现方式(细化构件图)
逻辑数据库模型(LDM):关系+属性
物理数据模型(PDM):DB内部详细设计