图书管理系统项目报告

目 录

一 前 言... 1

1 目的... 1

2 项目背景概述... 1

3 项目实施环境... 1

4 项目人员及其分工... 2

5 项目实施计划... 2

二 需求分析... 2

1概述... 2

2功能需求... 3

3其它需求... 3

三 分析与设计... 4

1应用程序框架设计... 4

2迭代实施... 4

3功能模块设计... 5

四 调试与使用... 7

1所遇问题和相应的解决方法... 7

2使用说明... 7

五 总结... 13

六 参考文献... 15

 

一、前言

1.目的

软件产品不能靠人们的意念瞬间完成,它需要一个研发过程。一般情况下,好的过程才可能得到好的产品,而差的过程会得到差的产品。

人们使用合适的方法、技术、工具才能开发出用户需要的产品。过程是指“人,方法,技术和工具”的集合。

过程被写成文档后,变成了公司的“流程制度”,公司成员们依据“流程制度”开展工作,这叫“法治管理”。

本实验的目的是按照软件过程的规范要求,结合实际的程序设计,来深入理解并运用软件过程的基本概念、方法与过程。

软件开发过程综合实验要求在学习完程序设计语言、数据结构、操作系统等课程后,综合利用所学计算机软件知识完成一个应用系统的设计。是一个重要的教学实践环节,是对所学知识的掌握和应用程度的一个全面地、综合地考察。

在初步具备了一定的软件程序设计基础上,本课程设计针对日常应用中的实际问题,要求完成一个相对完整的应用系统,培养学生运用软件研发过程解决实际应用问题的能力,巩固和加深所学理论知识,初步掌握一个完整应用系统的开发过程和方法。加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;进一步熟悉应用系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。培养相关专业专业本科学生科学研制、开发应用系统的基本过程和能力,为计算机在本专业领域的应用奠定基础。

2.项目背景概述

本项目的名称:图书管理系统

现今图书管理系统的繁琐给具有强烈时间观念的管理人员带来了诸多不便,为了对图书的管理方便,因此开发了本软件。

本项目的任务提出者及开发者是图书管理系统软件开发小组,用户是各大中小图书馆。本产品能具体化、合理化的管理图书信息,用结构化的思维方式去了解计算机的基本工作原理。

运用软件工程思想,遵守开发流程,严格执行测试标准,开发出一套符合委托方需求的软件产品。通过本系统软件,能帮助管理人员利用计算机,快速方便的对图书信息进行管理、录入、借出、查找的所需操作,使散乱的图书信息能够具体化,直观化、合理化。

3.项目实施环境(注:包括开发、运行环境)

软件运行硬件环境:Pentium 3以上CPU  内存256M以上

软件运行软件环境:Microsoft Windows 2000/XP/2003/Vista操作系统

                  Microsoft .Net Framework 2.0以上

                   Microsoft SQL sever 20## 以上

软件开发环境:   Microsoft Windows XP SP3 、Microsoft Visual Studio 2005和 Microsoft SQL Server 2005

4.项目人员及其分工

需求分析:

界面设计:

数据库设计:

数据库实现:

系统测试:

5.项目实施计划

2010.10.05 à10.28  需求分析

  2010.10.29 à11.06  概要设计

  2010.11.07 à11.13  详细设计

  2010.11.14 à11.24  代码实现
      2010.11.25 à12.01  测试、优化

二、需求分析

1.概述

一般能用的图书馆管理系统包括系统管理、读者管理、编目、图书流通、统计、查询等功能。比较先进的能够在一个界面下实现图书、音像、期刊的管理,设置假期、设置暂离锁、暂停某些读者的借阅权、导入导出读者、交换MARC数据、升级辅助编目库等。此外,随着Internet应用的发展,一个完善的系统还应提供无缝接入Internet的功能,通过IE浏览器让读者使用借阅资料查询、更换密码、预约、资料检索等功能。有些系统还能提供读者自助服务,可以开放一些客户机让读者自动管理密码、查询自己的借阅史、预约资料、检索资料等。

下图是系统所必备的功能,其中每个功能都由若干关联的子功能模块组成。除此之外系统还应包括信息系统必须具备的能用功能。

 

2.功能需求

(1) 读者管理模块

“读者类型设置”用于设置读者的类型及相关信息,内容包括类型、图书册数、期刊册数、限制图书等。

“读者档案管理”用于设置读者相关的信息,内容包括编号、条形码、姓名、性别、类型、出生日期、有效证件、证件号码、联系方式、登记日期、有效期至、操作员、备注、图书借阅次数、是否挂失等。

