软件工程设计基本步骤(案例参考)
一、问题分析系统规划
案例问题是:一家小型企业的仓库管理系统
产品入库管理的过程是:仓库人员首先进行检验,一是看产品质量,二是核对产品数量、代码和规格是否与入库单上的数据相符。合格的产品进行入库处理,同时登记产品入库流水帐,不合格的退回车间。
产品出库管理过程是:仓库管理员根据销售科开出的产品出库单及时付货。
首先对问题进行分析,模拟对系统做初步调查,了解系统的基本情况(内部与外部、应用目标、主要业务、以及存在问题等);系统中信息处理情况(组织结构、工作方式、技术手段、效能、人员);系统资源情况(人、财、物)等几个方面的问题并根据系统初步调查结果,制定项目开发计划。
(1)项目概述
项目背景
工作内容
条件与限制
需提交的文档
(2)项目实施计划
主要包括项目开发进度安排、关键技术问题、人员组织及分工、交付期限等内容。
二、系统分析
根据收集到的(各种系统输入单、帐页和输出报表等凭证)或通过亲身实践了解到的各类系统知识,以及向有关业务管理人员详细访问调查,系统分析主要包括如下内容:
1.组织机构和管理职能分析
2.业务流程分析:例如
3.数据流程分析
顶层DFD图
第一层数据流图
第二层数据流图
4.数据字典
(1)数据流字典
数据流名称:入库单
数据流名:入库单
别名:D1
说明:生产车间按产品名称和代码分类填报,仓库管理人员检验
来源:生产车间
去向:产品入库处理
数据结构:{日期+产品代码+产品名称+单位+规格+入库数量}
日期=年+月+日;    产品代码={数字}3
产品名称=2{字符}16  单位=2{字符}4
规格=6{数字|字母}10; 入库数量=1{数字}6
组织:按(入库日期+产品代码)升序排列
流量:最大60份/日    平均30份/日
(2)数据存储字
数据库名称:出库单
工作流名:出库单
别名:D2
说明:销售科填写,仓库保管员检验并登记产品出库流水帐。
来源:销售科
去向:产品出库处理
数据结构:{日期+产品代码+产品名称+规格+出库数量}
组织:按(日期+产品代码)升序排列
流量:最大60份/日  平均40份/日
数据流名称:库存月报表
工作流名:库存月报表
别名:D3
说明:销售科填写,仓库保管员检验并登记产品出库流水帐。
来源:仓库统计分析
去向:主管部门
数据结构:{日期+产品代码+产品名称+单位+月累计入库数量+月累计出库数量}
组织:按日期升序排列
流量:最大1份/日  平均1份/月
其他中间过程的数据流描述略。
(2)数据存储字典
存储文件名:入库帐
工作流名:入库帐
别名:F1
说明:存储每日产品入库流水帐。
流入数据流:产品入库单
流出数据流:入库日累计数据
数据结构:{日期+产品代码+产品名称+单位+规格+入库数量}
存储方式:按入库日期顺序存储。
涉及的处理:入库处理、记库存总帐
存储文件名:出库帐
工作流名:出库帐
别名:F2
说明:存储每日产品出库流水帐。
流入数据流:产品出库单
流出数据流:出库日累计数据
数据结构:{日期+产品代码+产品名称+单位+规格+出库数量}
存储方式:按出库日期顺序存储。
涉及的处理:出库处理、记库存总帐
存储文件名:产品库存总帐
工作流名:产品库存总帐
别名:F3
说明:存储全部库存信息。
流入数据流:库存登记处理结果
流出数据流:出入库存月报表
数据结构:{日期+产品代码+产品名称+单位+月累计入库数量+月累计出库数量}
存储方式:按日期、产品代码顺序存储。
涉及的处理:登记库存总帐、生成月报表
5.处理描述
产品入库处理
处理名:产品入库处理
别名:P1
输入:产品入库单数据流
输出:产品入库单上的数据
处理定义:当一张入库单上的数据检验合格,并且产品实物入库后,立即将这张入库单上的数据登入产品入库流水帐。
激发条件:产品入库发生
产品出库处理
处理名:产品出库处理
别名:P2
输入:产品出库单数据流
输出:产品出库单上的数据
处理定义:当一张出库单上的数据检验合格,并且产品实物出库付货后,立即将这张出库单上的数据登入产品出库流水帐。
激发条件:产品出库发生
登记库存总帐处理
处理名:登记库存总帐处理
别名:P3
输入:出入库流水帐上的当日数据
输出:库存总帐上的数据
处理定义:对出入库流水帐上当日发生的数据,按照产品代码分别进行入库累计、出库累计计算。然后将当天的日期、产品代码和累计结果等填入库存总帐的相应栏中。
激发条件:每日过帐处理
制作出入库存月报表
处理名:制作出入库存月报表
别名:P4
输入:库存总帐上的数据
输出:输出报表中的统计数据
处理定义:
1.对库存总帐上本月发生的出入库数据,按产品代码分别进行入库累计,一种代码代表的产品累计值输出一行。
2.(计算公式)
激发条件:月底制作库存报表
6.现行系统评价
通过对现行系统的需求分析,本系统数据流向合理。为便于计算机管理,使系统能更加方便用户使用,并提供更多的辅助信息,应将各种帐本暂合为一本 库存总帐考虑,同时增加各种灵活的查询分析功能。
7.新系统逻辑模型的提出
根据前面的分析与评价结果,所提出的新系统逻辑模型如图。
                    图:新系统逻辑模型
