软件工程重点整理

合集下载

软件工程基础知识点整理版

软件工程基础知识点整理版

软件工程基础知识点整理版1.软件生命周期:软件工程将开发和维护软件的过程划分为不同的阶段,包括需求分析、设计、编码、测试、部署和维护。

这些阶段构成了软件生命周期。

2.软件需求:软件需求工程是对软件需求进行分析、规划和定义的过程。

它包括对用户需求的收集、分析和确认,以及对系统功能和性能的详细规范。

3.软件设计:软件设计是定义软件的结构和组成部分的过程。

它包括对软件系统的整体架构和各个模块的设计。

4.软件编码:软件编码是将设计好的软件系统转化为具体的程序代码的过程。

编码过程需要使用编程语言,并遵循编码规范和最佳实践。

5.软件测试:软件测试是验证软件是否满足需求规格的过程。

它包括对软件的功能、性能和安全性进行测试,并发现和修复软件中的错误。

6.软件配置管理:软件配置管理是对软件开发过程中各个组成部分的控制和跟踪。

它包括版本控制、配置项管理和变更控制等活动。

7.软件质量保证:软件质量保证是确保软件达到高质量标准的一系列过程和活动。

它包括质量计划、质量评审、质量度量和缺陷管理等。

8.软件项目管理:软件项目管理是规划、组织和控制软件开发和维护活动的过程。

它包括项目计划、进度管理、团队管理和风险管理等。

9.软件工具和环境:软件工程使用各种工具和环境来辅助软件开发和维护。

这些工具包括集成开发环境、版本控制工具、测试工具和项目管理工具等。

10.软件工程伦理:软件工程伦理是软件工程师在工作中需要遵循的道德准则和原则。

它包括保护用户隐私、遵守知识产权法律和保持专业水平等方面。

以上是软件工程的一些基础知识点,但软件工程领域非常广泛,还有很多其他的知识点值得深入学习和研究。

尽管有一些基础知识点可以帮助我们理解和实践软件工程的基本原理和方法,但要成为一名优秀的软件工程师,还需要不断学习和提升自己的技能和知识。

计算机软件工程复习要点(计算机科学与技术)

计算机软件工程复习要点(计算机科学与技术)

一、术语解释软件工程、需求工程、软件生命周期、测试用例、软件复用、软件可维护性、CASE、软件工程过程二、基本知识要点1. 软件危机的主要表现。

软件工程主要研究与软件开发和维护有关的四个方面的内容:方法和技术、工具和环境、管理技术、标准和规范。

2. 生命周期模型。

典型瀑布模型生命周期的六个阶段。

各阶段产生的文档的名称及承担的人员。

螺旋模型综合了传统瀑布模型直线式的特点和快速原型模型的迭代思想,同时增加了一个重要特征,即风险分析。

螺旋模型在4个象限定义了4个主要活动。

螺旋模型的基本思想和主要特点。

原型模型的基本思想及分类。

喷泉模型是面向对象的模型,体现了迭代和无间隙的特点。

3. 需求分析的主要方法(结构化方法SA、面向对象的方法OOA、形式化方法等)。

结构化分析方法SA、结构化设计方法SD的主要任务、结束文档及内容。

SA得到分层DFD及DD;SD得到模块结构图SC及模块功能说明书。

SD是实现了DFD→SC。

需求规格说明书的主要内容。

软件设计的分类。

E-R图的基本构成要素。

软件系统需求的分类,需求管理的主要任务。

4. DFD的四个构成要素及各自可以表达的内容。

常用加工说明的描述工具(结构化语言、判定表、判定树)。

根据问题结构的不同,可以使用变换分析及事务分析得到初始的SC(分别对应变换型DFD和事务型DFD)。

画DFD的基本原则。

5. 分解、信息隐藏和模块独立性是实现模块化设计的重要指导思想。

模块化设计的核心——模块独立性,由内聚和耦合度量(熟练掌握七种内聚、七种耦合以及控制软件耦合度的方法)。

扇入、扇出。

作用域控制域原则。

程序模块优化的启发式规则。

6. 对象的三个构成要素(对象标识、属性和方法)。

面向对象分析过程中,系统的问题域由概念模型描述,即使用类图表示概念模型;使用用例图描述角色可见的系统功能;使用顺序图和协作图描述对象的行为。

顺序图和协作图的区别。

