2010年自考《软件工程》复习重点及试验指导汇总2
自考软件工程第2章知识点总结

第2章 软件需求分析
2. 系统流程图的符号 系统流程图的符号如表 2 - 1 所示。 3. 系统流程图的示例
输入 变更 记录 库存 管理 模块 订货 信息 报告 生成 模块
订货 报告 库存
图 2.1 库存管理系统的系统流程图
第2章 软件需求分析
第2章 软件需求分析
第2章 软件需求分析
2.3 成本—效益分析
ห้องสมุดไป่ตู้
第2章 软件需求分析
1. 技术可行性
对要开发项目的功能、 性能和限制条件进行分析, 确定在 现有的资源条件下,技术风险有多大,项目是否能实现,这些 即为技术可行性研究的内容。 技术可行性一般要考虑的情况包括: (1) 开发的风险 (2) 资源的有效性 (3) 技术
第2章 软件需求分析
2. 经济可行性 进行开发成本的估算以及了解取得效益的评估, 确定要开 发的项目是否值得投资开发。
第2章 软件需求分析
2. 投资回收期
通常用投资回收期衡量一个开发项目的价值。投资回收 期就是使累计的经济效益等于最初的投资费用所需的时间。 投资回收期越短,就越快获得利润,则该项目就越值得开发。 投资回收期仅仅是一项经济指标,为了衡量一个开发项 目的价值,还应考虑其他经济指标。 3. 纯收入 衡量项目价值的另一个经济指标是项目的纯收入,也就 是在整个生存周期之内的累计经济效益(折合成现在值)与投资 之差。
2.4 项目开发计划
返回主目录
第2章 软件需求分析
第 2 章 软件要求定义
2.1 可行性研究
2.1.1 可行性研究的任务
首先需要进行概要的分析研究,初步确定项目的规模和目 标,确定项目的约束和限制,把它们清楚地列举出来。然后,
分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立 逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种 可供选择的主要解决办法,对每种解决方法都要研究它的可行 性。可从以下三方面分析研究每种解决方法的可行性。
(专升本)自考《软件工程》备考知识点汇总

(专升本)自考《软件工程》备考知识点汇总自考《软件工程》备考知识点汇总软件工程作为一门重要的学科,涵盖广泛的知识点。
对于计划参加自考《软件工程》考试的考生来说,了解并掌握备考知识点是非常重要的。
本文将结合《软件工程》课程大纲,对备考知识点进行汇总与总结,帮助考生有效备考。
一、软件工程概述软件工程的基本概念和原理、软件生命周期、软件过程模型、软件工程发展历程等。
1.1 软件工程的定义和目标软件工程是一门将系统化、规范化和可量化的方法应用于软件的开发、运维和维护的学科。
其目标是提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期包括需求分析、设计、编码、测试、交付、运维等阶段。
每个阶段都具有相应的活动和产出物。
1.3 软件过程模型常见的软件过程模型包括瀑布模型、迭代模型、增量模型、螺旋模型、敏捷开发等。
每种模型都有自己的优缺点,适用于不同的项目和团队。
1.4 软件工程发展历程软件工程的发展经历了不同的阶段,从软件危机到软件工程的产生和发展,包括软件工程的兴起、规范化和认证等。
二、需求分析与设计软件需求分析和设计是软件工程中至关重要的环节,涉及到对用户需求的理解和转化。
2.1 需求分析方法需求分析方法包括面向对象的方法、结构化分析方法、数据流图等,可以帮助开发人员理解用户需求并建立准确的需求规格说明书。
2.2 需求规格说明书需求规格说明书是对软件需求的详细描述和定义,包括功能需求、非功能需求、用户需求等,为软件设计和开发提供依据。
2.3 软件设计原则常见的软件设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则等。
良好的设计原则可以提高软件的可维护性和扩展性。
三、软件开发与编码规范软件开发和编码规范是保证软件质量和可维护性的重要环节,包括选择开发语言、代码风格约定等。
3.1 软件开发过程软件开发过程包括需求分析、设计、编码、测试和部署等阶段,每个阶段都需要遵循相应的规范和流程。
软件工程复习提纲总结3篇

