文档详情

软件工程第五章总体设计.ppt

发布:2022-03-25约3.1千字共47页下载文档
文本预览下载声明
第五章 总体设计 明确系统“怎么做”,回答“概括地说,系统应该如何实现?”的问题。内容包括: 设计过程 设计原理 启发规则 图形工具 面向数据流的设计方法(结构化设计) 5.1 设计过程 设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档: 审查和复审 设想供选择的方案 需求分析阶段得出的数据流图是总体设计的根本出发点。 本阶段仅列出供选择的方案,并不进行评价。 选取合理的方案 通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料: 系统流程图; 数据字典; 成本/效益分析; 实现这个系统的进度计划。 推荐最佳方案 分析员从合理方案中选择一个最佳方案向用户推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家应该认真审查。如果确认该方案确实符合用户的需要,并且在现有条件下完全能够实现,则应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员所推荐的方案之后,方可进入总体设计过程的下一步工作,即结构设计阶段。 功能分解 为确定软件结构,首先要进行功能分解。即:把那些功能过分复杂的处理进行适当的分解。功能分解会导致数据流程图的进一步细化。 设计软件结构 对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。 结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。 过程设计:确定每个模块的处理过程。 其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务 数据库设计 数据库的应用越来越广泛,目前大多数的系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性设计和优化处理等。 制定测试计划 在软件开发的早期阶段提前考虑软件的测试计划是很有必要的。这样能促使软件设计人员在设计时注意到软件的测试问题,从而有利于提高软件的可测试性。 书写文档 包括系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果等。 审查和复审 技术审查 管理复审 5.2 设计原理 模块化 抽象 逐步求精 信息隐蔽 模块独立性 模块化 模块:又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。例如高级语言中的过程、函数、子程序等都可作为模块。 模块化是软件的一个重要属性。模块化的特性提供了人们处理复杂的问题的一种方法,同时也使得软件能够被有效地管理。 模块化(续) 两个函数:C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。 对于两个问题P1和P2,如果:C(P1)>C(P2) 则:E(P1)>E(P2) 另一个有趣的特性是: C(P1+P2)>C(P1)+C(P2) 模块化(续) 根据前面的结论,我们可以得出下面的不等式: E(P1+P2)>E(P1)+E(P2) 这个不等式表明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。 这种“分而治之”的思想提供了模块化的根据:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。 模块化(续) 模块化和软件成本的关系 抽 象 我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。 软件工程过程的每一步,都是对软件解法的抽象层次的一次细化。在可行性研究阶段,软件被看作是一个完整的系统部分;在需求分析期间,我们使用在问题环境中熟悉的术语来描述软件的解法;当我们由总体设计阶段转入详细设计阶段时,抽象的程度进一步减少;最后,当源程序写出来时,也就达到了抽象的最低层 逐步求精 定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 Miller法则:一个人任何时候都只能把注意力集中在7(正负2)个知识块上。 信息隐蔽 信息隐蔽原理认为:模块所包含的信息(过程和数据)对于其他模块来说应该是隐蔽的。也就是说,模块应当被这样规定和设计,使得包含在模块中的信息(过程或数据)对于其它不需要这些信息的模块来说,是不能访问的,或者说是“不可见”的。 信息隐蔽对于软件的测试与维护都有很大的好处。因为对于软件的其它部分来说,绝大多数数据和过程都是隐蔽的,这样,在修改期间由于疏忽而引入的错误所造成的影响就可以局限在一个或几个模块内部,不至波及到软件的其他部分。 模块独立性 模块的独立性是软件质量的关键: (1)模块化程度较高的软件容易开发; (2)模块化程度较高的软件也比较容易测试和维护。 模块的独立性的度量标准:耦合和内聚 耦 合 耦合:软件结构中各
显示全部
相似文档