7. UML的缩写,来自于三个方法(Booch、OMT、OOSE)。

软件工程重点

软件工程重点

软件工程重点软件工程重点一、简介软件工程(Software Engineering)是指应用系统化、规范化、量化的方法和工具,对软件的开发、运行和维护等环节进行有效管理和组织的一门学科。

在当今信息化社会中,软件工程起到了至关重要的作用,为各个行业和领域提供了高效、可靠的软件解决方案。

二、软件工程的重要性1. 提高生产效率:软件工程通过规范化的软件开发流程和工具,能够提高软件开发的效率,减少开发周期,从而提高生产效率。

2. 提高软件质量:软件工程强调系统化、规范化的方法和过程,能够帮助开发团队保证软件质量,减少软件缺陷和问题的出现。

3. 降低开发成本:软件工程能够通过规范化的开发流程和工具,提高开发效率,减少开发中出现的问题和调试时间,从而降低开发成本。

4. 方便维护和升级:软件工程注重软件的可维护性,使得软件的维护和升级变得更加方便和高效。

三、软件工程的核心内容1. 软件需求工程:软件需求工程是软件工程的第一步,它主要通过需求调研、需求分析、需求规格化等方法,明确软件开发的目标和要求。

2. 软件设计与架构:软件设计与架构包括系统设计、结构设计、接口设计等内容,旨在确保软件的高内聚、低耦合,满足软件的功能、性能和可维护性要求。

3. 软件测试与质量保证:软件测试是保证软件质量的重要手段,它通过设计测试用例、执行测试、进行缺陷管理等方法,确保软件功能的正确性和稳定性。

4. 软件项目管理:软件项目管理是软件工程中的重要环节,它包括项目规划、项目组织、项目沟通、项目风险管理等内容,旨在确保软件项目能够按时、按质完成。

四、软件工程的发展趋势1. 敏捷开发:敏捷开发是一种注重迭代与快速响应变化的软件开发方法,在适应需求变化和加快开发周期方面有着明显的优势,成为当前软件工程的重要趋势。

2. 云计算与大数据:云计算和大数据技术的兴起带来了软件工程的新挑战和发展方向,软件工程需要适应云计算和大数据环境下的需求和技术。

软件工程期末复习重点

软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

这个时期的工作通常又称为系统分析,由系统分析员负责完成。

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。

6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

7.维护时期的主要任务是使软件持久地满足用户的需要。

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

9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。

a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。

c)质量保证的观点:软件工程的基本目标是优质、高产。

为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。

每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

软件工程知识点

软件工程知识点

