1、 1、 请对你熟悉的软件系统写出其需求分析。 图书管理系统1.对于读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书馆的藏书请客,方便的借阅图书,续借图书,归还图书,能够查询自己的借阅图书情况。2.对于图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。3.对于系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。2、 根据上述需求分析开发出用例图,然
2、后建立a、基于场景的模型(只需描述一个场景即可,也就是描述一个用户故事,如用户登录系统的故事等等)。B、建立行为模型(只需为你上述描述的用户故事画出DML的顺序图与活动图)。C、类模型(根据需求分析,你所能想到的开发本系统可能要用到的所有类,以及类的协作图)。D、数据模型(即数据建模,也就是完成本系统所需要的数据表,至少三个以上的表)。 2)用例“图书归还”用例名称图书归还标识符UC-1参与者读者,图书管理员描述读者将自己借阅的图书归还图书馆。前置条件1. 登录;2. 进入图书归还页面后置条件1 更新图书归还列表; 主干过程1.0 图书归还1. 读者请求归还借阅的图书并提供自己的编号2. 系统
3、显示该读者的借阅信息表3. 使用者填将要归还的图书交给管理员4. 管理员输入图书编号,系统存储归还信息,并将之存储到数据库中5. 系统更图书归还列表分支过程1.1 选择重置(第3步后分支出来)1. 读者选择重置2. 系统刷新该页面异常1.0.E.1 读者借阅超时(第4步)1该书超出了应该归还的时间范围2. 系统将罚款信息显示在归还页面3. 需要缴纳罚金被包含用例无被扩展用例无优先级高表3.5 读者类型信息表tb_readertype字段名称数据类型字段长度是否为空说明ID int10NoKeyreadernamevarchar50No numberint4No 可借图书本数表 3.7图书归还信
4、息表tb_giveback字段名称数据类型字段长度是否为空说明ID int10NoKeyreaderIDvarchar11No bookIDint11No backTimedateNo 归还时间operatorvarchar30No 操作员表 3.8系统用户信息表tb_user字段名称数据类型字段长度是否为空说明ID int10NoKeynamevarchar30No passwordvarchar30No 3、 为上述系统设定体系结构,并画出系统的歌模块层次结构图(至少三级)。 4、 选取具体一个类进行结构级的设计(即为类确定属性与操作,并用你所熟悉的编程语言或自然语言为该类的某一个操作写出
5、算法或伪代码)。 private ActionForward bookborrow(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) /查询读者信息 /此处一定不能使用该语句进行转换 readerForm.setBarcode(request.getParameter(barcode); ReaderForm reader = (ReaderForm) readerDAO.queryM(readerForm); request.setAttribut
6、e(readerinfo, reader); /查询读者的借阅信息request.setAttribute(borrowinfo,borrowDAO.borrowinfo(request.getParameter(barcode); /完成借阅 String f = request.getParameter(f); String key = request.getParameter(inputkey); if (key != null & !key.equals() String operator = request.getParameter(operator); BookForm bookF
7、orm=bookDAO.queryB(f, key); if (bookForm!=null) int ret = borrowDAO.insertBorrow(reader, bookDAO.queryB(f, key), operator); if (ret = 1) request.setAttribute(bar, request.getParameter(barcode); return mapping.findForward(bookborrowok); else request.setAttribute(error, 添加借阅信息失败!); return mapping.find
8、Forward(error); else request.setAttribute(error, 没有该图书!); return mapping.findForward(error); return mapping.findForward(bookborrow);5、 为该系统中的某一模块进行界面设计(至少设计一个界面)。 6、 为该系统某一模块设计12个测试用例。 1)登录模块测试表5.1登录模块用例测试用例测试数据预期结果UC1:输入正确的用户名和密码用户名:admin密码:admin系统跳转到登陆成功页面UC2:输入空用户名用户名:请输入用户名UC3:输入用户名和空密码用户名:admin 密码:请输入密码UC4:输入用户名和错误的密码用户名:admin 密码:321ff您输入的用户名或密码错误当用户输入的用户名或密码错误是系统会跳转到出错页面并提示“您输入的用户名或密码错误”,用户点击确定,系统会重新返回登陆页面,其中错误信息提示页面如图5.1所示:图5.2 系统出错提示页面 2)更改密码模块测试用户登录系统后可对自己的登录密码进行更改,更改过程要求用户提供原始密码,输入新密码,重新输入新密码进行确认,如果用户输入的原始密码错误,或两次输入的新密码不一致将无法执行密码更新操作,系统会给出相应的提示,起显示页面为:图5.3 两次密码不一致提示页面