软件工程复习要点

合集下载

大二软件工程知识点总结

大二软件工程知识点总结

大二软件工程知识点总结本文将对大二软件工程中的重点知识点进行总结和归纳,帮助读者全面理解和复习相关内容。

以下是大二软件工程的知识点概述:一、软件生命周期软件生命周期是指从软件开发的开始到结束的整个过程。

包括需求分析、设计、编码、测试、部署和维护等阶段。

每个阶段都有相应的文档和工具支持。

1.需求分析需求分析是软件开发中最重要的一步,它确定了软件系统的需求和功能。

需求分析的过程包括问题定义、需求获取、需求分析与建模等。

2.设计设计是根据需求分析阶段确定的需求来设计软件系统的整体结构和各个模块之间的关系。

常用的设计方法有结构化设计和面向对象设计。

3.编码在编码阶段,程序员会按照设计文档进行编码,将逻辑结构转化为计算机可执行的程序代码。

编码过程需要选择合适的编程语言和开发工具。

4.测试测试是确保软件系统按照需求和设计要求正常运行的重要环节。

测试包括单元测试、集成测试、系统测试和验收测试等。

常用的测试方法有黑盒测试和白盒测试。

5.部署与维护在完成开发和测试后,软件需要部署到目标环境中并进行维护。

部署包括安装、配置和运行等步骤。

维护包括Bug修复、功能增强和性能优化等。

二、软件开发方法论软件开发方法论是指用于管理和组织软件开发过程的一套准则和规范。

常见的软件开发方法论有瀑布模型、迭代模型和敏捷开发等。

1.瀑布模型瀑布模型是软件开发的经典模型,它按照线性顺序依次完成需求分析、设计、编码、测试和部署等阶段。

缺点是无法适应需求变更和快速迭代的需求。

2.迭代模型迭代模型是在瀑布模型的基础上引入迭代和循环的概念,将开发过程划分为多个迭代周期。

每个迭代周期都包含需求分析、设计、编码、测试和部署等阶段。

3.敏捷开发敏捷开发是一种以人为核心、迭代、适应变化的开发方法。

它强调团队合作、快速响应客户需求和频繁交付可用软件。

敏捷开发方法有Scrum、XP和Kanban等。

三、软件工程方法与工具软件工程方法和工具是辅助软件开发的工具和技术。

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程复习要点

软件工程复习要点

软件工程复习要点软件工程是一门研究如何高效地开发、维护和管理软件的学科。

对于学习软件工程的同学来说,熟练掌握复习要点是非常重要的。

本文将为大家总结并分享软件工程的复习要点,希望能够帮助大家更好地掌握和应用软件工程知识。

一、软件开发过程软件开发过程是指从需求分析到交付软件产品的整个过程。

常用的软件开发过程模型有瀑布模型、迭代模型、敏捷模型等。

要理解和掌握软件开发过程,需要熟悉各个阶段的任务和活动,包括需求分析、设计、编码、测试、交付等环节。

1. 需求分析:确定用户需求,明确软件系统的功能和性能要求。

2. 设计:根据需求分析的结果,进行软件系统的整体设计和详细设计。

3. 编码:将设计好的软件系统转化为具体的实现代码。

4. 测试:对编码完成的软件系统进行测试,发现和纠正其中的问题。

5. 交付:经过测试合格的软件系统交付给用户使用。

二、软件工程方法与工具为了提高软件开发的效率和质量,软件工程使用了一系列方法与工具。

掌握软件工程方法与工具的使用对于软件开发人员来说是非常重要的。

1. 需求管理工具:用于帮助开发团队和用户共同管理和追踪需求,常用的有JIRA、TFS等。

2. 设计工具:用于辅助进行软件系统的设计,常用的有UML工具、Axure等。

3. 编码工具:用于提高编码效率和质量,常用的有IDE集成开发环境、代码托管平台等。

4. 测试工具:用于自动化测试和代码覆盖率分析,常用的有Junit、Selenium等。

5. 配置管理工具:用于管理和控制软件系统的配置,常用的有Git、SVN等。

三、软件质量保证软件质量保证是指通过一系列的措施和活动来确保软件产品的质量。

在软件工程中,软件质量保证是一个非常重要的环节,它直接关系到软件系统能否满足用户的需求。

1. 静态质量保证:通过代码审查、代码规范等手段来预防和发现问题。

2. 动态质量保证:通过测试等手段来发现和解决软件系统中的问题。

3. 配置管理:通过配置管理工具来确保软件系统配置的正确性和一致性。

软件工程复习重点

软件工程复习重点