软件工程知识点第一章软件工程概述一、软件的定义和特性(P2—P3)定义:软件=程序+数据+文档程序:按照事先设计的功能和性能要求执行的指令或语句序列数据:程序能正常操纵信息的数据结构文档:描述程序操作和使用的文档特性:(1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体;(2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理;(3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件;(4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题;(5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。

* 掌握P4图1-2(b)软件失效率曲线二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2)共经历了四个阶段特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。

三、什么是软件危机?其产生的原因是什么?定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

(P4)原因:(P5)(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求;(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致;(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验;(4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;(5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化(6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。

软件工程主要知识点

软件工程主要知识点

软件工程主要知识点软件工程是一门涵盖多个领域的学科,它旨在研究软件的开发、维护和管理过程。

在软件工程的学习中,有许多重要的知识点需要了解和掌握。

以下是软件工程的主要知识点:1.需求工程:需求工程是软件开发的关键环节,它涉及到收集、分析和管理用户需求的过程。

了解如何正确地定义和验证需求是非常重要的。

2.软件架构:软件架构是软件系统整体结构和组织的蓝图。

学习软件架构的目的是设计出可扩展、可维护的软件系统。

3.软件开发方法:软件开发方法是指一种系统化的方法,用于规划、设计、实施和测试软件系统。

了解常用的软件开发方法,如瀑布模型、敏捷开发和迭代开发等,可以帮助我们更好地管理软件开发过程。

4.软件测试:软件测试是为了验证软件系统的正确性和可靠性而进行的一系列活动。

学会进行有效的软件测试可以帮助我们尽早发现和修复潜在的问题。

5.软件工程项目管理:软件工程项目管理是指管理和控制软件开发过程,以确保项目按时、按质量和按预算完成。

学习项目管理的知识可以帮助我们合理地安排资源、制定计划和解决问题。

6.软件质量保证:软件质量保证是指确保软件系统满足用户需求和质量标准的一系列活动。

学习如何进行软件质量评估和测试可以帮助我们提高软件的质量。

7.可维护性和重构:可维护性是软件系统易于改变和维护的程度。

学习如何进行重构可以帮助我们改进现有的软件系统,使其更加易于理解和维护。

8.软件工程经济学:软件工程经济学是研究软件开发过程中经济方面问题的学科。

了解如何进行成本估算和投资评估可以帮助我们做出明智的决策。

9.软件安全性:软件安全性是指软件系统免受恶意行为和非法访问的能力。

学习如何设计和实施安全措施可以帮助我们保护软件系统的安全。

10.软件工程伦理和法律:软件工程伦理和法律是研究软件工程中伦理和法律问题的学科。

了解软件开发过程中的道德和法律规定可以帮助我们遵守相关的标准和法律规定。

除了以上列举的知识点,软件工程还涉及到很多其他的领域,如人机交互、软件配置管理、软件工程教育等。

软件工程知识点总结

软件工程知识点总结

软件工程:软件开发的系统方法软件工程是一门研究计算机软件开发、维护和管理的科学。

它致力于通过系统方法、工具和技术来提高软件开发的效率和质量。

以下是对软件工程主要知识点的总结:1.软件需求:这是软件开发过程的第一步,涉及对软件系统所需功能的理解和定义。

良好的需求定义是软件开发成功的关键。

2.软件设计:在明确了软件需求后,软件设计阶段负责将需求转化为实际的软件结构。

这包括数据设计、算法设计、界面设计等。

3.编码与实现:根据软件设计,开发人员将设计转化为实际的代码。

编码必须确保软件的正确性,同时考虑性能和可维护性。

4.软件测试:测试是确保软件质量的重要步骤,包括单元测试、集成测试、系统测试和验收测试等。

5.软件维护:当软件运行出现问题或需要添加新功能时,需要进行软件维护。

维护活动包括故障修复、优化、升级等。

6.软件开发工具与环境:工具和环境对于提高软件开发效率和质量至关重要。

这包括集成开发环境(IDE)、版本控制系统、项目管理工具等。

7.软件工程管理:软件开发不仅是技术活动,也是管理活动。

这包括项目规划、资源分配、风险管理等。

8.软件质量保证:通过制定和执行质量保证计划,确保软件开发过程和最终产品都符合既定标准和质量要求。

9.软件配置管理:配置管理是管理软件开发过程中各种变更的技术,以确保软件的一致性和可追踪性。

10.面向对象编程:面向对象编程是一种程序设计模型,它将现实世界中的对象抽象为类和对象,通过类和对象来设计软件的结构和行为。

11.软件开发方法学:软件开发方法学是描述软件开发过程的框架或体系结构。

常见的开发方法学包括瀑布模型、迭代模型、敏捷开发等。

12.软件工程伦理:软件工程不仅涉及到技术问题,也涉及到伦理问题。

软件工程师应遵守职业道德规范,确保软件的公正性、透明性和安全性。

13.持续集成与持续部署:这是一种软件开发实践,其中代码在提交后自动构建、测试并部署到生产环境。

这有助于快速反馈并提高软件质量。

软件工程复习重点

软件工程复习重点

软件工程复习重点温馨提示:紫魏嫒你的个人盘点,有任何遗漏记得通知一下哦,亲~题型:一、名词解释5个15分二、简答题6个50分三、综合设计与计算21分四、软件架构14分第一章1、软件危机定义:软件危机(Software Crisis)是指软件在开发和维护过程中所遇到的一系列严重问题。

2、产生软件危机的原因:既与软件本身的特点有关,也和软件开发和维护的方法不正确有关。

●软件是逻辑产品而不是物理产品,进度和质量难于评价,开发过程难于管理和控制;●软件规模庞大,程序的复杂性随程序规模的增长而呈指数增长;●开发过程中或多或少地采用了错误的技术和方法(如忽视需求分析、认为开发软件就是写程序、轻视软件维护等)。

3、软件的生命周期:软件从定义、开发、使用和维护,直到最终被废弃这个漫长的时期称为软件的生命周期。

4、消除软件危机的途径:●对软件的定义有一个正确的认识。

●必须认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、协同配合、共同完成的工程项目。

必须吸收和借鉴人类长期从事工程项目所积累起来的原理、概念、技术和方法以及计算机硬件研究和开发的经验和教训;●推广使用在实践中总结出来的成功的技术和方法,消除错误的概念和做法,使用和开发更好的软件工具,形成更好的软件工程支撑环境.总之,需要通过一定的技术措施(技术和方法)和管理措施来消除软件危机。

5、软件工程:软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,即把工程化应用于软件中;②研究①中提到的途径。

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

7、软件工程的基本原理:●用分阶段的生命周期计划严格管理●坚持进行阶段评审●实行严格的产品控制●采用现代程序设计技术●结果应能清楚地审查●开发小组人员应该少而精●承认不断改进软件工程实践的必要性8、软件工程方法学:通常把软件生命周期过程中使用的一整套技术的集合称为软件工程方法学(Methodology),也称为范型(Paradigm),它包括方法(如何做)、工具(支撑平台)和过程(工作步骤)。

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

软件工程重点(吐血整理——林新发)红色的是重点中的重点前面数字是课本页码第一章概论1 什么是计算机软件计算机软件指计算机系统中的程序及其文档3软件的特点(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大(3)软件的使用没有硬件那样的机械磨损和老化问题4软件的分类(1)系统软件(如操作系统、编译程序等)、(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)6软件工程定义软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程7生存周期软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

这个过程即为计算机软件的生存周期软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护12能力成熟度模型CMM(了解一下)初始级、可重复级、已定义级、已管理级、优化级18瀑布模型(重)系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护第二章系统工程41系统工程的任务(1)识别用户的要求,确定待开发软件的总体要求和范围,(2)系统建模和模拟(3)进行成本估算,做出进度安排(4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

(5)生成系统规格说明书42可行性分析(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)(2)技术可行性(风险分析、资源分析、技术分析)(3)法律可行性第三章需求工程48软件需求指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求50需求获取方法与策略(重)建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况51 图3.253 创建用况模型的主要步骤(1)确定谁会直接使用该系统,即参与者(Actor)(2)选取其中一个参与者(3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程(5)描述该用况的基本过程54需求分析原则(重)1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节5.分析过程应该从要素信息移向细节信息第四章结构化分析与设计62第三段第一句概念(重)软件设计是把软件需求变换成软件表示的过程,主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段64软件设计的过程(重)制定规范、体系结构和接口设计、数据/类设计、部件级(过程)设计、编写设计文档、设计评审65设计的原则抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦合)68内聚耦合内聚是一个模块内部各个元素彼此结合的紧密程度的度量耦合是模块之间的相对独立性(互相连接的紧密程度)的度量76图形表示法(重)程序流程图、N-S图、PAD81 PDL的例子(重重重重重,有编程大题,可用中文写)PROCEDURE spellcheck IS 查找错拼的单词BEGINsplit document into single words把整个文档分离成单词lood up words in dictionary在字典中查这些单词display words which are not in dictionary显示字典中查不到的单词create a new dictionary 造一新字典END spellcheck外语法(关键字)、内语法(自然语言)第五章结构化分析与设计(重点章)86抽象和分解抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)自顶向下逐层分解充分体现了分解与抽象的原则87 图5.288数据流图(DFD )(重重)91数据流图画法1画出系统的输入和输出(顶层图)2画出系统内部(0层图)3画出加工内部(1~n 层图)4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)97分层DFD 的一致性和完整性一致性:父图与子图平衡、数据守恒、局部文件完整性:1每一个加工至少有一个输入数据流和一个输出数据流2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件3分层DFD 中的每个数据流和文件都必须命名(除了流入或流出文件的数据),并保持与数据字典一致4分层DFD 中的每个基本加工都应该有一个加工规约115结构图名词解释:SA 结构化分析 SD 结构化设计 SP 结构化程序设计结构图的基本成分有:模块、调用和数据模块是指具有一定功能的可以用模块名调用的一组程序语句,如函数、子程序等它们是组成程序的基本单元一个模块具有其外部特征和内部特征 实体-关系图 数据流图状态转换图 数据字典在SD中,我们只关注模块的外部特征,而忽略其内部特征调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7扇出(fan out):该模块直接调用的模块数目。

例如,例如图中模块M的扇出是3,模块A 的是2,模块B的扇出是1扇入(fan in):能直接调用该模块的模块数目。

例如图中模块G的扇入是1,模块I的扇入是2,模块R的扇入是4要会画初始结构图方法:将整个软件看作一个大的功能模块,通过功能分解不断将其分解成若干个较小的功能模块,直至得到一组不必再分解的模块(结构图中的底层模块)第七章面向对象的分析与设计(重点章)149面向对象的基本概念面向对象= 对象(object)+ 分类(classification)+ 继承(inheritance)+ 通过消息的通信(communication with messages)可以说,采用这四个概念开发的软件系统是面向对象的对象是指一组属性以及这组属性上的专用操作的封装体。

类是一组具有相同属性和相同操作的对象的集合。

一个类中的每个对象都是这个类的一个实例(instance)。

继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。

消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。

151多态性和动态绑定多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。

动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。

159 UML 记10种图(重,要记)类图、内部结构图、协作图、构件图、用况图、状态机图、活动图、顺序图、通信图、部署图、包图182关联关联描述了系统中对象或其他实例的连接。

关联主要有二元关联、多元关联、受限关联、聚集和组合第九章人机界面设计243黄金原则(重)1.让用户拥有控制权2.减少用户的记忆负担3.保持界面一致第十一章软件测试263 软件测试的目的(重)软件测试是为了证明程序是正确的(×)测试是发现软件中的错误,而不能证明软件中没有错误。

测试的目的:1测试是一个为了发现错误而执行程序的过程2一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例3一个成功的测试是指揭示了迄今为至尚未发现的错误的测试265黑盒和白盒测试用例的设计方法大体可分为两类:白盒测试和黑盒测试,也称白箱测试和黑箱测试白盒测试(又称为结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。

白盒测试主要用于对模块的测试黑盒测试(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。

黑盒测试可用于各种测试266白盒测试常用的白盒测试方法有:逻辑覆盖测试、基本路径覆盖测试、数据流测试、循环测试逻辑覆盖测试是一种基本的白盒测试方法覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖277黑盒测试黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求规约的要求。

主要的黑盒测试方法有:等价类划分、边界值分析、比较测试、错误猜测、因果图288单元测试单元测试又称模块测试,它着重对软件设计的最小单元(软件构件或模块)进行验证单元测试通常采用白盒测试,并且多个构件或模块可以并行进行测试模块本身不是一个独立的程序,在测试模块时,必须为每个被测模块开发一个驱动(driver)程序和若干个桩(stub)模块。

289集成测试经单元测试后,每个模块都能独立工作,但把它们放在一起往往不能正常工作。

集成测试又称组装测试,经单元测试后的模块需要集成为软件系统,集成测试是对集成后的软件系统进行测试,主要用来揭露设计阶段产生的错误。

集成的方式有两种:非增量集成测试、增量集成测试290自顶向下自底向上增量集成测试分为自顶向下集成测试盒自底向上集成测试293 a测试和β测试(重重)α测试是由一个用户在开发者的场所进行的,软件在开发者对用户的“指导下”进行测试。

经α测试后的软件称为β版软件。

β测试是由软件的最终用户在一个或多个用户场所进行的,与α测试不同,开发者通常不在测试现场,因此,β测试是软件在一个开发者不能控制的环境中的“活的”应用,用户记录所有在β测试中遇到的(真正的或想象的)问题,并定期把这些问题报告给开发者,在接到β测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有的用户发布最终的软件产品。

第十三章软件维护与再工程323软件可维护性可维护性:指理解、改正、调整和改进软件的难易程度。

对软件可维护性影响的主要因素有:可理解性、可测试性、可修改性和可移植性提高软件可理解性的措施:采用模块化的程序结构;书写详细正确的文档;采用结构化程序设计;书写源程序的内部文档;使用良好的编程语言;具有良好的程序设计风格等第十四章软件项目管理338软件度量(重)软件度量是指计算机软件范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度对软件开发过程度量的目的是为了对过程进行改进对产品进行度量的目的是为了提高产品的质量,度量的作用是为了有效地采用定量的方式来进行管理管理人员利用度量来了解软件工程过程的执行情况和产品质量需要考虑:合适的度量是什么所收集的数据如何使用用于比较个人、过程或产品的度量是否合理340 软件度量度量对象:软件产品、软件过程、资源软件产品、软件过程、资源都具有外部属性和内部属性。

相关文档
最新文档