预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共54页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三章软件设计是软件开发的关键步骤,直接影响软件质量。软件设计阶段要解决“如何做”的问题。一、软件设计阶段的任务与目标设计任务:将分析阶段获得的需求说明转换为计算机中可实现的系统。设计阶段主要任务是:软件设计的目标就是构造一个高内聚低耦合的软件模型。软件设计的目标就是构造一个高内聚低耦合的软件模型。3.1.1软件体系结构设计体系结构设计是软件设计的第一个阶段,该阶段侧重于系统宏观结构的设计,而不关心模块的内部算法。分为集中式的仓库模型、分布式结构等一、仓库模型(Therepositorymodel)仓库模型的主要优缺点:优点:1.共享大数据量的有效方法。2.子系统不必关心其它的子系统如何使用它所产生的数据。3.易于将新子系统集成,若新子系统也采用相同规范。二、客户机/服务器模型(Client/ServerArchitecturalModel)两层客户机/服务器模型TwoTierClient/ServerArchitecturalModel电影图片库的系统的体系结构完整的应用包含三个相对独立的逻辑部分,而两层的C/S结构只有两个端应用。应用逻辑应该映射到哪一端上呢?三种情况:2.三层/多层应用模型(Three/MultiTierModel)三、分布式对象结构(DistributedObjectsArchitecture)“软件总线(SoftwareBus)”的中间件(Middleware)即对象请求代理(ObjectRequestBroker,简称ORB)分布式对象结构具有很好的开放性和透明性,用户可以非常方便地在总线上添加、更新或删除组件对象。流行的ORB技术标准有两种:CORBA(CommonObjectRequestBrokerArchitecture)DCOM(DistributedComponentObjectModel)四、抽象机模型软件设计分为总体设计和详细设计两个阶段。其工作流程可用下图表示:1、软件结构的准则2、模块化准则3、软件独立性准则软件结构表示软件的系统结构,它是软件模块间关系的表示,均表示为层次关系。①深度:表示软件结构中从顶层模块到最底层模块的层数;②宽度:表示控制的总分布;③扇出数:指一个模块直接控制下属的模块个数;④扇入数:指一个模块的直接上属模块个数。一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。我们利用模块化来降低软件复杂度。注意选择分解的最佳模块数。3.3结构化设计方法2、SD法的设计步骤这类数据流图可看成是对输入数据进行转换而得到输出数据的处理。DFD图可以明显分为“输入—处理—输出”三部分。这类数据流图有一个数据处理中心,按加工的结果选择一个输出数据流继续执行的处理。如下图所示:实例:银行贷款文件管理(MFUP)实例:银行贷款文件管理(MFUP)实例:银行贷款文件管理(MFUP)将DFD图转换为模块结构图按照“降低块间联系,提高块内联系”的设计总则进行修改,完善系统的模块图,写出模块的功能说明。2)消除重复功能若两模块含有重复的部分,应设法将重复的功能消去。控制范围—结构方面的特点,包括模块及其所有下属模块。作用范围—判断所涉及到的模块,是从功能特点考虑的。4)模块的大小适当模块大小指其篇幅,一般模块大小约50-100行为宜。5)模块的扇入扇出数不宜太多扇出数一个模块调用其他模块的个数。扇入数一个模块被其他模块调用的个数。除服务性模块外,模块的扇入扇出数不宜太多。否则块间联系增加。一、任务详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。二、常用的描述方法工具1、流程图2、结构化流程图(N-S图)3、PAD图—问题分析图4、PDL语言结构化流程图(N-S图)结构化流程图(N-S图)PAD图—问题分析图(problemAnalysisDiagram)其基本控制结构如下:例1:对数组X进行排序。“自顶而下,逐步求精”3.5面向对象的设计方法电梯的状态表示随着各种应用软件的面市,作为人机接口的用户界面具有越来越重要的作用,用户界面是否友好直接影响到软件的寿命与竞争力。因此,对用户界面的设计必须予以足够的重视。用户界面设计原则:1.可视性和可支付性(VisibilityandAffordance)。2.努力保持命令、菜单,颜色等统一(StriveforConsistency)。3.为频繁使用的用户提供快捷方式(EnableFrequentUserstoUseShor