软件工程概论实验报告图书馆自动循环系统概要设计及详细设计.doc
-
资源ID:2885196
资源大小:345KB
全文页数:14页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件工程概论实验报告图书馆自动循环系统概要设计及详细设计.doc
软 件 工 程 概 论实验报告学 院 软件学院 年 级 2007级 班 级 五班 学 号 3007218129 姓 名 田玮 2010年 5月 1日软件工程概论上机实验报告 题目:图书馆自动循环系统概要设计及详细设计学院名称 软件学院 专 业 软件工程 学生姓名 田玮 学 号 3007218129 年 级 2007 级 班 级 五班 时 间 2010年 5月1日 目 录项目名称1结构化设计2详细设计3实验结论11 项目名称“图书馆自动循环系统概要设计及详细设计”。 考虑一个图书馆自动循环系统。每本书有一个条形码,每个借书者有一张借书卡,上面也有一个条形码。当借书者想借书时,图书管理员扫描该书和借书卡上的条形码,并在计算机终端上输入C。类似地,还书时,图书管理员再次进行扫描,并输入R。图书管理员可以向书库中增加图书(+)或去掉图书(-)。借书者可以在一台终端上确定书库中特定作者的所有书籍(借书者输入A=之后,再输入作者的名字)、特定标题的所有书籍(输入T=之后,再输入标题)或者特定主题范围的所有书籍(输入S=之后,再输入主题范围)。最后,如果借书者想要一本目前已借出的书,图书管理员可以在该书上做个标记,当该书被归还时,将为申请过它的借书者保留起来(输入H=之后,再输入该书的书号)。结构化设计采用事务分析的技术,从借书者和图书管理员的角度来进行设计。设计图书馆自动循环系统时,将其分成两个部分:分析器和分配器。InputOperation_analysisborrowreturnApply_the_bookadddeleteCheck_borrow_book_infoRecord_borrow_orderPrint_message_on_screenCheck_return_book_infoComplete_borrow_orderCheck_order_book_infoRecord_apply_ordersearchAuthor_searchtitle_searchsubject_searchPrint_result_tableBook_identificationBook_identificationBorrower_nameBorrower_numberBorrower_numberBook_identification“H”Order_book_identificationA=T=S=Temp_tableTemp_tableTemp_table“+”“-”orderAudit_informationAudit_informationAudit_informationAudit_informationAudit_informationAudit_information图1-1 图书馆自动循环系统的事物处理分析图详细设计详细设计也称过程设计,是程序设计的蓝图。该设计是在数据设计、体系结构设计和接口设计完成之后进行的。过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程尽可能的简明易懂。结构化程序设计是实现上述目标的关键技术,因此是过程设计的逻辑基础。过程设计的结果基本上决定了最终程序设计的质量。将程序体系结构元素变换为对软件构件的过程描述。该实验主要是利用过程设计工具进行程序设计。由于时间限制,要求由一个小组而不是由单个程序员负责编写所有模块的代码。由于这个原因,必须给出每个模块的详细设计,使得不用参考其他模块就可以理解每个模块。表2-1 borrow模块的详细设计模块名称Borrow模块类型函数返回类型Boolean输入参数Book_identification输出参数无错误消息无文件存取LIBRARY_BOOK_DATA文件修改无模块调用无描述通过管理员扫描条形码获得的book_identification,然后在数据库LIBRARY_BOOK_DATA表中查找相应的book_identification,找到后,读取其book_status一项,如果为2,表示书在库中,返回true;如果为1或0,表示已下架或已借出,返回false。表2-2 check_borrow_book_info模块的详细设计模块名称check_borrow_book_info模块类型函数返回类型Boolean输入参数Borrower_numberbook_identification输出参数无错误消息“该书已被预定,不能借阅”文件存取BOOKED_ORDER_DATA文件修改可能做删除操作模块调用无描述管理员请借书者刷借书卡,以获得borrower_number。根据当前的book_identification值,在数据库的BOOKED_ORDER_DATA中查找ordered_book_identification值是否有与之相同的,如果没有,则结束过程,返回true。如果有相同项,则继续查看相同项中的booker_number值,与当前borrower_number值是否相同,如果相同,则表示订阅者与借阅者是同一人,则将BOOKED_ORDER_DATA中这一项删除,然后结束过程,返回true。如果预订者与借阅者不同,则结束过程,弹出错误消息,返回false。表2-3 record_borrow_order模块的详细设计模块名称record_borrow_order模块类型函数返回类型Boolean输入参数Book_identificationBorrower_numberBorrower_nameBorrow_date输出参数Borrow_order错误消息无文件存取BORROWED_ORDER_DATA文件修改添加项模块调用Generate_identification描述将输入的book_identification, borrower_number, borrower_name, borrow_date整合成borrow_order添加到BORROWED_ORDER_DATA表中,由过程generate_identification生成一个借阅编码,也添加到这一项中,操作完成后,返回true,否则返回false。表2-4 generate _identification模块的详细设计模块名称generate _identification模块类型函数返回类型long输入参数无输出参数Borrow_identification错误消息无文件存取无文件修改无模块调用无描述按照一定顺序生成一个无重复的12位整数,后两位为校验码,作为借阅编码,生成完毕后,将所生成的borrow_identification值返回。表2-5 return模块的详细设计模块名称Return模块类型函数返回类型Boolean输入参数Book_identification输出参数无错误消息无文件存取LIBRARY_BOOK_DATA文件修改无模块调用无描述通过管理员扫描条形码获得的book_identification,然后在数据库LIBRARY_BOOK_DATA表中查找相应的book_identification,找到后,读取其book_status一项,如果为1,表示已借出,返回true;如果为2或0,表示已下架或在库中,返回false。表2-6 check_return_book_info模块的详细设计模块名称check_return_book_info模块类型函数返回类型Boolean输入参数Book_identification输出参数无错误消息无文件存取ORDERED_BOOK_DATA文件修改修改book_status项模块调用无描述在ORDERED_BOOK_DATA表中寻找是否有ordered_book_identification项与当前book_identification相同的,如果没有,过程结束,返回true。如果有,将表中这一项中的book_status值修改为2,表示归还到库中,过程结束,返回true,否则返回false。表2-7 complete_borrow_order模块的详细设计模块名称complete_borrow_order模块类型函数返回类型Boolean输入参数Book_identificationBorrower_numberReturn_date输出参数无错误消息无文件存取BORROWED_ORDER_DATA文件修改添加值模块调用描述通过book_identification和borrower_number寻找BORROWED_ORDER_DATA表中的相应项,根据输入的return_date,修改其中的return_date值,过程结束返回true,否则返回false。表2-8 apply_the_book模块的详细设计模块名称apply_the_book模块类型函数返回类型Boolean输入参数字符“H”输出参数无错误消息无文件存取无文件修改无模块调用无描述预订者输入“H”后,屏幕上显示出请求预订者输入个人信息的对话框,生成完毕后过程结束返回true,否则返回false。表2-9 check_order_book_info模块的详细设计模块名称check_order_book_info模块类型函数返回类型Boolean输入参数Ordered_book_identification输出参数无错误消息“已经有人预定了这本书,无法再预定!”文件存取ORDERED_BOOK_DATA文件修改无模块调用无描述检查ORDERED_BOOK_DATA中是否有ordered_book_identification值与当前要订阅书的ordered_book_identification值相同的项,如果有,则弹出错误消息,返回false,如果没有,则过程结束,返回true。表2-10 record_apply_order模块的详细设计模块名称record_apply_order模块类型函数返回类型Boolean输入参数Ordered_book_identificationbooker_numberbooker_name输出参数无错误消息无文件存取ORDERED_BOOK_DATA文件修改添加项模块调用Generate_identification描述根据预订者输入的个人信息:booker_number, booker_name以及Ordered_book_identification,在ORDERED_BOOK_DATA中建立新的项,调用generate_identification生成一个预定编码,过程结束后,返回true,否则返回false。表2-11 author_search模块的详细设计模块名称Author_search模块类型函数返回类型Stack输入参数Book_author输出参数Author_stack错误消息无文件存取LIBRARY_BOOK_DATA文件修改无模块调用Print_result_table描述根据借书者输入的book_author,在LIBRARY_BOOK_DATA表中进行查找,每查到book_author与之相同的一项,则将其book_idenfication添加到author_stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。表2-12 title_search模块的详细设计模块名称title _search模块类型函数返回类型Stack输入参数Book_title输出参数title_stack错误消息无文件存取LIBRARY_BOOK_DATA文件修改无模块调用Print_result_table描述根据借书者输入的book_title,在LIBRARY_BOOK_DATA表中进行查找,每查到book_title与之相同的一项,则将其book_idenfication添加到title _stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。表2-13 subject_search模块的详细设计模块名称Subject_search模块类型函数返回类型Stack输入参数Book_subject输出参数Subject_stack错误消息无文件存取LIBRARY_BOOK_DATA文件修改无模块调用Print_result_table描述根据借书者输入的book_subject,在LIBRARY_BOOK_DATA表中进行查找,每查到book_subject中包含相同关键字的一项,则将其book_idenfication添加到title _stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。表2-14 print_result_table模块的详细设计模块名称Print_result_table模块类型函数返回类型Boolean输入参数Stack输出参数无错误消息“没有找到相应的内容!”文件存取LIBRARY_BOOK_DATA文件修改无模块调用无描述读取stack中的内容,如果stack为空,弹出错误消息,返回false。如果不为空,根据stack中读取到的book_identification值,在LIBRARY_BOOK_DATA查找,没找到一项,就将其book_identification,book_author,book_subject,book_title,book_destination,book_status以表格形式显示在屏幕上,完成后返回true。否则返回false。表2-15 add模块的详细设计模块名称add模块类型函数返回类型Boolean输入参数+Book_authorBook_titleBook_subjectBook_destination输出参数无错误消息无文件存取LIBRARY_BOOK_DATA文件修改添加项模块调用无描述图书管理员输入“+”后,弹出添加书目的对话框,请求管理员输入实际信息如:book_author,Book_title,Book_subject和Book_destination,根据这些信息在LIBRARY_BOOK_DATA中建立新的项,调用generate_identification生成新的条形码,完成后返回true,否则返回false。表2-16 delete模块的详细设计模块名称Delete模块类型函数返回类型Boolean输入参数-输出参数无错误消息无文件存取LIBRARY_BOOK_DATA文件修改添加项模块调用无描述图书管理员输入“-”后,列出LIBRARY_BOOK_DATA表,请求管理员选择要删除的项,管理员可以通过book_author,Book_title,Book_subject和Book_destination进行查找,管理员选择后删除掉这一项的所有信息,完成后返回true,否则返回false。表2-17 operation_analysis模块的详细设计模块名称operation_analysis模块类型函数返回类型Boolean输入参数Book_identificationchar输出参数无错误消息“错误的操作”文件存取无文件修改无模块调用BorrowReturnApply_the_bookSearchAdddelete描述判断是否输入了book_identification,如果输入了book_identification,则调用borrow,返回为false时则调用return。如果没有输入book_identification,判断是否输入了字符,如果字符为H,调用apply_the_book;如果字符为A,调用author_search;如果字符为T,调用title_search;如果字符为S,调用subject_search;如果字符为+,调用add过程;如果字符为-,调用delete过程。如果不为上述任何一种,弹出错误消息,返回false。结束后返回true。实验结论传统的设计阶段由三个活动组成:结构化设计、详细设计和设计测试。设计过程的输入是规格说明文档,描述产品要做什么。输出是设计文档,描述产品如何做才能完成。在结构化设计期间,对产品进行模块化分解,即,仔细分析规格说明,产生具有期望功能的模块结构。这个活动的输出是模块的列表,以及对于它们如何相互连接的说明。从抽象的观点来看,在结构化设计期间,假定某些模块存在,然后根据那些模块开展设计。传统设计阶段的下一个活动是详细设计,在此期间对每个模块进行详细设计。例如,选择特定的算法和数据结构。同样,从抽象的观点来看,在这个活动期间,将模块互连构成一个完整产品的事实被忽略了。