欢迎来到天天文库
浏览记录
ID:44246665
大小:3.66 MB
页数:75页
时间:2019-10-20
《ch05-系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章系统设计第一节系统设计概述一、系统设计的任务和目的系统分析阶段要回答的中心问题是系统“做什么”,即明确系统功能,这个阶段的成果是系统的逻辑模型。系统设计要回答的中心问题是系统“怎么做”,即如何实现系统说明书规定的系统功能。在这一阶段,要根据实际的技术条件、经济条件和社会条件,确定系统的实施方案,即系统的物理模型。系统设计的依据:系统分析说明书,现行技术,现行的信息管理和信息技术的标准、规范,用户需求,系统运行环境三、系统设计的任务总体设计:(概要设计)——任务分解-模块划分-决定模块功能-决定模块调用关系-决定模块的接口详
2、细设计:——具体任务的技术方案-代码设计-数据库设计-输入、输出设计-人机对话设计(界面设计)-处理过程设计二、系统设计的目标系统的效率性系统的可靠性系统的准确性系统的可维护性系统的经济性因此系统设计必须从保证系统的可维护性入手,设计出一个易于理解、容易维护的系统。三、系统设计的原则1.系统的观点2.采用模块化的设计采用模块化设计可以带来以下好处:(1)模块化使系统结构清晰,容易设计也容易阅读和理解。(2)程序错误通常局限在有关的模块及它们之间的接口中,所以模块化能使系统容易测试和调试,从而有助于提高系统的可靠性。(3)系统的变
3、动往往只涉及少数几个模块,所以模块化还能够提高系统的可修改性。(4)模块化使得一个复杂的大型程序可以由许多程序员分工编写,并且可以进一步分配技术熟练的程序员编写困难的模块,有助于系统开发工程的组织管理。(5)模块化还有利于提高程序代码的可重用性。3.自顶向下、逐步求精第二节总体设计一、体系结构设计软件体系结构描述了构成系统的成分,这些成分之间的相互作用、指导其组合的风格(惯用模式),以及对这些风格的描述。对于复杂的具有分布式应用处理特点的系统,在进行具体设计之前,首先需要确定应用系统的体系结构。体系结构风格是进行系统体系结构设计
4、时可复用的惯用模式,它可以共享已有的设计经验,提高设计效率和质量。每种风格总结了常用问题的解决方法,规定了不同种类的成分及其拓扑关系,描述了数据模式以及如何控制成分间交互,它成为应用系统设计的元模型。1.二层C/S体系结构其主要缺点有以下几点:(1)客户端程序设计复杂;(2)开发成本高,C/S体系结构对客户端软、硬件的配置要求较高;(3)软件维护和升级困难;(4)不灵活,扩展困难。2.三层体系结构三层C/S体系结构B/S三层结构3.多层结构多层结构的优点有以下几个方面:可实现高度的可扩展性。提高系统的灵活性。便于分配适合的开发人
5、员以完成相应的开发任务。可以实现高度的代码重用。4.体系结构的选择选择体系结构应考虑以下因素:被开发的系统特点。如系统类型、用户需求、系统规模和使用方式等。网络协议。不同的体系结构风格需要不同的网络协议支持。可用的软件产品。包括网络软件、操作系统、数据库管理系统和服务器软件等。建设成本等。包括硬件和软件的购买成本、软件开发成本、系统安装与维护成本等。此外开发人员对所选体系结构风格实现技术掌握的熟练程度,以及实现所选体系结构风格所需的工期也是应考虑的因素。二、子系统划分与模块设计1.子系统划分(1)子系统的划分原则①子系统具有相对
6、独立性②子系统之间数据的依赖性要尽量小③便于系统分阶段的实现④对各类资源的充分利用(2)划分子系统的方法①按职能划分:这是目前最常使用的一种划分方法。②按过程划分:这是指按工作流程划分。在一些业务处理过程顺序特别强的系统中,这种划分方法常常被采用。③按数据拟合程度来划分:这是指相互之间有较多数据传输的处理划分为一个子系统。以这种方法划分出的子系统内部凝聚力强,外部通信压力小。在以上方法中,前两种方法是划分子系统的较好的方法。2.模块设计(1)模块模块是执行具体给定功能的一小段程序代码,是计算机程序的可标识部分,即用一个名字就可以
7、调用的“子程序”。模块的属性:输入输出:模块需要的信息/产生的信息逻辑功能:模块所做的工作,模块用程序代码完成它的功能内部数据:仅供该模块本身引用的数据,程序代码:内部数据和程序代码是模块的内部特性模块的例子:intmax(intx,inty){intz;z=x>y?x:y;return(z);}模块名数据内部数据内部语句2.模块设计(2)结构图模块:用方框表示,方框中写上模块名字,反映了这个模块的功能调用:从调用模块指向被调用模块的箭头数据:调用箭头旁的小箭头,表示从一个模块向另一个模块传送的数据,也指出了传送的方向结构图基本
8、符号及表示法编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息模块调用的例子:intmax(intx,inty){intz;z=x>y?x:y;return(z);}Main(){:max(3,4):}Main()求最大值Zxy简单调用BA
此文档下载收益归作者所有