软件工程知识要点

合集下载

软件工程知识点

软件工程知识点

软件工程知识点软件工程是一门综合性的学科,它涵盖了软件开发的各个方面,包括需求分析、系统设计、编码实现、测试和维护等。

软件工程知识点是软件工程师必备的知识,下面将介绍一些重要的软件工程知识点。

一、软件工程概述软件工程是一种应用系统工程原理和方法来开发和维护软件的学科。

它包括软件的开发进程、软件工程原理、软件生命周期等相关概念。

二、软件开发过程软件开发过程是指从软件需求分析到软件交付使用的整个过程。

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

其中,瀑布模型是一种串行的开发过程,适用于需求较为明确的项目;迭代模型是多次迭代交付的开发过程,适用于需求不太明确或较为复杂的项目;敏捷开发模型则强调迭代、反馈和灵活性,适用于需求变更频繁的项目。

三、软件需求分析软件需求分析是软件开发的第一步,它确定用户的需求,并将其转化为可实现的软件需求规格说明。

软件需求分析包括需求获取、需求分析与建模、需求验证和需求管理等阶段。

四、软件设计软件设计是将需求分析得到的软件需求转化为软件设计文档和软件体系结构。

软件设计包括系统设计、详细设计和用户界面设计等方面。

在设计过程中,需要考虑软件的结构、模块划分、接口设计以及算法和数据结构等。

五、软件编码与实现软件编码与实现是将软件设计文档转化为可执行的程序代码的过程。

在编码过程中,需要选择合适的编程语言、开发工具和框架,并按照开发规范进行编码工作。

同时,需要进行代码测试和调试,确保程序的正确性和稳定性。

六、软件测试软件测试是在软件开发过程中对软件进行验证和验证的过程。

测试用例的制定和执行是软件测试的关键步骤,常用的测试方法包括黑盒测试、白盒测试、功能测试和性能测试等。

七、软件质量保证与维护软件质量保证与维护是为了确保软件的质量,防止软件出现问题。

软件质量保证包括质量规划、配置管理、缺陷管理和度量等。

而软件维护则是在软件交付后对软件进行修复、改进和更新等工作。

总结:软件工程知识点是软件工程师必备的知识,涵盖了软件开发的各个环节。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程知识点汇总

软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总1. 软件工程概述软件工程是一门研究和应用如何以系统化、规范化、可量化和可复用的方式进行软件开发、维护和管理的学科。

它涵盖了软件需求分析、设计、编码、测试、部署和维护等一系列活动。

2. 软件开发过程模型软件开发过程模型描述了软件开发过程中不同阶段的活动、输入、输出和交付物之间的关系。

常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发等。

- 瀑布模型:顺序执行,按照需求分析、设计、编码、测试和部署的顺序进行,适用于需求较为稳定的项目。

- 迭代模型:将开发过程划分为若干个迭代周期,每个迭代周期包含需求分析、设计、编码和测试等活动,适用于需求可能变化的项目。

- 螺旋模型:循环迭代执行,结合风险管理,适用于大型复杂项目。

- 敏捷开发:强调快速响应需求变化和团队协作,采用迭代、自组织和自适应的方式进行开发。

3. 软件需求工程软件需求工程是软件工程中的一个重要环节,旨在明确和理解用户对软件系统的需求,并将其转化为可执行的软件需求规格说明。

常见的软件需求工程技术包括需求获取、需求分析、需求建模和需求验证等。

- 需求获取:通过与用户沟通、观察和收集信息等方式获取软件需求。

- 需求分析:对收集到的需求进行分析,理解用户需求的本质和背后的目标。

- 需求建模:采用不同的建模技术,如用例图、活动图、时序图等,对需求进行建模和表达。

- 需求验证:通过验证技术和方法,验证需求的正确性、完整性和可行性。

4. 软件设计软件设计是根据需求分析阶段得到的软件需求规格,进行软件架构设计、模块设计和接口设计等,在不同的抽象层次上设计软件结构和组件。

- 软件架构设计:确定软件的整体结构,包括系统分层、模块划分和组件关系等。

- 模块设计:对软件系统进行细分,将系统划分为若干个模块,明确模块之间的功能和接口。

- 接口设计:定义模块之间的接口规范,确保模块之间能够相互协作和交互数据。