(2) 图书管理模块

“图书管理”用于管理图书相关的信息。

“图书类型设置”用于设置图书的类型及相关的信息,内容包括类型名称,可借天数。

“图书档案管理”用于设置图书相关的信息,内容包括编号、条形码、书名、类型、作者、译者、ISBN、出版社、价格、页码、书架名称、现存量、库存总量、入库时间、操作员、简介、借出次数、是否注销等。

“图书征订”用于订购新图书,内容包括征订编号、书名、类型、ISBN、出版社、作者、译者、订购者、订购者联系方式、订购数量、订购单价、订购日期、是否验收、实际数量、实际金额、验收日期、操作员等。

(3) 图书流通管理模块

“图书流通管理”用于管理图书流通环节相关的操作。

“图书借阅”用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、押金、归还时间、操作员等。

“图书归还”用于登记读者归还图书的记录并增加图书在库的库存,登记内容包括归还编号、图书编号、读者编号、退还押金、归还时间、操作员等。

“图书罚款”用于对图书超期情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚款日期、应罚金额、实收金额、是否交款、备注等。

3.其它需求(包括安全、性能需求)

     1.性能描述

(1).系统有一定的稳定性。可长时间稳定地工作。

(2).有较高的差错控制。

(3).系统具有较高的效率。借书、还书服务花费的时间一次不得大于5分钟。

2.故障处理要求

使用本系统时可能出现如下故障

(1).由于管理员没有及时保存数据造成的数据丢失:可通过数据还原,还原成最近的数据备份。

(2).要于不可抗拒力造成的损失:由用户自行承担。

三、分析与设计

1.应用程序框架设计(包括相关原理与主要技术手段)

本设计使用C#.NET的三层架构设计技术。所谓的三层架构包含表示层、业务层和数据层三层。对于应用系统来讲,表示层和用户交互并显示数据,业务层负责访问数据层并向表示层提交数据,数据层负责数据的存储。采用分层设计的软件会达到诸如可维护性、可重用性、可伸缩性、可靠性和安全性等运行要求,因此是非常值得提倡的。下面解释一下三层架构的含义及组成。

l  表示层

它主要是指与用户交互的界面,它接收用户的输入,但并不包括任何实际的业务处理,它只是简单地将数据转交给业务层,同时,它负责展现业务层传递过来的数据,当后台业务逻辑更新数据时,表示层就会显示这些更新。表示层提供应用程序的用户界面(UI),通常包括Windows窗体(比如桌面应用程序)和ASP.NET Web窗体(网页)的使用。

l  业务层

它代表了应用程序的核心功能,负责处理数据层的数据,实现业务逻辑。业务层是业务概念和软件实现。业务层封装业务逻辑,业务逻辑实现某种规则的业务处理以匹配特定公司的需求。例如,确定某个指定客户是否被批准进行某项借贷活动的业务规则可以封装在小型解决方案的客户业务组件中。对于大型解决方案,所有与借贷有关的业务逻辑要能都封装在单独的一个借贷组件中。

l  数据层

负责访问数据库,并将存储在数据库中的数据提交给业务层。该层涉及到的主要.NET技术是ADO.NET。

三层架构示意图

2.迭代实施

1.因为首次接触比较大的应用程序设计,所有组成员的应用程序编写功底都不好,

经组员合计决写使用C#语言开发这个系统,因为以前学过C++,而C#的语法很多都是继承自C++,而它又去除的C++语法的复杂性,从而完全面向对象。因此,用C#比较易于快速开发。经过两周的学习,组员基本掌握了用C#开发Windows应用窗体的基本能力。

       2.接下来按照三层架构的设计理念,将系统分为表示层、业务层、数据层,根据组员对C#的掌握程度分派任务。

       3.因为组员都在同一个宿舍,所以开发过程中始终都可以在一起保持紧密的联系,

便于交流心得。

       4.整个发开过程是按照增量迭代进行的每完成一些关键功能都进行几次集成测试,尽量在开发的早期排除一些致命的bug。

       5.在开发过程中,由于缺乏经验难免发生分歧,但经过到图书管或网上查找相关资料都基本得到了解决。

       6.在开发过程中,也兼顾简单写一下开发文档,以便需要返工时提供参考,减少返工的时间,当然只是简单写一下,不必花太多时间去写文档。

       7.系统开发完毕后,做一次全面的测试,完善开发文档,开发人员坐到一起总结开发经验。

       8.交负系统给用户使用(即给老师检查)。

