软件工程课程设计概要设计与详细设计
- 格式:doc
- 大小:177.00 KB
- 文档页数:16
概要设计与详细设计的区别概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。
同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系.详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述.概要设计阶段通常得到软件结构图详细设计阶段常用的描述方式有:流程图、N—S图、PAD图、伪代码等概要设计和详细设计在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法?这个问题在公司内部经常有人问。
现在陈述一下.我们公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。
结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。
模块的概念,和编程语言中的子程序或函数是对应的。
这样一来,设计可以明显地划分成两个阶段:概要(结构)设计阶段:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。
详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。
概要设计阶段:在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此.主要集中于划分模块、分配任务、定义调用关系。
模块间的接口与传参在这个阶段要定得十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。
概要设计一般不是一次就能做到位,而是反复地进行结构调整。
典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块.在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量.概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。
《软件工程》课程设计报告概要、详细设计报告课程设计题目:毕业生管理信息系统项目负责人:概要设计报告1引言1.1编写目的在本毕业生信息管理系统项目的前一阶段,也就是需求分析阶段中,已经将用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中毕业生信息管理调查中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对信息管理系统做概要设计。
主要解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对信息管理系统所做的模块结构设计的基础上,对系统进行详细设计。
在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。
1.2范围毕业生对自己信息录入,修改,查询,学校对大学生毕业,就业信息的查询和核对。
1.3设计说明由于学校对毕业生信息的管理的需求,该软件开发小组成员根据需求分析,设计毕业生信息管理系统概要分析。
1.4参考资料1.软件需求工程2.软件工程概论郑人杰3.需求规格说明书软件开发小组2 概要设计2.1项目背景实现毕业生基本信息和就业信息维护,提高学校毕业生信息查询效率,满足毕业生信息查询的需要。
2.2 需求规定毕业生基本信息维护;毕业生就业信息维护;毕业生就业情况查询(不确定查询);按专业划分的就业情况统计;用户管理(含用户权限的设置)。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
2.3 运行环境Windows 2000 Server以上操作系统2.4 处理流程毕业生管理系统流程图:2.5 系统结构及模块划分2.5.1 结构毕业生操作子系统,管理员操作子系统。
概要设计和详细设计的内容1. 概要设计:俯瞰全局的那把钥匙概要设计,听起来是不是有点高大上的感觉?其实,它就像是一个厨师在准备大餐之前的菜单,先把大致的框架搞清楚,再逐步细化。
这个阶段,咱们主要是从整体上把握项目,确定目标和范围。
就像给一幅画打底,得先画出大致的轮廓,才好慢慢添上细节。
你想啊,如果一开始就去画眼睫毛,最后可能连鼻子都没画出来,那可就闹笑话了。
1.1 确定需求:买菜清单的重要性首先,概要设计的重中之重就是需求分析。
就像逛超市前先写个买菜清单,知道自己需要什么,才能买得心应手。
在这个阶段,团队会和客户沟通,听听他们的需求,确保咱们的产品能满足他们的期望。
这就好比和朋友商量去旅行,得先问清楚大家想去哪里,才好安排路线。
总之,需求分析就是为了把那些模糊不清的想法变得清晰明了。
1.2 设计架构:搭个框架,稳稳的接下来,咱们就进入了设计架构的阶段。
这部分就像搭建一个房子的框架,必须得坚固才能支撑起整个建筑。
概要设计不仅要考虑技术架构,还要关注系统的可扩展性和可维护性。
想象一下,如果一个房子的基础不牢固,后面再加上几层楼,那可就危险了。
所以,概要设计的关键是要有一个好的基础,确保后续的开发能够顺利进行。
2. 详细设计:画龙点睛的过程详细设计,顾名思义,就是在概要设计的基础上,把每个细节都给补充上去。
这个阶段就像是给刚刚搭好的房子装修,选择每一扇窗户、每一扇门,甚至每一盏灯的样式。
详细设计的目标是让系统在技术层面上更加完善,确保每个模块都能高效运行。
2.1 模块划分:分工明确,合作无间详细设计的第一步就是模块划分。
想象一下,一个足球队,前锋、中场、后卫,每个位置都有不同的任务,大家各司其职,才能赢得比赛。
在软件设计中,模块化可以让团队成员明确自己的职责,提高工作效率。
通过划分模块,大家可以并行开发,像打篮球一样,快速传球,互相配合,效率杠杠的。
2.2 接口设计:沟通的桥梁接下来就是接口设计,这就好比是在建造桥梁,确保不同模块之间可以顺畅沟通。
软件工程06-详细设计1. 引言详细设计是软件工程中非常重要的一个环节,它是在需求分析和概要设计的基础上,对系统的各个模块进行进一步的细化和设定。
本文档旨在对软件工程06项目的详细设计进行说明和介绍,以便开发人员能够更加清晰地了解系统的具体实现方式和技术选型。
2. 系统架构设计本项目采用三层架构来进行系统的设计和实现。
其中,前端采用React进行开发,后端使用Spring Boot进行开发,数据库选择MySQL。
三层架构分别为:表示层、业务逻辑层和数据访问层。
下面将对每个层次的具体设计进行详细说明。
2.1 表示层设计表示层是用户与系统直接交互的界面,主要负责前后端交互、数据展示和用户操作。
在本项目中,采用React作为表示层的开发框架。
在表示层设计中,需要注意以下几点:•使用React进行页面的模块化开发,将页面拆分成若干组件,提高代码的复用性和维护性;•使用React Router进行前端路由的配置,使得页面跳转更加友好和灵活;•使用Redux进行状态管理,统一管理应用的数据,提供更好的可维护性和可扩展性。
2.2 业务逻辑层设计业务逻辑层是实现系统的核心功能和业务逻辑的部分。
在本项目中,采用Spring Boot作为业务逻辑层的开发框架。
在业务逻辑层设计中,需要注意以下几点:•使用面向接口的编程方式,降低模块之间的耦合度,提高代码的可测试性和可扩展性;•使用AOP(面向切面编程)进行事务管理和日志记录,保证系统的数据一致性和安全性;•使用Spring Security进行权限管理,保护系统的安全性。
2.3 数据访问层设计数据访问层负责与数据库进行交互,对数据进行持久化。
在本项目中,使用MySQL作为数据库。
在数据访问层设计中,需要注意以下几点:•使用JPA(Java Persistence API)进行对数据库的操作,提供了一种对数据库进行对象化操作的方式;•使用数据库连接池提升数据库的连接性能,减少数据库的压力;•使用缓存技术进行数据的缓存,提高系统的性能和响应速度。
《软件工程》教学大纲课程性质:必修课总学时:48课程类型:专业课学分:3开课教研室:计算机软件适用专业:计算机科学与技术教学大纲说明一、本课程的地位、作用与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件生存周期模型、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
本课程的开设旨在使学生通过学习,掌握软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程的实践打下良好的基础.二、课程的教学基本要求学习本课程要求先修《数据结构》、《面向对象程序设计》、《数据库原理及应用》、《操作系统》等课程。
基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护。
重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。
了解即能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。
教学内容一、本课程的理论教学内容1、概论课程的教学要求给出,三个层次:了解、理解和掌握。
教学内容⑴、软件软件的发展、软件的定义、软件的特点、软件的种类⑵、软件工程的概念软件危机与软件工程的定义、软件工程的目标软件工程的原则⑶、软件生存周期与软件开发模型瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型教学要求掌握:软件和软件工程的基本概念了解:软件生命周期及软件开发的各个模型2、可行性分析教学内容⑴、可行性研究的任务⑵、可行性研究的步骤⑶、系统流程图⑷、成本/效益分析教学要求了解:可行性分析的步骤3、需求分析教学内容⑴、需求分析的任务与步骤需求分析的任务、需求分析的步骤、需求分析的原则⑵、需求分析方法面向数据流的分析方法基本符号、基于数据流的分析方法、数据字典面向数据结构的分析方法Jackson系统开发方法、Warnier-Orr方法⑶、需求规格说明与评审教学要求:掌握:需求分析的方法理解:需求分析的任务和原则4、概要设计教学内容⑴、概要设计的任务与步骤概要设计的任务、概要设计的步骤⑵、软件设计的概念与原则模块化、抽象、信息隐藏和局部化、模块独立性、结构设计的评价原则⑶、概要设计的方法面向数据流的设计方法基本概念、变换分析、事务分析、设计优化原则面向数据结构的设计方法Jackson方法、Warnier-Orr方法⑷、概要设计文档与评审教学要求掌握:软件设计的概念与原则,概要设计的步骤、方法了解:概要设计文档与评审5、详细设计教学内容⑴、详细设计的任务与原则详细设计的任务、详细设计的原则⑵、详细设计的方法程序流程图PFC、N—S图、PAD图、HIPO图过程设计语言PDL、详细设计方法的选择⑶、详细设计规格说明与评审教学要求掌握:详细设计方法了解:详细设计规格说明与评审6、面向对象的分析与设计方法教学内容⑴、面向对象方法的基本概念和特征⑵、面向对象分析确定对象、确定属性、定义操作、对象间通信⑶、面向对象设计面向对象设计概念、面向对象设计方法、程序构件及接口、细节设计⑷、UML方法UML的发展与特点、UML的表示法、UML的开发步骤⑸、面向对象实例分析与设计建立用例、确定表、设计对象的交互作用、指定联系、寻找继承、分析对象行为、设计系统的体系结构教学要求⑴掌握:面向对象的基本概念和特征⑵了解:面向对象分析与设计方法及UML的开发方法7、编码教学内容⑴、程序设计语言程序设计语言分类、程序设计语言特点、程序设计语言选择⑵、编程风格⑶、编程效率⑷、编程安全⑸、面向对象编程技术教学要求⑴掌握:一般的编码原则⑵了解:面向对象编程的特点8、软件质量与质量保证教学内容⑴、软件质量的定义⑵、影响软件质量的因素⑶、软件质量保证策略⑷、软件质量保证活动⑸、软件质量保证标准⑹、软件评审⑺、结构化的软件测试软件测试的概念和原则测试的概念、测试的原则、测试的方法软件测试技术白盒测试、黑盒测试软件测试的步骤软件测试过程、软件测试步骤、单元测试、综合测试、确认测试、系统测试纠错技术⑻、面向对象的软件测试面向对象分析和面向对象设计的模型测试面向对象分析和面向对象设计模型的正确性、面向对象分析和面向对象设计模型的一致性面向对象的测试策略面向对象的单元测试、面向对象的组装测试、面向对象的确认测试面向对象软件测试用例设计测试用例设计蕴涵面向对象的概念、传统测试用例设计方法的适用性、基于故障的测试、面向对象编程对测试的影响、测试用例与类的分层、基于脚本的测试设计、测试外部结构和内部结构可用于类层次上的测试方法面向对象类的随即测试、类层次的分割测试类间测试用例设计多重类测试、按行为模型导出的测试⑼、软件测试计划与测试分析报告⑽、软件维护软件维护的定义、分类、特点、软件维护步骤及组织、软件的可维护性、软件维护的副作用、逆向工程和再生工程教学要求⑴掌握:软件质量保证的概念、策略和方法,软件评审或测试的方法和步骤.⑵了解:软件维护过程9、项目计划与管理教学内容⑴、软件项目特点、管理的特殊性及软件管理功能⑵、确定项目的工作要求⑶、确定软硬件资源⑷、人员的计划及组织⑸、成本估算及控制⑹、进度计划⑺、软件配置管理⑻、软件管理方案教学要求了解:项目计划与管理的基本内容教材:张海藩编《软件工程导论》北京清华大学出版社。
软件工程课程设计报告一、需求分析:1、本系统只有一个文件,包含学生姓名、成绩。
姓名、语文成绩、数学成绩、英语成绩均由键盘输入。
(1)文件名:file(2)文件类型:顺序文件(3)文件结构姓名数学语文英语数据类型字符型单精度数单精度数单精度数数据占用长度字节字节字节字节(4)文件记录长度:、输出时根据操作显示排名或查询成绩,按姓名、数学成绩、语文成绩、英语成绩。
、该程序具有初始化学生成绩,录入学生成绩,修改学生成绩,删除学生成绩,添加学生成绩,按总成绩查询,按姓名查询,按总分查询排名,按英语成绩查询,显示所有学生的数据等功能。
、测试数据:例如:姓名语文数学英语小五小王小李按姓名查询:输入姓名小五,显示语文成绩,数学成绩,英语成绩按语文成绩排序:姓名语文数学英语小王小李小五、数据流图:二、概要设计:、类的定义格式:<类名>{<成员函数或函数数据成员的说明>::<数据成员或成员函数的说明>}<各个成员的实现>、定义数组类型{:下标和数据元素值组成的数据堆集合,其中任意两个数据队的下标各不相同。
:():建立一个数组。
():返回下标位的元素值。
():将下标位的数据对的值为.}3、义字符串类型{:: 字符串是由(≤)各字符组成的有限序列”……”(≤)(): 建立一个空串(): 撤销一个串(): 求串长(): 置为空串(): 串赋值(): 串连接(): 串插入(): 串删除(): 串替位(): 取子串(): 求子串在主串中的位置}三、详细设计1、主程序模块的基本算法(){初始化{根据显示键入操作符}(根据状态标志位返回);{(键入的操作符)'':{ 录入模块}'':{ 总成绩查询模块}'':{按姓名查询模块}'':{ 添加成员模块}'':{删除模块}'':{ 修改模块}'':{显示所有学生成绩模块}'':{按总分查询排名}'':{按语文查询排名}'':{按数学查询排名}'':{按英语查询排名}} <<"您想继续进行其他操作吗?()"<<;;{>>;('''')<<"指令错误!请重新输入!"<<;;}();('')<<"请输入操作代码( 录入按总分查询按姓名查询增加人员删除人员修改数据显示所有成员数据按总分排名按语文排名按数学排名按英语排名)"<<;>>;}('');( <){[];<<" !"<<;、子程序函数清单(因为所用到的算法比较简单算法略)();();();();();DEL();();();();();();();、学生成绩管理软件由主控模块形成顶层模块,由初始化,数据录入,增加人员,删除人员,修改数据,按总成绩查询,按语文成绩查询,按数学成绩查询,按英语成绩查询模块组成一级模块如图:四、调试分析:()由于我们在各模块中用到的状态标志位太多,而且在定义时出现了错误,在老师和同学们的帮助下,我们组的成员齐心协力使得错误很快得到了解决。
前段时间在项目上因为阅读某公司的软件详细设计说明书,引发了我的一些思考,这既是自己多年来感悟的一次梳理,也作为我从事企业模型咨询工作的一次总结。
因为涉及的内容太广泛,以下尽量用简洁的语言来叙述。
传统的面向结构的设计,概要设计主要是给出系统整体功能菜单,模块之间的调用关系描述,还有软件系统工作环境的说明;详细设计则主要针对一个模块的算法设计,屏幕界面设计,按钮操作设计等等。
面向结构的软件设计缺点主要有以下两点:1、从业务逻辑到功能菜单的跳跃太大,导致需求及变更的追溯性难以保证;2、结构化开发方法不区分内外,不区分层次,编码语句会把信息全部平铺暴露,使用不当会形成太多的耦合点,修改起来牵一发而动全身,所以应变性很差。
软件行业发展变化太快,上世纪颁布的国家标准都不适应了现在的工程实践。
特别是从软件工程转到面向对象的设计,还有所谓的快速迭代开发方法,完全打乱了原来面向结构的设计步骤。
但是,越是变化快,就越需要理出“变中不变”的约束和规范来。
因此,如何才能划分好概要设计与详细设计的界限,明确其设计的基本思想和原则具有至关重要的意义。
从概要到详细,首先就是要贯彻由整体到局部、由概括到细节,由概念模型到物理模型,由业务逻辑到IT技术实现,由“做什么”的描述到“如何做”的可执行步骤,这是一个由表及里、抽丝剥茧、层层深入的分析过程。
要体现企业架构的思想,既要把业务架构与应用架构平滑过渡,无缝连接,需求分析可追溯不跳跃不中断;又要整体架构可扩充,可伸缩,具有松耦合的特点,这样就便于发生需求变动进行修改。
要体现出概要设计与详细设计之间的“松耦合”和“可验收”的两大特点,就必须找到这两者之间的不变量,就是设计的提交物应该达到可检验的颗粒度,形成成果物体现出“变中不变”的抽象关系。
这样从不变量的角度讲,可以说明概要设计书的确完成了任务,作为详细设计的输入起到了约束条件的作用;从可变的角度讲,就明确了在详细设计阶段必须补充的需求调研,这也是设计者具有的主观能动性可以有所作为的部分。
软件工程设计基本步骤(案例参考)软件工程设计基本步骤(案例参考)在当今信息技术高速发展的背景下,软件工程设计成为了各行各业不可或缺的一环。
本文将以一个案例来介绍软件工程设计的基本步骤,以期为读者提供一种全面而系统的设计思路。
一、需求分析作为任何软件工程项目的起点,需求分析至关重要。
在这个案例中,我们设想一个线上购物平台的设计。
首先,我们需要与相关方进行沟通,详细了解他们对购物平台的期望与要求。
通过访谈、问卷调查等方式,我们可以收集用户的需求,并将其整理为一份需求文档。
这个文档将成为开发团队的参考,指导整个开发过程。
二、概要设计在需求分析的基础上,我们开始进行概要设计。
概要设计阶段的目标是构建一个高层次的设计框架,确定系统的整体结构以及各个子系统之间的相互关系。
在这个案例中,我们将主要关注平台的功能划分、数据流图、系统架构等方面的设计。
通过概要设计,我们可以全面把握系统的大致轮廓,并更好地与开发团队进行沟通和协作。
三、详细设计在概要设计确定后,我们进入详细设计阶段。
在这个阶段,我们将对系统进行更加具体和细致的设计。
首先,我们需要对每一个子系统或模块进行详细的设计,包括数据结构、算法、接口等。
其次,我们需要对系统的界面进行设计,以确保用户友好性和易用性。
最后,我们还需要进行性能设计,考虑系统的扩展性和可靠性。
通过详细设计,我们可以为开发团队提供清晰而具体的开发指导,同时也有助于我们进行项目进度的控制。
四、编码与测试在详细设计完成后,我们进入编码与测试阶段。
在这个阶段,开发团队将根据详细设计构建实际的软件代码,并进行单元测试、集成测试和系统测试。
通过测试,我们可以验证代码的正确性和稳定性,确保软件能够按照需求和设计要求进行运行。
五、部署与维护最后,我们需要将开发完成的软件部署到生产环境中,并对其进行维护。
在部署过程中,我们需要进行系统安装、配置和数据迁移等操作。
而在维护阶段,我们将持续关注软件的运行状况,及时修复漏洞和bug,并为用户提供技术支持。
淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:图着色理论在仓库管理系统中的应用——概要设计与详细设计班级:网络122学号:***********名:**1、实验目的与要求熟悉Visio绘图工具或PowerDesigner系统,并使用Visio或PowerDesigner系统提供的设计绘图工具,如H图、程序流程图、盒图、PAD图等完成软件工程实验项目的概要设计与详细设计文档中的层次图和程序流程图等图形绘制与文档说明。
2、实验内容一、概要设计1.1引言1.1.1编写目的近年来,生产的工业化速度迅速加快,生产的产品数量猛增,给传统的仓库管理方式手工作业带来了很大的负担,今天的仓库作业和库存控制作业已十分多样化,复杂化,靠人工去记忆去处理已十分困难,且出现错误的可能性很大。
如果不能保证正确的进货、验收、质量保证及发货,就会导致浪费时间,产生库存,延迟交货,增加成本,以致失去为客户服务的机会。
本文正是为解决这个问题而作。
本说明书的预期读者为小中型仓库的管理员及客户和采购员。
1.1.2背景本系统是:仓库管理系统。
本项目的任务提出者、开发者都是本人用户:中小型仓库管理员。
软件的计算机网络:任何装有IIS的计算机作为服务器端,其他处在同一网络的计算机作为客户端。
1.1.3定义DFD: Data Flow Diagram 数据流图,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
DD;Data Dictionary 数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
1.1.4参考资料1.《软件工程》---钱乐秋,赵文耘,牛军钰编著 ------ 清华大学出版社2.《数据库系统概论》—王珊萨师煊主编 -------高等教育出版社3.《 Java语言程序设计实用教程》董迎红张杰敏编著------ 北京大学出版社4. 可行性研究报告5. 需求分析说明书1.2总体设计1.2.1需求规定本系统软件主要实现的功能是仓库管理员对仓库进行库存的管理,主要包括,对于生产部门送来的货物进行清点,无误后入库,对于销售部门请求的货物进行核实,无误后出库。
并对仓库的库存量进行查询,当存货不足时,让采购员进行采购。
顾客通过进入系统的主界面进行货物的浏览,确定所需要的商品,进行商品的购买时,必须进行顾客的注册。
仓库管理员通过个人帐号进入系统,转到管理显示页面,选择要处理的管理要求。
1.2.2运行环境硬件环境:1.管理计算机一台。
2.A4打印机一台操作系统:无限制支持环境:IIS数据库:Microsoft SQL Server 20081.2.3基本设计概念和处理流程主要模块的流程图2.入库管理3.出库管理1.2.4结构用面向数据流的方法设计系统软件结构⒈库管理软件结构在需求分析中,已经使用结构化方法分析了“仓库管理系统”。
因此,可以从仓库管理系统流图出发来设计仓库管理系统的结构。
仓库管理系统数据流图下一个设计步骤是完成“第一级分解”。
所谓“第一级分解”就是确定系统的总体控制结构。
通常,变换分析得出的系统高层结构是一个“三叉”控制结构。
针对“仓库管理”得出的高层控制结构如图所示。
仓库管理的“第一级分解”再下一个设计步骤是完成“第二级分解”。
所谓“第二级分解”,就是把数据流图中的每个处理映射成软件结构中的一个适当的模块。
变换分析的映射规则是从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成软件结构中“输入信息处理控制模块”控制下的一个低层模块;然后沿着输出通路向外移动,把输出通路中每个处理映射成直接或间接接受“输出信息处理控制模块”控制的一个低层模块;最后把变换中心内的每个处理映射成接受“变换中心控制模块”控制的一个低层模块。
对于“仓库管理”来说,“第二级分解”的结果如图1所示。
仓库管理的“第二级分解”最后设计步骤是对仓库管理的初步结果优化。
结合仓库管理的“第二级分解”图可以将其优化成如下的软件结构图。
优化后的仓库管理软件结构⒉统帐户管理软件结构根据数据流图,能够得到系统帐户管理软件结构如下图所示。
系统帐户管理软件结构综合上面的分析,可进一步得到包含系统帐户管理、仓库管理和系统数据管理三大子功能的软件结构如图所示。
仓库管理系统细化的软件结构结合上述的分析描述,得到仓库管理系统的完整软件结构图,如图所示。
仓库管理系统的完整软件结构1.2.5人工处理过程仓库管理员需在每次入库出库对数据库进行更新,并在每次出库后对库存产品进行库存量统计。
1.2.6尚未解决的问题无。
1.3接口设计1.3.1用户接口系统采用图形用户接口,以网页形式为用户提供良好的操作界面,引导用户完成所需的各种操作。
运行库存管理系统的主应用程序,仓库管理员输入用户名和密码,只有输入正确才能进入系统。
1.3.2外部接口硬件接口:显示器分辨率>=1024*768,以方便在一个屏幕上显示完整,清晰的信息,键盘和鼠标完成输入功能。
打印机接口,根据具体的型号确定接口。
软件接口:软件后台通过网络连接与Microsoft SQL Server 2008数据库连接,即对数据库进行查询,更新,添加,删除等操作。
1.3.3内部接口1.各个类间的接口。
系统基于B/S模式开发,系统与数据库服务器之间以JDBC连接,保证数据库系统的物理独立性2.大量采用窗体的继承,保证风格统一1.4运行设计1.4.1运行模块组合管理员登陆,管理员密码修改属管理员登陆模块。
出库,输入产品出库信息,更新库存表,打印出库通知单,属于销售出库管理模块入库,输入产品入库信息,打印入库通知单属采购入库管理模块货物信息查询,客户信息查询,打印货物,客户信息属于查询模块1.4.2运行控制操作步骤:主程序运行,等待仓库管理员输入,根据输入调用各个子模块。
1、请求动态网页:登录后,用户在相应的网页上点击相应的按钮,系统自动执行相应的处理过程,把用户请求的网页显示在浏览器上。
2、数据库中增加/删除记录:管理员按指定要求和指定数据格式输入记录信息,点击提交按钮后,系统把新记录存储到数据库中的正确位置或者从数据库中删除相应的信息,同时返回是否增加/删除成功的提示信息。
1.5系统论据结构设计1.5.1逻辑结构设计要点系统的E-R图1.5.2物理结构设计要点本仓库管理系统根据划分的模块定义了如下数据字典:①用户信息表表名:user内容:记载用户登陆的基本信息组成:组织:按录入顺序。
②客户信息表表名:customerinfo内容:记载客户相关的基本信息组成:组织:按录入顺序。
③产品类型表表名:producttype内容:记载产品类型的基本信息组成:组织:按录入顺序。
④库存信息表表名:store内容:记载产品库存的基本信息组成:1.6系统出错处理设计1.6.1出错信息1.6.2补救措施1.顾客登陆次数过多:弹出消息框提示顾客非法登录,已经超过登录上线,今天不能再次登录2.对数据库进行备份3.用备份文件进行恢复4.重新组织数据库1.6.3系统维护设计在整个系统的运行过程中,系统的维护和管理是始终贯穿其中的,包括进行系统应用程序的维护、代码的维护、数据的备份与恢复、硬件设备维护。
系统在运行时,也要随着环境的变化根据不同的需求及变化对系统进行必要的修改,使得系统功能更加完善。
系统维护工作贯穿于系统的整个运行过程中,包括:系统应用程序的维护、数据的维护、代码的维护、硬件设备维护,系统维护的重点是系统应用软件的维护工作。
而系统维护工作不应总是被动的等待用户提出要求后才进行,应进行主动的预防性维护。
二、详细设计1.1程序1(标识符)设计说明1.1.1程序描述本系统分为九大模块,包括验证用户身份功能模块、系统总控制模块、用户信息管理模块、客户信息管理模块、产品入库功能模块、产品出库功能模块、产品信息管理模块、打印功能模块、数据维护模块。
1.1.2功能以下分模块描述功能:1.证用户身份功能模块⑴能描述验证用户身份功能模块用于对登陆系统的用户进行身份验证,确定用户是否拥有使用该系统的资格以及该用户的权限。
因此,任何用户登陆系统都调用此模块。
⑵要算法if 用户名 and 口令正确以该用户身份进入系统总控制界面并获得响应系统权限else提示“用户名或口令错误”累计错误三次,自动关闭本系统end if2.系统总控制模块⑴能描述系统总控制模块是系统运行时的主控制程序,通过系统的主菜单集中各子功能模块,用户在该模块中通过选择菜单进入到相应的子模块。
⑵菜单设计系统菜单设计如下表所示。
表1 系统菜单⑶主要算法每个菜单项调用相应模块,实现各自的功能。
以退出系统为例:if 退出系统提示“确认退出系统?”if 确认退出退出仓库管理系统else返回到仓库管理系统end ifend if其他功能菜单类似。
3.用户信息管理模块⑴功能描述用户信息管理模块是对整个系统的用户进行权限分配的模块,通过调用该模块,具有查询用户基本信息和修改密码及权限的功能。
系统第一次运行时只有超级用户具有用户权限分配的权限。
⑵调用方式用户在主控制界面中选择调用该模块。
⑶主要算法①添加按钮触发的处理:用于添加新的用户,产生添加用户的界面。
(仅限管理员权限)②删除按钮触发的处理:用于删除选中的系统用户。
(仅限管理员权限)③修改密码按钮触发的处理:用于修改当前用户的密码,产生新的密码修改界面。
修改密码处理流程:输入原始密码重复输入原始密码if 两次密码相同匹配数据库用户密码if 与数据库密码相同继续输入新密码,修改成功else显示“您的密码不正确!”else显示“两次输入不相同!”④上一页按钮触发的处理:显示上一页的记录。
⑤下一页按钮触发的处理:显示下一页的记录。
⑥首页按钮触发的处理:显示第一页的记录。
⑦末页按钮触发的处理:显示最后一页的记录。
⑧退出按钮触发的处理:关闭用户信息管理窗口并返回主控制界面。
⒋客户信息管理模块⑴功能描述客户信息功能模块是供系统使用人员对客户信息进行检索与查询并且进行修改的模块。
通过调用该模块,能够按照不同的条件组合进行客户信息的查询,并可以对查询到的客户信息进行修改。
⑵调用方式用户在主控制界面中选择相应选项打开客户信息界面,在界面中选择相应功能。
⑶主要算法①查询条件下拉列表:选择查询的方式,然后于查询框中填写关键字进行搜索。
②添加按钮触发的处理:用于添加新的客户,产生添加客户的界面。
(仅限管理员权限)③删除按钮触发的处理:用于删除选中的客户的信息。
(仅限管理员权限)④修改按钮触发的处理:用于修改选中的客户的信息,产生客户信息修改界面。