需求分析:
一.需求的层次:
1.业务需求:是反映企业或客户对系统高层次的目标要求,通过业务需求可以确定项目视图和范围。
2.用户需求:描述用户的具体目标,或用户要求系统必须能完成的任务。访谈和问卷。
3.系统需求:包括功能需求、非功能需求、设计约束。
二、质量功能部署:是一种将用户要求转化成软件需求的技术,目的是提升软件工程过程中用户的满意度。分为三类:
1.常规需求;用户认为系统应该做到的功能或性能。
2.期望需求:用户想当然的功能或性能。
3.意外需求:也称兴奋需求,用户要求外的功能或性能。意外需求是控制在开发人员手中的。
三、需求获取:是确定和理解项目干系人的需求和约束的过程。
1.常用的方法有:用户访谈、问卷调查、采样、情节串联板、联合需求计划。
四、需求分析:
1.好的需求应:无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性。
2.使用SA方法需求分析:建模核心是数据字典,有三个层次的模型:
数据模型:用实体联系图(E-R图)表示。
功能模型:用数据流图(DFD)表示。
行为模型:用状态转换图(STD)表示。
3.OOA模型包括:
用例模型:使用用例的方法描述系统需求。
分析模型:描述系统的基本逻辑结构。
五、软件需求规格说明书:SRS.
SRS应包含:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解、附录。
六、需求验证:也称需求确认。包含以下内容:
正确描述系统行为和特征,软件需求是从系统需求、业务规格、其他来源中正确推导来的,需求是完整和高质量的,需求的表示在所有地方都是一致的,需求为系统设计、实现和测试提供足够的基础。
七、UML:
1.包括:
构造块:事物、关系、图。
规则:是构造块如何放一起的规定,包括命名、范围、可见性、完整性、执行。
公共机制:包括规格说明、修饰、公共分类、扩展机制。
2.UML中的事物:分为:
结构事物:类、接口、协作、用例、活动类、构件、节点。
行为事物:交互、状态机。
分组事物:包(只存在于开发阶段)。
注释事物:解释部分。
3.UML中的关系:
依赖:一个事物变化会影响另一个。
关联:一组对象间连接。
泛化:一般化和特殊化的关系。
实现:类之间的语义关系。
4.UML2.0中的图:
类图:描述一组类、接口、协作和它们之间的关系。
对象图:描述一组对象及它们间的关系。
构件图:类图的变体。
组合结构图:用于画出结构化类的内部内容。
用例图:系统的静态用例视图。
顺序图:是一种交互图,专注于系统的动态图。强调时序。
通信图:也是一种交互图,强调对象之间的协作关系,1.X版本叫协作图。
定时图:计时图,也是交互图,强调消息跨越不同对象的实际时间。
状态图:描述一个状态机,给出了对象的动态视图。强调事件导致的对象行为。
活动图:系统的动态视图,强调对象间的控制流程。
部署图:架构的静态部署视图。
制品图:系统的物理结构,通常与部署图一起用。制品也给出它们实现的类和构件。
包图:由模型本身分解而成的组织单元,以及它们之间的依赖关系。
交互概览图:活动图和顺序图的混合物。
5.UML视图:
逻辑视图:设计视图,类、子系统、包、用例实现的子集。
进程视图:是逻辑视图的一次执行实例,描述了并发与同步结构。
实现视图:实现视图对物理代码的文件和构件进行建模。
部署视图:把构件部署到物理节点上,表示软件到硬件的映射和分布结构。
用例视图:最基本的需求分析模型。
八、面向对象分析:
OOA任务是做什么,OOD任务是怎么做。
面向对象分析阶段的核心工作是建立系统的用例模型和分析模型。
1.构建用例模型四阶段:识别参与者、合并需求获得用例、细化用例描述、调整用例模型。
2.建立分析模型的过程:定义概念类、确定类之间的关系、为类添加职责、建立交互图。前三者称CRC建模(类-责任-协作者)。
类之间的关系:
关联关系:类A(直线)类B。
依赖关系:类A(虚线+实心三角)类B。A依赖于B,B变化引起A变化。
泛化关系:子类(实线+空心三角)父类。父类是子类的泛化,子类是父类的继承。
聚合关系:部分类(实线+空心菱形)整体类。如车轮和汽车。车坏了车轮能用,车轮坏了可以换新的。
组合关系:部分类(实线+实心菱形)整体类。如部门和公司。公司没了部门就没了。
实现关系:类A(虚线+空心三角)类B。类A实现类B(接口)。
一.需求的层次:
1.业务需求:是反映企业或客户对系统高层次的目标要求,通过业务需求可以确定项目视图和范围。
2.用户需求:描述用户的具体目标,或用户要求系统必须能完成的任务。访谈和问卷。
3.系统需求:包括功能需求、非功能需求、设计约束。
二、质量功能部署:是一种将用户要求转化成软件需求的技术,目的是提升软件工程过程中用户的满意度。分为三类:
1.常规需求;用户认为系统应该做到的功能或性能。
2.期望需求:用户想当然的功能或性能。
3.意外需求:也称兴奋需求,用户要求外的功能或性能。意外需求是控制在开发人员手中的。
三、需求获取:是确定和理解项目干系人的需求和约束的过程。
1.常用的方法有:用户访谈、问卷调查、采样、情节串联板、联合需求计划。
四、需求分析:
1.好的需求应:无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性。
2.使用SA方法需求分析:建模核心是数据字典,有三个层次的模型:
数据模型:用实体联系图(E-R图)表示。
功能模型:用数据流图(DFD)表示。
行为模型:用状态转换图(STD)表示。
3.OOA模型包括:
用例模型:使用用例的方法描述系统需求。
分析模型:描述系统的基本逻辑结构。
五、软件需求规格说明书:SRS.
SRS应包含:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解、附录。
六、需求验证:也称需求确认。包含以下内容:
正确描述系统行为和特征,软件需求是从系统需求、业务规格、其他来源中正确推导来的,需求是完整和高质量的,需求的表示在所有地方都是一致的,需求为系统设计、实现和测试提供足够的基础。
七、UML:
1.包括:
构造块:事物、关系、图。
规则:是构造块如何放一起的规定,包括命名、范围、可见性、完整性、执行。
公共机制:包括规格说明、修饰、公共分类、扩展机制。
2.UML中的事物:分为:
结构事物:类、接口、协作、用例、活动类、构件、节点。
行为事物:交互、状态机。
分组事物:包(只存在于开发阶段)。
注释事物:解释部分。
3.UML中的关系:
依赖:一个事物变化会影响另一个。
关联:一组对象间连接。
泛化:一般化和特殊化的关系。
实现:类之间的语义关系。
4.UML2.0中的图:
类图:描述一组类、接口、协作和它们之间的关系。
对象图:描述一组对象及它们间的关系。
构件图:类图的变体。
组合结构图:用于画出结构化类的内部内容。
用例图:系统的静态用例视图。
顺序图:是一种交互图,专注于系统的动态图。强调时序。
通信图:也是一种交互图,强调对象之间的协作关系,1.X版本叫协作图。
定时图:计时图,也是交互图,强调消息跨越不同对象的实际时间。
状态图:描述一个状态机,给出了对象的动态视图。强调事件导致的对象行为。
活动图:系统的动态视图,强调对象间的控制流程。
部署图:架构的静态部署视图。
制品图:系统的物理结构,通常与部署图一起用。制品也给出它们实现的类和构件。
包图:由模型本身分解而成的组织单元,以及它们之间的依赖关系。
交互概览图:活动图和顺序图的混合物。
5.UML视图:
逻辑视图:设计视图,类、子系统、包、用例实现的子集。
进程视图:是逻辑视图的一次执行实例,描述了并发与同步结构。
实现视图:实现视图对物理代码的文件和构件进行建模。
部署视图:把构件部署到物理节点上,表示软件到硬件的映射和分布结构。
用例视图:最基本的需求分析模型。
八、面向对象分析:
OOA任务是做什么,OOD任务是怎么做。
面向对象分析阶段的核心工作是建立系统的用例模型和分析模型。
1.构建用例模型四阶段:识别参与者、合并需求获得用例、细化用例描述、调整用例模型。
2.建立分析模型的过程:定义概念类、确定类之间的关系、为类添加职责、建立交互图。前三者称CRC建模(类-责任-协作者)。
类之间的关系:
关联关系:类A(直线)类B。
依赖关系:类A(虚线+实心三角)类B。A依赖于B,B变化引起A变化。
泛化关系:子类(实线+空心三角)父类。父类是子类的泛化,子类是父类的继承。
聚合关系:部分类(实线+空心菱形)整体类。如车轮和汽车。车坏了车轮能用,车轮坏了可以换新的。
组合关系:部分类(实线+实心菱形)整体类。如部门和公司。公司没了部门就没了。
实现关系:类A(虚线+空心三角)类B。类A实现类B(接口)。