【读书笔记】软件工程·实践者的研究方法第7版 第二部分 建模 第6章 需求建模:场景、信息与类分类

基于场景的建模:从用户的角度表现系统

数据建模:提出了信息空间同时描述了软件要加工的数据对象及其间的关系

基于类的建模:定义了对象、属性和关系

行为建模:描述了系统状态、类和事件在这些类上的影响。

在技术层面上,软件工程开始于一些列的建模工作。需求模型实际上是一组模型,是系统的一个技术表示。


一、需求分析

规格说明:由需求分析产生,指明软件和其他系统元素的接口,规定软件必须满足的约束。

需求模型三个目标:

1、描述客户需要什么

2、建立设计的基础

3、建立有效的目标(可以用于确认的需求)


建立模型的一些原则:

1、关注问题域或业务域可见的需求,不要陷入细节

2、基础结构和非功能模型应留到设计阶段再考虑

3、低耦合高内聚

4、能为利益相关者带来价值

5、保持简洁。


(软件)域分析:识别、分析和详细说明某个特点应用领域的公共需求,特别是领域内被多个项目重复使用的需求;根据通用的对象、类、部件和框架,识别分析和详细说明公共的、可复用的能力。

域分析的目标:查找或创建那些广泛应用的分析类和(或)分析模式,使其能够复用。

*Tony:其实就是在某个领域内,寻找模式,应用模式,已达到复用、快速、正确的目标


需求建模的方法:

1、结构化分析:考虑数据和处理的需求建模方法

2、面向对象 的分析:关注于定义类和影响客户需求的类之间的协作方式。UML和UP(统一过程)


【图6-3 需求模型的元素】


基于场景的建模:

本质上用例捕获了:信息的产生者、使用者和系统本身之间发生的交互。

运用需求收集会议、QFD和其他机制,

1、确定利益相关者

2、定义问题的范围

3、说明整体的运行目标

4、建立优先级顺序

5、概述所有已知的功能需求

6、描述系统将出黎的信息(对象)

用例:XXXYYYZZZ
参与者:XXX
        一段描述性的话,描述参与者怎么使用系统
用例:XXXYYYZZZ
参与者:XXX
1、
2、
3、
一系列的步骤,缺点是没有允许“其他”的交互过程
以上大概是主场景,对应的还有次场景:属于原用例的一部分,表现了可供选择的行为

在细化用例的过程中要头脑风暴分析次场景和异常处理(应对错误,不是编码上的术语)

如果是描述关键或一套有大量异常处理的复杂步骤,我们会采用更正规的方法。异常处理可以调用其他用例,加入了诸如前提、优先级、频率等

补充用例的UML模型:1、活动图(类似流程图);2、泳道图(指定参与者做何种活动的活动图变种)

用例建模也非完美:

1、描述不清晰时,可能误导或带来歧义

2、不适用于非功能需求

3、必须特别详细和精准的需求建模场景,用例不够用


数据建模:作为全部需求建模的一部分

数据对象:由计算机软件处理的任意复合信息的表示,单个的值不是有效的数据对象。不包括操作,与“类”和“对象”区分

数据属性:

1、为数据对象的实力命名,例如ID

2、描述这个实例,例如长宽高

3、建立对另一个表中的另一个实例的引用。

关系:指明数据对象相互“链接”的方式。

实体——关系图(ERD图):图形化表示“对象/关系对”


基于类的建模:包括了:类和对象、属性、操作、类的职责协作者(CRC)模型、协作图和包。

识别(分析)类:

1、阅读用例(功能),对第一次出现的名词下划线,第一次出现的动词用斜体

分析类通常有以下分类,可以关注这些名词:

·外部实体(其他系统、设备、人员),产生或使用基于计算机系统的信息

·事物(报告、显示、信号等)

·事件

·角色(经理、销售人员),和系统交互的人员

·组织单元(部门、组)

·场地,建立问题的环境

·结构(传感器计算机),对象的类

例:



2、筛选和确认类的原则(选择特征)

 1、保留信息,只有记录潜在类的信息才能保证系统正常工作

 2、所需服务,潜在类必须具有一组可确认的操作,能修改类的属性值。

 3、多个属性,单个属性的类最好作为另外一个类的属性

 4、公共属性,潜在类有一组属性,适用于多个实例

 5、公共操作,潜在类有一组操作,适用于多个实例

 6、必要需求。在问题空间中出现的外部实体,和任何系统解决方案运行时所必需的生产或消费信息,几部都被定义为需求模型中的类


*在不同的场景,这些潜在类可能被接受,或者不被接受。


描述属性(类的属性):在问题环境下完整定义类的数据对象的集合。

定义操作(类的方法):定了某类对象的行为。大概有以下几种类型:

 1、操作数据

 2、计算

 3、请求某个对象的状态

 4、监视某个对象发生某个控制事件的操作

可以通过研究 处理描述(功能表)或用例,合理地选择属于该类的操作,可以分析其中的动词。其中可能涉及对象间交互(通信),下面介绍CRC建模


类-职责-协作者 建模(Class-Responsibility-Collaborator,CRC)


其实就是抄书的。草稿箱有,就发出来了

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ku360517703/article/details/16982545
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