软件工程考核知识点-第4章-软件概要设计

软件工程考核知识点-4-软件概要设计
4.1 软件概要设计的基本任务
    在软件需求分析阶段,已经搞清楚了软件做什么的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件做什么的逻辑模型变换为怎么做的物理模型,即着手实现软件的需求,并将设计的结果反映在设计规格说明书落叶的忧伤”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
4.1.1 基本任务
    1. 设计软件系统结构(简称软件结构)
    为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为:
    (1)采用某种设计方法,将一个复杂的系统按功能划分成模块
    (2)确定每个模块的功能。
    (3)确定模块之间的调用关系。
    (4)确定模块之间的接口,即模块之间传递的信息。
河南金蝉养殖
    (5)评价模块结构的质量。
    根据以上内容,软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分成层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。软件结构的设计是概要设计关键的一步,直接影响到下一阶段详细设计与编码的工作软件系统的质量及一些整体特性都在软件结构的设计中决定。
    2.数据结构及数据库设计
    对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是很重要的。
    (1)数据结构的设计
    逐步细化的方法也适用于数据结构的设计。在需求分析阶段,已通过数据字典对数据的组成、操作约束、数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。在概要设计阶段,宜使用抽象的数据类型。
    (2)数据库的设计
    数据库的设计指数据存储文件的设计,主要进行以下几方面设计:
吴迪 网球
    概念设计。在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表示数据模型,这是一个概念模型。
    逻辑设计。ER模型或IDEFlx模型是独立于数据库管理系统(DBMS)的,要结合具体的DBMS特征来建立数据库的逻辑结构,对于关系型的DBMS来说将概念结构转换为数据模式、子模式并进行规范,要给出数据结构的定义,即定义所含的数据项、类型、长度及它们之间的层次或相互关系的表格等等。
    物理设计。对于不同的DBMS,物理环境不同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方式、索引的建立。
    3.编写概要设计文档
    文档主要有:
    (1)概要设计说明书。
    (2)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果。
    (3)用户手册,对需求分析阶段编写的用户手册进行补充。
    (4)修订测试计划,对测试策略、方法、步骤提出明确要求。
    4.评审
    对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一致性等等都一一进行评审。
4.1.2 软件概要设计说明书的主要内容
    概要设计说明书是概要设计阶段结束时提交的技术文档,按国标GB8576-88计算机软件产品开发文件编制指南规定,软件设计文档可分为概要设计说明书详细设计说明书数据库设计说明书
4.2 软件设计的基本原理
    软件设计中最重要的一个问题就是软件质量问题,用什么标准对软件设计的技术进行衡量呢?本节介绍几种基本原理。
4.2.1 模块化
    何为模块?模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。模块是可组合、分解和更新的单元。模块有以下基本属性:
  接口:指模块的输入与输出。
  功能:指模块实现什么功能。
  逻辑:描述内部如何实现要求的功能及所需的数据。
  状态:该模块的运行环境,即模块的调用与被调用关系。
舆情控制  功能、状态与接口反映模块的外在特性,逻辑反映它的内在特性。
    模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
    中国人民解放军第四军医大学例如,设问题x,表示它的复杂性函数为C(x),解决它所需的工作量函数为E(x)。对于问题P1P2,如果 C(P1)C(P2)PlP2复杂,
    那么 E(P1)E(P2)即问题越复杂,所需要的工作量越大。
    根据解决一般问题的经验,规律是:
      C(P1P2)C(P1)C(P2)
    即一个问题由两个问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。这样可以推出:
    E(PlP2)E(P1)E(P2)
    由此可知,开发一个大而复杂的软件系统,将它进行适当的分解,不但可降低其复杂性,还可减少开发工作量,从而降低开发成本,提高软件生产率,但是模块划分越多,块内的工作量减少,模块之间接口的工作量增加了,如图4—l所示。因此在划分模块时,应减少接口的代价,提高模块的独立性。

4.2.2 抽象
    抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同性而暂不考虑它的细节,不考虑其他因素。抽象的概念被广泛应用于计算机软件领域,在软件工程学中更是如此。软件工程过程中的每一步都可以看作是对软件解决方法的抽象层次的一次细化。
4.2.3 信息隐蔽
    通过抽象,可以确定组成软件的过程实体。通过信息隐蔽,可以定义和实现对模块的过程细节和局数据结构的存取限制。信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。
4.2.4 模块独立性
    为了降低软件系统的复杂性,提高可理解性、可维护性,必须把系统划分成为多个模块,模块不能任意划分,应尽量保持其独立性。模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
    如何衡量软件的独立性呢?根据模块的外部特征和内部特征,提出了两个定性的度量标准--耦合性和内聚性。
    1.耦合性
    也称快间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。模块的耦合性有以下几种类型,分为:
   (1)无直接耦合
    指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。
   (2)数据耦合
    指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
   (3)标记耦合
    指两个模块传递的是数据结构,如:高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。
   (4)控制耦合
    指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某些功能。
   (5)公共耦合
    指通过一个公共数据环境相互作用的那些模块间的耦合。公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及任何存储介质上的文件、物理设备等。
   (6)内容耦合
    这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合,这种情况往往出现在汇编程序设计中。
中央工艺美术学院2 内聚性
    又称块内联系,指模块的功能强度的度量。若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高,内聚性有以下几种类型:
   (1)偶然内聚
    指一个模块内的各处理元素之间没有任何联系。
   (2)逻辑内聚
    指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
   (3)时间内聚
    把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
   (4)通信内聚
    指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输人数据或者产生相同的输出数据。
   (5)顺序内聚
    指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
   (6)功能内聚
    这是最强的内聚;指模块内所有元素共同完成一个功能,缺一不可。
    耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

本文发布于:2024-09-22 10:38:47,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/649285.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   设计   软件   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议