5. 软件测试软件测试是为了发现和修复软件中的错误、缺陷和风险,确保软件满足预期需求和品质要求的过程。

软件工程知识点总结

软件工程知识点总结

软件工程知识点总结软件工程知识点总结1.软件工程概述1.1 软件工程定义1.2 软件工程的重要性1.3 软件生命周期2.需求分析与规格说明2.1 需求分析过程2.2 需求获取方法2.3 需求规格说明的要素2.4 需求跟踪与变更管理3.软件设计3.1 软件设计原则3.2 结构化设计方法3.3 面向对象设计方法3.4 数据库设计3.5 用户界面设计4.软件开发4.1 编码规范4.2 编程语言选择4.3 软件构建工具4.4 软件测试4.5 版本控制5.软件项目管理5.1 项目计划与进度管理 5.2 软件开发过程模型 5.3 团队协作与沟通5.4 风险管理6.质量保证与软件维护6.1 质量保证方法6.2 软件维护类型6.3 软件维护活动6.4 软件退役与替换附件:________本文档涉及的附件(请附上相关文档、图表等)法律名词及注释:________1.软件工程:________指将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护的工程学科。

2.需求分析:________确定用户对软件系统需要的功能、性能和约束等方面的要求,并以此为基础进行系统的分析和设计。

3.软件设计:________根据需求分析的结果,制定软件系统的总体结构和各组成部分的详细设计方案。

4.软件开发:________根据软件设计的方案,进行编码和调试,最终可执行的软件系统。

5.软件项目管理:________对整个软件项目进行计划、协调、控制和有效地管理,确保项目顺利完成。

6.质量保证:________通过不同的方法和技术,提高软件产品的质量,确保其满足用户的需求和要求。

7.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。

软件工程知识点汇总

软件工程知识点汇总

软件工程知识点汇总1. 软件工程简介软件工程是运用系统化、规范化和可管理的方法进行软件开发、运行和维护的学科。

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

2. 软件工程流程模型常见的软件工程流程模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。

不同的模型适用于不同的项目需求和开发环境,每个模型都有其优缺点。

3. 软件需求工程软件需求工程是确定软件系统应该如何工作的过程。

它包括需求获取、需求分析、需求规格和需求验证等活动。

良好的需求工程能够确保软件系统满足客户的需求和预期。

4. 软件设计软件设计是将软件需求转化为可执行的程序设计的过程。

它包括系统架构设计、模块设计、接口设计和数据库设计等活动。

良好的软件设计能够提高软件的可维护性和可扩展性。

5. 软件开发软件开发是按照软件设计规范进行编码和测试的过程。

开发人员应该具备良好的编程技能和测试能力,并遵循编码规范和测试流程。

6. 软件测试软件测试是为了发现软件中的错误和缺陷,保证软件的质量和可靠性。

测试方法包括功能测试、性能测试、压力测试和安全测试等。

高质量的测试能够提高软件的稳定性和用户满意度。

7. 软件配置管理软件配置管理是对软件开发过程中所的各类工作产品进行控制、记录、审计和追踪的过程。

配置管理包括版本管理、变更管理、发布管理和文档管理等活动。

8. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、指导和控制的过程。

它包括项目需求分析、项目计划制定、项目资源分配和进度控制等活动。

有效的项目管理能够提高软件开发效率和项目成功率。

9. 软件质量管理软件质量管理是在软件开发过程中对质量进行全面管理的过程。

它包括质量计划、质量控制和质量保证等活动。

良好的质量管理能够提高软件的可靠性和用户满意度。

10. 软件维护与迭代软件维护是在软件发布后对其进行修复bug、优化性能和添加新功能的过程。

软件迭代是对软件系统进行增量式的开发和发布,不断提高软件质量和功能。

软件工程知识点

软件工程知识点

