软件工程知识点

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程_主要知识点

软件工程_主要知识点

1.软件的定义?(P1)计算机(程序)、(规程)以及运行计算机系统可能需要的相关(文档)和(数据)。

2.应用软件的分类?(P2)通用软件和定制软件3.软件的本质特性?(P3)复杂性、一致性、可变性、不可见性4.软件危机的表现?(P5-7)1、软件开发的成本和进度难以准确估计,延迟交付甚至取消项目的现象屡见不鲜。

2、软件存在错误多,性能低,不可靠,不安全等质量问题。

3、软件成本在计算机系统的整个成本中所占的比例越来越大4、软件维护及其困难,而且很难适应不断变化的用户需求和使用环境。

5.软件工程的定义?(P7)①将系统性的、规化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;②对①中所述方法的研究。

6.软件工程包括哪些基本要素?简述它们的作用?(P7-8)过程、方法、工具方法:为软件开发提供了“如何做”的技术、通常包含某种语言或图形的模型表示方法,设计实践和质量保证标准。

工具:为软件工程的方法提供自动或半自动的软件支持环境辅助软件开发任务完成。

过程:是管理和控制产品质量的关键,将人员、技术、组织与管理有机的结合起来。

7.软件的质量可以从哪些方面评价?(P8-9)可用性、有效性、可依赖性、可维护性8.软件工程方法有哪些?(P9-10)(传统方法<面向过程的方法、面向数据的方法等>、面向对象方法)传统方法:面向数据方法、面向过程方法面向对象方法9.CASE系统的三个层次?(P10-11)工具:CASE工具支持单个过程的任务工作台:CASE工作台支持某一过程阶段的活动环境:CASE环境支持整个软件过程的所有活动或者大部分活动,通常是若干CASE工作台的集成10.SWEBOK的10个知识域?英文名称?(P15-19)1软件需求(Software requirements)→2软件设计(Software Design)→3软件构造(Software Construction)→4软件测试(Software Testing)→5软件维护(Software Maintenance)→6软件配置管理(Software Configuration Management)→7软件工程管理(Software Engineering Management)→8软件工程过程(Software Engineering Process)→9软件工程工具与方法(Software Engineering Tools and Methods)→10软件质量(Software Quality)11.软件工程与其他相关学科的关系?(P19-20)软件工程将计算机科学,数学,工程学和管理学等基本原理应用于软件开发的工程实践中,并借鉴传统工程的原则和方法,以系统的,课控的,有效的方式产生高质量的软件。

软件工程概论知识点汇总

软件工程概论知识点汇总

软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。

2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。

3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。

4.合同法:________规定软件开发过程中的合同签订与履行等事项。

软件工程知识点总结

软件工程知识点总结

软件工程知识点总结软件工程知识点总结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. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、监控和控制的活动。

它包括项目需求管理、进度管理、资源管理、风险管理等方面,以确保软件项目按时、按质量要求完成。

软件工程知识点汇总

软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总
1、软件需求
1.1 需求概述
1.2 需求分类
1.3 需求获取与分析
1.4 需求规格说明
2、软件设计
2.1 面向对象设计
2.2 结构化设计
2.3 数据库设计
2.4 用户界面设计
2.5 系统架构设计
3、软件编码
3.1 编程语言选择与使用
3.2 编码规范
3.3 软件开发环境
3.4 编码工具和技术
3.5 调试和测试
4、软件测试
4.1 测试基础知识
4.2 测试方法与策略
4.3 白盒测试
4.4 黑盒测试
4.5 功能性测试
4.6 性能测试
4.7 集成测试
4.8系统测试
4.9用户验收测试
5、软件项目管理
5.1 项目计划与进度管理 5.2 风险管理
5.3 人员管理
5.4 项目质量管理
5.5 变更管理
5.6 项目交付与部署
6、软件维护与升级
6.1 软件维护分类
6.2 软件维护流程
6.3 软件升级策略
6.4 软件版本控制
7、软件安全
7.1 信息安全基础知识
7.2 软件安全需求与设计
7.3 安全测试与评估
7.4 安全漏洞修复与更新
附件:
法律名词及注释:
1、版权: 对一种表达形式的独特创造进行保护的法律概念。