软件工程复习提纲总结3篇七、软件维护1.软件维护的含义及类型?2.软件维护过程?3.◆需要把握的内容:4.1、面对对象分析(OOA)的任务?5.面对对象分析(OOA)过程中包括哪些活动?6.2、三种面对对象模型各自表示的内容?7.3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具?8.4、结合软件开发实例,理解三种面对对象模型之间的关系9.以及面对对象分析环节完成的主要工作。
10.11.---------------? 课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。
2.软件可行性讨论的任务是从技术、和三个方面分析软件项目的可行性。
3.软件测试的目的是;通常把软件测试方法分为和两大类。
4.结构化分析方法中,功能模型用描述;数据模型用描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以根据自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题1.产生软件危机的主要缘由有(C)。
①软件本身的特点②用户使用不当③硬件牢靠性差④程序员水平⑤缺乏好的开发方法和管理手段A.③④B.①②④C.①⑤D.①③2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。
A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构3.数据流图中的每个处理至少有(B)。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流4.在面对数据流的设计方法中,一般把数据流图划分为(C)两种类型。
A.数据流和事务流B.变换流和数据流C.变换流和事务流D.掌握流和事务流5.数据流图所描述的是实际系统的(A)。
A.规律模型B.物理模型C.程序流程D.数据结构6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。
A.变换模块就是主模块B.变换模块的功能是将规律输入变换为规律输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量7.为了提高软件测试的效率,应当(C)。
全国自考(软件工程)模拟试卷2(题后含答案及解析)

全国自考(软件工程)模拟试卷2(题后含答案及解析) 题型有:1. 单项选择题 2. 填空题 3. 简答题 4. 综合应用题单项选择题1.软件工程的发展历程中,在开发语言方面的研究成果分为两类:过程式语言和面向对象语言,下列哪种语言属于面向对象的语言( ) A.C语言B.Pascal语言C.C++语言D.Ada语言正确答案:C解析:软件工程的发展历程,大致可分为两个时期:20世纪60年代末到80年代初和20世纪80年代以来。
在这两个时期内都有相应的成果体现,其中在第一时期开发了诸多过程式语言如Pascal、C、Ada语言等,而在第二时期开发了面向对象语言,如Smalltalk、c++、Eiffel等。
2.软件模型可以细分为3类,以下不属于软件模型的是( )A.概念模型B.实现模型C.设计模型D.部署模型正确答案:A解析:软件系统模型分为概念模型和软件模型,而软件模型又可进一步分为设计模型、实现模型和部署模型。
3.以下选项中不是常用建模手段的是( )A.结构化方法B.面向数据结构方法C.面向对象方法D.面向过程方法正确答案:D解析:常用的建模手段包括结构化方法、面向对象方法以及诸多面向数据结构方法。
4.由于落后的软件生产方式无法满足迅速增长的计算机软件需求,从而引发了( )A.软件工程B.软件危机C.结构化程序设计D.程序设计革命正确答案:B解析:20世纪60年代以来,随着计算机的广泛应用,软件生产率和软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,这就是“软件危机”。
5.下列选项中不是需求规约的性质的有( )A.可修改的B.完整的C.无歧义的D.一致的正确答案:C解析:需求规约一般要满足4个基本特性:重要性和稳定性程度、可修改的、完整的、一致的。
6.需求发现技术有很多种,以下关于提炼这种需求发现技术描述不当的是( )A.存在风险是无法验证所发现的需求是否满足用户的要求,无法验证发现的需求是否正确B.成功条件是需求人员必须具有比最终用户还要多的应用领域和过程方面的知识,并具有丰富的想象力C.使用情况是针对已经有了部分需求文档的情况D.存在的风险与自悟方法一样正确答案:B解析:B选项中所描述的是自悟的成功条件;提炼的成功条件是已存在项目背景文档以及一些紧密相关的需求文档,并且需求人员具有很好的想象力和需求标识能力,包括熟悉相关的技术标准和法规政策等。
《软件工程》自考 重点难点汇集