软件工程知识点第一章软件工程概述一、软件的定义和特性(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. 软件生命周期软件生命周期是指软件开发过程中的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。

每个阶段都有相应的活动和产物,这些活动和产物共同构成了软件开发的全过程。

2.1 需求分析需求分析是软件开发的第一步,旨在明确用户对软件的需求和期望。

它包括需求收集、需求分析、需求规格化和需求验证等活动,旨在确保软件开发过程中的需求清晰、准确,并能够满足用户的实际需求。

2.2 设计软件设计是在需求分析的基础上,根据系统的需求和约束条件,通过对系统的整体结构、组件设计、接口设计等进行详细的规划和设计。

2.3 编码编码阶段是将设计好的软件系统转化为可执行的程序代码的过程。

在编码阶段,开发人员需要按照设计规范进行编码,并遵循编码规范和最佳实践,以确保代码的可读性、可维护性和高效性。

2.4 测试测试是验证软件系统是否符合设计和需求的过程。

它包括单元测试、集成测试、系统测试和验收测试等各个层次的测试,旨在发现和修复软件系统中存在的缺陷和问题。

2.5 部署与维护部署阶段是将开发完成的软件系统部署到目标环境并投入使用的过程。

维护阶段则是针对已发布的软件系统进行问题修复、功能增强和性能优化等活动。

3. 软件开发方法软件开发方法是一套规范和指导软件开发过程的方法论和技术体系。

不同的软件开发方法适用于不同的项目需求和团队情况,常见的开发方法有瀑布模型、敏捷开发和迭代开发等。

3.1 瀑布模型瀑布模型是一种传统的软件开发方法,它将软件开发过程划分为阶段并且各个阶段严格按顺序进行。

瀑布模型适用于需求稳定、风险较小的项目,但缺乏灵活性和适应变化的能力。

3.2 敏捷开发敏捷开发是一种以人为核心、快速迭代、灵活应变的开发方法。

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

软件工程知识要点1、1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上,正式提出并使用了“软件危机”这个名词,一门新兴的工程学科就此诞生了。

2、软件危机是指在计算机让软件的开发和维护过程中所遇到的一系列严重问题。

3、软件危机产生的原因(第4页):一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

软件不同于硬件,他是计算机系统中的逻辑部件而不是物理部件。

由于软件缺乏“可见性”,再写出程序代码并在计算机上试运行之前,软件开发过程中的进展情况较难衡量,软件的质量也较难评价,因此,管理和控制软件开发过程相当困难。

软件不同于一般程序,他的一个显著特点是规模庞大,而且程序复杂性将随着程序规模的增加而成指数上升。

4、软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的做好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

5、软件工程的基本原理:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性6、软件工程方法学包含的三个要素:A 方法 B 工具C工程7、目前使用的最广泛的软件工程方法学是传统方法学和面向对象方法学。

8、软件生命周期由软件定义、软件开发和运行维护3个时期组成,分为八个阶段:①问题定义②可行性研究③需求分析④总体设计⑤详细设计⑥编码和单元测试⑦综合测试⑧软件维护9、软件过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。

10、通常使用生命周期模型简洁地描述软件工程。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

11、瀑布模型的特点:⊙阶段间具有顺序性和依赖性⊙推迟实现的观点⊙质量保证的观点瀑布模型有许多优点:可强迫开发人员采用规范的方法,严格的规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

12、喷泉模型体现了面向对象软件开发过程迭代和无缝的特性。

13、可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

14、一般说来,至少应该从下述三个方面研究每种解法的可能性:A、技术可行性B、经济可行性C、操作可行性15、系统流程图是概括的描述物理系统的传统工具。

它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。

16、数据流图(FDF)是一种图形化技术,他描绘信息流和数据从输入移动到输出的工程中所经受的变换。

在数据流图中没有任何具体的为物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

数据流图是系统逻辑功能的图形表示,是分析员和用户之间最好的通信工具。

17、数据流图有4种基本符号:⊙正方形(或立方体)表示数据的源点或终点⊙圆角矩形(或圆形)代表变换数据的处理⊙开口矩形(或两条平行横线)代表数据存储⊙箭头表示数据流,即特定数据的流动方向。

18、数据存储和数据流都是数据,仅仅所处的状态不同。

数据存储是处于静止状态的数据,数据流是处于运动的数据。

19、由数据元素组成数据的方式类型:①顺序②选择③重复④可选(前三种为基本类型)50页数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图和数据字典共同构成系统的逻辑模型。

数据字典应该有下列四类元素的定义组成:数据流、数据元素、数据存储、处理。

数据字典的用途:分析阶段的工具、维护阶段的工具、用于数据库开发。

20、通常用投资回收期衡量一项开发过程的价值。

所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。

21、纯收入是指在整个生命周期之内,系统的累计经济效益(折合成现在值)与投资之差。

22、课本54页第五题23、需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什么?”这个问题。

24、需求分析的任务:①确定对系统的综合要求②分析系统的数据要求③导出系统的逻辑模型④修正系统开发计划(了解)25、需求分析过程应该建立三种模型,它们分别是数据模型、功能模型和行为模型。

26、掌握“实体—联系图”、状态转换图。

(63页)27、总体设计又称为概要设计或初步设计。

28、软件设计过程中应该遵循的基本原理:◎模块化◎抽象◎逐步求精◎信息隐藏和局部化◎模块独立29、模块是由边界元素限定的相邻程序元素(例如数据说明,可执行语句)的序列而且有一个总体标识符代表它。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。

30、人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。

人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。

把这些相似的方面集中和概括起来,暂时忽略他们之间的差异,这就是抽象。

31、模块独立的概念是模块化、抽象、信息隐藏和和局部化概念的直接结果。

模块独立程度可以有两个定性的标准来衡量,这两个标准分别成为内聚和耦合。

32、耦合是对一个软件结构内不同模块之间互连程度的度量。

33、在软件设计中应该追求尽可能松散耦合的系统。

34、尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

35、内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

36、内聚类型:功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚。

37、启发式规则:人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得出了一些启发式规则。

38、下面介绍几条启发式规则:改进软件结构提高软件的独立性;模块规模应该适中;深度宽度扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。

39、层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。

40、信息流有下述两种类型:变换流和事物流。

(105页)41、结构程序设计的经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

42、再设计人机界面的过程中,几乎总会遇到下述4种问题:系统响应时间、用户帮助设施、出错信息处理和命令交互。

43、程序流程图和盒图。

124页44、一张判定表有四部分组成,左上部列出所有条件,左下部是所有可能的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。

12845、Jackson图46、计算环形复杂度的方法137页。

47、通常把编码和测试统称为实现。

48、编码风格14849、条件测试的目标或定义:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了迄今为止尚未发现的错误的测试。

50、测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运行51、由模块组装成程序时有两种方法:非渐增式测试方法和渐增式测试方法。

目前在进行集成测试时普遍采用渐增式测试方法。

当使用渐增式把模块结合到程序中时,有自顶向下和自底向上两种集成策略。

(158)52、逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。

16453、基本路径测试技术设计测试用例的步骤如下:第一,根据过程设计结果画出相应的流图。

第二,计算流图的环形复杂度。

第三,确定线性独立路径的基本集合。

(166页)54、等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。

55、按照边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类内的典型值任意值作为测试数据。

56、测试途径:蛮干法、回溯法、原因排除法。

57、课本187页8、9、10题58、所谓软件维护就是在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的工程。

把诊断和改正错误的过程称为改正性维护。

适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。

59、维护类型:改正性维护、适应性维护、完善性维护、预防性维护。

60、决定软件可维护性的因素:可理解性,可测试性,可修改性,可移植性,可重用性。

61、文档决定软件可维护性的决定因素。

分为用户文档和系统文档。

62、面向对象方法学具有4个要点:A 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以有比较简单的对象以某种方式组合而成。

B 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。

C 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。

D 对象彼此之间仅能通过传递消息相互联系。

也就是说,面向对象就是既使用对象有使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。

63、面向对象方法学的优点:与人类的习惯的思维方法一致;稳定性好;可重用性好;较易开发大型软件产品;可维护性好。

64、对象、封装、继承、多态性的概念65、用面向对象建模通常需要建立三种形式的模型,他们分别是对象模型、动态模型、功能模型。

66、类图使用的基本符号、表示关系的符号21867、面向对象分析过程中,主要由对象模型、动态模型、和功能模型。

面向对象的分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

68、面向对象建模得到的模型包含系统的3个要素,即静态结构(对象模型)、交互次序(动态模型)、和数据变换(功能模型)。

复杂问题(大型系统)的对象模型通常有5个层次组成:主题层、类与对象层、结构层、属性层、服务层。

250页图10.869、面相对象设计的准则:模块化、抽象、信息隐藏、弱耦合、强内聚、可重用。

70、重用也叫做复用再用,是指同一事物不做修改或稍加改动就多次重复使用。

71、类构建有三种重用方式:实例重用、继承重用、多态重用。

72、大型系统的面向对象设计模型在逻辑上有四大部分组成:问题域子系统、人机交互子系统、任务管理子系统、和数据管理子系统。

相关文档
最新文档