软件工程复习重点1.1软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序,数据及相关文档的完整集合。

1.2软件工程包括3个要素:方法,工具和过程1.3软件工程开发的基本方法包括:结构化方法和面向对象方法。

1.4软件生存周期的各个过程可以分成三类,即主要生存周期过程,支持生存周期过程和组织的生存周期过程,开发机构可以根据具体的软件项目进行裁剪。

1.5软件生存周期包括计划,需求分析和定义,软件设计,程序编码,软件测试和运行维护6个阶段。

1.6(判断题)软件生存周期是指一个计算机软件从功能确定,设计,到开发成功投入使用,并在使用中不断地修改,增补和完善,直到停止该软件的使用的全过程。

1.7瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开;瀑布模型将软件生命周期划分为软件计划,需求分析和定义,软件设计,软件编码,软件测试,软件维护这6个阶段,规定了他们自上而下,相互衔接的固定次序。

本质是一次通过,即每个活动只执行一次,最后得到软件产品,也称为“线性顺序模型”或者“传统生命周期”。

1.8螺旋模型的结构由4部分组成:制定计划,风险分析,实施开发,客户评估;螺旋模型不仅保留了瀑布模型中系统地,按阶段逐步地进行软件开发和“边开发,边评审”的风格而且还引入了风险分析,并把制作原型作为风险分析的主要措施。

1.9软件需求可以分为以下4个过程:需求获取,分析建模,文档编写,需求验证。

1.10数据流图的4种基本符号表示:数据流:数据源或终点:对数据流的表示有以下约定:1.对流进或流出文件的数据流不需标注名字,因为文件本身就足以说明数据流。

而别的数据流则必须标出名字,名字应能反映数据流的含义。

2.数据流不允许同名3. 两个数据流在结构上相同是允许的,但必须体现人们对数据流的不同理解。

4. 两个加工之间可以有几股不同的数据流,这是由于它们的用途不同,或它们之间没有联系,或它们的流动时间不同。

软件工程复习要点

软件工程复习要点

软件工程复习要点第一章概述1.软件产品的特性是什么?a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。

e.软件费用不断增加,成本相当昂贵。

3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。

一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

4.什么是软件工程?它的目标和内容是什么?软件工程:采用工程的概念、原理、技术和方法来指导软件开发和维护的工程学科,以工程化的原理和方法来解决软件问题。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发管理:软件管理学、软件经济学、软件心理学。

5.软件工程面临的问题是什么?软件工程面临的问题:a.软件费用。

重点复习软工

重点复习软工

重点复习软工软工(软件工程)是计算机科学与工程领域的一门重要学科,旨在研究以科学原理与工程技术为基础,以经济、可靠和高质量为目标,开发和维护复杂软件系统的学科体系。

对于计算机相关专业的学生来说,软工是一门必不可少的课程。

本文将介绍关于软工的重点复习内容,以帮助读者更好地准备软工考试。

一、软件开发生命周期软件开发生命周期指的是从软件项目的规划到最终交付使用的整个过程。

它包含了需求分析、设计、编码、测试、维护等阶段。

在复习软工时,需要了解各个阶段的主要任务和活动,以及它们之间的关系和依赖。

1. 需求分析阶段:需求分析是软件开发的第一步,目的是识别出用户需求并定义功能和性能要求。

在这个阶段,需要学习如何进行需求获取、需求分析和需求建模等技术和方法。

2. 设计阶段:设计阶段是将需求转化为可执行的规划和设计方案的阶段。

这个阶段包括系统架构设计、详细设计、数据库设计等。

在复习软工时,需要了解常用的设计原则和设计模式,如单一职责原则、开放封闭原则、工厂模式、观察者模式等。

3. 编码阶段:编码阶段是将设计好的方案转化为计算机可执行代码的阶段。

在复习软工时,需要熟悉常用的编程语言和开发工具,如Java、C++、Eclipse、IntelliJ IDEA等。

同时,还需要了解编码规范和代码质量管理的重要性。

4. 测试阶段:测试阶段是为了发现和修复软件中存在的问题和错误。

在复习软工时,需要熟悉各种测试方法和技术,如单元测试、集成测试、系统测试、性能测试等。

此外,还需要了解测试用例的设计和执行,以及错误跟踪和修复的方法。

5. 维护阶段:维护阶段是软件开发生命周期中最后一个阶段。

它主要涉及对软件进行改进和修复。

在复习软工时,需要了解维护活动的类型和方法,如改正性维护、适应性维护、完善性维护等。

