目录

软件工程复习

软件工程复习

文章目录

知识点

https://i-blog.csdnimg.cn/blog_migrate/68d5ada1d82def5dbfa61f70d492961e.png

https://i-blog.csdnimg.cn/blog_migrate/1805f221f7eba6dcbd38f0571b72d817.png https://i-blog.csdnimg.cn/blog_migrate/fcdb92642327ccd36ed6a01e3e1709ef.png https://i-blog.csdnimg.cn/blog_migrate/a1fb7684fb9fb01275542cac81b61392.png https://i-blog.csdnimg.cn/blog_migrate/fd5748f51b6b190cbe5a69adb64d9402.png https://i-blog.csdnimg.cn/blog_migrate/9048de101c8b662797b3adf8a7bac5f1.png

visio

DFD图

某学校教材购销系统有以下功能:学生买书,首先填写购书单,系统根据各班学生用书表及售书登记表审查有效性。若有效,系统会根据教材库存表进一步判断书库是否有书;若有书,把领书单返回给学生,学生凭领书单到书库领书。对脱销的教材,系统用缺书单的形式向书库保管员通知,新书购进库后,也由书库保管员将进书通知返回给系统。

一、 就以上系统功能画出分层的DFD图。

  1. 分析源点、终点,输入、输出数据流,画出顶层数据流图。

    源点、终点:学生和书库保管员。数据流:购书单、领书单、缺书单、进书通知单。

    https://i-blog.csdnimg.cn/blog_migrate/f0820fa5e6a97962c71967f54ce4303b.png

  2. 根据与源点直接相关的功能对系统进行拆分,划分出系统主要功能,添加数据存储,画出0层功能级数据流图。

    两大主要功能分别为:销售和采购

    数据存储:教材库存表、缺书登记

https://i-blog.csdnimg.cn/blog_migrate/40e5739de2d6482e8c403838266f5e24.png

  1. 把主要功能作为子系统进一步分析,画出细化的1层数据流图,注意父图与子图的平衡。

  2. 销售子系统DFD:

数据流:购书单、有效购书单、用书信息、售书信息、库存清单、进书通知、暂缺书单、缺书信息、补售书单、发票信息、发票、领书单

数据存储:教材库存表、缺书登记表、学生用书表、售书登记表

https://i-blog.csdnimg.cn/blog_migrate/4af4ceba946532dd1af89300f7e80ea9.png

数据流图

(1) 在“文件”菜单上,单击“打开”。

(2) 在“打开”对话框中,选择“我的数据流模型.vst”,单击“打开”。

(3) 在绘图页中绘制指定数据流图。

(4) 将文件保存为“学号姓名.vsd”。

  1. 人事档案管理系统:主要对人事信息进行数据维护和数据利用,包括个人基本信息、婚姻信息、学历信息、考勤信息和工资信息的插入、删除和修改,人事信息的查询、浏览、打印、分类汇总、统计和生成分析报表。

    人事档案管理业务的处理过程是:用户填写档案表,交到人事部门进行审核,审核合格后,登记到单位人事档案表中,档案管理员有权对人事档案表中的数据进行增加、修改和删除,从而保持人事档案表中的数据与实际情况一致。相关部门可以通过查询人事档案表得到单位的最新人事信息,人事部门也可以通过人事档案表编制相应的统计报表提供给需要的相关部门。

分析:本系统的数据源点为“用户”,终点是“相关部门”。档案管理员是使用本系统的工作人员,并非将数据输入系统的“数据源点”,人事部门也可以属于“相关部门”,所以这两项都不是数据源点和终点。

系统的处理功能总结一下,主要是“收集数据”、“处理数据”和“利用数据”。

为了完成上述功能,显然数据存储应包括:“未审核的人事数据”、“人事档案”及“报表”。

https://i-blog.csdnimg.cn/blog_migrate/a047598ac36d364e5fc61f845abadaa6.png https://i-blog.csdnimg.cn/blog_migrate/16ba2170ed0d6fd0167e3fd093f33ea2.png 需要细化的是“处理数据”和“利用数据”,可以放到下一层数据流图中描述:“处理数据”可细化为“审核数据”、“修改更新数据”、“查询打印数据”;“利用数据”又可细化为“汇总数据”、“统计数据”、“分析数据”和“查询打印表格”。 https://i-blog.csdnimg.cn/blog_migrate/99b288e4cbb5db307e15e08709b55820.png

采购子系统DFD:

数据流:进书通知单、缺书单、缺书信息、总缺书信息、库存清单、待购量信息、待购信息、教材信息

数据存储:教材库存表、缺书登记表、待购教材表、教材一览表、进书登记表

https://i-blog.csdnimg.cn/blog_migrate/5b77fa6bc749a6b6d15e42baf0703f00.png

数据流图转化为系统结构图

  1. 分析0层功能级数据流图,转化为初始系统结构图。

    https://i-blog.csdnimg.cn/blog_migrate/2e897a0af81da53048371ec30a701b21.png

  2. 进一步分析1层数据流图,精化出子系统的基本结构。

    https://i-blog.csdnimg.cn/blog_migrate/db470ff201fea4f920127654efa6a73a.png

    https://i-blog.csdnimg.cn/blog_migrate/8599f84287bf06340aa715b7cc70a0ed.png

    https://i-blog.csdnimg.cn/blog_migrate/e1db4ed8c943dc66b06330267ed11004.png

  3. 逐步求精系统结构图,确定各子系统各个模块。

    https://i-blog.csdnimg.cn/blog_migrate/ac4902b3783554412b870321c60686c4.png

    https://i-blog.csdnimg.cn/blog_migrate/d827caf82090b632318f77e84f4a5ffd.png

绘制ER图

二、 绘制ER图:

使用刚才完成的ER模板,绘制ER图。

  1. 根据电影、影星和制片公司的描述绘制ER图:

    电影、影星和制片公司为三个实体,电影的属性是:名称、生产日期、长度、影片类型,影星的属性为:姓名、电子邮件地址,制片公司的属性是:公司名称、地址。分析三个实体的联系,绘制ER图。

    (1) 在“文件”菜单上,单击“打开”。

    (2) 在“打开”对话框中,选择“ER.vst”,单击“打开”。

    (3) 在绘图页中完成上面描述的ER图绘制。

    (4) 将文件保存为“学号姓名.vsd”。

    https://i-blog.csdnimg.cn/blog_migrate/4dd1934b69f21089535d32fff53a9af3.png

数据流图转换为绘制软件结构图

  1. 某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:

    生产科的任务是:

    (1) 根据销售公司转来的内部合同(产品型号、规格、数量、交货日期)制定车间的月生产计划。

    (2) 根据车间实际生产日报表和周报表来调整月生产计划。

    (3) 以月生产计划为依据,制定产品组装月计划。

    (4) 将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间。

    技术科的任务是:

    (1) 根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。

    (2) 根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。

    试写出以上系统中生产科和技术科处理的软件结构图。

生产科处理软件结构图

https://i-blog.csdnimg.cn/blog_migrate/3654eaaebfbb159148ccc433d6b5a55d.png

技术科处理软件结构图

https://i-blog.csdnimg.cn/blog_migrate/a0832e00ada49b1140611d954c751a87.png

rose

Rose中创建类图

一、 创建类图:

