软件工程第三章软件设计软件设计概述内容_第1页
软件工程第三章软件设计软件设计概述内容_第2页
软件工程第三章软件设计软件设计概述内容_第3页
软件工程第三章软件设计软件设计概述内容_第4页
软件工程第三章软件设计软件设计概述内容_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程第三章软件设计软件工程第三章软件设计软件设计概述内容软件设计概述内容软件设计是一个描述、组织、构造系统部件的过程,是确定软件“怎么做”的过程。这个过程分为两个层次:概要设计和详细设计。软件设计的输入是《需求规格说明书》,输出是《概要设计说明书》和《详细设计说明书》软件工程第三章软件设计软件设计概述内容总体设计(概要设计)从全局的高度,确定系统的总体实现方案和整体框架它要覆盖《需求规格说明书》的全部内容,同时作为指导详细设计的依据详细设计确定应该怎样具体地实现各个软件元素,得到对目标系统的精确描述要覆盖总体设计的全部内容,同时作为指导程序设计的依据软件工程第三章软件设计软件设计概述内容总体设计的具体任务制定规范系统命名规范,模块命名规范,构件命名规范,变量命名规范,以及数据库中的表名、字段名、索引名、试图名、存储过程名、触发器名等总体结构设计系统体系结构的设计通常采用软件结构图的横向表示功能分解,纵向表示功能的层次调用软件工程第三章软件设计软件设计概述内容处理方式设计数据设计数据结构设计文件设计数据库设计质量设计文档设计软件工程第三章软件设计软件设计概述内容评审总体设计可回溯性接口定义是否清晰检查模块的内聚力风险性实用性质量属性各种选择方案限制其他问题软件工程第三章软件设计软件设计概述内容总体设计的过程设想供选择的方案根据需求分析阶段的数据流程图中处理逻辑关系,归并形成子系统不同的子系统组合产生不同的系统实现方案材料要求:系统流程图、组成系统的元素清单、成本/效益分析、实现这个方案的进度计划推荐最佳方案功能分解将复杂功能分解成简单功能,使之对应成一个模块只完成一个适当功能,便于实现软件工程第三章软件设计软件设计概述内容设计软件结构采用层次图或结构图描述模块之间调用的关系数据设计包括数据结构设计、文件设计和数据库设计制定测试计划针对软件结构的测试和集成测试书写文档总体设计规格说明书用户手册测试计划详细的实现计划软件工程第三章软件设计软件设计概述内容设计过程的一般模型软件工程第三章软件设计软件设计概述内容设计原则原则一,多样化设计原则二,设计对于分析模型应该是可跟踪的原则三,设计不应该从头做起原则四,软件设计应该尽可能缩短软件和现实世界的距离原则五,设计应该表现出一致性和规范性原则六,设计的易修改性原则七,容错性设计原则八,设计的粒度要适当原则九,在设计时就开始评估软件的质量原则十,要复审设计,减少设计引入的错误软件工程第三章软件设计软件设计概述内容影响软件设计的因素共同设计用户界面文化问题并发性软件工程第三章软件设计软件设计概述内容软件设计的概念模块一个软件系统根据其功能分解成许多较小的程序单元模块的基本属性功能-模块要完成的任务逻辑–描述模块为了完成任务,模块内部怎么做状态–使用该模块时的环境和条件软件工程第三章软件设计软件设计概述内容模块化定义即把程序划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块规模的确定标准模块应该是高内聚的模块应该是松散耦合的软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容模块独立性“模块独立”是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。模块独立性原则的两个定性标准度量耦合-衡量模块之间彼此依赖的紧密程度内聚-衡量一个模块内部各个元素彼此结合的紧密程度软件工程第三章软件设计软件设计概述内容耦合–模块间相互关联的程度关联程度的决定因素一个模块对另一个模块的访问模块间传递的数据量一个模块传递给另一个模块的控制信息模块间接口的复杂程度软件工程第三章软件设计软件设计概述内容耦合的分类内容耦合-一个模块直接参考另一个模块的内容例子结论-坚决避免使用内容耦合…

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:test");

stmt=con.createStatement();

rs=stmt.executeQuery("selectareano,areafangxiang,areasell,endtimefromlandInformation");

while(rs.next())

