软件工程导论大作业(试验)例:超市收银系统
一.引言
1.项目背景
2.参考资料
<<软件工程导论>>
数据库开发有关文档
二.项目概述
1.工作内容
可行性研究
需求分析
设计数据流图,
设计E-R图,转换成关系模型,最后建立数据库和数据库中的各个表.
编写代码
数据库服务器的连接
前端应用程序的开发.
最后测试调试.
2. 条件与限制
开发平台: Windows 2000+SQL Server2000+ C++ Builder 6
开发基础设施: 个人PC电脑
3 产品
程序名称: 超市收银系统
使用语言: C++
4 运行环境
运行硬件环境:
Windows服务器, 个人PC机
运行软件环境:
SQL Server 2000, Windows 2000
系统分析与设计
一. 超市收银系统的功能要求
1.总体目标
超市收银系统的总目标是: 在数据库服和现有的先进的开发工具上,配置一定的硬件,开发一个具有易扩充, 易维护, 具有良好人间交互界面的超市收银系统. 实现在后台数据库服务器运行的时候, 可以通过管理员或者销售员对超市货物的一系列资料进行存取, 对顾客的消费行为通过前端应用程序进行快速, 精确地服务, 同时通过前端应用软件监看超市商品的库存, 销量等情况. 要求能对一天或者一段时间的销售资料进行保存以便以后查阅. 同时可以随时盘点销售情况, 打印商品的资料报表和销售记录资料报表等.
2.系统性能需求
为了保证商家的利益和适应今后的发展, 超市收银系统应该满足一下性能需求:
系统处理的准确性
当有顾客购买商品时,对购买金额的计算的准确性, 对所付金额是否足够都必须严格要求, 在顾客购买了某种商品后, 对数据库中商品信息资料表要及时更新,不让库存, 销量等属性.
系统的易扩展性
随着商家经营的不断扩大, 那么对软件的性能要求会有所增加,这就要求该收银系统通过增加适当的硬件和软件模块对整个系统进行升
级和更新.
系统界面的友好性
作为超市的收银系统, 管理员或者销售员几乎每天都会和该软件打交道,因此该超市收银系统的前端应用程序端界面应尽可能的友好和易操作.
二.超市收银系统的数据流图
三.超市收银系统的H图
说明:上面的H图对“销售员登陆”后的操作和“管理员登陆”相同,只是少了“操作员工资料”。
上图中,只画出了“操作员工资料”和“销售商品”的下层H图,其它的没有画出来。
四. 超市收银系统的E-R图
1.员工信息
2供货商信息
3商品信息
4销售信息(此表会不断自动清空)
5销售历史信息(此表由用户手动清空)
6整合E-R图
五. 超市收银系统的数据字典
1 逻辑设计
1.1 UserInfo
1.2 ProviderInfo
1.3 MerchandiseInfo
1.4 SalesInfo
1.5 SalesHistoryInfo
2 物理设计
2.1 UserInfo
主键:员工编号
ProviderInfo
主键:供货商编号
MerchandiseInfo 主键:商品编号
SalesInfo
主键:销售编号
SalesHistoryInfo
该表的物理设计与SalesInfo完全相同
概要设计
1.服务器部分
服务器部分使用SQL Server 2000来建立和维护超市收银系统的数据库. 在服务器上首先建立超市收银系统中要使用到的数据库及相应的数据表
2.客户端(前端收银程序)
用户界面
在用户界面部分,根据需求分析的结果,用户需要一个友善的界面,在设计上, 应做到简单明了, 易于操作, 并且要注意到界面的布局. 应突出地显示重要以及出错信息. 外观上也要做到合理化, 考虑到现在用户基本上已经脱离了DOS 环境, 并且对Window 风格比较熟悉和喜爱, 因此我决定使用C++ Builder可视化开发工具, 选择C++ Builder 的原因在于: 一,可使用Delphi提供的可视化组件,缩短开发时间, 二, C++ Builder 提供了对数据库链接,操作的强大的接口,开发起来也比较快速.
总的来说,系统的用户界面应做到可靠,简单,易学习使用,还有就是美观.
接口方面
2.2.1软件接口
客户端程序使用C++ Builder 提供的对SQL Server 的接口,进行对数据库的访问, 更新等所有操作.
2.2.2硬件接口
在输入方面, 可用键盘和鼠标输入
在输出方面, 可使用打印机打印各种报表.
3 出错处理
在出错方面主要考虑管理员或者销售员的不小心输入错误, 对于这种错误, 一是可以通过在数据库的设计阶段对每一个表中的属性设置取值范围, 这样可以进行出错检测, 二, 对于在数据库设计时无法估计的错误,那么在程序设计的过程中对于用户的错误输入要进行明显的提示和正确的处理.
3.安全性设计
通过两方面进行安全保护:
一: 设置不同类型的用户: 管理员和销售员
管理员拥有一切软件设计的权限, 而销售员则有所限制.
二: 限制登陆次数(比如3次)
如果超过3次系统自动关闭, 防止非法用户长时间对系统进行试探
详细设计
软件测试
一.引言
测试是“为了发现程序中的错误而执行程序的过程”。
测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。
二.测试方案
把所有可能的输入数据(有效的和无效的)划分成几大等价类,把所
有的功能都一个不遗漏的操作, 同时还要注意到尽可能多的对各种功能的操作顺序及组合进行测试,从而检测出数据库系统是否存在不同表之间的数据的不
一致性.
三.测试人员
四.测试总结
首先,我们要认识到测试是软件开发过程中一个非常重要的环节,一
各好的软件必须经过无数次的测试。
软件测试是保证软件质量的关键步骤。
所以在测试过程中必须抱着不骄不躁.谦虚谨慎的态度,把好关!
由于这个超市收银系统比较简单,数据流也不复杂,经过测试,除数
据备份功能还没有完善外,目前其它功能还没有发现问题.
设计总结。