《软件工程》串讲讲义应考指导一、课程介绍1、课程性质《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。
软件工程是研究软件开发的一门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。
2、指定教材本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2011年版。
新版教材与2000年版相比,无论是内容还是内容的组织,都有了很大的变化。
整个知识体系、章节安排、内容选取都不一样,这是考生一定要注意的。
新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。
开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。
开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。
3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化方法第4章:面向对象方法-UML第5章:面向对象方法-RUP第6章:软件测试。
第7章:软件生存周期过程及管理第8章:集成化能力成熟度模型CMMI二、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10月、2012年01月、2012年10月三次考试。
通过对2011年10月、2012年01月这两次真题的分析,各章所占分值的分布情况如下表所示:从上面的统计数据可以看出:主要的分值分布在第3章和第6章,分别占到总分的25%左右。
第1章和第8章的考核知识点相对较少。
2.题型分析本课程的考试题型分为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分3.复习方法(1)以教学大纲为准绳。
2010年自学考试《软件工程》复习重点及试验指导

2010年自学考试《软件工程》复习重点及试验指导2010年自学考试《软件工程》复习重点及试验指导(1)第一章软件工程概论1. 软件工程的目的:倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。
2. 软件危机:在计算机软件开发和维护过程中所遇到的一系列问题。
3. 软件及组成:计算机系统中的程序和文档称为软件,程序是计算机任务的处理对象和处理规则的描述,文档是为了理解程序所需的阐述性资料。
4. 软件工程定义:软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
软件工程是一门指导计算机软件开发和维护的工程学科。
5. 软件工程框架及其内容:目标、活动和原则。
软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。
软件工程活动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求、设计、实现、确认以及支持等活动。
软件工程设计原则为,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。
6. 软件工程研究的内容:软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。
7. 软件开发方法学定义:是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法等等。
第二章软件开发模型1. 软件开发模型定义:是软件开发全部过程、活动和任务的结构框架。
2. 瀑布模型内容及特点:瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。
各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。
软件工程自考复习资料-全
第一章绪论一、软件的基本概念1. 软件是计算机系统中的程序及其文档。
2. 程序是计算机任务的处理对象和处理规则的描述;文档是为了理解程序所需的阐述性的文书和资料。
3. 文档一般主要面向管理人员、开发人员、用户、使用维护人员。
4. 文档在软件工程中的作用:(1)提高软件开发过程的能见度。
(2)提高开发效率。
(3)作为开发人员阶段工作成果和结束标志。
(4)记录开发过程有关信息便于使用和维护。
(5)提供软件运行、维护和培训等资料。
(6)便于用户了解软件功能、性能。
5. 软件的生产经历了三个阶段:* 程序设计时代:生产方式是个体手工劳动,使用工具是机器、汇编语言,主要通过汇编来实现,不注重程序设计方法。
* 程序系统时代:生产方式是作坊式小集团合作生产,生产工具是高级语言,开始提出结构化方法。
* 软件工程时代:生产方式是工程化生产,使用数据库、网络、先进的开发技术和方法。
6.软件既是知识性(逻辑性)工业产品,具有一些独特的特性是:* 软件是逻辑产品,具无形性,通过计算机的执行才能体现它的功能和作用。
* 软件只会退化,不存在磨损和消耗问题。
* 成本主要体现在软件的开发和研制上,可进行大量的复制。
* 主要靠脑力劳动生产,开发和维护成本高。
7. 软件的主要结构和功能是在分析设计阶段决定的。
8. 软件的复杂性主要体现在程序的复杂性,即模块内程序的复杂性。
直接关联到软件的简单和可理解性、开发费用多少、开发周期长短和软件潜伏错误的多少。
二、软件危机1. 软件危机是指在软件开发和维护时遇到的一系列难以控制的问题导致的供需矛盾。
出现在软件发展的第二阶段末期,随着第三代计算机的诞生之际。
2. 软件危机主要体现在:* 软件发展速度跟不上硬件的发展和用户需求。
* 软件成本和开发进度不能预先预算,用户不满意。
* 软件产品质量差,成本高,可靠性没有保证。
* 软件可维护性差,产品没有配套文档。
3. 软件危机产生原因:(1)软件规模变大,结构更加复杂。
软工复习要点
软工复习要点软件工程是现代计算机科学的重要分支,致力于开发高质量的软件系统。
在软件工程的学习过程中,掌握并熟悉相关的复习要点是非常重要的。
本文将总结软件工程的复习要点,帮助读者更好地准备考试,并取得好的成绩。
一、软件生命周期1. 需求分析阶段- 需求获取:通过面谈、问卷调查等方式获取用户需求。
- 需求分析:对收集到的需求进行分析、整理和规格说明。
- 需求验证:与用户确认需求是否准确并理解一致。
2. 设计阶段- 概要设计:定义系统的总体结构和模块划分,确定系统的主要功能。
- 详细设计:对每个模块进行详细设计,包括定义数据结构、算法等。
3. 编码阶段- 编写程序:将设计的模块转化为具体的编程代码。
- 单元测试:对每个模块进行测试,确保代码的正确性。
4. 测试阶段- 集成测试:将各个模块进行整合,进行系统级别的测试。
- 系统测试:对整个系统进行测试,检查系统是否满足预期功能和性能。
5. 运维阶段- 安装部署:将软件部署到实际应用环境中。
- 系统维护:对已部署的软件进行维护和更新。
二、软件开发过程模型1. 瀑布模型:按照线性顺序依次完成各阶段的开发流程。
2. 增量模型:将开发过程划分为多个增量,逐步迭代开发。
3. 原型模型:通过快速开发原型来验证需求和设计方案。
4. 敏捷模型:强调快速响应变化需求的开发方法。
三、软件需求工程1. 需求分类:功能需求和非功能需求的划分和描述。
2. 需求获取:通过场景分析、访谈、面谈等方式收集用户需求。
3. 需求分析:对需求进行整理、归类和建模,明确需求的范围和边界。
4. 需求规格说明:使用工具(如用例图、活动图)对需求进行形式化的描述和建模。
5. 需求验证:与用户进行需求确认和变更管理,保证需求的正确性和一致性。
四、软件设计1. 结构设计:确定软件的整体结构和模块之间的关系。
2. 数据设计:定义数据模型和数据库的结构。
3. 接口设计:定义模块间的接口,确保模块之间的良好交互。
B_软工二复习提纲
软件工程复习提纲第一、二章软件工程的基础•名词解释软件工程:1)应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
2)对 1)中各种方法的研究。
•简答50s~00s软件工程的特点:第四章项目启动•简答管理团队:(团队结构有哪几种在实验中采取了哪些办法有哪些经验)团队结构:1)主程序员团队 2)民主团队 3)开放团队团队建设:1)建立团队章程 2)持续成功 3)和谐沟通 4)避免团队杀手软件质量保障:(有哪些措施结合实验进行说明:测试和评审)软件质量:功能性可靠性易用性效率可维护性可移植性质量保障:需求开发:需求评审需求度量体系结构:体系结构评审集成测试(持续集成)详细设计:详细设计评审设计度量集成测试(持续集成)实现(构造):代码评审代码度量测试(测试驱动)测试:测试测试度量评审质量度量软件配置管理:(配置管理有哪些活动实验中是如何进行配置管理的结合实验,说明一个项目的质量保障包括哪些活动)活动:1)标识配置项 2)版本管理 3)变更控制 4)配置审计 5)状态报告 6)软件发布管理(第一、二、四章中考一个简答题)第五章软件需求•名词解释需求:1)用户为了解决问题或达到某些目标所需要的条件或能力 2)系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力 3)对 1)或 2)中的一个条件或一种能力的一种文档化表述•简答区分需求的三个层次:(给出一个实例,给出其三个层次的例子对于给定的需求示例,判定其层次)需求表述:“系统应该……”“在……时,系统应该……”“用户可以通过系统……”需求的层次性:业务需求:解决方案与系统特性(目标)抽象层次最高,是系统建立的战略出发点。
用户需求:问题域知识(任务)是执行实际工作的用户对系统所能完成的具体任务的期望。
系统级需求:需求分析模型(系统行为)是用户对系统行为的期望。
每个需求反映了一次交互或一个细节。
软件工程重点知识复习汇编集锦
第一章软件工程概述1﹑软件产品的特性是什么?产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。
⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。
⑶软件产品不会用坏,不存在磨损,消耗。
⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。
2﹑软件生产有几个阶段?各有何特征?⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。
⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。
⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。
3﹑什么是软件危机?主要表现在哪些方面?软件开发技术的进步未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
表现方面:(1) 用户对开发出的软件很难满意。
(2) 软件产品的质量往往靠不住。
(3) 一般软件很难维护。
(4) 软件生产效率很低。
(5) 软件开发成本越来越大。
(6) 软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
4﹑什么是软件工程?它目标和内容是什么?软件工程:就是用科学的知识工程和技术原理来定义,开发,维护软件的一门学科。
软件工程的目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程的内容:研究内容包括开发技术和开发管理两个方面。
开发技术主要研究:软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:软件管理学,软件经济学,软件心理学。
5﹑软件工程面临的问题是什么?软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章结构化设计
1. 软件设计阶段的主要任务、方法、阶段:
需求分析阶段的主要任务是确定系统必须“做什么”,形成软件的需求规格说明书,软件设计阶段的主要任务是确定系统“怎么做”,从软件需求规格说明书出发,形成软件的具体设计方案,软件设计可以采用多种方法,如结构化设计方法、面向数据结构的设计方法、面向对象的设计方法等,结构化软件设计可以分为总体设计和详细设计两个阶段。
2. 总体设计阶段的主要任务及其内容:
总体设计阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图(MSD),在结构图中矩形表示功能单元,称为“模块”,连接上下层模块的线段表示它们之间的调用关系,在总体设计阶段,每个模块还处于黑盒子级,模块通过外部特征标识,名字、输入、输出。
3. 总体设计的表示形式及其内容(层次图、HIPO图、结构图):
层次图是软件总体设计阶段最常使用的表示形式之一,用来描绘软件的层次结构,图中的每个方框代表一个模块,方框间的连线表示模块的调用关系,层次图很适合于在自顶向下设计软件的过程中使用;
HIPO图是由美国IBM公司发明的“层次图+输入/处理/输出图”的英文缩写,HIPO图实际上由H图和IPO图两部分组成,H图就是上面提到的层次图,为了能使HIPO图具有可跟踪性,在H图里除了最顶层的方框之外,每个方框都加了编号;
结构图和层次图类似,图中每个方框代表一个模块,方框之间的箭头(或直线)表示模块的调用关系,在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息,尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。
4. 模块及其组成:
模块是执行一个特殊任务或实现一个特殊的抽象数据类型的一组例程和数据结构,模块由两部分组成,接口和实现模块功能的执行机制。
5. 面向数据流的设计方法(综合应用):
面向数据流的设计方法把数据流图映射成为软件结构,数据流图的类型决定了映射的方法,数据流图可以分为变换型数据流图和事务型数据流图,具有较明显的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图,数据沿输入通路到达一个处理模块,这个处理模块根据输入数据的类型在若干动作序列中选出一个来执行,这类数据流图称为事务型数据流图,并且称这个模块为事务中心,它完成如下任务,接收输入数据、分析数据并确定数据类型、根据数据类型选取一条活动通路。
6. 评价软件设计质量的主要准则(模块化、抽象、耦合、内聚)及详细内容:
模块化是好的软件设计的一个基本准则;
抽象就是抽出事务的本质特性而暂时不考虑它们的细节,模块是按照不同的抽象级别安排的,高层抽象模块向读者隐藏了功能实现的细节,这就是信息隐蔽,模块之间相互隐藏自身的实现细节对一个好的设计来说是至关重要的;
耦合是对不同模块之间相互依赖程度的度量,紧密耦合是指两个模块之间存在着很强的依赖关系,松散耦合是指两个模块之间存在一些依赖关系,但他们之间的连接比较弱,无耦合是指模块之间根本没有任何连接;
耦合的强度依赖于以下四个因素,一个模块对另一个模块的引用,一个模块向另一个模块传递的数据量,一个模块施加到另一个模块的控制的数量,模块之间接口的复杂程度;
从强到弱的几种常见的耦合类型,内容耦合,一个模块直接修改或操作另一个模块的数据;公共耦合,两个以上的模块共同引用一个全局数据项;控制耦合,一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合;标记耦合,若两个模块至少有一个通过界面传递的公共参数包含内部结构;数据耦合,模块间通过参数传递基本类型的数据,数据耦合是最简单的耦合形式,系统中至少必须存在这种类型的耦合;
内聚度量的是一个模块内部各成分之间相互关联的强度,如果一个模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的,则该模块是高内聚的;
从低到高的几种常见的内聚类型,偶然内聚,一个模块的各个成分之间毫无关系;逻辑内聚,几个逻辑上相关的功能被放在同一模块中;时间内聚,一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起;过程内聚,一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;通信内聚,一个模块的所有成分都操作同一数据集或生成同一数据集;顺序内聚,一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个的成分;功能内聚,最理想的内聚是功能内聚,模块的所有成分对于完成单一的功能都是基本的;
内聚和耦合是密切相关的,在进行软件设计时,应力争做到强内聚、弱耦合。
7. 结构化设计的启发式规则:
改进软件结构提高模块独立性,模块规模应该适中,深度、宽度、扇入和扇出应适中,模块的作用域应该在控制域之内,力争降低模块接口的复杂性,模块功能应该可以预测;
模块的作用域定义为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。
8. 结构化分析与结构化设计的区别:
结构化分析得到数据流图、数据字典等,属于逻辑模型,结构化设计得到模块结构图,属于程序模型。
9. 详细设计阶段的目标、表现、内容:
详细设计阶段的根本目标是确定怎样具体的实现所要求的系统,详细设计以总体设计阶段的工作为基础,但又不同于总体设计,主要表现在,在总体设计阶段,数据项和数据结构以比较抽象的方式描述,详细设计要提供关于算法的更多细节;
详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有,详细的算法,数据表示和数据结构,实施的功能和使用的数据之间的关系。
10.结构化程序的三种基本结构,结构化设计的目标:
结构化程序设计技术采用自顶向下逐步求精的设计方法和单入口单出口的
控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目标之一
是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构,结构化程序设计的观点是要求设计好结构的程序。
11.详细设计的任务,详细设计的工具及其内容特点:
详细设计的任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计,详细设计的工具可以分为图形、表格、语言三种,包括程序流程图、盒图(N-S图)、PAD图、类程序设计语言(PDL);
程序流程图中使用的主要符号包括顺序、选择、循环结构,它的主要缺点如下,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构,程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,程序流程图不易表示数据结构;
PAD是问题分析图的英文缩写,它用二维树形结构的图表示程序的控制流,PAD图的主要优点如下,使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序,PAD图所描述的程序结构十分清晰,用PAD图表现程序逻辑,易读、易懂、易记,很容易将PAD图转换成高级语言源程序,既可用于表示程序逻辑,也可用于描述数据结构,PAD图的符号支持自顶向下逐步求精的使用,PA D图是面向高级程序设计语言的;
类程序设计语言也称为伪码,它是用正文形式表示数据结构和处理过程的设计工具,PDL具有以下特点,关键字的固定语法,提供了结构化控制结构、数据说明和模块化的手段,自然语言的自由语法,用于描述处理过程和判定条件,数据说明的手段,既包括简单的数据结构,又包括复杂的数据结构,模块定义和调用的技术,提供各种接口描述模式;
PDL作为一种设计工具有如下一些优点,可以作为注释直接插在源程序中间,可以使用普通的正文编辑程序或文字处理系统,很方面的完成PDL的书写和编辑工作,已经有自动处理程序存在,而且可以自动由PDL生成程序代码,PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树清晰简单。
本章设计题为DFD到模块结构图的转换和详细设计工具的具体应用,为笔试和试验的必考题型,非常重要,请考生参考辅导第256页(1)~(7)题,务必每一种题型都熟练掌握。
本章与上一章的设计题是软件工程科目的重点,大约占笔试的35%,占试验的70%,并且前面四章的所有内容大约占笔试的60%,希望重点掌握。