三、系统设计
(1)系统设计目标
在系统分析的基础上,进一步做好仓库管理系统的设计工作,主要实现一下目标:
方便的数据输入,良好的人机界面,尽量避免汉字和长字符串的人工重复输入;
灵活的数据查询功能,能快速实现多项产品输入数据和库存数据的查询;
考虑到企业生产的发展,对新产品数据能方便地予以处理;
能随时提供库存现状动态信息。
(2)系统功能结构图
综合考虑改进后的新系统逻辑模型(见上图)和设计的新系统目标的要求,绘制出系统功能结构,如图
(3)系统信息流程设计
由于功能结构图主要是从功能的角度来描述系统的整体结构,单并未表达出各功能模块间是如何传递数据信息的。因此,要用系统信息处理流程图形象地反映出数据信息和处理之间地相互关系,如:数据从何而来,中间结果存放何处,最终结果送到哪里等情况。
系统处理流程图绘制地依据是以由系统分析所获得的数据流程图为基础的,首先依据数据流程图中的各处理功能,描绘出各处理功能的数据关系;然后再将这些处理功能的数据关系综
合起来,以形成一个能反映整个系统数据关系的系统信息处理流程图。
(4)代码设计
仓库管理系统仅涉及到产品规格代码和产品代码,根据该企业未来十年发展规划,生产的产品品种不会超过100种,并且每种产品的规格不会超过10种,因此,产品规格代码可采用较简单的层次码,用三位整数表示。前两位代表产品品种顺序号,后一位表示规格码顺序码。
具体方案略。
(5)输出设计
本系统的输出报表主要涉及到产品出入库存月报表,报表输出格式要清晰明了,符合用户习惯,要保证输出数据格式的正确性,具体格式在此不再赘述。
(6)输入设计
系统中的出入库数据录入卡采用现行系统的产品出入库单格式,符合用户习惯,现行系统的产品出入库单格式如下:
                            产品入库单
日期
产品代码
产品名称
单 位
规 格
入库数量
备 注
生产车间:                                              填表人:
产品出库单
日期
产品代码
产品名称
单 位
规 格
出库数量
备 注
生产车间:                                              填表人:
本系统的出入库界面设计要清晰明了,符合用户习惯。要保证输入数据格式的正确性,尽可能简化和减轻输入量,便于用户操作,因此只要用户选择相应的产品代码,即可自动录入产品名称、单位等内容;出入库数量由用户输入。同时还要采取措施,尽可能保证输入数据正确。
(7)数据库设计
根据系统分析时总结出的数据字典,以及系统处理流程图,可以很方便地设计出所需要的数据库,具体数据表的划分和字段定义不再赘述。
(8)程序模块描述
总控模块
模块名:CCMAIN 编号:0.0
功能:本模块用于定义本系统地数据录入、数据查询等功能菜单及各项功能地下拉式菜单,接收用户对功能菜单及其下拉菜单地选择,进入相应地操作。
界面:下属模块1.1,1.2,1.3,1.4
处理过程:
CASE
1.调用模块INPUTDATA,实现出入库数据地录入;
2.调用过程INQUIRE,实现数据查询;
3.调用过程TOTALREPORT,实现统计报表功能;
4.调用过程MAINTAIN,实现产品目录维护功能;
5.调用过程FINISH,实现本系统运行结束退出功能。
ENDCASE
出入库数据录入模块
模块名:INPUTDATA 编号:1.0
功能:接受用户选择,完成产品入库数据的录入。
界面:调用模块0.0  下属模块2.0,2.1
处理过程:
打开数据库文件;
输入入库日期;
CASE
1.调用模块INSTORE,将入库数据录入到相应的临时数据表文件中;
2.调用模块OUTSTORE,将出库数据录入到相应的临时数据表文件中;
ENDCASE
询问录入数据是否正确并保存
IF数据不保存
  退出并返回总控界面;
ELSE
  将临时数据表中的数据记录日期全部用输入日期替代,然后转录到正式的入库或出库数据表文件中;
  更新每日库存累计数据表文件;
  更新每日的出入库累计数据表文件;
ENDIF
出入库数据查询模块
模块名:INQUIRE  编号:1.1
功能:接受用户选择,完成现有库存数据查询、出入库数据查询。
界面:调用模块0.0  下属模块2.2,2.3
处理过程:
打开相应数据库文件;
CASE
1.调用模块STOREINQUIRE,实现库存数据的查询;
仓库管理系统免费软件2.调用模块IOSTOREFIND,实现出库入库数据查询;
ENDCASE
    以上给出了几个程序模块描述的一般形式,其他的程序模块描述请参照以上格式自己练习补充。
四、系统实施
在系统设计完成以后,就要准备全面的系统实施工作。系统实施主要包括物理系统的实施、程序代码设计与测试、项目管理(文档准备)、人员培训、数据准备、系统运行与评价和系统维护等。
由于系统实施工作头绪很多,需要有条不紊的进行。因此在系统实施开始之前,需要制定出周密的具体实施计划,即确定系统实施的方法、步骤、所需的时间和费用,并要监督计划的执行,以保证系统实施工作的顺利进行。系统实施阶段既是成功地实现新系统,又是取得用户对系统信任地关键阶段。包括一下阶段:
(1)硬件系统地实施
(2)程序编码
(3)程序和系统调试
(4)运行及维护
(5)系统评价
这是一个小项目开发的一般过程,软件工程课程设计可以临摹该版本,再根据实际问题的性质和要求做相应的办更。如采用原型模型或面向对象模型,其分析和设计过程就应做相应的改变。