第06章 软件设计概论.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * QQ:462031289 * ⑷详细设计 对体系结构设计和人机交互设计的成果进行细化和精化,最终获得高质量的、充分细化的软件设计模型。 QQ:462031289 * ⑸设计整合与验证 整合前面获得的所有设计模型,检查并消解它们之间的不一致性,剔除冗余性,以用例为导引构建设计模型中所有元素协力完成用例目标的完整视图,最终形成设计规约。 对设计规约进行评审和必要的修改,确保其在正确性、充分性、优化性和简单性四个方面具有优良的质量属性。 QQ:462031289 * ⑹总结 对本次迭代子过程的活动及结果进行总结、评价,为所有参与者提供软件设计过程和中间产品的状态的直观描述,决定后续行动计划(启动下一设计迭代或进入软件实现阶段)。 类似于需求工程,设计过程中各活动之间的时序并非十分严格,如,在后续设计活动中发现的设计缺陷将导致引入该缺陷的前驱 活动的返工,以彻底消除缺陷。 图6.4 用UML活动图表示的软件设计过程的工作流 QQ:462031289 * 6.3.2 迭代式设计过程模型 对于软件设计过程,迭代有两层含义。 第一层是,针对给定的需求模型,通过多次从策划到总结的设计过程,得出足够精细的设计模型以供软件实现之用。迭代过程中抽象级别逐次降低,细节不断丰富。 第二层是,以不完整的需求模型为输入,展开前述意义下的迭代式设计,结果模型交由软件实现人员构建目标软件产品的原型或中间产品。 QQ:462031289 * 迭代式设计过程模型 图6.5针对固定需求的迭代式设计过程 图6.6针对可变需求的迭代式设计过程 * * QQ:462031289 * 小结 设计模型 软件设计的主要任务是根据软件需求模型导出软件的实现方案,表现为设计模型。一般包括 体系结构模型、用户界面模型、用例设计模型、数据模型、子系统/构件/类设计模型。 其质量要素包括 正确性、充分性、优化性和简单性四个方面。 为此,软件设计必须遵循一些基本的设计原则: 抽象与逐步求精、强内聚及松耦合、信息隐藏、关注点分离原则。 QQ:462031289 * 小结 软件设计还必须遵循系统化的过程模型,它通常包括策划、体系结构设计、人机交互设计、详细设计、总结等活动。 对大中型软件项目以及需求易变的软件项目,软件设计过程往往采用迭代方式,经过反复多次的设计求精后才能如愿以偿。 除以上基本技能和方法外,设计师有必要进一步掌握分别针对软件设计各阶段的行之有效的具体技术和方法。 第七至九章将依次介绍体系结构设计、人机交互设计及详细设计的过程和技术。 QQ:462031289 * 习 题 1. 观察你所在的房间,找出一个熟悉的对象,例如:椅子、课桌或电话机。给出这个对象的逐级抽象,至少要有三个层次。 2. 针对下列软件问题至少开发三级抽象: (1) 三维计算机图形变换软件包; (2) 两自由度机器人控制程序。 * * * * * * * * * * * * * * * * * * * * * * * * * * QQ:462031289 * 模块分解到什么程度? 模块分解与开发耗费的关系 当模块总数增加时,每个模块的开发成本减少了,但模块衔接所需的代价随之增加,致使软件开发的总耗费呈抛物线状 * * 图6.2 模块分解与软件开发总耗费 最佳的模块数M 应保证总耗费最小 依经验选取 如何分解、分解到什么程度一直是软件设计面临的主要难题 为此引入模块内聚度和耦合度两个概念 QQ:462031289 * 内聚 概念 表示一个模块内部各成分彼此关联的紧密程度 表现形式有: (1)偶然性内聚 (2)时间性内聚 (3)逻辑性内聚 (4)过程性内聚 (5)通信性内聚 (6)顺序性内聚 (7)功能性内聚 模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散 QQ:462031289 * 内聚 概念 表示一个模块内部各成分彼此关联的紧密程度 表现形式有: (1)偶然性内聚 (2)时间性内聚 (3)逻辑性内聚 (4)过程性内聚 (5)通信性内聚 (6)顺序性内聚 (7)功能性内聚 模块完成的诸任务必须在同一时间段内执行。 例如:系统的初始化 问题:不同功能混在一个模块中,有时共用部分编码,使局部功能的修改牵动全局。 QQ:462031289 * 内聚 概念 表示一个模块内部各成分彼此关联的紧密程度 表现形式有: (1)偶然性内聚 (2)时间性内聚 (3)逻辑性内聚 (4)过程性内聚 (5)通信性内聚 (6)顺序性内聚 (7)功能性内聚 模块完成多项功能,这些功能在逻辑上具有某种相关性。 A: R

文档评论(0)

44422264 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档