{

…软件工程第三章软件设计软件设计概述内容公共耦合-多个模块都访问同一个公共数据环境分类松散公共耦合:一个模块只是往公共数据环境里传送数据,而另一个模块只是从公共数据环境中取数据紧密公共耦合:两个模块都向公共数据环境中送数据,同时也都从公共数据环境中取数据例子动态并发程序的执行结论-限制使用公共耦合软件工程第三章软件设计软件设计概述内容外部耦合–两个模块都访问同一个全局简单公共变量,而不是同一全局数据结构,且不是通过参数表传递该全局变量的信息例子结论:限制使用外部耦合while(gloableT==0){ifx>25thenModuleA();elseModuleB();}软件工程第三章软件设计软件设计概述内容控制耦合–模块A向模块B传递一个控制信息例子把一个数组名作为参数传递给另一个模块时,就形成了参数以传址的形式进行传递,降低模块的独立性。结论:少用控制耦合软件工程第三章软件设计软件设计概述内容数据结构耦合–一个模块调用另一个模块时传递了整个数据结构数据耦合–两个模块之间传递的是数据项结论:尽量使用数据耦合。软件工程第三章软件设计软件设计概述内容非直接耦合–两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现例子If(x)thenmodelAelsemodelB结论:独立性最强的耦合软件工程第三章软件设计软件设计概述内容内容耦合公共耦合外部耦合控制耦合数据结构耦合数据耦合非直接耦合高低弱强模块耦合性模块独立性软件工程第三章软件设计软件设计概述内容耦合的类型软件工程第三章软件设计软件设计概述内容如何降低模块间的耦合根据系统的特点,选择恰当的耦合类型降低模块接口的复杂性把模块之间的通信信息放在缓冲区中软件设计的目标是降低模块间的耦合程度,设计时遵循的原则:尽量使用数据耦合,少用控制耦合,限制使用公共耦合,坚决不用内容耦合。软件工程第三章软件设计软件设计概述内容

内聚巧合内聚–一个模块执行多个完全互不相关的动作例子为了节省空间,将多个模块中重复出现的语句提取出来,组成一个新的模块程度:低内聚软件工程第三章软件设计软件设计概述内容逻辑内聚–一个模块执行一系列相关动作例子程序执行的逻辑类似,并共用一部分代码,接口参数为了区分执行过程而显得非常复杂。程度:低内聚软件工程第三章软件设计软件设计概述内容时间内聚–一个模块内部的多个任务是与时间有关例子:程序的初始化过程程度:低内聚publicvoidinit(ServletConfigconfig)throwsServletException {moni_num_in=0; moni_num_end=0;rBundle=ResourceBundle.getBundle("immserver.servletConfig"); transportType=rBundle.getString("TRANSPORT_TYPE");……}软件工程第三章软件设计软件设计概述内容过程内聚–模块执行的若干动作之间有顺序关系例子验证用户登录信息If合法提取用户个性化信息Else拒绝登录程度:中等程度内聚软件工程第三章软件设计软件设计概述内容通信内聚–模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。例子读取文件记录重新计算文件记录将文件记录进行输出程度:中等程度内聚软件工程第三章软件设计软件设计概述内容信息内聚–一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上。例子程度:高内聚软件工程第三章软件设计软件设计概述内容功能内聚–一个模块中各个部分都是完成某一具体功能必不可少的组成部分。例子成功标志用户身份验证(用户名,用户密码){验证过程;…return成功标志;}程度:高内聚软件工程第三章软件设计软件设计概述内容巧合内聚逻辑内聚时间内聚过程内聚通信内聚信息内聚功能内聚低高弱强模块内聚性模块独立性软件工程第三章软件设计软件设计概述内容练习1软件设计中划分模块的一个准则是A。两个模块之间的耦合方式中,B耦合的耦合程度最高,C耦合的耦合度最低。一个模块内部的内聚种类中D内聚的内聚程度最高,E内聚的内聚度最低。A:①低内聚低耦合

②低内聚高耦合

③高内聚低耦合

④高内聚高耦合B:①数据

②非直接

③控制

④内容C:①数据

②非直接

③控制

④内容D:①偶然

②逻辑

③功能

④过程E:①偶然

②逻辑

③功能

④过程

软件工程第三章软件设计软件设计概述内容练习2软件设计中划分程序模块通常遵循的原则是要使各模块间的耦合性尽可能

A。三种可能的模块耦合是B

。例如,一个模块直接引用另一模块中的数据。C

。例如,一个模块把开关量作为参数传递给另一模块。D

。例如,一个模块把一个数值量作为参数传递给另一模块。其中

E的耦合性最强。A:

①强

②适中

③弱

B~E:①公共耦合

②数据耦合

③逻辑耦合

④外部耦合

⑤内容耦合

⑥控制耦合

软件工程第三章软件设计软件设计概述内容练习3模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度1、一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是A的。2、将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是B的。3、模块中所有成分引用共同的数据,该模块的内聚度是C

的。4、模块中所有成分结合起来完成一项任务,该模块的内聚度是D的。A~E:①功能性

②逻辑性③通信性④过程性

⑤偶然性

⑥瞬时性软件工程第三章软件设计软件设计概述内容抽象定义抽出事务的本质特性而暂时不考虑它们的细节。Wasserman提出的几种抽象方法功能分解法面向数据的分解法面向事件的分解法由外向内的设计面向对象的设计软件工程第三章软件设计软件设计概述内容信息隐藏含义一个模块中所包含的信息,不允许其他不需要这些信息的模块使用局部化把一些关系密切的软件元素物理地彼此靠近放置在一个局部的环境当中。软件工程第三章软件设计软件设计概述内容软件体系结构风格(模式)管道和过滤器(数据流模型)该体系结构被用于当输入数据被通过一系列计算或操纵构件变换为输出数据的情形。软件工程第三章软件设计软件设计概述内容例子一个机构给其客户开出帐单。每星期将付款与帐单核对一次,若账单已经支付,则开出收据,若在一个规定的时间内尚未支付,则给出一个催款单。软件工程第三章软件设计软件设计概述内容面向对象需求可以通过对象以及它们的抽象类型组织起来。隐式请求隐式请求设计模型是事件驱动的。面向数据流的设计将系统按层次划分,每一层都为上一层提供服务。过程控制将过程输出维持在某个指定值的范围之内。客户机/服务器软件工程第三章软件设计软件设计概述内容程序结构程序结构反映软件结构中的模块划分情况,它通常是树状结构或网状结构,其中蕴含了程序控制上的层次关系。软件工程第三章软件设计软件设计概述内容程序结构分类树状结构整个树状结构只有一个根模块任何一个非根模块,只有一个调用模块,而且同一层模块之间不发生联系软件工程第三章软件设计软件设计概述内容网状结构任意两个模块之间都可以有双向的关系,不存在上级模块和下属模块的关系软件工程第三章软件设计软件设计概述内容表示软件结构的图形软件层次图软件工程第三章软件设计软件设计概述内容软件结构图软件工程第三章软件设计软件设计概述内容数据设计数据设计的原则用于软件的系统化方法也适用于数据要确定所有数据结构,以及在每种数据结构上实施的操作应该建立一个数据字典,用它来定义数据和软件的设计底层数据设计的决策应该推迟到设计过程的后期进行,在数据设计中也可以使用自顶向下、逐步细化的方法数据设计时应遵从信息隐藏原则应当创建一个存放数据结构和相关操作的库软件设计和程序设计语言应当支持抽象数据类型的定义和实现软件工程第三章软件设计软件设计概述内容数据结构设计原则尽量使用简单的数据结构在设计数据结构时要注意数据之间的关系为了加强数据设计的可复用性,应该针对常用的数据结构和复杂的数据结构设计抽象类型尽量使用经典数据结构在确定数据结构时一般先考虑静态结构对于复杂数据结构,应给出图形和文字描述,以便于理解软件工程第三章软件设计软件设计概述内容文件设计定义:指对数据存储文件的设计。文件的逻辑设计整理必需的数据元素分析数据间的关系确定文件记录的内容文件的物理设计理解文件的特性确定文件物理组织结构确定文件的存储介质确定文件的记录格式估计记录的存取时间估计文件的存储量软件工程第三章软件设计软件设计概述内容数据库设计数据库设计的基本步骤逻辑设计–创建E-R图物理设计–按照第三范式设计表结构安全性设计用户只能通过账号登录应用软件,通过应用软件访问数据库用户账号的密码进行加密处理。确保在任何地方不出现密码的铭文表示确定每个角色对数据库访问的权限。性能优化优化表结构本身优化数据库的环境参数软件工程第三章软件设计软件设计概述内容第一范式(1NF)在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。第二范式(2NF)如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。第三范式(3NF)如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。软件工程第三章软件设计软件设计概述内容PowerDesign9使用方法安装认识环境练习建立逻辑模型(CDM)建立物理模型(PDM)生成SQL文件,同时生成数据库软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容练习软件工程第三章软件设计软件设计概述内容步骤建立实体图(Entity)填写属性(Attributes)建立联系(Relationship)定义概念模型属性Model->ModelProperties…创建概念模型的域Model->Domains…检查CDMTools->CheckModel…由CDM生成PDMTools->GeneratenewPhysicalDataModel软件工程第三章软件设计软件设计概述内容观察标识符与联系的转换利用PDM创建数据库创建一个Access空数据库(test.mdb)配置数据源创建数据库,同时生成SQL文件Database->GenerateDatabase选择ODBCgeneration选项检查Access数据库(test.mdb)软件工程第三章软件设计软件设计概述内容结构化设计方法数据流的类型交换流:可划分为明显的3个部分:逻辑输入、中心变换、输出数据。整个的数据流动以一种顺序的方式并沿一条或很少的几条“直线”路径进行。如果一部分数据流图体现了这些特征,这就是变换流。软件工程第三章软件设计软件设计概述内容事务流一个数据数据流经过某个加工后,有若干个平行的数据流流出,将这种变换称为事物流。事务流的特征是数据沿某输入路径流动,该路径将外部信息转换成事务,事务被估值,根据其值,启动沿很多动作路径之一的流。其中发射出多条动作路径的信息流中心被称为事务中心。

软件工程第三章软件设计软件设计概述内容设计过程

流程图类型区分事物中心和数据接受路径区分输入和输出分支”事物“”变换“映射成事物结构映射成变换结构用启发式设计规则精化软件结构导出接口描述和全程数据结构详细设计数据流程图复查软件工程第三章软件设计软件设计概述内容变换分析变换分方法的步骤重画数据流图在数据流程图上区分系统的逻辑输入、逻辑输出和中心变换部分设计软件结构的顶层和第一层设计软件结构的第二层软件工程第三章软件设计软件设计概述内容变换型数据流程图转化为软件结构图软件工程第三章软件设计软件设计概述内容例子步骤1:评审和精化软件的数据流图。软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容步骤2:确定DFD含有变换流还是事务流步骤3:刻画输入和输出流的边界,隔离变换中心。输入流被描述成信息从外部形式变换为内部信息的路径。输出流是信息从内部形式变换为外部形式的路径。软件工程第三章软件设计软件设计概述内容软件工程第三章软件设计软件设计概述内容步骤4:完成软件结构的顶层模块和第一层结构图软件工程第三章软件设计软件设计概述内容步骤5:完成软件结构的第二层结构转化软件工程第三章软件设计软件设计概述内容完成软件结构的第一次迭代软件工程第三章软件设计软件设计概述内容步骤6:用提高软件质量的启发信息,精化第一次迭代得到的程序结构软件工程第三章软件设计软件设计概述内容事务分析事务分析方法的具体步骤重画数据流图确定事务流和变换流标识事务中心、事务接收路径和事务处理路径设计软件结构的顶层和第一层设计软件结构的第二层软件工程第三章软件设计软件设计概述内容具有边界的用户交互子系统的第2层DFD步骤1:评审和精化软件的数据流图步骤2:确定DFD含有变换流还是事务流特征。步骤3:标识事务中心和每条动作路径上的流特征。软件结构第一层图软件结构第二层图软件工程第三章软件设计软件设计概述内容事务映射过程步骤4:将DFD映射到一个适合于进行事务处理的程序结构上软件工程第三章软件设计软件设计概述内容用户交互子系统的第一层软件结构图软件工程第三章软件设计软件设计概述内容用户交互子系统的第一次迭代软件结构图步骤5:完成第2层结构化并精

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论