软件工程
软件工程
软件工程 ■第2章软件项目的需求分析
软件工程 ◼ 第2章 软件项目的需求分析
需求建模的基本方法 ■3、面向对象模型 口面向对象的软件工程 ■面向对象分析ooA ■面向对象设计OoD ■面向对象编码OOP ■面向对象测试OoT
三、需求建模的基本方法 ◼ 3、面向对象模型 面向对象的软件工程 ◼ 面向对象分析OOA ◼ 面向对象设计OOD ◼ 面向对象编码OOP ◼ 面向对象测试OOT
需求建模的基本方法 口面向对象的建模工具一UML UML: Unified Modeling Language统一建模语言 口类图 Class Diagran 口对象图 Object Diagran 口包图 Package Diagran 口构件图 Component Diagram 口实施图 Deployment Diagram 口用例图 Use Case Diagram 口顺序图 Sequence Diagram 口协作图 Collaboration Diagram 口状态图 State Diagram 口活动图 Activity Diagran
三、需求建模的基本方法 面向对象的建模工具—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)用例图 用例图用于描述一组用例、参与者及它们之间的连 接关系。参与者可以是人,也可以是外部计算机系 统和外部进程。用例图仅仅从参与者使用系统的角 度描述系统中的信息,它并不描述这些功能在系统 内部是如何实现的
三、需求建模的基本方法 1)用例图 ◼ 用例图用于描述一组用例、参与者及它们之间的连 接关系。参与者可以是人,也可以是外部计算机系 统和外部进程。用例图仅仅从参与者使用系统的角 度描述系统中的信息,它并不描述这些功能在系统 内部是如何实现的
需求建模的基本方法 建立用例模型的过程 口①找出系统边界以外的角色( actor),角色是与系统 进行交互的外部实体,可以是与系统交互的人员、与 系统相连并交换信息的设备和其他系统; 口②从这些角色如何与系统进行交互的角度,使用用例 ( use case)来描述角色怎样使用系统,以及系统向 角色提供什么功能,用例所表示的是从外部用户角色 观察的系统功能; 口③绘制用例图,并编写详细的用例描述。用例图只能 宏观地描述系统的功能,但却不能提供用例模型所必 须的所有信息,每个功能的含义和具体实现步骤则以 文本方式描述
三、需求建模的基本方法 ◼ 建立用例模型的过程: ①找出系统边界以外的角色(actor),角色是与系统 进行交互的外部实体,可以是与系统交互的人员、与 系统相连并交换信息的设备和其他系统; ②从这些角色如何与系统进行交互的角度,使用用例 (use case)来描述角色怎样使用系统,以及系统向 角色提供什么功能,用例所表示的是从外部用户角色 观察的系统功能; ③绘制用例图,并编写详细的用例描述。用例图只能 宏观地描述系统的功能,但却不能提供用例模型所必 须的所有信息,每个功能的含义和具体实现步骤则以 文本方式描述
需求建模的基本方法 ■例5:学生注册课程系统 口某大学准备开发一个学生注册课程系统,学生可以使用该系统查询新 学期开设的和讲课教师的情沉;择自三要学习的退洗在鹭 课程和选课学生 行注册管理,包 搞继护橙记擊维意骤籍禮趸德用该系统进 在每个 鞋 历始,学生可以 出每 门课程的所有信息,诸 鴦紊喾熠的谬课磊目录漬纟裯髹屢梁姴。 口新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并 关闭课程注册。 选课程未选上的情况。每门课程最多不能超过20人,最少不能低于3 大,低于3人选课的课程将被取消。一旦学生的注册过程完毕,注册 系统将有关信息提交收费系统以便学生付费如果在实际注册过程中 名额已满,系统将 通知学生在提交课 程表之前予以更改 疲戆摺結赓黩统券鞅公蟊翁簍至牆跤謗肇法取学生成绩属于
三、需求建模的基本方法 ◼ 例5:学生注册课程系统 某大学准备开发一个学生注册课程系统,学生可以使用该系统查询新 学期开设的课程和讲课教师的情况,选择自己要学习的课程进行登记 注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的 课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进 行注册管理,包括维护教师信息、学生信息和课程信息等。 在每个学期开始,学生可以获得该学期的课程目录表,课程目录表列 出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。 新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并 允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。 每个学生可以选择不超过4门课程,同时指定2门候选课程已备出现主 选课程未选上的情况。每门课程最多不能超过20人,最少不能低于3 人,低于3人选课的课程将被取消。一旦学生的注册过程完毕,注册 系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中 名额已满,系统将通知学生在提交课程表之前予以更改。 在学期结束时,学生可以从系统查看电子成绩单。由于学生成绩属于 敏感信息,系统必须提供必要的安全措施以防非法存取
需求建模的基本方法 ■分析过程: 1、发现角色 ■角色是与系统交互的人或事。在UML语言中,角色 用一个小人的图形和名称来表示。 我们可以通过回答下列问题,进行系统角色的识别: 口谁使用系统的功能? 口谁需要借助系统完成日常工作? 口谁来维护和管理系统,以保证系统正常工作? 口系统控制的硬件设备有哪些? 口系统需要与其他哪些系统交互? 口谁对系统产生的结果感兴趣?
三、需求建模的基本方法 ◼ 分析过程: 1、发现角色 ◼ 角色是与系统交互的人或事。在UML语言中,角色 用一个小人的图形和名称来表示。 ◼ 我们可以通过回答下列问题,进行系统角色的识别: 谁使用系统的功能? 谁需要借助系统完成日常工作? 谁来维护和管理系统,以保证系统正常工作? 系统控制的硬件设备有哪些? 系统需要与其他哪些系统交互? 谁对系统产生的结果感兴趣?
需求建模的基本方法 ■学生注册课程系统的角色: 天天 教师 学生 注册管理员 收费系统
三、需求建模的基本方法 ◼ 学生注册课程系统的角色: 教 师 学 生 注册管理员 收费系统
需求建模的基本方法 口2、发现用例 用例代表一个完整的功能,如与角色通信、进行计算或在系统 内工作等。用例具有以下的特征: 口用例总是由角色初始化; 口用例为角色提供值 口用例具有完全性,即不管其内部是如何实现的,只有最终产生了 返回角色的结果,用例的执行才能完毕。 ■通过询问下列问题,我们可以发现用例 口角色需要从系统中获得什么功能?角色需要做什么? 口角色需要读取、产生、删除、修改或存储系统的某些信息吗? 口系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗? 口系统需要的输入输出信息是什么?这些信息从哪儿来到哪儿去? 口采用什么实现方法满足某些特殊要求?
三、需求建模的基本方法 2、发现用例 ◼ 用例代表一个完整的功能,如与角色通信、进行计算或在系统 内工作等。用例具有以下的特征: 用例总是由角色初始化; 用例为角色提供值; 用例具有完全性,即不管其内部是如何实现的,只有最终产生了 返回角色的结果,用例的执行才能完毕。 ◼ 通过询问下列问题,我们可以发现用例: 角色需要从系统中获得什么功能?角色需要做什么? 角色需要读取、产生、删除、修改或存储系统的某些信息吗? 系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗? 系统需要的输入/输出信息是什么?这些信息从哪儿来到哪儿去? 采用什么实现方法满足某些特殊要求?