介绍类图的基本绘制方法。根据以下步骤完成“选课系统”类图的设计。需求陈述如下:某学校网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。

  1. 确定选课系统中的类:

  2. 新建类(以课程类为例):

    (1) 右键单击浏览器中的Logical View,在弹出菜单上,选择“New→Class”,并为类命名为“Course”。

    (2) 右键单击“Course”,在弹出菜单上,选择“New→Attribute”。输入属性名称,如:“name”,并设置各种固有特性,比如:类型(Type)、版型(Stereoptype)、初始值(Initial)、存取控制(Export Control)等。在Detail选项卡中进一步设置属性,属性的“Containment”特征表示属性如何存放在类中。“By Value”表示属性放在类中,“By Reference”表示属性放在类外,类指向这个属性。“Unspecified”表示还没有指定控制类型,应在生成代码之前指定By Value 或 By Reference。

    (3) 右键单击“Course”,在弹出菜单上,选择“New→Operation”。输入操作名称,如:“GetName”,。选择“GetName”按下鼠标右键,选择“Open Specification”,在弹出的对话框中可以设置操作的固有特性。(操作或属性都有存取控制的选项,操作的存取控制的选项默认值是公有的,属性的存取控制的选项默认值是私有的。

  3. 创建类图:

    (1) 右键单击浏览器中的Logical View,在弹出菜单上,选择“New→Class Diagram”,并为类命名为“选课系统类图”。

    (2) 双击“选课系统类图”,将各个类和角色拖至编辑区中。角色间的关联关系可以直接看到。

    (3) 选中角色“People”,右键单击选择“New Attribute”,给People增加一个私有属性“name”。

    (4) 类的显示时,可将类的属性和操作的“Show All Attributes”和“Show All Operations”设置为不选,将类的属性和操作隐藏起来。

  4. 创建各类之间关系:

    (1) 如一个用户界面对象和0个或多个学生相关。在类图的工具栏中选择“unidirectional association”图标,按下鼠标左键,从Student指向FormObject使之建立关联。

    (2) 选择Student和FormObject之间的关联,按下鼠标右键,在弹出的菜单中选择“Open Specification”,在对话框中可以设置关联的属性。关联两端的对象,箭头指向的称为“Role A”记作“theFormObject”,另一端为“Role B”。

    (3) 点击“Role B Detail”选项卡,将Multiplic设置成0…n,再点击“Role A Detail”选项卡,将Multiplic设置成1。

    (4) 在类图中添加和修改聚集关系。

    (5) 根据自己分析的结果,完成类间关系的创建。

  5. 保存类图:

    在“文件”菜单上,指向“保存”,以“学号姓名. mdl”来保存模型文件。

    https://i-blog.csdnimg.cn/blog_migrate/f80d343e6c80f6ceac9f652ff8fecabf.png

用例图

一、 在自动饮料售货机中,除了买饮料的顾客,还有以下活动者: a)供应商,向自动饮料售货机添加饮料 b)收银员,从自动饮料售货机收钱。后面两类人在使用自动饮料售货机时,都涉及打开和关闭该机器。请画出它们的用例图。

https://i-blog.csdnimg.cn/blog_migrate/c18c0a5c45e81233de6c2b11b7ef16d3.png

建立对象模型

四、 一本书的组成包括一个封面,一个目录,一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,每节有0个或多个插图,还有0个或多个表格,最后有一个附录。试建立该书的对象模型。 https://i-blog.csdnimg.cn/blog_migrate/e6353b1ae2c5f1b3a0f6a24f0d375506.png

Rose中创建状态图

一、 创建状态图:

介绍状态图的基本绘制方法。根据以下步骤完成“选课系统”状态图的设计。

一个课程类的状态变化如下:课程对象被创建,添加到数据库中。管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课。学期结束,课程的状态终止。

  1. 确定选课系统中的主要状态:

    我们可抽取出除了初态和终态之外的六个状态:已创建、已修改、已删除、存放在数据库、可选、不可选。下面就来创建状态图。

  2. 新建状态图(以课程类的状态图为例):

    (1) 右键单击浏览器中的Logical View,在弹出菜单上,选择“New→StateChart Diagram”,创建一个新的状态图,并将状态图的名字改成“Course”。

    (2) 双击“Course”状态图,在工具栏中选择起始状态图标(Start State),放到状态图窗口中,再选择一个状态框图标(State),放到状态图中,将状态框的名字改成“Created”。

    (3) 双击“Created”状态,在弹出对话框中的Documentation文本框中输入“创建课程对象”。

  3. 创建其他状态及它们之间的转换:

    (1) 在工具栏中选择“State Transition”图标,在状态图中从起始状态指向 “Created”状态,在二者之间建立一个转换。

    (2) 双击转换,弹出“State Transition Specification”对话框,在“Event”栏中键入“Create Course”。点击Detail选项卡,在其中输入转移的其他信息,如:设置守卫条件“need create a course”,(当然需要的话还可以设置Action活动:与一个转移相关联,在较少时间内完成。)按下“OK”按钮,返回到状态图窗口。

    (3) 双击“Created”状态,在弹出对话框中点击“Actions”选项卡,设置这个状态下的Activity(活动:与一个状态关联,当一个状态进入时开始,需要一段时间执行,可以被中断。)。将光标置于列表框中,按下鼠标右键,在弹出的菜单中选择Insert。列表中添加了一个Activity。双击这个Activity,弹出Action Specification 对话框,在Name文本框中输入“Get Course Info”。按下“OK”按钮,返回到状态图窗口。

    (4) 采用同样的方法添加状态和转移,完成状态图。

  4. 保存状态图:

    在“文件”菜单上,指向“保存”,以“学号姓名. mdl”来保存模型文件。

    https://i-blog.csdnimg.cn/blog_migrate/97321ccd8c826483bbae51e2fff93455.png

    https://i-blog.csdnimg.cn/blog_migrate/fb1a85d6c98de22c08e0388830d8239b.png