2、商标: 表示和区分特定商品或服务来源的标识符。

3、专利: 对于新发明的独特权利,使得发明人可以禁止他人在专利权期限内使用该发明。

4、法律责任: 违反法律规定而应承担的法律后果。

软件工程主要知识点

软件工程主要知识点

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程知识点汇总

软件工程知识点汇总

软件工程知识点汇总1软件工程、软件工程方法学:三要素1.1软件工程:O1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工程应用到软件;O 2对。

的各种方法的研究1.2软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科1.3软件工程三要素是:方法、工具、过程软件工程的方法:是指完成软件开发各项任务的技术方法软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的2软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、依赖倒转原则、开闭原则等2.1模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。

模块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整个系统表示过于复杂,不利于控制系统的复杂性。

2.2信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。

2.3抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。

2.4模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。

要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。

(即:高内聚低耦合)2.5依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。

2.6开闭原则:软件实体应该是可扩展的,但是不可以修改。

即对于扩展是开放的,对于更改是封闭的。

3软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、特点、示意图;软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架3.1瀑布模型(又称线性模型):3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

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

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

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

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

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

四、什么是软件工程?它的目标和内容是什么?定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。

(P6)目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。

(P7)内容:主要内容包括软件开发技术和软件工程管理两方面。

(P6)要素:方法,工具,过程五、什么是软件生存周期?它有哪几个活动?定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。

活动:软件定义、软件开发、软件使用维护和退役(P9)六、什么是软件生存周期模型?它有哪些主要模型?定义:又称为软件开发模型,软件过程模型,它清晰直观地反映了软件开发的全部过程、所涉及的活动和任务结构框架,并指出了开发了开发各阶段的关系、开发活动的衔接情况。

主要模型:瀑布模型(waterfall model),原型(prototype)模型,螺旋(the spiral)模型,增量(incremental)模型,喷泉(fountain)模型,迭代(iterative)模型七、简述有哪些主要的软件开发方法?(P22)结构化方法:也称为生命周期方法或传统方法,由结构化分析(structured analysis)、结构化设计(SD)、结构化编程(SP)三部分有机组合而成。

其基本思想是自顶向下,逐步求精,基本原则是抽象和分解。

面向对象方法(Object—Oriented Method):把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO。

包括面相对象分析(OOA)、面向对象设计(OOD)、面向对象的程序设计(OOP)等过程。

八、软件生命期各阶段的任务是什么?(P10)软件定义:问题定义,系统的可行性研究,需求分析软件开发:概要设计,详细设计,编码实践,软件测试软件使用维护和退役:软件发布与实施,软件维护,版本更新或退役九、简述瀑布模型(P12)、原型模型特点。

瀑布模型:软件开发的各项活动严格按照线性方式进行,各阶段之间具有顺序性和依赖性,且为了保证软件的开发质量进行阶段性评审。

缺点是逆转性差,若在评审中发现缺陷或错误往回追溯修正时要付出一定的代价。

适合在软件需求明确且很少发生变化、开发技术比较成熟、工程管理比较严格地场合使用。

原型模型:有助于用户和软件分析员双方相互学习对方领域知识,使得用户和开发人员统一对软件需求的认识,理解,有助于需求的定义评审,从而有助于提高开发速度。

缺点是用户对原型没有正确认识,会催促开发人员尽早交付软件,同时也在一定程度上限制了软件开发人员的创新。

(P14)第二章软件需求基础一、试述软件需求、需求分析、需求建模概念的含义及区别。

软件需求:指用户对目标软件系统在功能、性能、行为、涉及约束等方面的期望,这种期望可能是原始的、笼统的,也可能是抽象的太细节化的。

(P26)需求分析:通过对应用问题及其环境的分析与理解,采用一系列的分析方法和技术,将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。

(P26)需求建模:需求建模是为了更好的理解用户所描述的需求所作出的一种抽象,是用符号语言对事务无歧义的书面描述。

模型主要包括数据模型,功能模型和行为模型。

(P38)二、可行性研究的任务是什么?(P31)用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

