软件工程软件工程
第 2章 软件项目的需求分析三、需求建模的基本方法
3、面向对象模型
面向对象的软件工程
面向对象分析 OOA
面向对象设计 OOD
面向对象编码 OOP
面向对象测试 OOT
三、需求建模的基本方法
面向对象的建模工具 —UML
UML,Unified Modeling Language 统一建模语言
类图 Class Diagram
对象图 Object Diagram
包图 Package Diagram
构件图 Component Diagram
实施图 Deployment Diagram
用例图 Use Case Diagram
顺序图 Sequence Diagram
协作图 Collaboration Diagram
状态图 State Diagram
活动图 Activity Diagram
三、需求建模的基本方法
1)用例图
用例图用于描述一组用例、参与者及它们之间的连接关系。参与者可以是人,也可以是外部计算机系统和外部进程。用例图仅仅从参与者使用系统的角度描述系统中的信息,它并不描述这些功能在系统内部是如何实现的。
三、需求建模的基本方法
建立用例模型的过程:
①找出系统边界以外的角色( actor),角色是与系统进行交互的外部实体,可以是与系统交互的人员、与系统相连并交换信息的设备和其他系统;
②从这些角色如何与系统进行交互的角度,使用用例
( use case)来描述角色怎样使用系统,以及系统向角色提供什么功能,用例所表示的是从外部用户角色观察的系统功能;
③绘制用例图,并编写详细的用例描述。用例图只能宏观地描述系统的功能,但却不能提供用例模型所必须的所有信息,每个功能的含义和具体实现步骤则以文本方式描述。
三、需求建模的基本方法
例 5:学生注册课程系统
某大学准备开发一个学生注册课程系统,学生可以使用该系统查询新学期开设的课程和讲课教师的情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。
在每个学期开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。
新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。每个学生可以选择不超过 4门课程,同时指定 2门候选课程已备出现主选课程未选上的情况。每门课程最多不能超过 20人,最少不能低于 3
人,低于 3人选课的课程将被取消。一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。
在学期结束时,学生可以从系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。
三、需求建模的基本方法
分析过程:
1、发现角色
角色是与系统交互的人或事。在 UML语言中,角色用一个小人的图形和名称来表示。
我们可以通过回答下列问题,进行系统角色的识别:
谁使用系统的功能?
谁需要借助系统完成日常工作?
谁来维护和管理系统,以保证系统正常工作?
系统控制的硬件设备有哪些?
系统需要与其他哪些系统交互?
谁对系统产生的结果感兴趣?
三、需求建模的基本方法
学生注册课程系统的角色:
教师 学生注册管理员 收费系统三、需求建模的基本方法
2、发现用例
用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。用例具有以下的特征:
用例总是由角色初始化;
用例为角色提供值;
用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。
通过询问下列问题,我们可以发现用例:
角色需要从系统中获得什么功能?角色需要做什么?
角色需要读取、产生、删除、修改或存储系统的某些信息吗?
系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗?
系统需要的输入 /输出信息是什么?这些信息从哪儿来到哪儿去?
采用什么实现方法满足某些特殊要求?
三、需求建模的基本方法
学生注册课程系统的用例
与教师有关的用例
选择课程 --选择所交课程,并获得学生名册;
登记成绩 --在学期结束时,提交学生的课程成绩;
与学生有关的用例
注册课程 --在学期开始进行选课注册,允许在一段时间内更改或删除,
课程目录文件提供当前学期的所有可选课程列表;
查看成绩单 --学生可以查看以前学期的电子成绩单。
与注册管理员有关的用例
维护课程信息 --在系统中增加、修改和删除课程信息;
维护学生信息 --在系统中增加、修改和删除学生信息;
维护教师信息 --在系统中增加、修改和删除教师信息。
关闭注册 --删除少于 3人的课程,并由付费系统通知学生交费。
与安全性要求有关的用例
登录 --使用此系统的人员需要进行登录,以验证其身份和权限。
三、需求建模的基本方法
用例图 收费系统选择课程登记成绩注册课程查看成绩单维护课程信息维护学生信息维护教师信息关闭系统教师学生登录注册管理员三、需求建模的基本方法
3、描述用例
用例描述实际上是关于角色与系统如何交互的规格说明,要求清晰明确,没有二义性。描述用例时,应该只注重外部能力,
不涉及内部细节。
用例描述主要包括以下内容。
1)目标
简要描述用例的最终任务和结果
2)事件流
说明用例是怎样启动的,即哪些角色在什么情况下启动执行用例。
说明角色和用例之间的信息处理过程,如哪些信息是通知对方的,怎样修改和检索信息的,系统使用和修改了哪些实体等。
说明用例在不同的条件下,可以选择执行的多种方案。
说明用例在什么情况下才能被视作完成,完成时结果应传给角色。
三、需求建模的基本方法
通常,事件流包括基本流程和可选流成两部分。基本流程说明了角色和系统之间相互交互或对话的顺序,
当这种交互结束时,角色便实现了预期目的;可选流程也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。在交互过程中,
基本流程可以在一些决策点上分解可选流程,然后再重新汇成一个基本流程。
3)特殊需求
说明此用例的特殊要求。
4)前提条件
说明此用例开始执行的前提条件,如角色登录成功等。
5)后置条件
说明此用例执行结束后,结果应传给什么角色。
三、需求建模的基本方法
学生注册课程系统中“登记成绩”的用例描述
登记成绩
1、目标本用例允许教师提交上学期完成的一门或多门课程的学生成绩。
2、事件流基本流程当教师希望提交上学期完成的一门或多门课程的学生成绩时,本用例开始执行。
(1)系统显示教师上学期所教的课程列表;
(2)教师选择所教课程;
(3)系统检索出已注册次课程的学生列表,显示每个学生及其以前所给的成绩;
(4)对于列表中的每个学生,教师输入百分之成绩,系统记录所提供课程的学生成绩。如果教师希望跳过某个特定的学生,其相应的成绩可以为空,以后再进行填写。教师可以修 改学生的成绩。
可选流程在主流程中,如果教师在上学期没有教课,系统将显示错误信息,教师接受此信息,用例结 束。
3、特殊要求无
4、前提条件用例开始之前,教师必须在系统登录成功。
5、后置条件如果用例执行成功,所提供课程的学生成绩被更新;否则,系统状态不变,
三、需求建模的基本方法
练习:网上招聘系统
本项目是为北京某公司开发的一个网上招聘系统,由于这个公司的规模比较大,需要招聘的员工也很多,每次招聘总能收到成千上万的简历,如何挑选合适的应聘者常常是公司比较棘手的事情,
为人力资源部的工作人员带来很多的工作量。为此公司希望有一个自动化的招聘系统能够给他们带来工作的便利,提高工作效率,
同时能及时招聘到满意的人才。
为该公司开发的网上招聘系统可以协助人力资源部完成如下工作。
公司人力资源部的工作人员通过这个招聘系统维护知识题库,编制问卷,发布职位和与这个职位相应的问卷;应聘者可以通过网上提交自己的简历并同时回答相应的问卷。人力资源部的工作人员通过这个招聘系统可以统计整理这些简历,并根据应聘者的简历和问卷分数提取出需要面试的人员,然后按照一定的方式通知面试人员参加面试,在面试过程中,记录相应的面试结果。人力资源部的工作人员可以随时浏览人员简历和面试的相关信息。
系统分为客户端和管理端,客户端主要功能是提供应聘者的职位查询、简历录入、回答问卷、简历提交等。管理端的功能提供公司人力资源管理人员( HR)进行的知识库管理、问卷管理、职位三、需求建模的基本方法
讨论,高校教务管理系统的用例划分及用例描述
Actor:教务处工作人员,学生,教师,主管领导
Use Case,表 2-4 高校教务系统用例划分
用例图三、需求建模的基本方法
2)用例文档
用例文档记录用例描述。用例补充文档记录用例描述之外需要说明的信息。
用例文档示例
用例补充文档中主要描述用例执行过程中的界面原型,以及用例执行过程中涉及到的业务规则。
四、需求分析
本过程是指需求确认过程。
该过程依据用户提出的初始需求,通过各方评审检查需求的可行性、合理性、完整性和一致性,与用户在对需求的理解上达成共识,并确定相关各方的责任。最终在理解一致的基础上形成需求规格。
四、需求分析
需求规格文档四、需求分析
补充:用例的识别
1)协商一个供给合同
2)处理退货
3)登录
那个是有效用例?
四、需求分析
,对应用的需求分析而言,在哪一层描述用例更有用?”
基本业务过程( EBP)
业务过程工程领域的一个术语
其定义为,EBP是有某人在某地为响应某个业务事件而一次所完成的一个任务,它为系统添加了可度量的业务值,并把数据放在一个一致的状态中。
四、需求分析
用例的识别就可以分为两步:
1)识别用户目标;
2)为每个用户目标定一个用例。
五、案例分析
网上招聘系统三、需求建模的基本方法
分析:
1、发现角色
管理用户 —管理端子系统
应聘者 —客户端子系统管理用户管理端子系统应聘者客户端子系统三、需求建模的基本方法
HR
试题管理者:管理题目,组织相关问卷。
职位发布者:根据公司的需要发布相应的职位。
面试管理者:整理应聘者简历,
对简历合格人员进行面试。
系统管理员
通过管理端对系统用户进行管理的人员,这个角色主要负责对管理端用户的增删,权限的设置等功能。
管理用户
HR
系统管理员试题管理者 职位发布者 面试管理者三、需求建模的基本方法
2、发现用例
与应聘者有关的用例:职位查询、简历输入、问卷回答职位选择简历输入应聘者问卷回答三、需求建模的基本方法
与管理用户有关的用例:知识库管理、问卷管理、
职位发布、简历管理、用户管理职位发布者职位管理简历管理面试管理者面试管理题库管理 试题管理者问卷管理登录管理系统管理员用户管理
第 2章 软件项目的需求分析三、需求建模的基本方法
3、面向对象模型
面向对象的软件工程
面向对象分析 OOA
面向对象设计 OOD
面向对象编码 OOP
面向对象测试 OOT
三、需求建模的基本方法
面向对象的建模工具 —UML
UML,Unified Modeling Language 统一建模语言
类图 Class Diagram
对象图 Object Diagram
包图 Package Diagram
构件图 Component Diagram
实施图 Deployment Diagram
用例图 Use Case Diagram
顺序图 Sequence Diagram
协作图 Collaboration Diagram
状态图 State Diagram
活动图 Activity Diagram
三、需求建模的基本方法
1)用例图
用例图用于描述一组用例、参与者及它们之间的连接关系。参与者可以是人,也可以是外部计算机系统和外部进程。用例图仅仅从参与者使用系统的角度描述系统中的信息,它并不描述这些功能在系统内部是如何实现的。
三、需求建模的基本方法
建立用例模型的过程:
①找出系统边界以外的角色( actor),角色是与系统进行交互的外部实体,可以是与系统交互的人员、与系统相连并交换信息的设备和其他系统;
②从这些角色如何与系统进行交互的角度,使用用例
( use case)来描述角色怎样使用系统,以及系统向角色提供什么功能,用例所表示的是从外部用户角色观察的系统功能;
③绘制用例图,并编写详细的用例描述。用例图只能宏观地描述系统的功能,但却不能提供用例模型所必须的所有信息,每个功能的含义和具体实现步骤则以文本方式描述。
三、需求建模的基本方法
例 5:学生注册课程系统
某大学准备开发一个学生注册课程系统,学生可以使用该系统查询新学期开设的课程和讲课教师的情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。
在每个学期开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。
新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。每个学生可以选择不超过 4门课程,同时指定 2门候选课程已备出现主选课程未选上的情况。每门课程最多不能超过 20人,最少不能低于 3
人,低于 3人选课的课程将被取消。一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。
在学期结束时,学生可以从系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。
三、需求建模的基本方法
分析过程:
1、发现角色
角色是与系统交互的人或事。在 UML语言中,角色用一个小人的图形和名称来表示。
我们可以通过回答下列问题,进行系统角色的识别:
谁使用系统的功能?
谁需要借助系统完成日常工作?
谁来维护和管理系统,以保证系统正常工作?
系统控制的硬件设备有哪些?
系统需要与其他哪些系统交互?
谁对系统产生的结果感兴趣?
三、需求建模的基本方法
学生注册课程系统的角色:
教师 学生注册管理员 收费系统三、需求建模的基本方法
2、发现用例
用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。用例具有以下的特征:
用例总是由角色初始化;
用例为角色提供值;
用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。
通过询问下列问题,我们可以发现用例:
角色需要从系统中获得什么功能?角色需要做什么?
角色需要读取、产生、删除、修改或存储系统的某些信息吗?
系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗?
系统需要的输入 /输出信息是什么?这些信息从哪儿来到哪儿去?
采用什么实现方法满足某些特殊要求?
三、需求建模的基本方法
学生注册课程系统的用例
与教师有关的用例
选择课程 --选择所交课程,并获得学生名册;
登记成绩 --在学期结束时,提交学生的课程成绩;
与学生有关的用例
注册课程 --在学期开始进行选课注册,允许在一段时间内更改或删除,
课程目录文件提供当前学期的所有可选课程列表;
查看成绩单 --学生可以查看以前学期的电子成绩单。
与注册管理员有关的用例
维护课程信息 --在系统中增加、修改和删除课程信息;
维护学生信息 --在系统中增加、修改和删除学生信息;
维护教师信息 --在系统中增加、修改和删除教师信息。
关闭注册 --删除少于 3人的课程,并由付费系统通知学生交费。
与安全性要求有关的用例
登录 --使用此系统的人员需要进行登录,以验证其身份和权限。
三、需求建模的基本方法
用例图 收费系统选择课程登记成绩注册课程查看成绩单维护课程信息维护学生信息维护教师信息关闭系统教师学生登录注册管理员三、需求建模的基本方法
3、描述用例
用例描述实际上是关于角色与系统如何交互的规格说明,要求清晰明确,没有二义性。描述用例时,应该只注重外部能力,
不涉及内部细节。
用例描述主要包括以下内容。
1)目标
简要描述用例的最终任务和结果
2)事件流
说明用例是怎样启动的,即哪些角色在什么情况下启动执行用例。
说明角色和用例之间的信息处理过程,如哪些信息是通知对方的,怎样修改和检索信息的,系统使用和修改了哪些实体等。
说明用例在不同的条件下,可以选择执行的多种方案。
说明用例在什么情况下才能被视作完成,完成时结果应传给角色。
三、需求建模的基本方法
通常,事件流包括基本流程和可选流成两部分。基本流程说明了角色和系统之间相互交互或对话的顺序,
当这种交互结束时,角色便实现了预期目的;可选流程也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。在交互过程中,
基本流程可以在一些决策点上分解可选流程,然后再重新汇成一个基本流程。
3)特殊需求
说明此用例的特殊要求。
4)前提条件
说明此用例开始执行的前提条件,如角色登录成功等。
5)后置条件
说明此用例执行结束后,结果应传给什么角色。
三、需求建模的基本方法
学生注册课程系统中“登记成绩”的用例描述
登记成绩
1、目标本用例允许教师提交上学期完成的一门或多门课程的学生成绩。
2、事件流基本流程当教师希望提交上学期完成的一门或多门课程的学生成绩时,本用例开始执行。
(1)系统显示教师上学期所教的课程列表;
(2)教师选择所教课程;
(3)系统检索出已注册次课程的学生列表,显示每个学生及其以前所给的成绩;
(4)对于列表中的每个学生,教师输入百分之成绩,系统记录所提供课程的学生成绩。如果教师希望跳过某个特定的学生,其相应的成绩可以为空,以后再进行填写。教师可以修 改学生的成绩。
可选流程在主流程中,如果教师在上学期没有教课,系统将显示错误信息,教师接受此信息,用例结 束。
3、特殊要求无
4、前提条件用例开始之前,教师必须在系统登录成功。
5、后置条件如果用例执行成功,所提供课程的学生成绩被更新;否则,系统状态不变,
三、需求建模的基本方法
练习:网上招聘系统
本项目是为北京某公司开发的一个网上招聘系统,由于这个公司的规模比较大,需要招聘的员工也很多,每次招聘总能收到成千上万的简历,如何挑选合适的应聘者常常是公司比较棘手的事情,
为人力资源部的工作人员带来很多的工作量。为此公司希望有一个自动化的招聘系统能够给他们带来工作的便利,提高工作效率,
同时能及时招聘到满意的人才。
为该公司开发的网上招聘系统可以协助人力资源部完成如下工作。
公司人力资源部的工作人员通过这个招聘系统维护知识题库,编制问卷,发布职位和与这个职位相应的问卷;应聘者可以通过网上提交自己的简历并同时回答相应的问卷。人力资源部的工作人员通过这个招聘系统可以统计整理这些简历,并根据应聘者的简历和问卷分数提取出需要面试的人员,然后按照一定的方式通知面试人员参加面试,在面试过程中,记录相应的面试结果。人力资源部的工作人员可以随时浏览人员简历和面试的相关信息。
系统分为客户端和管理端,客户端主要功能是提供应聘者的职位查询、简历录入、回答问卷、简历提交等。管理端的功能提供公司人力资源管理人员( HR)进行的知识库管理、问卷管理、职位三、需求建模的基本方法
讨论,高校教务管理系统的用例划分及用例描述
Actor:教务处工作人员,学生,教师,主管领导
Use Case,表 2-4 高校教务系统用例划分
用例图三、需求建模的基本方法
2)用例文档
用例文档记录用例描述。用例补充文档记录用例描述之外需要说明的信息。
用例文档示例
用例补充文档中主要描述用例执行过程中的界面原型,以及用例执行过程中涉及到的业务规则。
四、需求分析
本过程是指需求确认过程。
该过程依据用户提出的初始需求,通过各方评审检查需求的可行性、合理性、完整性和一致性,与用户在对需求的理解上达成共识,并确定相关各方的责任。最终在理解一致的基础上形成需求规格。
四、需求分析
需求规格文档四、需求分析
补充:用例的识别
1)协商一个供给合同
2)处理退货
3)登录
那个是有效用例?
四、需求分析
,对应用的需求分析而言,在哪一层描述用例更有用?”
基本业务过程( EBP)
业务过程工程领域的一个术语
其定义为,EBP是有某人在某地为响应某个业务事件而一次所完成的一个任务,它为系统添加了可度量的业务值,并把数据放在一个一致的状态中。
四、需求分析
用例的识别就可以分为两步:
1)识别用户目标;
2)为每个用户目标定一个用例。
五、案例分析
网上招聘系统三、需求建模的基本方法
分析:
1、发现角色
管理用户 —管理端子系统
应聘者 —客户端子系统管理用户管理端子系统应聘者客户端子系统三、需求建模的基本方法
HR
试题管理者:管理题目,组织相关问卷。
职位发布者:根据公司的需要发布相应的职位。
面试管理者:整理应聘者简历,
对简历合格人员进行面试。
系统管理员
通过管理端对系统用户进行管理的人员,这个角色主要负责对管理端用户的增删,权限的设置等功能。
管理用户
HR
系统管理员试题管理者 职位发布者 面试管理者三、需求建模的基本方法
2、发现用例
与应聘者有关的用例:职位查询、简历输入、问卷回答职位选择简历输入应聘者问卷回答三、需求建模的基本方法
与管理用户有关的用例:知识库管理、问卷管理、
职位发布、简历管理、用户管理职位发布者职位管理简历管理面试管理者面试管理题库管理 试题管理者问卷管理登录管理系统管理员用户管理