《软件工程10.ppt》由会员分享,可在线阅读,更多相关《软件工程10.ppt(58页珍藏版)》请在第壹文秘上搜索。
1、YOUR COMPANY10、面向对象分析目 录3.3.需求陈述需求陈述4 4. .建立功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7. .定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程1. 面向对象分析概述 定义定义抽取整理用户需求,建立问题域精确模型的过程。抽取整理用户需求,建立问题域精确模型的过程。 方法方法通过与领域专家的交流充分理解用户的需求。通过与领域专家的交流充分理解用户的需求。将用户需求用某种二义性的方式表达成文档资料。将用户需求用某种二义性的方式表
2、达成文档资料。分析验证用户的需求,得到软件需求规格说明书。分析验证用户的需求,得到软件需求规格说明书。 关键关键识别出问题域内的类与对象,并分析它们相互间的关系,最识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。终建立起问题域的简洁、精确、可理解的正确模型。软件工程软件工程目 录3.3.需求陈述需求陈述4 4. .建立功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7. .定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程2
3、. 面向对象分析的基本过程 分析描述用户需求的文件分析描述用户需求的文件 不断完善用户需求不断完善用户需求 深入理解用户需求,抽象出目标系统的本质深入理解用户需求,抽象出目标系统的本质,用模型准确的表达出来,用模型准确的表达出来 评审评审面向对象分析的过程是学习和抽取相关领域面向对象分析的过程是学习和抽取相关领域知识的过程知识的过程软件工程软件工程2. 面向对象分析的基本过程面向对象分析的过程是学习和抽取相关面向对象分析的过程是学习和抽取相关领域知识的过程。领域知识的过程。三个子模型与五个层次三个子模型与五个层次2.1 三个子模型三个子模型2.2 五个层次五个层次软件工程软件工程2.1 三个子
4、模型功能模型(数据变换)功能模型(数据变换)定义定义“做什么做什么”对象模型(静态结构)对象模型(静态结构)定义定义“由谁做由谁做”动态模型(交互次序)动态模型(交互次序)定义定义“何时做何时做”软件工程软件工程2.2 五个层次1. 主题层主题层对应活动对应活动识别识别主题主题2. 类与对象层类与对象层对应活动对应活动识别类与对象识别类与对象3. 结构层结构层对应活动对应活动识别结构识别结构4. 属性层属性层对应活动对应活动定义属性定义属性5. 服务层服务层对应活动对应活动定义服务定义服务软件工程软件工程复杂问题的对象模型的5个层次软件工程软件工程目 录3.3.需求陈述需求陈述4 4. .建立
5、功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7. .定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程3. 需求陈述书写要点书写要点问题范畴问题范畴功能需求功能需求性能需求性能需求应用环境应用环境假设条件假设条件软件工程软件工程例子:自动取款机(ATM)系统软件工程软件工程目 录3.3.需求陈述需求陈述4 4. .建立功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7.
6、.定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程4. 建立功能模型4.1 确定角色与用例确定角色与用例4.2 绘制用例图绘制用例图4.3 描述角色与用例描述角色与用例软件工程软件工程4.1 确定角色与用例确定角色确定角色储户储户银行职员银行职员确定用例确定用例取款取款 转帐转帐 通帐通帐增款增款结束结束软件工程软件工程4.2 绘制用例图绘制角色:绘制角色:储户储户银行职员银行职员绘制用例绘制用例取款取款 转帐转帐 通帐通帐增款增款结束结束软件工程软件工程4.3 描述角色与用例描述角色:描述角色:储户储户银行职员银行职员描述用例(描述功能、构造事件序列)描述用例(描述功
7、能、构造事件序列)取款取款 转帐转帐 通帐通帐增款增款结束结束软件工程软件工程软件工程软件工程目 录3.3.需求陈述需求陈述4 4. .建立功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7. .定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程5. 建立对象模型面向对象分析首要的工作面向对象分析首要的工作建立问题域的对象模型建立问题域的对象模型建立对象模型的信息来源建立对象模型的信息来源需求陈述需求陈述应用领域的专业知识应用领域的专业知识关于客观世界的常识关于客观世界的常
8、识软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对象5.2 确定关联确定关联5.3 划分主题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.1 确定类与对象找出候选的类与对象找出候选的类与对象参照参照5类分类类分类 可感知的物理实体、人或组织的角色、应该记忆的可感知的物理实体、人或组织的角色、应该记忆的事件、两个或多个对象的相互作用、需要说明的概事件、两个或多个对象的相互作用、需要说明的概念念非正式分析非正式分析筛选出正确的类与对象筛选出正确的类与对象依据下列标准删除不正确或不必要的类与对象依据下列标准删除不正
9、确或不必要的类与对象 冗余、无关、笼统、属性、操作、实现冗余、无关、笼统、属性、操作、实现软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对象5.2 确定关联确定关联5.3 划分主题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.2 确定关联 初步确定关联初步确定关联直接提取动词短语得出的关联直接提取动词短语得出的关联需求陈述中隐含的关联需求陈述中隐含的关联根据问题域知识得出关联根据问题域知识得出关联 筛选筛选已删去的类之间的关联已删去的类之间的关联与问题无关的或应在实现阶段考虑的关联与问题无关的或应在实现阶段考
10、虑的关联瞬时事件瞬时事件三元关联三元关联派生关联派生关联 进一步完善进一步完善正名正名分解分解补充补充标明重数标明重数软件工程软件工程ATM系统原始的类图软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对象5.2 确定关联确定关联5.3 划分主题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.3 划分主题把把ATM系统划分成三个主题系统划分成三个主题总行总行分行分行ATM软件工程软件工程5.3 划分主题软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对象5.2 确定关联确定关联5.3 划分主
11、题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.4 确定属性两个步骤:两个步骤:分析分析确定初步属性确定初步属性筛选筛选入选的属性,删除不正确或不必要的属性入选的属性,删除不正确或不必要的属性常见的错误情况:常见的错误情况:误把对象当成属性误把对象当成属性误把关联类的属性当成类属性误把关联类的属性当成类属性误把限定当成属性误把限定当成属性把内部状态当成属性把内部状态当成属性过于细化过于细化存在不一致的属性存在不一致的属性软件工程软件工程ATM系统对象模型中的属性软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对
12、象5.2 确定关联确定关联5.3 划分主题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.5 识别继承关系建立继承关系的两种方式:建立继承关系的两种方式:自底向上自底向上 抽象出已有类的共同性质泛化出父类。抽象出已有类的共同性质泛化出父类。自顶向下自顶向下 把现有的类细化成更加具体的类。把现有的类细化成更加具体的类。注意:注意:使用多继承可以提高共享程度,但也增加了概使用多继承可以提高共享程度,但也增加了概念和实现的复杂程度。使用多继承时,通常指念和实现的复杂程度。使用多继承时,通常指定一个主父类,从它继承大部分的属性和行为定一个主父
13、类,从它继承大部分的属性和行为,次要类只补充一些属性和行为。,次要类只补充一些属性和行为。软件工程软件工程带有继承关系的ATM对象模型软件工程软件工程5 建立对象模型的具体过程5.1 确定类与对象确定类与对象5.2 确定关联确定关联5.3 划分主题划分主题5.4 确定属性确定属性5.5 识别继承关系识别继承关系5.6 反复修改反复修改软件工程软件工程5.6 反复修改软件开发过程就是一个多次软件开发过程就是一个多次反复修改反复修改、逐、逐步完善的过程。步完善的过程。ATM可能做的修改可能做的修改分解现金兑换卡类分解现金兑换卡类事物由更新组成事物由更新组成把把“分行分行”和和“分行计算机分行计算机
14、”合并合并软件工程软件工程修改后的ATM对象模型软件工程软件工程目 录3.3.需求陈述需求陈述4 4. .建立功能模型建立功能模型5 5. .建立对象模型建立对象模型6 6. .建立动态模型建立动态模型2 2. .面向对象分析的基本过程面向对象分析的基本过程7. .定义服务定义服务1. .面向对象分析概述面向对象分析概述软件工程软件工程6. 建立动态模型开发交互式系统时,动态模型起很重要作用开发交互式系统时,动态模型起很重要作用步骤步骤编写编写典型交互行为的典型交互行为的脚本脚本。从脚本中从脚本中提取出事件提取出事件,确定触发每个事件的动作对象,确定触发每个事件的动作对象以及接受事件的目标对象
15、。以及接受事件的目标对象。排列事件发生的次序,确定每个对象可能有的状态及排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态间的转换关系,并用状态图描绘状态图描绘它们。它们。比较比较各个对象的状态图,检查它们之间的一致性,确各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。保事件之间的匹配。软件工程软件工程编写脚本脚本的概念脚本的概念系统在某一执行期间内出现的一系列事件。系统在某一执行期间内出现的一系列事件。描述用户与目标系统间的一个或多个典型的交描述用户与目标系统间的一个或多个典型的交互过程,以便对目标系统行为有更具体的认识互过程,以便对目标系统行为有更具体的认
16、识。编写脚本的目的编写脚本的目的保证不遗漏重要的交互步骤,有利于确保整个保证不遗漏重要的交互步骤,有利于确保整个交互过程的正确性和清晰性。交互过程的正确性和清晰性。注意注意编写脚本应首先编写正常情况下的脚本,然后编写脚本应首先编写正常情况下的脚本,然后考虑特殊情况,最后考虑出错时的情况。考虑特殊情况,最后考虑出错时的情况。软件工程软件工程ATM系统的正常情况脚本序号脚 本1ATM请储户插卡;储户插入一张现金兑换卡2ATM接受该卡并读它上面的分行代码和卡号3ATM要求储户输入密码;储户输入自己的密码,如“1234”等数字4 ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM说这张卡有效5ATM要求储户选择事务类型(取款、转账、查询等);储户选择“取款”6ATM要求储户输入取款额;储户输入如“880”等数字7 ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求转给分行,该分行成功地处理完这项事务并返回该账户的新余额8ATM输出现金并请储户拿走这些现金;储户拿走现金9ATM问储户是否继续这项事务;储户回答“不”10ATM打印账单,退出现金兑