三、成本—效益分析可用哪些指标进行度量?(P32)成本效益分析是衡量经济可行性的。

指标:(1)货币的时间价值。

(2)投资回收期(3)纯收入四、需求分析阶段的基本任务是什么?(P27)任务:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。

五、简述需求分析阶段的过程。

(P36)1.问题识别2.分析与综合3.编制需求分析阶段的文档4.需求验证六、常用的初步软件需求获取的方法有哪些?为什么要用这些方法来进行需求获取?(P33)方法:1.访谈与会议2.观察用户工作流程3.建立联合小组4.其他获取方法:快速原型法,基于本体的需求获取方法原因:分析人员和用户的共同知识领域可能不多,致使分析人员对问题往往知之不多,而用户对目标软件的要求及对要求的描述常常是零乱而模糊地,从而会造成相互交流和互相理解上的困难。

七、在软件需求分析时,应首先建立当前系统的物理模型,在根据物理模型尽力当前系统的逻辑模型。

试问:什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?(P28)当前系统:可能是需要改进的某个已在计算机运行的数据处理系统,也可能是一个人工的数据处理过程。

物理模型是确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中,它是软件实现的基础。

逻辑模型忽视实现机制与细节,只描述系统要完成的功能和要处理的数据。

逻辑模型是在物理模型的基础上去掉一些非本质因素形成的,它反应的是系统的本质。

第三章软件设计基础一、什么是软件概要设计?该阶段的基本任务是什么?定义:设计人员依据软件需求规格说明文档,确定软件的体系结构,建立软件模块间的关系,定义个功能模块的接口,设计全局数据库或数据结构,规定设计约束,指定组装测试计划。

任务:将软件需求转化为软件的系统结构和数据结构(P49)*力争做到功能模块之间有比较低的耦合度而功能模块内部有较高的内聚度。

二、详细设计的基本任务是什么?有哪几种描述方法?任务:通过对软件结构细化,得到软件的详细的算法和数据结构。

(P49)描述方法:(过程设计)程序流程图盒图(N-S图)问题分析图(PAD图)判定表和判定树过程设计语言(PDL)(P77)三、软件设计的基本原理包括哪些内容?(P51)抽象与逐步求精、模块化、信息隐蔽、模块独立四、衡量模块独立性的两个标准时什么?各表示什么含义?标准:内聚和耦合含义:内聚(cohesion)——衡量一个模块内部各个元素彼此结合的紧密程度耦合(coupling)——衡量不同模块之间的相对独立性(互相连接的紧密程度)五、模块的耦合性有哪几种?各表示什么含义?种类:非直接耦合——两个模块之间没有直接关系,他们中任何一个都不依赖于另一个而能独立工作数据耦合——一模块访问另一模块,相互传递的信息已参数形式给出,并且传递的参数完全是简单数据元素,而不是控制元素、公共数据结构和外部变量。

标记耦合——两模块之间都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是通过模块接口界面传递数据结构的一部分。

控制耦合——一模块传递给另一模块的参数中包含了控制信息(开关,标记,名字等),该控制信息勇于控制接收模块中的执行逻辑。

外部耦合——一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量信息。

公共耦合——一组模块都访问同一个公共数据环境内容耦合——一模块直接访问另一模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只出现在汇编程序中);一个模块有多个入口。

*从上到下耦合性从低到高,独立性从高到底六、模块的内聚有哪几种?各表示什么含义?种类:巧合内聚(偶然内聚)——将几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块逻辑内聚——完成一组在逻辑上相关的任务的模块间具有逻辑内聚时间内聚(经典内聚)——完成几个必须在同一时间内进行的任务的模块间具有时间内聚过程内聚——一个模块完成多个任务,这些任务必须按指定的过程执行。

把流程图中的某一部分划出组成模块就得到过程内聚模块通信内聚——一个模块内所有成分都使用同一输入数据或产生同一输出数据,即一个模块内所有处理元素都集中在某个数据结构的一块区域中的模块具有通信内聚信息内聚——一个模块内完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点七、结构化程序设计的基本要点是什么?结构化程序设计是尽可能少用GOTO语句的程序设计方法。

最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前句GOTO语句。

相关文档
最新文档