软件工程课程设计
“软件工程”是计算机专业和信息管理等相关专业的一门重要课程,也是其
他理工科专业的热门选修课程。“程序设计语言”和“数据机构”等是它的前导
课程,学好本课程对学生毕业后从事软件开发有着极为重要的作用。
要学好“软件工程”,仅仅通过课堂教学或自学掌握理论知识是远远不够的,
还必须加强实践,需要完成软件工程课程设计的若干实践任务。学会运用理论知
识去解决软件开发中的实际问题,达到学以致用的目的。
一、项目实施步骤
1、 选题
学生根据自己的兴趣爱好进行选题。学生确定题目后,应立即着手准备资料的查阅。
2、 拟出具体的设计方案
进行程序设计总体方案的总结与论证。学生根据自己所接受的设计题目设出具体的实施
方案。
3、 系统的分析、设计、复审、编码与测试
完成所接受题目的各项工作,并上机测试和运行,最后得出预期的成果。
4、 撰写课程设计总结报告
课程设计总结报告是课程设计工作的整理和总结,主要包括课程设计的分析、设计、复
审、编码与测试等部分,最后写出课程设计的总结报告。
二、案例 1:成品管理子系统
随着生产规模的扩大、自动化技术的应用,以及市场经济体系的培育,使得我国企业管
理的性质和环境都发生了巨大的变化。企业的组织机构更加庞大,管理功能更为复杂,企业
各部门之间的联系越来越紧密,所采用的决策对经济的影响越来越复杂,因而管理决策问题
不仅数量多,而且复杂程度高,难度大。管理信息系统在企业生产、管理中的应用越来越广
泛和重要,一套好的管理信息系统直接影响到企业的生存和发展。云南 999 电池股份有限公
司管理信息系统(简称 MDMIS),就是针对云南 999 电池股份有限公司的管理实际开发的
软件系统,以期对该公司的生产、管理等活动进行科学、高效的管理。
MDMIS 是一个完整的企业管理信息系统,由多个模块有机结合而成,包括原辅材料管
理、产成品管理、工资管理、固定资产管理、人事档案管理、技术档案管理、用户与市场管
理、财务管理、成本核算、内部银行微机管理等十多个软件模块。为了帮助欲用传统生命周
期法开发系统的学生理解相关理论,学习系统分析与设计方法,在此,我们以产品管理模块
为例,来说明传统生命周期法在软件开发中的应用。
1 系统分析
1.1 系统现状
通过对原系统进行深入的调查,我们发现原系统产品管理过程中主要存在以下几方面的
问题。1.由于没有成品仓库,成品直接堆放在生产车间,由于管理不规范,车间生产的产品
数和仓库入库产品数帐物不一致;2.由于没有严格的产品出厂规范,产品被盗,甚至被工人
带走的现象经常发生;3.成品管理堆放不合理,不能按照先生产,先销售的原则进行管理,
有的产品因积压时间过长,还未出厂就直接报废;4.外卖产品不能及时收回资金,随着时间
日久有的变成呆帐、坏帐。成品遗失、被盗、积压、成本不实、不能及时收回资金,不能及
时、动态地掌握生产经营中所需的各种内部信息,这些问题或多或少地长期存在于老企业的
管理过程中,直接影响企业的效益和正常运行,是现代企业管理者们所面临的棘手问题。随
着企业由国有企业改制为现代股份制企业,传统的管理模式已经不适应现代企业管理的实
际。必须通过建立现代企业制度,采用现代管理手段参与管理,才可能通过各种措施降低成
本,提高质量,使企业在激烈的市常竞争中谋生存、求发展。
1.2 用户需求
为了将物资管理纳入规范化、现代化管理的轨道,针对公司物资管理中存在的问题和管
理的实际需要,我们将理顺管理体制、建立各种管理规范与开发信息系统有机地结合起来。
通过建立专门的物资管理机构(仓储科)来实施对企业物资进行统一管理,设立成品库来实
施对产成品的管理,要求成品管理子系统满足以下几个方面的要求:
1.从根本上理顺企业产成品管理体系,明晰生产车间、成品仓库、销售、财务各部门在
系统中的权、责;
2.仓库管理要求按照现代企业管理的要求进行管理,车间生产的产品、仓库入库产品要
2
求作到帐帐相符,帐物相符;产品进行科学堆放,仓库管理作到“先生产,先销售”。
3.严格产品出厂制度,客户凭提货单向仓库提货,凭产品出厂单出厂,同时加强产品出
厂的检查。
4.规范产品管理过程的信息流。根据管理的实际需要规范产品入库单和产品出厂单。通
过产品管理子系统的开发,实现对产品的动态管理,及时提供管理过程中所需的各种信息。
总之,希望通过系统的开发,解决成品遗失、被盗、积压、成本不实等内部管理中存在
的问题,同时为货款的催收提供支持。
1.3 系统功能需求
1.待开发软件的功能需求
产成品管理信息系统必须能够完成对公司产成品入库、出库数据的录入、更新、统计、
查询、打印等工作,进行高效、准确的管理。产生以下信息:
(1)产品库存表:随时(定期/不定期)报告产品库存情况;
(2)产品生产完成情况表:按要求定期/不定期报告产品生产情况;
(3)产品出库情况表:按要求定期/不定期报告产品出库情况;
(4)产品生产、销售、库存情况表:按要求报告一定时期内产品生产、销售和当前库
存情况;
以上四表,满足了企业生产、销售、对帐等各方面管理的需要。
2.待开发软件的功能
按照用户需求,要满足以上功能,我们设计出了产品管理系统的结构。见图 1 。
产成品管理
数据维护
数据归档
查询统计
打印报表
月末处理
入
库
数
据
维
护
出
库
数
据
维
护
入
库
数
据
归
出
库
数
据
归
查
询
统
计
入
库
情
况
查
询
统
计
出
库
情
况
打
印
入
库
情
打
印
出
库
情
打
印
库
存
情
况
打
印
月
末
库
存
情
图 1 产成品管理系统层次方框图
结合系统需求,对图 1 所示的系统功能解释如下:
维护入库:提供对产成品入库数据的维护(记录的录入、归档前的数据编辑)功能。
维护出库:提供对产成品出库数据的维护。
数据归档:实现入库、出库记录的数据归档。
统计入库情况:提供对产成品信息的各种查询、统计,以及对错录产品入库单的维护功
能,当用户输入正确的密码后,系统允许用户维护错录或数据归档前未发现的错误记录。
统计出库情况:提供对产成品销售信息的各种查询、统计,以及对错录产品出厂记录的
3
维护功能。
定期打印入库情况:显示/打印任一时期,任一生产阶段的各生产车间以及全公司的产
成品生产情况。还可以按用户要求定期打印反映整个企业生产的汇总、明细报表。其中明细
报表反映了各生产车间的生产完成情况,汇总报表反映了全公司的生产完成情况。
定期打印出库(销售)情况:对任一时期、任一阶段各种产成品的出库情况进行报表显
示或打印,以汇总、明细报表反映公司的产成品销售情况。
显示/打印库存情况:统计显示/打印出截止打印时刻为止的全公司和各产成品车间的各
种产成品的库存情况。报表分为汇总和明细两表,以满足不同的统计和查询要求。
打印月末仓库情况:完成全公司和各车间的各种产成品的上月结存数、本月生产数、本
月出库数、本月结存数的统计、汇总,生成月末结帐表,为生产部门、物资管理部门、财务
部门等相关业务部门提供考核、对帐、记帐等方面的产成品信息。
月末处理:提供了对各种产成品数据的转移功能。完成了下月统计、记帐的初始化工作
(如提供上月结存数)。
同时,通过分析,我们给出了成品管理系统的顶层数据流图。见图 2。
用户
生产部门
购货请求
反馈信息
入库请求
反馈信息
处理
记录数据
库存
报表
打印机
图 2 产成品管理系统顶层数据流图
1.4 数据描述
1.静态数据及其数据字典
待开发软件的功能已经用层次方框图和顶层数据流图表示出来了,其中涉及到的静态数
据及其数据字典如下:
产成品入库单(或产成品临时入库单)
字段名
CP-01
CP-02
CP-03
CP-04
CP-05
CP-06
CP-07
CP-08
CP-09
CP-10
CP-11
CP-12
中文描述
日期
单据编号
生产部门
仓库
品名及规格
等级
入库件数
装箱规格
单位
单价
数量
金额
类型
D
C
C
C
C
C
N
N
C
N
N
N
长度
是否可以为空
是否作为主键
Primary key
N
N
N
N
N
N
N
N
N
N
N
N
8
6
4
2
5
1
8
3
4
4
9
12
4
CP-13
字段名
CP-01
CP-02
CP-03
CP-04
CP-05
CP-06
CP-07
CP-08
CP-09
CP-10
CP-11
CP-12
CP-13
字段名
CP-01
CP-03
CP-04
CP-05
CP-06
CP-07
CP-08
CP-09
CP-10
CP-11
CP-12
CP-13
备注
C
12
Y
产成品出库单(或产成品临时出库单)
中文描述
日期
单据编号
提货单位
仓库号
品名与规格
等级
出库件数
装箱规格
单位
单价
数量
金额
备注
中文描述
日期
存放部门
仓库号
品名与规格
等级
库存件数
装箱规格
单位
单价
数量
金额
备注
类型
D
C
C
C
C
C
N
N
C
N
N
N
C
类型
D
C
C
C
C
N
N
C
N
N
N
C
长度
是否可以为空
是否作为主键
Primary key
8
6
8
2
5
1
8
8
4
4
9
12
12
N
N
N
N
N
N
N
N
N
N
N
N
Y
产成品库存数据
长度
是否可以为空
是否作为主键
Primary key
8
4
2
5
1
8
3
4
4
9
12
12
N
N
N
N
N
N
N
N
N
N
N
Y
2.动态数据
输入数据:菜单命令、查询条件、统计条件、记录等。
输出数据:查询结果、统计结果、生成报表等。
内部数据:操作所产生的中间数据。
1.5 数据库描述
本软件采用关系型数据库。
1.6 数据采集
通过键盘、鼠标向软件系统输入数据。
5
2 概要设计
本软件将辅助管理人员完成全公司产成品入库、出库、库存等方面的管理,可以进行查
询、统计、打印报表等工作,提高公司对产成品的管理效率。在分析阶段,我们已经提出了
系统的结构、顶层数据流图和数据字典。本节我们将对系统的硬件环境作简要介绍,并对待
开发系统作概要设计。
2.1 系统运行环境
根据目前市场上能够提供的硬件。我们设计系统的硬件环境如下:
IBM PC286 及以上档次微机、便携机、各种品牌兼容机,最佳档次为 386 以上微
机。
1M 或 1M 以上内存,最好具备扩展内存,最佳运行环境要求具备 4M 或 4M 以上
扩展内存。
EGA、VGA、TVGA、所有 SUPERVGA 彩色显示器。
20M 以上硬盘。
任何光电鼠或机械鼠。
通用打印机。
软件环境如下:
MS(PC)DOS3.3 或以上版本;
系统采用图文窗口数据库系统 WinBase 进行开发;
UCDOS、NCDOS,最好采用 WinBase 自带的直接写屏汉字系统 WBSDOS。
2.2 总体设计
1.处理流程
(1)系统启动,进入身份验证。
(2)初始化系统,导入数据库。
(3)进入消息循环状态,通过事件驱动激活各模块,执行各任务。
(4)一任务执行完毕后重新进入消息循环状态。
(5)通过事件驱动退出系统。
2.系统总体结构和模块设计。
通过以上分析,我们进一步设计出了产成品管理系统的总体结构模块图(见图 3)。
身份验证(M10)
初始化(M1)
重新验证
消息循环
非正常退出(M2)
数
据
维
护
(
M
4
)
数
据
归
档
(
M
5
)
查
询
统
计
(
M
6
)
打
印
报
表
(
M
7
)
帮
助
(
M
1
1
)
密
码
管
理
(
M
9
)
月
末
处
理
(
M
8
)
6
退
出
(
M
2
)
正
常
退
出
各模块设计如下:
模块编号
M1
M2
M3
M4.1
M4.2
M5.1
M5.2
M6.1
M6.2
M7.1
M7.2
M7.3
M7.4
M8
M9
M10
M11
图 3 系统总体结构图
模块名称
初始化模块
关闭系统模块
系统功能模块
入库数据维护模块
出库数据维护模块
入库数据归档模块
出库数据归档模块
查询统计入库情况模块
查询统计出库情况模块
打印入库情况模块
打印出库情况模块
打印库存情况模块
打印月末库存情况模块
月末处理模块
密码管理模块
身份验证模块
帮助模块
图 4 系统模块结构图
各模块功能分配如下:
(1) 系统控制功能:初始化模块(M1)、关闭系统模块(M2)、系统功能模块(M3)。
(2) 数据维护功能:入库数据维护模块(M4.1)、出库数据维护模块(M4.2)。
(3) 数据归档功能:入库数据归档模块(M5.1)、出库数据归档模块(M5.2)。
(4) 查询统计功能:查询统计入库情况模块(M6.1)、查询统计出库情况模块(M6.2)。
(5) 打印功能:打印入库情况模块(M7.1)、打印出库情况模块(M7.2)、打印库存情况
模块(M7.3)、打印月末库存情况模块(M7.4)。
(6)月末处理功能:月末处理模块(M8)。
(7) 密码管理功能:密码管理模块(M9)。
(8) 身份验证功能:身份验证模块(M10)。
(9) 帮助功能:帮助模块(M11)。
2.3 接口设计
1.外部接口
(1) 用户界面
采用图形用户界面(GUI),包含菜单、按钮、对话框等元素。
(2) 软件接口
软件运行于 MS-DOS3.3 以上和 UCDOS 平台上。
(3) 硬件接口
运行于 IBM PC386 及兼容机以上。
2.内部接口
7
(1) 初始化模块(M1):系统初始时由操作系统调用,之后进入消息循环状态。
(2) 关闭系统模块(M2):由系统功能模块调用,之后退出系统。
(3) 系统功能模块(M3):接受各事件驱动消息,启动入库数据维护模块、入库数据归
档模块等模块。
(4) 入库数据维护模块(M4.1):由相应事件驱动消息激活,完成入库数据维护功能,
之后进入消息循环状态。
(5) 出库数据维护模块(M4.2):由相应事件驱动消息激活,完成出库数据维护功能,
之后进入消息循环状态。
(6) 入库数据归档模块(M5.1):由相应事件驱动消息激活,完成入库数据归档功能,
之后进入消息循环状态。
(7) 出库数据归档模块(M5.2):由相应事件驱动消息激活,完成出库数据归档功能,
之后进入消息循环状态。
(8) 查询统计入库情况模块(M6.1):由相应事件驱动消息激活,完成查询统计入库情
况功能,之后进入消息循环状态。
(9) 查询统计出库情况模块(M6.2):由相应事件驱动消息激活,完成查询统计出库情
况功能,之后进入消息循环状态。
(10) 打印入库情况模块(M7.1):由相应事件驱动消息激活,完成打印入库情况功能,
之后进入消息循环状态。
(11) 打印出库情况模块(M7.2):由相应事件驱动消息激活,完成打印出库情况功能,
之后进入消息循环状态。
(12) 打印库存情况模块(M7.3):由相应事件驱动消息激活,完成打印库存情况功能,
之后进入消息循环状态。
(13) 打印月末库存情况模块(M7.4):由相应事件驱动消息激活,完成打印月末库存情
况功能,之后进入消息循环状态。
(14) 月末处理模块(M8):由相应事件驱动消息激活,完成月末处理功能,之后进入
消息循环状态。
(15) 密码管理模块(M9):由系统功能模块调用,完成密码管理功能。
(16) 身份验证模块(M10):由初始化模块调用,完成身份验证功能。
(17) 帮助模块(M11):由相应事件驱动消息激活,完成帮助功能,之后进入消息循环
状态。
2.4 数据结构设计
1.逻辑结构设计
在重新设计了产品入库/出库单,并对两单的结构、所用数据类型、总长、数长、显长
等方面进行全面的分析后,我们设计出了系统所用到的数据库的数据字典如下。
产成品入库单(或产成品临时入库单)数据字典
字段名
CP-01
CP-02
CP-03
CP-04
CP-05
中文描述
日期
单据编号
生产部门
仓库
品名及规格
类型
D
C
C
C
C
长度
是否可以为空
是否作为主键
Primary key
N
N
N
N
N
8
6
4
2
5
8