- 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章面向对象的软件开发基础
第四章 总体设计 总体设计的过程 软件设计的概念和原理 启发式规则 图形工具 面向数据流的设计方法 学习目标 了解概要设计的基本任务和过程; 掌握概要设计的基本原理; 了解概要设计的启发式规则; 掌握软件结构设计工具——层次图、HIPO图、结构图; 熟练掌握面向数据流的设计方法——变换分析和事务分析 总体设计的任务 基本目的是回答“概括地说,系统应该如何实现?”这个问题,又称为概要设计或初步设计。 设计软件的结构,确定系统中每个程序是由哪些模块组成及其相互关系。 总体设计的必要性。 4.1 总体设计的过程 总体设计通常分为两步: 系统设计,确定系统的具体实现方案。 结构设计,确定软件结构。 软件设计之初,制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。包括: 确定设计的目标,以及它们的优先顺序 根据目标确定最合适的设计方法 规定设计文档的编制标准 规定编码的形式,与硬件,操作系统的接口规约,命名规则 4.1.1 设想供选择的方案 根据需求分析阶段得出的数据流图,以自动边界为出发点,划分处理分组的各种可能性,设想并列出供选择的方案。 4.1.2 选取合理的方案 至少选取低成本、中等成本、高成本三种方案并对每种方案提供四份材料: 1、 系统流程图 2、成本/效益分析 3、组成系统的物理元素清单 4、进度计划 . 4.1.3 推荐最佳方案 比较各种方案的利弊,推荐一个最佳方案。 4.1.4 功能分解 分两个阶段:结构设计和过程设计 结构设计确定有哪些模块及模块之间的关系; 过程设计确定模块的处理过程 4.1.5 设计软件结构 将模块组织成良好的层次关系 4.1.6 数据库设计 三级组织结构: 内模式、模式、外模式(子模式)、完整性、安全性、优化 4.1.7 制定测试计划 4.1.8 书写文档 4.1.9 审查和复审 软件系统体系结构 工作环境 单机(Single) 主机/终端(Mainframe/Terminal) 客户机/服务器(Client/Server) 浏览器/服务器(Browser/Server) 浏览器/服务(Browser/services) 工作方式 在线/脱线(Online/Offline) 实时嵌入(Realtime) 软件体系结构在很大程度上影响软件的设计 软件系统结构的总体设计 一般采用根据功能层次结构设计系统的方法。 将系统按功能划分成模块的层次结构 确定每个模块的功能 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式,进行数据完整性和安全性的设计 确定输入,输出文件的详细的数据结构 结合算法设计,确定算法所必需的逻辑数据结构及其操作 数据的保护性设计 防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能 一致性设计: 保证软件运行过程中所使用的数据的类型和取值范围不变, 在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏 冗余性设计:针对同一问题,由两个开发者采用不同的程序设计风格不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确结果。 可靠性设计 可靠性设计是一种质量设计 在运行过程中,为了适应环境的变化和用户新的要求,需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护。 4.2 软件设计的概念和原理 模块化 抽象 信息隐蔽和局部化 模块独立 4.2.1模块化 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题/子问题的分解与软件开发中的系统/子系统或系统/模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 模块划分的大小与开发成本的关系见图 经验公式 设函数C(x)定义问题x的复杂程度,函数E(x)表示问题x需要的工作量对于问题p1、p2,如果 C(p1)C(p2),E(P1)e(p2), 则有 C(P1+P2)c(p1)+C(p2) 如果将问题P1、P2合并,则 E(p1+p2)E(p1)+E(p2) 4.2.2 抽象 1.软件系统进行模块设计时,可有不同的抽象层次。 2.在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。 3.在从总体设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低抽象层次。 4.自顶向下和逐步求精.
您可能关注的文档
最近下载
- 佳能70D中文使用说明书.pptx VIP
- 适用于高保真声效合成的共鸣腔几何建模与算法驱动优化设计方法研究.pdf VIP
- 六年级英语上册人教PEP版单词字帖.pdf VIP
- 2025年AWS认证EKS安全组策略配置与最佳实践专题试卷及解析.pdf VIP
- 2025年项目管理专业决策树分析PgMP认证考试专题试卷及解析.pdf VIP
- 《中国艰难梭菌感染诊治及预防指南(2024)》解读PPT课件.pptx VIP
- 车辆故障六案例培训.ppt VIP
- 2024-2025学年湖南省长沙市雅礼教育集团高二(上)期中考试物理试卷(含答案).docx VIP
- 2025年特许金融分析师估值模型中的终值计算敏感性专题试卷及解析.pdf VIP
- 2025年无人机驾驶员执照飞行器飞行前检查中的安全检查流程专题试卷及解析.pdf VIP
原创力文档


文档评论(0)