- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?
?
《软件工程》-面向过程的软件设计方法
?
?
【前言】软件设计的目标和任务软件设计基础模块独立性结构化设计方法数据设计和文件设计、过程设计【内容】1.软件设计的目标和任务根据用信息域表示的软件需求,以及功能和性能需求,进行数据设计:数据结构定义系统结构设计:软件的系统各主要成分之间的关系过程设计:结构成分转换为软件过程性描述。2.软件设计任务分类(1)从工程管理的角度来看,软件设计分两步完成:概要设计:总体设计,将软件的需求转换为数据结构和软件的系统结构详细设计:过程设计,过程细化,得到软件的详细的数据结构和算法。(2)从管理观点的角度来看,软件设计分两步完成:概要设计、详细设计(3)从技术观点的角度来看,软件设计分三步完成:数据设计、系统结构设计、过程设计3.软件设计过程制定规范软件系统结构的总体设计处理方式设计数据结构设计可靠性设计编写概要设计阶段的文档概要设计评审4.软件设计基础(1)自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化。(2)软件结构软件结构包括两部分:程序的模块结构和数据的结构(3)程序结构(4)结构图(S-C图)结构图反映程序中模块之间的层次调用关系和联系。a.模块b.模块的调用关系和接口c.模块之间的信息传递d.表示模块A有条件地调用另一个模块B。
菱形:A有条件调用B,弧形:A循环调用C和D。(5)模块化能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。(6)抽象化a.模块抽象软件系统进行模块设计时,可有不同的抽象层次。抽象层次1:用问题所处环境的术语来描述这个软件;抽象层次2:任务需求的描述;抽象层次3:程序过程的表示。以2-D(二维)绘图生成任务为例。b.数据抽象在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。(7)信息隐蔽是指划分模块或定义层次时,若模块内的数据发生变化,要尽量不影响到其他模块或是少影响。5.模块独立性划分模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能。模块一般具有如下三个基本属性:功能:描述该模块实现什么功能逻辑:描述模块内部怎么做状态:该模块使用时的环境和条件模块独立性一般采用两个准则度量模块独立性。即模块间耦合和模块内聚.(1)模块间耦合a.非直接耦合(Nondirect Coupling)如果两个模块之间没有直接关系,这就是非直接耦合。b.数据耦合(Data Coupling)如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。c.标记耦合(Stamp Coupling)如果一组模块通过参数表传递记录信息,就是标记耦合。d.控制耦合(Control Coupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。e.外部耦合(External Coupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。其中公共耦合有两种情况:松散公共耦合和紧密公共耦合。g.内容耦合(Content Coupling)(2)模块内聚a.功能内聚(Functional Cohesion)一个模块中各个部分都是完成某一具体功能必不可少的组成部分,是不可分割的。b.信息内聚(Informational Cohesion)这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。c.通信内聚(Communication Cohesion)如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。d.过程内聚(Procedural Cohesion)使用流程图作为工具设计程序时,把流程图的某一部分划出组成模块,就得到过程内聚模块。e.时间内聚(Classical Cohesion)时间内聚模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。f.逻辑内聚(Logical Cohesion)这种模块把几种相关的功能组合在一起。g.巧合内聚(Coincidental Cohesion)巧合内聚模块内各部分之间没有联系,或者即使有联系,这种联系也很松散。6.结构化设计方法首先研究、分析和审查数据流图。然后根据数据流图
您可能关注的文档
- 《Python程序设计》课后习题答案.docx
- 《Redis-设计与实现》读书笔记-Redis-对象.docx
- 《redis设计与实现》-4-字典.docx
- 《redis设计与实现》-4字典中hash方法.docx
- 《Redis设计与实现》全面知识整理.docx
- 《Redis设计与实现》前言.docx
- 《Redis设计与实现》第1章-引言.docx
- 《Redis设计与实现》第8章-对象.docx
- 《Redis设计与实现》第一部分.docx
- 《Redis设计与实现》第十五章总结一:新旧复制功能.docx
- 《重构,改善既有代码的设计》读书笔记.docx
- 《领域驱动设计-DDD》核心知识梳理笔记.docx
- 「分布式系统前沿技术」专题-Pulsar-的设计哲学.docx
- 【Android-UI设计与开发】底部菜单栏使用Fragment实现底部菜单栏.docx
- 【App设计】互联网+商业计划书.docx
- 【HDL系列】Kogge-Stone加法器原理与设计.docx
- 【Linux内核设计与实现】Linux内核简介.docx
- 【Mybatis源码阅读】mybatis中的设计模式.docx
- 【Python实例分析】批量生成海报-自动添加姓名和二维码.docx
- 【Redis】《Redis设计与实现》读书笔记.docx
文档评论(0)