3.功能模块设计

 


(1) 管理系统基本功能模块

 

(2) 基础信息维护功能模块

 

(3) 读者管理功能模块

 

(4) 图书管理功能模块

 

(5) 图书流通管理模块

 

(6) 统计分析功能模块

四、调试与使用

1.所遇问题和相应的解决方法

1. 在设计子窗口时,一开始在改变子窗口大小时,其它控件比如:label,text

的位置却没改变,后来加了个panel控件解决了这个问题。

2刚开始时数据库连接不上,后来才知道安装时使用的是默认的身份认证方式(Windows身份认证),要改成混合模式才行,重装sql2005后问题就解决了。

2.使用说明

把数据库文件复到sql2005的安装路径X:\....\Microsoft SQL Server\MSSQL.1\MSSQL\Data,连接好数据库,然后就可能运行图书管理系统应用程序了。

系统运行后的主界面选择“读者管理”菜单选项可进入“读者类别设置”和“读者档案管理”功能窗口,选择“图书管理”菜单选项可进入“图书类别设置”和“图书档案管理”功能窗口,选择“流通管理”菜单选项可进入“图书征订”,“图书借阅”和“图书归还”等子窗口。

选择“读者管理”——>“读者类别设置”菜单命令,进入“读者类别设置”功能窗口,在其中管理读者的类别信息,需要添加新的读者类别或者是修改原有读者类别的信息,只须单击工具栏上的“新增”按钮或“修改”按钮即可。单击“删除”按钮并选“确定”按钮,即可删除某条记录。其它各子窗口的操作与此类似,体现了操作的一致性

五、总结

软件过程,是指软件整个生命周期,从需求获取,需求分析,设计,实现,测试,发布和维护一个过程模型。

目前业界影响较大的软件过程模式有Rational统一过程、敏捷过程和微软过程它们有各自的适用范围和优缺点,很难说哪一种模式是最好的。下面我谈谈我对软件过程的理解

Rational统一过程是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。RUP可以提高了团队生产力。对于所有的关键开发活动,它为每个团队成员提供了使用准则、模板、工具指导来进行访问的知识基础 它是从准则、模板和工具指导的角度对整个理论进行了铺垫,它把整个软件工程分成了可以迭代的一些过程,并通过对这些过程的规范管理,实现它的最终目标。

MSF则更偏重于人的角度,对贯穿整个开发过程中的一些要素进行了强调,对小组和成员的行为进行了规范。

敏捷方法也适合大型软件开发,它的核心是迭代,它也不是针对面对对象技术的,它是一种思想可以应用于各种软件开发,也可以应用于其它领域,比如制造业。敏捷的很多思想就是借鉴了制造业,比如Lean,借鉴了TPS。敏捷的团队里面能力不一定要相当,讲究总结和反思,比较接近于学习型组织。敏捷也讲究建模,只是它提倡简单原则,需要了再用,中间产品需要了再写。敏捷软件开发现在发展到可以配置,只要合适的东西项目都可以用,CMM的很多思想也是可以应用于敏捷,所以敏捷是包容的,适合就是最好的。敏捷可以不要结对,结对只是敏捷核心价值观的一个表现形式,其它实践也一样。敏捷现在是软件开发领域的一个趋势,只是中国发展的比较慢。

从目标角度上讲,三者似乎“不谋而合”。他们的目标都是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品,或者说是用于以更快的速度、更少的人员、更少的风险来成功地交付信息技术解决方案,同时取得更高质量的结果。

软件过程在当今的软件开发中发挥了强大的威力,但仍有其不足的方面。因此,在软件开发实践中,人们只有不断地实践、总结、再实践、再总结,才能够解决不断遇到的问题,使得软件开发朝着更有利于人类的方向发展。以上就是我对软件开发过程的认识。

此次图书管理系统的设计以实际为背景,但与实际有一些差距。在设计中,为了减小复杂程度,简化了某些方面。此次编写的图书管理系统还有一些需在改进的地方,可以依据本系统中处理问题的思路和方法再进行改进、完善

六、参考文献

《软件工程》                 —— 张海藩 编著       清华大学出版社

《数据库系统概论》           —— 萨师煊 王 珊 编著 高等教育出版社

《C# 与.NET 3.0高级程序设计》——Andrew Troelsen(美)著,

王少葵等译         人民邮电出版社

    《C#和.NET 3.0第一步》       ——周礼 著            清华大学出版社

相关推荐