二、软件开发方法论软件开发方法论是指在软件开发过程中使用的一套规范和约束,它们可以指导和帮助开发团队更好地组织和管理软件项目。

在复习软工时,需要了解以下几种常见的软件开发方法论。

软件工程复习要点

软件工程复习要点

软件工程导论复习要点总结 信息0701惟楚有才,于斯为盛一、 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

概括的说,软件危机包含以下两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

二、 软件危机的典型表现:1,对软件开发成本和进度的估计常常很不准确;2,用户对“已完成的”软件系统不满意的现象经常发生;3,软件产品的质量往往靠不住;4,软件常常是不可维护的;5,软件通常没有适当的文档资料;6,软件成本在计算机系统总成本中所占比例逐年上升;7,软件开发生产率提高的速度,远远跟不上计算机应用迅速普及及深入的趋势。

三、 软件工程:(是指导计算机软件开发和维护的一门工程学科)采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它,这就是软件工程。

四、 软件工程的本质特性:1,软件工程关注于大型程序的构造;2,软件工程的中心课题是控制复杂性;3,软件经常变化;4,开发软件的效率非常重要;5,和谐地合作是开发软件的关键;6,软件必须有效地支持它的用户;7,在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。

五、 软件工程的基本原理:1,用分阶段的生命周期计划严格管理;2,坚持进行阶段评审;3,实行严格的产品控制;4,采用现代程序设计技术;5,结果应能清楚地审查;6,开发小组的人员应该少而精;7,承认不断改进软件工程实践的必要性。

六、 软件生命周期:由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干阶段。

七、 软件生命周期每个阶段的基本任务:1,问题定义;2,可行性研究;3,需求分析;4,总体设计;5,详细设计;6,编码和单元测试;7,综合测试;8,软件维护。

八、 瀑布模型: 1970年温斯顿•罗伊斯(Winston Royce )提出了著名的“瀑布模型”。

软件工程知识点复习资料

软件工程知识点复习资料

软件工程知识点复习资料一、软件工程概述软件工程是一门研究如何以系统性的、规范化的、可度量的方法进行软件开发、运行、维护和管理的学科。

它涵盖了软件开发生命周期的各个阶段,包括需求分析、系统设计、编码实现、测试和维护等。

二、软件生命周期与开发模型1. 软件生命周期包括需求分析、系统设计、编码实现、测试和维护等阶段。

不同的项目可以采用不同的开发模型,常见的有瀑布模型、迭代模型和敏捷模型。

2. 瀑布模型是一种线性顺序开发模型,各个阶段严格按序进行,适用于需求较为稳定的项目。

3. 迭代模型将软件开发过程划分为多个迭代阶段,每个迭代阶段都包含需求分析、设计、编码和测试等活动,适用于需求较为不确定或需要持续改进的项目。

4. 敏捷模型强调快速响应需求变化和灵活合作,通过迭代、增量的方式进行开发,适用于需求频繁变更的项目。

三、需求工程1. 需求分析是软件开发的第一步,包括需求获取、需求分析、需求建模等过程,目的是明确系统的功能和性能需求,并与客户达成一致。

2. 需求获取可以通过面谈、问卷调查、观察等方式进行,需求分析则要对已收集到的需求进行分析、整理和归纳。

3. 需求建模使用UML(统一建模语言)等工具,将需求表示为用例图、活动图、时序图等形式,便于后续的系统设计和编码实现。

四、设计与架构1. 系统设计是软件开发的关键阶段,包括软件架构设计和详细设计等过程,目的是指导后续的编码和测试工作。

2. 软件架构设计确定系统的整体结构、模块划分和模块间的关系,常见的架构风格包括层次结构、客户-服务器、面向对象等。

3. 详细设计是对系统模块的具体设计,包括数据结构设计、算法设计和接口设计等,常用的设计方法有结构化设计和面向对象设计。

五、编码实现与调试1. 编码实现是将设计阶段得到的设计方案转化为计算机可执行的代码,采用合适的编程语言和开发工具进行。

2. 编码时要注重代码的可读性、可维护性和可重用性,采用良好的编程风格和命名规范。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程复习要点第一章概述1.软件:软件是能够完成预定功能和性能的可执行的计算机程序,和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。

3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。

一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

(了解)软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

(了解)4.什么是软件工程?它的目标和内容是什么?软件工程:采用工程的概念、原理、技术和方法来指导软件开发和维护的工程学科,以工程化的原理和方法来解决软件问题。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发管理:软件管理学、软件经济学、软件心理学。

5.软件工程面临的问题是什么?软件工程面临的问题:a.软件费用。

