结构化分析实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程概论上机实习任务与指导书
计算机与信息工程系教师:***
实验一“图书馆系统”结构化需求分析
1、上机任务:
用结构化需求分析方法完成下列任务:
1)对“图书馆系统”问题进行描述;
2)对该系统进行功能分析;
3)建立数据流图;
4)建立实体-关系图;
5)建立数据字典;
参考资料:
图书馆系统的问题描述
①一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。
②图书馆可以维护(注册、更新和删除)图书资料。
③图书馆管理员负责与借书者打交道。
④借书者可以预约目前借不到的书或杂志。
⑤所有人员都可以浏览图书馆的图书信息和各种告示。
⑥系统能在流行的技术环境下运行,有一个良好的图形交互界面。
⑦系统应具有良好的可扩展性。
图书馆系统功能分析
①浏览功能:所有人员都可以浏览图书馆的图书信息。
②借还功能:借书者可以借/续借、还、预约图书。
③图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。
④借书者管理:系统管理人员可以进行注册、更改、注销借书者信息等维护工作。
建立数据流图
分析图书馆系统有哪些外部用户,即角色。
图书馆系统主要有一般浏览者、借书者、一般管理员和系统管理员四类外部用户。
图3.16图书馆系统的基本逻辑模型
借/还功能数据流图
维护功能数据流图
图3.17 借/还功能(第一步)DFD 图3.18 借/还功能(修改)
DFD
图3.19 维护功能(第一步)DFD 图3.20 维护功能(修改) DFD
图借书功能细化的数据流图
建立实体-关系图
图书馆系统有“图书”和“借书者”两个实体。
在数据流图的分析中发现“图书”实体,没有真正区别借书和预约的关系。
借书者是借一本具体的书,即“书目”,而预约图书指的是此类书,而不是指具体的某册书目。
因此,要用“标题”实体区分二者,即预约的是书的“标题”,而不是“书目”。
外部实体除了“借书者”,还有“系统管理员”。
因此,必须考虑有严格授权进入的权限。
图书馆系统实体-关系图
图3.22 图书馆系统的实体-关系图
建立数据字典
图书馆系统的图书信息分为“标题”和“书目”。
标题描述抽象的书的信息,书目则是具体的每一本书的信息。
实验二“图书馆系统”OOA需求分析
1、上机实习目的
理论联系实际,掌握面向对象分析(OOA)和面向对象设计(OOD)技术,掌握软件开发过程中的需求分析与软件结构设计的基本方法。
2、上机实习内容
“图书馆信息管理系统”的需求分析与软件结构设计;
3、上机实习要求
a)首先对该系统进行非形式化描述、并进行功能需求分析;
b)采用面向对象分析(OOA)的方法,用可视建模语言UML,给出该系统的用例视
图、类图、借/还书功能的时序图和协作图、以及借/还书业务层的活动图;
c)采用面向对象设计(OOD)的方法,用可视建模语言UML,给出该系统的体系结
构图、商业类模型、带有借书窗口的时序图、系统架构。
4、上机实习软件环境要求
Visio或Rational Rose,OFFICE XP软件。
5.实习报告提交要求
用WORD软件将实习内容、成果整理成文档,统一用A4纸打印,要求有封面和实习总结。
1)问题描述:
①一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。
②图书馆可以维护(注册、更新和删除)图书资料。
③图书管理员在系统的支持下,负责与借书者打交道。
④借书者可以预约目前借不到的书或杂志。
⑤所有人员都可以浏览图书馆的图书信息和各种告示。
⑥系统能够在所有流行的技术环境下运行,有一个良好的图形交互界面。
⑦系统应该具有良好的可扩展性。
2)图书馆系统的OOA
采用面向对象方法开发的图书馆系统,主要从借书者的角度分析系统的各种行为。
图书馆系统有借书者、管理员、系统管理员和一般浏览者四种角色。
1. 建立用例模型
①给出图书馆系统的用例视图。
②给出系统每个用例的脚本描述,包括正常情景和异常情景的脚本描述。
图书馆系统的用例视图
最终的类:借书者、图书标题、图书书目、借/还、预约。
建立图书馆系统的类图。
图书馆系统的类图
4. 动态建模 图书馆系统借书(未预约)功能的动态建模可以选择使用时序图、协作图、状态图和活动图描述。
图书馆系统的时序图
图书馆系统的协作图
图5.13 图书馆系统的类图
图5.14 图书馆系统借书功能的时序图
1.
图书馆系统的活动图
图5.16 图书馆系统借/还书业务层的活动图
实验三“图书馆系统”OOD设计
图书馆系统的OOD
1.领域建模
对图书馆系统进一步分析,将系统中的领域和关键类条理化,得出商业域类模型。
图书馆系统类操作的细化,分析时通过协作图、时序图、活动图等给出描述了。
其中,当使用时序图建模时,很显然需要窗口(或对话框)作为与角色的接口。
借书、还书、预约、续借等都需要窗口,维护窗口也是必要的。
图书馆系统商业域类模型
图5.27 带有借书窗口的时序图
2.结构设计 图书馆系统的架构用UML 的包图描述 。
图书馆系统架构设计成四个子系统包: ① 用户接口包 ② 业务对象包 ③ 数据库包 ④ 应用包
图书馆系统的系统架构包图
3.细节设计
UML 中的动态模型被用来显示类的对象在指定的情况下如何动作,用例描述被用来验证用例在设计中的处理。
还必须进行以下一些类/对象的细节设计: ⑴ 永久存储对象 ⑵ 细化业务对象 ⑶ 用户界面类
图书馆系统(部分)类属性和操作
图5.25 图书借阅子系统
例如,在图书馆的借/还书功能中,若现在要考虑预约功能,那么只需要增加一个预约类,同时在“Borrower”类中增加预约操作就可以了。
实验四电梯控制系统OOA需求分析
问题描述:
11
在一幢有m 层的大厦中安装一套n 部电梯的产品,按照下列条件求解电梯在各楼层之间移动的逻辑关系: ① 每部电梯有m 个按钮,每一个按钮代表一个楼层。
当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,当到达相应楼层时指示灯熄灭。
② 除了最底层和最高层之外,每一层楼都有两个按钮分别指示电梯上行和下行。
按钮按下时指示灯亮,当电梯到达此楼层时指示灯熄灭,并向所需要的方向移动。
③ 当电梯无升降运动时,关门并停在当前楼层。
电梯控制系统的OOA
1. 类建模 非形式化描述:在一幢m 层楼的大厦里,用电梯内的和每个楼层的按钮来控制n 部电梯的运行。
当按下电梯按钮以请求在某一指定楼层停下时,按钮指示灯亮;当请求获得满足时,指示灯熄灭。
当电梯无升、降操作时,关门,并停在当前楼层。
标识候选类:三个候选类电梯、按钮和门,按钮的两个子类电梯按钮和楼层按钮。
电梯系统的类模型(1)
2. 动态建模 给出正常的和异常的用例描述。
根据用例描述,给出电梯系统的时序图或协作图。
电梯控制器在电梯系统中起到至关重要的作用。
为了更清楚地分析控制器的细节,可以建立电梯控制器的状态图。
电梯系统的时序图
图5.18 电梯系统的基本类模型(第二次迭代)
图5.20 电梯系统的协作图
开始 没有待处理的请求,电梯关门
实验五电梯控制系统OOD设计
电梯控制系统的OOD
1. 确定类的行为(方法)
◆电梯系统有7个类模型,即按钮、电梯、电梯按钮、电梯门、电梯控制器、楼层按钮、请求。
◆电梯系统的功能模型必须包含设计的各种行为描述,反映行为的数据如何流动,而不反映行为的次序。
一个行为可以分配给一个对象,也可以分配给向这个对象发送消息的客户。
分配行为的方法:一是基于信息隐蔽原则,二是使用责任驱动的设计。
◆把行为(方法)分配给不同的类,可得到电梯控制系统的类列表。
电梯系统的功能模型
. 根据对象的客户设计产品◆面向对象产品的结构通常是由一个简单的主程序来启动一个产品,然后所有的工作由各个对象来接管。
◆必须找出不是其他对象的客户的那些对象进行初始化,这由main方法完成。
◆使用电梯系统类模型和类列表,画出对象的客户图。
◆电梯控制器对象向其他5个对象发送信息。
启动时,main方法必须先调用电梯控制器对象。
显然,电梯控制器类需要一个方法,以便main方法调用。
于是电梯控制器对象增加一个电梯控制器循环方法。
电梯系统的客户-对象关系图
实验六 DlinkPC软件测试
任务:
1)了解并掌握DlinkPC软件的基本功能和使用方法;
2)设计该软件的测试方案,进行测试;
3)给出测试结果,写出测试报告。
4)网址:/
15。