软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 一、实验内容 1. 绘制工资支付系统的功能结构图和数据库 在系统设计阶段,要设计软件体系结构,即是确定软件系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。同时把模块组织成良好的层次系统:顶层模块通过调用它的下层模块来实现程序的完整功能,顶层模块下面的每个模块再调用更下层的模块从而完成程序的一个子功能,最下层的模块完成最具体的功能。通过对数据流图边界的划分,变换成软件结构,得到功能结构图。试根据实验指导书绘制工资支付系统的功能结构图。并完成如下任务: 任务1:总务办公管理系统总务办公管理系系统简介:某单位准备开发一个购买办公用品和设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中, 购买申请的金额低于500 元(含500 元)可以由总务办公室直接审批,而高于500 元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。请对该系统进行设计,绘制出该系统的功能模块结构图和数据库模型图。 任务2:火车票预订系统系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。请对该系统进行设计,绘制出该系统的功能模块结构图和数据库模型图。 |
| 二、源代码及运行结果(或截图) 相关知识点 在系统设计阶段,要设计软件体系结构,即是确定软件系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。同时把模块组织成良好的层次系统:顶层模块通过调用它的下层模块来实现程序的完整功能,顶层模块下面的每个模块再调用更下层的模块从而完成程序的一个子功能,最下层的模块完成最具体的功能。通过对数据流图边界的划分,变换成软件结构,得到功能结构图。 1. 功能结构图 功能结构图(或模块结构图)是展示系统内部各个功能模块以及它们之间关系的图形化表示。它的作用是帮助开发人员理解系统的功能需求和模块间的交互,帮助系统分层,确保开发中的各个部分是清晰分工的。 模块化设计:模块化是软件设计中的核心思想,它将复杂的系统拆分成多个独立且自包含的模块,每个模块都有其明确的功能和职责。模块之间通过接口进行通信,降低模块之间的耦合度,提高系统的可维护性。模块化设计在后期的开发和维护过程中具有非常重要的意义,它让开发人员可以在不影响其他模块的情况下,对某一模块进行修改、优化或重构。 分层设计:分层设计将系统按功能复杂度和重要性分成多个层级,从而实现顶层模块控制整个系统的运作,下层模块实现更具体的功能。这种层次化的设计方式通常能够有效避免系统的功能冗余,同时提高代码复用性。例如,顶层的用户接口模块负责与用户交互,数据存储模块负责数据的持久化存储,业务逻辑模块负责数据的处理和业务规则的执行。通过分层设计,系统的各个模块之间可以通过接口和协议进行清晰的交互。 2. 数据库模型图 数据库模型图(E-R图,实体-关系图)是展示系统中各个数据实体之间关系的图形化工具。实体通常代表数据库中的表,而关系则代表表之间的关联。通过数据库模型图,可以清晰地了解数据的存储结构,并帮助开发者根据功能需求设计合理的数据表和关系,从而保证系统数据的完整性和一致性。 实体与关系:在数据库设计中,实体代表系统中的主要对象(例如:学生、订单、产品等)。每个实体包含若干个属性,通常是表中的字段。例如,学生实体包含学号、姓名、性别、班级等属性。而实体之间的关系,表示了不同实体之间的联系。关系的类型有"一对多"、"多对一"和"多对多",例如一个学生可以有多个订单,但每个订单只能对应一个学生,表示学生和订单之间是"一对多"的关系。 规范化设计:在进行数据库设计时,我们会遵循规范化原则,以减少数据冗余和数据不一致问题。规范化是将数据分解成多个小的表格,并通过主键和外键建立表之间的关系,以保证数据的完整性。规范化通常分为不同的层级,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF),每个范式都在上一范式的基础上解决了数据冗余和不一致问题。 数据完整性与一致性:数据完整性是指数据在数据库中的准确性、唯一性和完整性。为此,数据库设计时需要使用主键、外键等约束来保证数据的完整性。例如,订单表中的订单ID应该是唯一的,这样可以确保每个订单都能被唯一标识。外键约束则保证了表与表之间的关系准确无误,避免了因删除或修改一个实体导致其他表中数据丢失的风险。 任务1:总务办公管理系统 实验分析 系统需求分析 总务办公管理系统的主要目标是管理单位的办公用品采购流程。系统需要记录每个采购申请,包括物品信息、申请单位、金额等。根据金额大小,审批流程不同,系统应根据审批结果生成采购清单并进行物品购买,最后记录入账信息。 1. 申请管理 :各科室提出采购申请,申请内容包括物品名称、数量、预计价格、用途等。如果金额小于或等于500元,由总务办公室直接审批;如果金额大于500元,则需要主管领导审批。 2. 采购管理 :申请经过审批后,生成采购清单,采购员根据清单执行采购。 3. 入账管理 :采购完成后,系统需要记录每个采购的物品、数量、价格、经办人等详细信息。 操作步骤 功能模块划分 根据系统需求,功能可以分为以下几个模块: 1. 申请管理模块 : * 功能:处理各科室提交的采购申请。包括收集申请单、验证信息、保存申请记录等。申请内容包括申请单位、物品名称、数量、预计价格、用途等。 * 数据操作:将申请数据插入到数据库中的申请表。 2. 审批管理模块 : * 功能:根据申请金额的不同,审批流程分为两类:金额小于或等于500元的直接由总务办公室审批;金额大于500元的需要主管领导审批。审批通过后生成采购清单。 * 数据操作:保存审批记录,包括审批人、审批状态、审批日期等信息。 3. 采购管理模块 : * 功能:根据批准的采购清单进行实际采购,记录每次采购的详细信息。 * 数据操作:在采购表中插入采购记录,包括物品名称、数量、总金额等。 4. 入账管理模块 : * 功能:记录每次采购的实际清单,包括物品名称、数量、价格、总金额等。 * 数据操作:将采购完成后的入账信息插入到入账表。 数据库设计 1. 申请表 :存储采购申请的信息。字段包括申请ID、申请单位、物品名称、物品数量、预计价格、用途等。 2. 审批表 :记录审批过程的详细信息,字段包括审批ID、申请ID(外键)、审批人、审批状态、审批日期等。 3. 采购表 :存储采购清单信息,字段包括采购ID、申请ID(外键)、采购员、采购日期、物品清单、总金额等。 4. 入账表 :存储实际采购的入账信息,字段包括入账ID、采购ID(外键)、物品名称、数量、价格、经办人、入账日期等。 实验总结 总务办公管理系统涉及采购申请的提交、审批流程、采购与入账管理等功能,系统设计的关键在于确保不同角色(如各科室、总务办公室、主管领导等)之间的协作。系统中的每个模块(申请、审批、采购、入账)都与数据库中的不同表进行交互,确保数据能够在不同阶段之间正确传递。数据库设计时,我们特别注意了数据的规范化,避免冗余数据,并确保了采购流程的完整性。 通过模块化设计,系统的扩展性和维护性得到了很好的保证。系统的成功实现离不开对功能的精确划分和数据库设计的合理性。在实际开发中,这种模块化的设计方式能够帮助开发人员清晰理解每个模块的职责,并有效地管理系统复杂度。 实验截图 图 1 任务一功能结构图 图 2 任务一数据库模型图 任务2:火车票预订系统 实验分析 系统需求分析 火车票预订系统主要是为学生提供返乡购票的服务。系统需要处理学生的订票请求、核实订票信息、记录订单并生成预订记录。每个学生的订票请求会经过核实,符合要求后会被保存到数据库中,并每天打印三天后需要购票的学生名单。 1. 订票申请 :学生通过订票员提交订票请求,内容包括出发地、目的地、出发时间等信息。系统需要检查是否符合三天提前订票的规则。 2. 订单核实与记录 :核实订票信息是否有效,符合要求的订单将被记录到数据库中。 3. 打印购票单 :系统每天会打印三天后需要购票的学生清单,并更新订票库。 4. 更新订票库 :每个学生的订票状态和购票信息需要在订票库中及时更新。 操作步骤 功能模块划分 1. 订票管理模块 : * 功能:学生提交订票申请,录入订票信息并提交。 * 数据操作:将学生的订票请求插入到订单表。 2. 数据处理模块 : * 功能:更新订票库中的数据,保存学生的订票状态、购票日期等信息。 * 数据操作:定期更新订票库表的状态字段,确保系统数据的准确性。 3. 输出数据模块 : * 功能:根据订单表的信息,打印三天后需要购票的学生清单。 * 数据操作:查询订单表,筛选出三天后需要购票的学生信息,并生成打印列表。 数据库设计 1. 学生表 :记录学生的基本信息,如学号、姓名、订单编号等。 2. 订单表 :记录每个学生的订票请求,字段包括订单ID、学生ID、出发地、目的地、出发时间、订单状态等。 3. 购票单表 :记录每个学生的订票状态和购票信息,字段包括购票单编号、订单编号、火车票编号、购票日期等。 实验总结 火车票预订系统的设计主要围绕学生订票请求的处理展开,确保学生可以按时进行订票,并能够查询和打印购票单。系统设计时,我们注重了订单核实、订票状态管理等功能模块的构建,确保了订票过程的顺利进行。 数据库设计方面,我们建立了学生信息表、订单表和购票单s表,确保了订单和学生之间的关联性,订票状态的实时更新能够保证数据的一致性和完整性。系统的实现帮助我们理解了如何处理用户请求和如何在系统中实现状态管理。 总体来看,通过本次实验的设计与分析,我们掌握了从需求分析、数据库设计到系统开发、集成和测试的全过程。这为我们未来的系统开发打下了坚实的基础,尤其是在系统的模块化设计、数据库设计、权限管理等方面的实践经验。通过实验,我们学到了如何将理论知识与实际需求结合,形成一个完整的、可操作的系统设计。 实验截图 图 3 任务二功能结构图 图 4 任务二数据库模型图 |

相关推荐
小天努力学java2 小时前
【软考-架构】10.1、软件工程概述-CMM-软件过程模型-逆向工程
架构·软件工程
武汉唯众智创6 小时前
职业本科软件工程实训室建设初探
软件工程·软件工程实训室·软件工程实验室
不是小盆友7 小时前
零基础上岸高项丨经验分享
经验分享·软件工程·pat考试·软考高级·软考·软考高项·苏景一软考
Tom Boom9 小时前
【3. 软件工程】3.1 软件过程模型
职场和发展·系统架构·软件工程
a180079310801 天前
软件工程面试题(六)
java·面试·软件工程
小小的测试一下2 天前
业务流程先导及流程图回顾
功能测试·软件工程
GIS程序媛—椰子2 天前
【软件工程】习题及答案
软件工程
GIS程序媛—椰子3 天前
【软件工程】填空题
软件工程
牛马程序员小邓3 天前
系统架构师备考——软件工程基础知识篇(软件测试&净室软件工程&基于构件的软件工程)
系统架构·软件工程
南山星火3 天前
人工智能与软件工程结合的发展趋势
人工智能·软件工程