b.软件可靠性。

c.软件维护。

d.软件生产率。

e.软件重用。

6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:问题定义、可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。

)软件生存周期主要模型:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、统一软件开发过程等9.什么是软件开发的方法?有哪些主要方法?软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。

主要方法:结构方法、面向对象的开发方法。

第二章可行性研究1.可行性研究的任务是什么?a.技术可行性:考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。

b.经济可行性。

c.操作可行性。

2、可行性研究有哪些步骤?a.确定项目规模和目标b.研究正在运行的系统c.建立新系统的高层逻辑模型d.导出和评价各种方案e.推荐可行的方案f.编写可行性研究报告3、可行性研究报告有哪些就要内容?a.引言b.可行性研究前提c.对现有系统的分析d.所建议系统的技术可行性分析e.所建议系统的经济可行性分析f.社会因素可行性分析g.其他可供选择方案h.结论意见(了解)4.成本---效益分析可用哪些指标进行度量?有形效益度量:a.货币的时间价值b.投资回收期c.纯收入无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。

通常以有形效益度量作为成本---效益分析的度量。

5.项目开发计划有哪些内容?a.项目概述b.实施计划c.人员组织及分工d.交付期限系统流程图实质上是物理数据流图,是描述物理系统的传统工具。

第三章需求分析1.什么是需求分析?需求分析阶段的基本任务是什么?需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

需求分析阶段的基本任务是:(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.(2) 分析与综合,导出软件的逻辑模型.(3) 编写文档2.什么是结构化分析方法?该方法使用什么描述工具?结构化分析方法:是面向数据流进行需求分析的方法。

描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。

3.结构化分析方法通过哪些步骤来实现?4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。

作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.5.画数据流图应该注意什么事项?画数据流图注意事项:a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义.b.画数据流而不是控制流.c.一般不画物质流.d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果.e.编号.f.父图与子图的平衡.g.局部数据存储.h.提高数据流图的易理解性.数据流图顶层图 0层图6.什么是字据字典?其作用是什么?它有哪些条目?字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义 性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.作 用:1)为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.2)为分析人员查找数据流图中有关名字的详细定义而服务的.3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.条 目:数据流、数据项、数据存储、基本加工。

7、简述SA 方法的优缺点。

优点:1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。

2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。

缺点:1)传统的SA 方法主要用于数据处理方面的问题,主要工具DFD 体现了系统"做什么"的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。

因此,不适合描述实时控制系统。

2)SA 方法在使用DFD 在分析与描述"数据要求"方面是有局限的。

3) DFD 不适合描述人机界面系统的要求。

4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA 方法可与形式方法结合起来。

第四章 概要设计1.什么是软件概要设计?该阶段的基本任务是什么?软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能实的现,即把软件需求转换为软件包表示的过程。

基本任务:(1)设计软件系统结构(简称软件结构) (了解)a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)b.确定模块的功能。

(功能)c.确定模块之间的调用关系。

(调用)d.确定模块之间的接口,即模块之间传递的信息。

(接口)e.评价模块结构的质量。

(质量) 采购部门订货系统订货报表仓库管理员事务(2)数据结构及数据库设计a.数据结构设计b.数据库设计:(概念设计、逻辑设计、物理设计)(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划)(4)评审2.软件设计的基本原理包括哪些内容?软件设计的基本原理:(1)模块化(四个属性:接口、功能、逻辑、状态)(2)抽象逐步求精(3)信息隐蔽(4)模块独立性(两个定性的度量标准:耦合性与内聚性)3.衡量模块独立性的两个标准是什么?它们各表示什么含义?两个定性的度量标准:耦合与内聚性耦合性:也称块间联系。

指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。

指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

模块内元素联系越紧密,内聚性越高。

4.模块间的耦合性有哪几种?它们各表示什么含义?耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。

(无直接关系)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。

(数据值)标记耦合:指两个模块之间传递的是数据结构。

(数据结构)控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能(控制变量)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。

(一个公式数据环境)内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部(内部数据)5.模块的内聚性有哪几种?各表示什么含义?模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。

偶然内聚:一个模块内的各处理元素之间没有任何联系。

逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚:把需要同时执行的动作组合在一起。

通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。

顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。

功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

6.什么是软件结构?简述软件结构设计优化准则。

软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。

软件结构设计优化准则:a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。

b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近c.软件的深度、宽度、扇入、扇出应适当。

D.模块的大小要适中。

E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

7.什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系?模块的影响范围:受该模块内的一个判定影响的所有模块的集合。

模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。

一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。

相关文档
最新文档