<<软件工程概论>>实验报告姓名:李治学号:100511210班级:网工1001指导教师:桂兵祥实验一“图书馆系统”结构化需求分析上机任务:用结构化需求分析方法完成下列任务:(1)对“图书馆系统”问题进行描述; (2)对该系统进行功能分析; (3)建立数据流图;(4)建立实体 - 关系图; (5)建立数据字典;一、图书馆系统的问题描述:① 一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。
② 图书馆可以维护(注册、更新和删除)图书资料。
③ 图书馆管理员负责与借书者打交道。
④ 借书者可以预约目前借不到的书或杂志。
⑤ 所有人员都可以浏览图书馆的图书信息和各种告示。
⑥ 系统能在流行的技术环境下运行,有一个良好的图形交互界面。
⑦ 系统应具有良好的可扩展性。
二、图书馆系统功能分析:① 浏览功能:所有人员都可以浏览图书馆的图书信息。
② 借还功能:借书者可以借/续借、还、预约图书。
③ 图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。
④ 借书者管理:系统管理人员可进行注册、更改、注销借书者信息等维护工作。
三、建立数据流图:1、图书馆系统的基本逻辑模型:浏览图书浏览者图书信息浏览信息2、借/还功能数据流图:(1)借/还功能(第一步)DFD :借书还书续借预约书目号和借书证号书目号书目号标题号和借书证号管理员借书者借书者显示信息(2)借/还功能(修改)DFD :借书还书续借预约书目号和借书证号书目号书目号标题号和借书证号管理员借书者3、维护功能数据流图:(1)维护功能(第一步)DFD :更改借者注销借书者录入新书更新图书管理员注册借书者销毁图书处理罚金管理员(2)维护功能(修改) DFD :录入标题修改标题删除标题录入新书管理员销毁书目修改书目标题信息标题号标题号书目信息书目号书目号4、借书功能细化的数据流图:验证借书者和图书创建借书记录更新借书者更新图书信息管理员借书者书号和借书证号允许借书者图书信息显示借书成功不允许借书记录显示失败信息四、建立实体 - 关系图: 图书馆系统实体-关系图:姓名性别地址身份借书数罚金借书证号借书者书目借条码号分类号ISBN还续借借书记录包含借书证号条码号借书日期归还日期续借次数标题可借数书名作者出版社馆藏数价格ISBN预约借书证号预约天数图书号预约日期注册/更改/注册系统管理录入/更新/删除工号姓名性别权限密码五、建立数据字典: 建立数据字典:名称:标题别名:抽象的图书描述:描述一个抽象的图书的信息定义:标题=ISBN+书名+作者+出版社+出版日期版次+价格+目录+内容简介+馆藏数+可借数+预约数位置:图书查询,借书,还书,预约名称:书目别名:具体的书描述:对应标题的具体的一本书定义:书目=条码号+分类号+ISBN 位置:借书、还书、更新六、实验总结:通过这次实验对Rational Rose和Visio两款画图软件有些认识,这两个软件在以前从来没有见过也没有听过,第一次打开的时候完全不知道怎么操作。
不知道怎么做出指导书里面的画图,不知道一些功能打开。
但是自己慢慢的百度慢慢的摸索之后这个软件的基本功能还是会使用了,在试验的同时对于需求分析的整个过程也有了更多的了解,同时在一些问题的解决上依靠课本,对于课本也更加的熟悉了。
实验二“图书馆系统”OOA需求分析上机要求:(1)首先对该系统进行非形式化描述、并进行功能需求分析;(2)采用面向对象分析(OOA)的方法,用可视建模语言UML,给出该系统的用例视图、类图、借/还书功能的时序图和协作图、以及借/还书业务层的活动图;一、对该系统进行非形式化描述、并进行功能需求分析:(1)问题描述:①一个图书馆藏有图书和期刊杂志两大类书籍,每种图书、杂志可以有多册。
②图书馆可以维护(注册、更新和删除)图书资料。
③图书管理员在系统的支持下,负责与借书者打交道。
④借书者可以预约目前借不到的书或杂志。
⑤所有人员都可以浏览图书馆的图书信息和各种告示。
⑥系统能够在所有流行的技术环境下运行,有一个良好的图形交互界面。
⑦系统应该具有良好的可扩展性。
(2)功能需求分析:①浏览功能:所有人员都可以浏览图书馆的图书信息。
②借还功能:借书者可以借/续借、还、预约图书。
③图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。
④借书者管理:系统管理人员可进行注册、更改、注销借书者信息等维护工作。
二、采用面向对象分析(OOA)的方法,用可视建模语言UML:(1)图书馆系统的用例视图借书还书预约普通管理者续借查询账户借书者查询图书一般浏览者查询系统信息录入题目更新标题删除标题更新书目删除书目录入书目注册借书更新借书注销借书管理标题管理借书系统管理员管理书目(2)图书馆系统的CRC 卡借书者责任:维护借的书目的数据和罚金,请求借、还、续借书目功能协作者:图书书目类图书书目类责任:维护一个具体书目数据,通知相应的图书标题完成相应的图书标题完成借、还功能协作者:图书标题类图书标题类责任:维护一个抽象书的数据,知道该书的可借数、预约数协作者:图书书目类(3)图书馆系统的类图预约借书者图书标题图书书目借/还借/还/续借预约/删除预约(4)图书馆系统的时序图借书者借书者图书书目图书标题借/还借书1、验证可借性2借书3、创建借书记录4、更新图书标题2.1验证可借(5)图书馆系统的协作图借书者借书者1、验证可借性借书6、更新借书者图书标题图书书目借/还(new )2.1验证可借2、借书5、更新图书书目4、更新图书标题3、创建借书记录(6)图书馆系统的活动图查找图书排队等待【借书者】【还书者】记录借书记录还书图书回架准备为下一个成员服务【借书】【还书】图书馆成员图书馆管理员三、实验总结:这次的实验让我对面向对象分析(OOA )的方法有了深入的认识,对OOA 方法的过程以及步骤也比较清楚。
实验过程中,加深了我对书本中知识点的复习,让我获益良多。
同时,这次的实验使我对Rational Rose和Visio这两款画图软件有了更深入的认识。
实验五 电梯控制系统OOD 设计一、电梯控制系统的OOD : (1)确定类的行为(方法):◆电梯系统有7个类模型,即按钮、电梯、电梯按钮、电梯门、电梯控制器、楼层按钮、请求。
◆电梯系统的功能模型必须包含设计的各种行为描述,反映行为的数据如何流动,而不反映行为的次序。
一个行为可以分配给一个对象,也可以分配给向这个对象发送消息的客户。
分配行为的方法:一是基于信息隐蔽原则,二是使用责任驱动的设计。
◆把行为(方法)分配给不同的类,可得到电梯控制系统的类列表。
A )、电梯系统的功能模型:按钮类按下按钮用户按下按下登录请求开/关灯命令请求灯操作命令请求类检测待处理请求更新请求电梯控制器类请求查询电梯到达数灯操作命令查询电梯到达数移动/等待命令开/关门命令电梯命令门操作命令电梯类电梯门类电梯命令门操作命令B )、电梯系统的类列表 :类按钮楼层按钮电梯按钮电梯门电梯电梯控制器电梯应用电梯实用程序请求属性指示灯指示灯指示灯开门(待定)请求请求行为(方法)关闭按钮,打开按钮关闭按钮,打开按钮关闭按钮,打开按钮关闭电梯门,打开电梯门上行一层楼,下行一层楼(以后加一个方法)Main (待定)判断是否有请求等待处理,登录请求,更新请求(2)根据对象的客户设计产品:◆面向对象产品的结构通常是由一个简单的主程序来启动一个产品,然后所有的工作由各个对象来接管。
◆必须找出不是其他对象的客户的那些对象进行初始化,这由main 方法完成。
◆使用电梯系统类模型和类列表,画出对象的客户图。
◆电梯控制器对象向其他5个对象发送信息。
启动时,main 方法必须先调用电梯控制器对象。
显然,电梯控制器类需要一个方法,以便main 方法调用。
于是电梯控制器对象增加一个电梯控制器循环方法。
A )、电梯系统的客户-对象关系图: 电梯应用楼层按钮电梯门电梯控制器电梯按钮电梯应用程序请求电梯(3)对象的详细设计:◆使用任何合适的技术,例如,逐步求精设计方法,对main 方法和各个对象进行详细设计。
二、实验总结:通过这次实验,让我对电梯控制系统OOD 设计有了很好的了解,在书本知识的基础之上,也有了更好的体会。