软件工程导论名词解释

合集下载

软件工程导论资料

软件工程导论资料

•软件工程是:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等CMM(Capability Maturity Model)即能力成熟度模型,是美国卡内基梅隆大学软件工程研究所(SEI)在美国国防部资助下于二十世纪八十年代末建立的,用于评价软件机构的软件过程能力成熟度的模型。

•典型的软件过程模型有:–瀑布模型(waterfall model)–演化模型(evolutionary model)–增量模型(incremental model)–原型模型(prototyping model)–螺旋模型(spiral model)–喷泉模型(water fountain model)–基于构件的开发模型(component-based development model)–形式方法模型(formal methods model)•是瀑布模型和演化模型的结合,并增加了风险分析•螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:–制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件–风险分析:评价所选的方案,识别风险,消除风险–工程实施:实施软件开发,验证工作产品–客户评估:评价开发工作,提出修正建议•喷泉模型是一种支持面向对象开发的模型•体现迭代和无间隙特征–迭代:各开发活动常常重复工作多次,相关的功能在每次迭代中随之加入演进的系统–无间隙:开发活动之间不存在明显的边界•所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合•组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程•本书将软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段。

•常用的分析方法:–面向数据流的结构化分析方法(SA)–面向数据结构的分析方法–面向对象的分析方法(OOA)•需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动•需求跟踪有两种方式,正向跟踪与逆向跟踪–正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点–逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处•软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部件级设计•使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计软件设计的原则:抽象化与逐步求精;•软件设计中主要抽象手段有:过程抽象和数据抽象模块化;信息隐藏;功能独立;•功能独立性可以由两项指标来衡量:内聚度与耦合度软件体系结构关注系统的一个或多个结构,包含软件构件、这些构件的对外可见的性质以及它们之间的关系•常见的软件体系结构–单主机结构–C/S(Client/Server)结构–B/S(Browser/Server)结构常用体系结构风格:数据为中心的体系结构数据流风格的体系结构调用和返回风格的体系结构面向对象风格的体系结构层次式风格的体系结构在这里要了解几个概念:–程序结构的深度:程序结构的层次数称为结构的深度。

软件工程导论名词

软件工程导论名词

1、什么是软件?答:1).满足功能要求和性能的指令或计算机程序集合; 2.)处理信息的数据结构;3.)描述程序功能以及程序如何操作和使用所要求的文档;2、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

3、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科。

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

4、软件生存周期:一个软件从开始计划起,到废弃不用止,称为软件的生存周期。

5、瀑布模型:即生存周期模型,是软件工程的基础模型。

其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。

6、增量模型:是瀑布模型的顺序特征与快速原型法德迭代特征相结合的产物。

这种模型把软件看成一系列相互联系的增量,在看法过程的各次迭代中,每次完成其中的一个增量。

7、快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌8、可行性研究:可行性研究的目的:就是用最小代价在尽可能短的时间内确定问题是否能够解决。

9、需求分析:需求分析的任务:它的基本任务是准确地回答“系统必须做什么?”这个问题。

需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

10、数据流图:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

(或者:数据流图:它以图形的方式反映系统的数据流程)11、数据词典:是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。

软件工程导论

软件工程导论

软件工程导论软件工程导论简介:软件工程导论是计算机科学与技术专业中的一门重要课程,旨在向学生介绍软件工程的基本概念、原理、方法和技术等内容。

本文将从软件工程的定义、发展历程、重要性以及软件生命周期等方面,全面介绍软件工程导论的相关知识。

一、软件工程的定义软件工程是一门应用科学,它利用系统化、规范化和可量化的方法,以经济、可靠的方式开发和维护软件。

软件工程的目标是提供高质量的软件产品,以满足用户的需求。

二、软件工程的发展历程1. 软件危机时期20世纪60年代至70年代初,软件产业发展迅猛,但由于软件开发过程中的高风险和高不确定性,导致了大量软件项目的失败和超支,人们逐渐意识到软件工程的重要性。

2. 软件工程的提出1972年,瑞士学者Dijkstra发表了《软件工程的未来》一文,正式提出了软件工程这一概念,强调了对软件开发过程进行工程化管理的必要性。

3. 软件工程的发展随后,软件工程逐渐成为一个独立的学科,并在学术界和工业界得到了广泛的应用和推广。

软件工程的理论和方法也日益完善,其中包括需求分析、软件设计、编码、测试等一系列开发过程中的关键技术。

三、软件工程的重要性1. 提高软件质量软件工程以系统化和规范化的方式进行软件开发,通过严格的质量控制和测试,大大提高了软件产品的质量,降低了软件缺陷和故障的发生率。

2. 提高开发效率软件工程引入了各种开发工具和方法,帮助开发人员提高开发效率,减少重复劳动,提高工作效能。

3. 减少开发成本通过软件工程的管理方法和技术手段,能够有效控制软件开发过程中的风险和成本,及时发现和处理问题,从而降低开发成本。

四、软件生命周期1. 需求分析阶段需求分析是软件开发过程中的第一步,旨在确定用户的需求和期望,并将其转化为形式化的需求规格。

2. 设计阶段设计阶段依据需求分析的结果,将软件系统划分为模块,并确定各个模块的功能和接口。

3. 编码阶段在编码阶段,开发人员根据设计文档编写源代码,并进行单元测试和集成测试。

软件工程导论(整理)

软件工程导论(整理)

软件工程导论(整理)软件工程导论软件工程导论是计算机科学与技术专业的一门重要课程,通过对软件工程的基本概念、方法和技术进行介绍和讲解,使学生对软件开发过程有全面的认识。

本文将从软件工程的定义与特点、软件生命周期、软件开发方法和软件工程的挑战等方面进行论述。

一、软件工程的定义与特点软件工程是指研究和应用科学原理、方法和工具,对软件进行全面的规划、开发、测试、部署和维护的一门工程学科。

软件工程具有以下特点:1. 抽象性:软件是虚拟存在,不同于硬件,具有高度的抽象性。

2. 复杂性:软件开发是一项复杂的任务,涉及多个环节和多个参与者之间的协同合作。

3. 可变性:软件需求会随着时间和需求的变化而变化,需要具备良好的变更管理能力。

4. 可靠性:软件在使用过程中需要具备稳定、健壮和可靠的特性。

5. 可维护性:软件应该具备良好的可维护性,便于后续对其进行修改和维护。

二、软件生命周期软件生命周期是指软件从提出到退役的全过程,一般包括需求分析、设计、编码、测试、部署和维护等阶段。

1. 需求分析:明确用户需求,采集并分析用户的需求,形成软件的需求规格说明。

2. 设计:根据需求分析的结果,进行系统的设计,包括软件架构设计、模块设计等。

3. 编码:根据设计结果,进行具体代码的编写,实现软件的功能。

4. 测试:对编码后的软件进行测试,验证软件是否满足需求并具备稳定性。

5. 部署:将测试通过的软件部署到目标环境中,进行系统集成和性能调优等操作。

6. 维护:对已发布的软件进行修改、优化、升级和Bug修复等工作,确保软件持续稳定运行。

三、软件开发方法软件开发方法是指用于规范和指导软件开发过程的方法论和模型。

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

1. 瀑布模型:瀑布模型是软件开发过程中最早提出的方法之一,将软件开发过程划分为需求分析、设计、开发、测试和维护等阶段,每个阶段按顺序进行。

2. 迭代模型:迭代模型将软件开发过程划分为多个迭代周期,每个周期完成一部分需求的开发和测试,并通过反复迭代逐步完善软件。

软件工程导论习题

软件工程导论习题

第一章名词解释:1、软件工程软件工程是1:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2:研究1中提到的途径。

2、软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

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

(正常、不正常运行软件都具有这种问题)4、软件生命周期指软件从提出到最终被淘汰的这个存在期。

填空:1、软件过程中的一个任务集合包括一组软件工程任务、(里程碑)和应该交付的产品(软件配置成分)。

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

请举出几种典型的软件过程模型如微软过程、(瀑布模型)、(快速原型模型)等。

2、软件工程方法学的三个要素:(方法)、(工具)、(过程)3、软件工程方法学包含(技术)、(管理)两方面内容,是(技术)与(管理)紧密结合所形成的学科。

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

2、简要说明软件生命周期包括哪三个时期?各个时期包括哪些阶段活动?概括说明传统瀑布模型软件开发有哪些特点?软件生命周期:指软件从提出到最终被淘汰的这个存在期。

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

软件生命周期组成:1)软件定义时期的主要任务为:A.问题定义B.可行性研究C.需求分析2)软件开发时期的主要任务为:D.总体设计E.详细设计F.编码和单元测试G.综合测试3)运行维护时期的主要任务为:H. 使软件持久地满足用户的需要传统瀑布型模型开发软件的三大特点:1)、阶段间具有顺序性和依赖性2)、推迟实现的观点3)、质量保证的观点3、软件生命周期的8个阶段分别是什么?1)、问题定义2)、可行性研究3)、需求分析4)、总体设计5)、详细设计6)、编码和单元测试7)、综合测试8)、软件维护4、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件工程导论名词解释

软件工程导论名词解释

名词解释1.数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。

2.数据流图——他以图形的方式反映系统的数据流程3.白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。

有两种测试法既逻辑覆盖测试法和路径测试法4.黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。

有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法5.完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称为完善性维护。

因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大6.软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率7.软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称8.软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。

9.α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录错误和使用中出现的问题。

10.β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。

由用户负责记下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。

11.聚集关系——表示类或对象之间的整体与部分的关系12.泛化关系——表示类或对象之间的一般与特殊的关系13.内聚——一个模块内部各个元素彼此结合的紧密程度的度量。

14.耦合——一一个软件结构内不同模块之间互连程度的度量。

名词解释:一章:软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件工程导论知识点总结

软件工程导论知识点总结

软件工程导论知识点总结软件工程导论知识点总结1. 软件工程概述1.1 什么是软件工程软件工程是一门研究如何有效地开发、维护和管理软件系统的学科。

它基于工程原理和方法,将系统化的、规范化的方法应用于软件开发过程中,以提高软件的质量、可靠性和可维护性。

1.2 软件工程的重要性在当今日益发展的信息技术领域,软件已经成为各个行业和领域中不可或缺的核心组成部分。

软件工程的实践使得软件开发更加可控,能够满足用户需求,提高软件质量,降低开发和维护成本。

1.3 软件工程的原则软件工程有一些核心原则,包括适应性、可理解性、一致性、可复用性和可维护性。

这些原则帮助开发人员创建高质量的软件,并确保软件在不同环境下的可靠性和安全性。

2. 软件开发过程2.1 软件开发生命周期软件开发生命周期是指从软件概念形成到软件退役的整个过程。

常见的软件开发生命周期模型包括瀑布模型、迭代模型和敏捷模型。

2.2 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护五个阶段。

每个阶段都有明确的输入和输出,下一个阶段在前一个阶段完成后开始。

2.3 迭代模型迭代模型是一种循序渐进的软件开发过程模型,将软件开发分为多个迭代周期。

每个迭代周期包括需求分析、设计、编码、测试和评审阶段。

每个迭代周期都会产生一个可执行的软件版本。

2.4 敏捷模型敏捷模型强调迭代和反馈,在软件开发过程中更加注重灵活性和适应性。

常用的敏捷开发方法包括Scrum和XP(极限编程)等。

3. 软件开发方法与工具3.1 需求工程需求工程是软件工程的关键环节,用于确定用户需求并转化为可行的软件规格说明。

需求工程包括需求获取、需求分析、需求建模和需求验证等阶段。

3.2 架构设计架构设计为软件系统提供了一个稳定的基础,确定系统各个组件之间的关系和交互方式。

常用的架构设计模式包括模块化、层次化、客户端-服务器和MVC等。

3.3 编程与测试编程是将设计转化为可执行代码的过程,而测试是验证代码是否达到预期功能的过程。

软件工程导论

软件工程导论

软件工程导论软件工程导论是计算机科学与技术专业的一门基础课程,旨在介绍软件工程的基本概念、原理和方法,培养学生系统地了解和运用软件工程知识的能力。

本文将从软件工程的定义、发展历程、重要性以及学习软件工程导论的意义等方面进行论述。

一、软件工程的定义与发展历程软件工程是一门将系统化、可量化、规范化的方法应用于软件的开发、运行和维护的学科。

它涉及到一系列工程原则、方法和工具,旨在实现高质量、高效率和可靠性的软件系统。

软件工程的发展可以追溯到20世纪60年代,当时人们开始意识到软件开发和维护的问题,并提出了软件工程的概念。

二、软件工程的重要性1. 促进软件开发过程的规范化和标准化。

软件工程通过制定规范和标准,使开发过程更加规范化,提高开发效率和质量。

2. 提高软件系统的可维护性和可靠性。

软件工程注重系统设计和模块化,使得软件系统易于维护和扩展,同时保证系统的可靠性和稳定性。

3. 降低软件开发的成本和风险。

软件工程强调项目管理和风险管理,有效地控制开发进度和成本,并降低开发过程中的风险。

4. 提升团队协作能力和沟通效率。

软件工程强调团队合作和沟通,在项目开发过程中促进团队成员之间的合作,提高开发效率和质量。

三、学习软件工程导论的意义学习软件工程导论对计算机科学与技术专业的学生具有重要的意义。

1. 增强对软件工程的整体认识。

软件工程导论课程通过介绍软件工程的基本概念和原理,使学生了解软件工程的全貌,帮助他们建立起对软件工程的整体认识,为后续的学习和实践打下基础。

2. 掌握软件开发的基本方法和技术。

软件工程导论课程涉及到软件开发的基本方法和技术,如需求分析、系统设计、编码与测试等,学生通过学习这些内容,能够掌握软件开发的基本流程和技能。

3. 培养系统思维和工程意识。

软件工程导论课程强调系统思维和工程意识的培养,学生通过学习软件工程导论,能够培养出综合性思维和解决问题的能力,提高工程实践能力。

4. 增强团队协作和沟通能力。

软件工程各章名词解释

软件工程各章名词解释

名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。

张海藩《软件工程导论》(第6版)(名校考研真题 名词解释)【圣才出品】

张海藩《软件工程导论》(第6版)(名校考研真题 名词解释)【圣才出品】

四、名词解释1.概要设计[中国传媒大学2014研]答:概要就是回答“概括地说,系统应该如何实现”这个问题。

概要设计站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构。

2.问题分析图PAD[中国传媒大学2014研]答:问题分析图(PAD)是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将其翻译成程序代码比较容易。

它既可以用来表示程序逻辑,也可以用来描述数据结构,支持结构化程序设计(SP)方法,仅具有顺序、选择、循环三类基本成分。

3.UML[中国传媒大学2014研]答:UML又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

4.多态性[中国传媒大学2014研]答:多态性是指同一消息为不同的对象接受时,可产生完全不同的动作,利用多态性,用户可发送一个通用的消息,而将所有的实现细节都留给接受消息的对象自行决定。

另外,多态性也可以指在父类中定义的属性或者服务被子类集成后,可以具有不用的数据类型或者表现出不同的行为。

5.边界值分析法[中国传媒大学2014研]答:边界值分析是选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类内的典型值或任意值作为测试数据,它是对等价类划分方法的补充。

边界值分析法是一种重要的黑盒测试方法。

6.软件再工程[中国传媒大学2014研]答:软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性、可复用性。

它指的是对既存对象系统进行调查,并将其重构为新形式代码的开发过程,它的重要特点是能最大限度的重用既存系统的各种资源。

7.信息隐藏[中国传媒大学2013研]答:信息隐藏在信息安全保障体系的诸多方面发挥着重要作用,它指的是在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对不需要这些信息的其他模块来说,是不能访问的,也是不可见的。

软件工程导论

软件工程导论

软件工程导论软件工程是一门研究计算机系统中软件设计、开发、运行、维护和管理的科学。

它不仅涉及软件产品生命周期和软件过程本身,而且还需要研究软件开发建立技术计划、定义项目范围、设计软件、开发测试软件、发布软件以及维护软件的各项技术方面。

软件工程的主要目的是确保软件在可控范围内经济有效地实现客户需求。

软件工程的历史可以追溯到20世纪60年代。

当时,软件开发进行的慢,产品质量差,并且经常出现问题,如果不及早采取行动,软件将变得越来越费时费力。

因此,软件工程及其相关方法被提出,以改变软件开发的方式,提高软件质量。

软件工程技术具有可行性,可以减少软件的开发时间和生产成本,确保软件的可靠性和可扩展性,并使软件具有良好的维护性,延长其使用寿命。

软件工程以规范、详细、可重复和系统化的方式实现软件开发,并提供一系列文档来指导软件开发。

此外,软件工程还为软件开发过程中的活动和产品提供定量分析方法,以确保开发过程的高质量。

软件工程也提供了一系列管理技术,可帮助组织根据客户需求实施软件开发项目,并有效地预防和控制可能出现的问题。

软件工程技术的发展很快。

今天,软件工程已经涉及多个领域,包括项目管理、架构和设计、测试、集成、文档等。

因此,学习软件工程的最佳方式是系统学习其相关技术,例如软件开发过程、软件质量保证、软件项目管理、自动化测试和软件配置管理等。

为了帮助有兴趣学习软件工程的人,现在已经有许多软件工程课程和教科书可供参考。

其中最重要的一本书是《软件工程导论》,由IEEE推出。

它涵盖了软件工程最重要的内容,并从技术和管理两个方面探讨了软件工程项目的管理方法。

它比较了几种软件开发模型,并介绍了软件测试方法,以及如何使用自动化工具来跟踪软件质量。

此外,还讨论了多个软件工程管理技术,包括软件配置管理、软件工程方法和工具等。

总之,《软件工程导论》是一本优秀、详尽、有用的软件工程教科书,可作为软件工程的入门参考书。

它不仅可以帮助有兴趣学习软件工程的人们了解软件工程的基本原理,而且还可以为实际的项目中的技术和管理提供一些有用的指导。

软件工程导论知识点总结

软件工程导论知识点总结

软件工程导论知识点总结一、软件工程概述软件工程是将系统化、规范化、可度量化的方法应用于软件的开发、运行和维护的过程。

软件工程包括软件开发过程、软件工具和方法以及软件质量管理等方面。

二、软件生命周期模型1. 瀑布模型:依次完成需求分析、设计、编码、测试和维护等阶段。

2. 增量模型:将整个项目分为多个增量,逐步完成。

3. 螺旋模型:在瀑布模型基础上增加风险评估环节,不断迭代。

4. 原型模型:快速构建原型,反复修改完善。

5. 敏捷开发:注重快速响应变化,通过迭代交付高质量的软件。

三、需求分析需求分析是指对用户需求进行详细的调查和分析,并将其转换为可实现的系统规格说明。

主要包括功能性需求和非功能性需求两个方面。

四、设计1. 结构设计:确定系统各个组成部分之间的关系。

2. 数据设计:确定数据结构及其组织方式。

3. 接口设计:定义各个组成部分之间的接口。

4. 过程设计:定义系统中各个过程的执行方式。

五、编码编码是将设计好的系统规格说明转换为计算机可执行的程序代码,主要包括选择编程语言、编写代码、调试和测试等环节。

六、测试测试是对软件进行验证和确认,主要包括单元测试、集成测试、系统测试和验收测试等环节。

七、维护维护是指在软件交付后,对软件进行修改和更新以满足用户需求或修复缺陷。

维护包括预防性维护、适应性维护和完善性维护等方面。

八、软件质量管理软件质量管理是指通过各种手段确保软件产品满足用户需求,并具有可靠性、可用性、安全性等特点。

主要包括质量计划制定、质量保证控制和质量评估等环节。

九、常见开发模式1. 面向对象开发模式:采用面向对象的思想进行开发。

2. 组件化开发模式:将系统划分为多个组件进行开发。

3. 服务化开发模式:将系统划分为多个服务进行开发。

4. 微服务架构:将系统划分为多个微服务进行独立部署和运行。

十、常用工具和技术1. UML:统一建模语言,用于软件建模和设计。

2. IDE:集成开发环境,用于编码、调试和测试等环节。

大一软件工程导论知识点

大一软件工程导论知识点

大一软件工程导论知识点软件工程导论是大一软件工程专业的一门基础课程,旨在为学生介绍软件工程领域的基本知识和概念。

本文将介绍一些大一软件工程导论常见的知识点,帮助读者对该课程有一个初步的了解。

1. 软件工程的概念和定义软件工程是一门研究将系统化的、规范化的、可度量的方法应用于软件的开发、运行和维护的学科。

它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试等。

2. 软件生命周期软件生命周期是指软件从概念形成到废弃的整个过程。

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

了解软件生命周期的不同阶段对于开发高质量的软件非常重要。

3. 软件开发模型软件开发模型是指用于组织和管理软件开发的一种方式。

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

不同的模型适用于不同的项目需求和团队特点。

4. 需求工程需求工程是软件开发过程中最重要的一环,它涉及对用户需求的收集、分析、规范和验证等工作。

学习需求工程的方法和技巧对于准确理解用户需求,避免开发过程中的误解和问题至关重要。

5. 软件设计原则软件设计原则是指在进行软件设计时应遵循的一些基本原则和规范。

常见的软件设计原则包括单一职责原则、开闭原则、接口隔离原则等。

遵循这些原则有助于提高软件的可维护性和可扩展性。

6. 软件测试软件测试是保证软件质量的重要环节,它包括单元测试、集成测试、系统测试等不同级别的测试。

学习软件测试的方法和技巧可以帮助开发人员发现和修复软件中的缺陷。

7. 软件项目管理软件项目管理是指对软件开发项目进行规划、组织、协调和控制的一系列活动。

了解软件项目管理的基本概念和方法可以帮助开发团队更好地管理项目进度和资源。

8. 软件质量保证软件质量保证是指通过一系列的质量控制手段来确保软件达到预期的质量标准。

了解软件质量保证的方法和工具可以帮助开发团队提高软件的质量和可靠性。

9. 软件维护软件维护是指对已经发布的软件进行故障修复、功能增强等各种维护活动。

软件工程导论

软件工程导论

软件(ruǎn jiàn)危机:是指在计算机软件的开发和维护过程中所遇到的一些(yīxi ē)列严重问题。

典型(diǎnxíng)表现:1)对软件的成本(chéngběn)和进度估计不准确2)用户(yònghù)对“已完成的”软件系统不满意经常出现3)软件产品质量靠不住4)软件不可维护5)没有适当的文档资料6)软件成本所占比例逐年上升7)软件产品供不应求产生的原因:一方面与软件本身的特点有关,另一封面也和软件开发与维护的方法不正确有关。

解决方法:为了解决软件危机,既有技术措施(方法和工具),有有必要的组织管理措施。

软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

利用软件工程来解决软件危机。

第二题:软件工程:是指导计算机软件开发和维护的一门工程学科。

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

软件生命周期:软件定义、软件开发和运行维护 3个阶段构成。

每个阶段的任务:1)软件定义时期的任务:问题定义、可行性研究和需求分析。

2)开发时期的任务:总体设计、详细设计、编码和单元测试、综合测试。

3)维护时期的任务:主要任务是使软件持久的满足用户的需要。

具体地说是使用过程中发现错误能得以改正;环境变化时修改以适应新环境;有新需求时及时改进满足用户需求。

第三(dì sān)题需求分析(fēnxī)的目的:为了开发出真正满足用户需求的软件产品,需要(xūyào)对用户做需求分析,能够深入理解需求。

注意事项:1、访谈前需要准备好具体问题,例如询问(xúnwèn)公司的商品种类。

2、正式(zhèngshì)访谈时需要提出具体的问题3、非正式时准备开放性的问题,以鼓励被访问人员说错自己的想法。

软件工程导论简答题整理版

软件工程导论简答题整理版

软件工程导论简答题整理版1. 什么是软件工程?软件工程是指通过系统性的、可量化的方法,对软件的开发、运行和维护进行管理,以提高软件质量和效率的学科。

2. 为什么需要软件工程?软件工程的出现是为了解决传统的软件开发方式中存在的问题,例如项目延期、质量低下和开发成本高等。

通过软件工程的方法和原则,可以规范开发过程,提高开发效率和质量。

3. 软件生命周期是什么?软件生命周期是指从软件开发开始到废弃的整个过程。

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

4. 什么是软件需求?软件需求是对软件系统功能、性能和其他特性的描述和规定。

它包括用户需求、系统需求和软件需求规格说明等。

5. 如何进行软件需求分析?软件需求分析是指对软件需求进行细化和明确,以便于后续的设计和开发工作。

可以通过访谈用户、观察业务流程和收集用户反馈等方式进行需求分析。

6. 什么是软件设计?软件设计是指根据软件需求,定义软件系统的结构、组件和接口等,以满足需求的功能和质量要求。

7. 软件设计有哪些原则?软件设计应遵循高内聚、低耦合、模块化、可重用、可维护等原则。

同时,还需要考虑软件的可靠性、可扩展性和性能等因素。

8. 软件测试的目的是什么?软件测试的目的是评估软件系统的质量和功能是否符合需求规格。

通过测试可以发现软件中的错误和缺陷,并促使其修复,以提高系统的稳定性和可靠性。

9. 软件测试方法有哪些?常见的软件测试方法包括黑盒测试、白盒测试和灰盒测试。

黑盒测试关注输入和输出,不关心内部实现;白盒测试关注程序内部结构和代码逻辑;灰盒测试结合了黑盒测试和白盒测试的思想。

10. 什么是软件配置管理?软件配置管理是指对软件配置项进行控制和管理,保证软件系统的可控性和可维护性。

它包括配置项的标识、变更控制、版本管理和发布管理等。

11. 什么是软件项目管理?软件项目管理是指对软件项目进行计划、组织、指导和控制,以达到项目的目标和要求。

它包括进度管理、质量管理、风险管理和团队管理等方面。

软件工程导论西南交大机械考点

软件工程导论西南交大机械考点

1、软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。

软件=程序+数据+文档,程序=算法+数据结构.2、软件工程是:(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,也就是把工程应用于软件;(2) 上述方法的研究。

软件工程三要素:过程、方法和工具。

3、软件生命周期是指软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。

软件定义包括问题定义、可行性研究、和需求分析;软件开发包括总体设计、详细设计、编码和单元测试、综合测试。

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

主要表现为:硬件发展超过软件,硬件潜能没有充分发挥;软件产业的发展长期滞后,与硬件发展不协调;软件开发成本过高;软件质量得不到保证;软件开发效率低;难以控制开发进度,工作量估计困难。

产生的主要原因是:软件的规模加大、复杂性提高、性能增强;软件是逻辑产品, 尚未完全认识其本质和特点;缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法。

5、软件工程目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性、并满足用户需求的软件产品。

6、软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

软件需求分析阶段的任务,通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。

需求分析三阶段:问题分析,需求描述,需求评审验证软件需求:1、一致性:所有需求必须是一致的,任何一条需求都不能和其他需求相互矛盾;2、完整性:需求必须是完整的,软件需求规格说明书应该包含用户对软件产品的每一项要求;3、现实性:指定的需求应该是用现实有的硬件技术和软件技术可以实现的;4、有效性:需求必须是有效的,确定能解决用户所面临的问题,可以达到开发该软件的目的。

《软件工程导论》第六版期末复习总结

《软件工程导论》第六版期末复习总结

软件工程一、名词解释与问答1、SA——结构化分析方法2、画数据流图应注意什么事项?(1)数据流名称只能是名词或是名词短语;(2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来源与加工的结果;(3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类;父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致;(4)注意数据流图的易理解性;3、什么是软件生存周期?它有那几个活动?一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成;圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性. 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.简述软件测试的任务、目的与类型。

软件工程导论

软件工程导论

软件工程导论软件工程是个广泛而重要的领域,它涉及到软件系统的开发、设计、测试和维护等各个阶段和方面。

在本篇文章中,我们将介绍软件工程导论的核心概念和基本原则,并探讨其在现代科技社会中的重要性及影响。

一、软件工程的定义和历史软件工程是一门工程学科,旨在通过系统化的方法和技术,以及使用规范化的过程和工具,开发高质量的软件系统。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试、交付和维护。

软件工程导论作为软件工程学科的起点,主要介绍了软件工程的基本概念和原理。

软件工程学科的起源可以追溯到20世纪60年代末,当时软件的开发过程尚未系统化,导致了软件项目的失败率极高。

为了解决这个问题,计算机科学家们开始思考如何管理和组织软件开发过程,逐渐形成了软件工程的概念。

随着时间的推移,软件工程的理论和实践不断发展,逐渐成为一门独立的学科,并在现代科技社会中发挥着重要的作用。

二、软件工程导论的核心概念软件工程导论主要涵盖以下核心概念:1. 软件生命周期:软件生命周期是指软件从概念到退役的整个过程。

它包括需求分析、设计、编码、测试、部署和维护等阶段,每个阶段都有特定的工作和交付成果。

软件生命周期的有效管理是软件工程的重要目标。

2. 软件需求工程:软件需求工程是软件工程的重要组成部分,旨在确立软件系统的功能和非功能需求。

通过系统化的需求分析和规范化的需求工程方法,可以提高软件开发的质量和效率。

3. 软件设计原理:软件设计原理涉及到软件架构、模块化、面向对象设计等方面。

合理的软件设计可以提高软件系统的可维护性、可测试性和可扩展性。

4. 软件测试与质量保证:软件测试是软件工程中至关重要的环节,旨在发现和修复软件缺陷。

通过有效的测试方法和工具,可以提高软件系统的质量和可靠性。

5. 软件项目管理:软件项目管理涉及到资源分配、进度控制、风险管理等方面。

通过科学的项目管理方法和技术,可以实现软件开发过程的有效组织和管理。

三、软件工程导论的重要性和影响软件工程导论作为软件工程学科的基础课程,对学生和从业人员具有重要意义。

软件工程导论名词解释

软件工程导论名词解释

软件工程导论名词解释软件工程(Software Engineering)是一门致力于以系统性、规范化的方法来开发和维护软件的学科。

软件工程结合了计算机科学与工程学的原理,通过使用各种技术和工具,旨在有效地管理软件开发过程,提高软件质量,确保项目按时完成。

1. 软件开发生命周期(Software Development Life Cycle)软件开发生命周期是指从软件需求分析到软件运行终止的整个过程。

该过程可以划分为需求分析、设计、编码、测试和维护等阶段。

每个阶段具有特定的任务和目标,旨在确保软件在开发和运行过程中能够达到预期质量和功能。

2. 需求工程(Requirements Engineering)需求工程是软件工程中的一个关键过程,主要目标是识别、分析和确定用户对软件系统的需求。

通过与用户沟通、收集和整理需求信息,需求工程师可以明确软件系统的功能和性能要求,为后续的设计和开发工作提供基础。

3. 设计模式(Design Pattern)设计模式是在软件设计过程中经常遇到的典型问题的解决方案。

它们是经过多次实践验证的,可以提高软件设计的可重用性和可维护性。

常见的设计模式包括单例模式、工厂模式、观察者模式等。

开发人员可以根据实际情况选择合适的设计模式,以提高软件系统的设计质量。

4. 质量保证(Quality Assurance)质量保证是软件工程中的一个重要概念,旨在确保软件系统达到预期的质量标准。

它包括对软件开发过程的规范、评估和监控,以及对软件系统的测试、调试和验证。

质量保证的主要目标是防止和解决软件开发过程中的问题,确保软件系统的正确性和可靠性。

5. 配置管理(Configuration Management)配置管理是对软件系统中所有组成部分进行有效管理和控制的过程。

它包括对软件配置项的版本控制、变更管理和发布管理等。

通过配置管理,可以确保在软件开发和维护过程中,能够追踪和管理软件系统的各个版本和变更,保证软件的可追溯性和一致性。

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

名词解释1.数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。

2.数据流图——他以图形的方式反映系统的数据流程3.白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。

有两种测试法既逻辑覆盖测试法和路径测试法4.黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。

有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法5.完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称为完善性维护。

因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大6.软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率7.软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称8.软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。

9.α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录错误和使用中出现的问题。

10.β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。

由用户负责记下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。

11.聚集关系——表示类或对象之间的整体与部分的关系12.泛化关系——表示类或对象之间的一般与特殊的关系13.内聚——一个模块内部各个元素彼此结合的紧密程度的度量。

14.耦合——一一个软件结构内不同模块之间互连程度的度量。

名词解释:一章:软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

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

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

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

软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理;(2) 坚持进行阶段评审;(3) 实行严格的产品控制;(4) 采用现代程序设计技术;(5) 结果可以清楚地审查;(6) 开发小组的人员应该少而精;(7) 承认不断改进软件工程实践的必要性.软件工程方法学3要素:方法、工具、过程软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件生命周期的概念:有软件定义、软件开发和软件维护3个小时期组成软件生命周期8个阶段的主要任务:(1)问题定义: “需要解决的问题是什么?”(2) 可行性研究: “寻求可行的解决方案?” (3) 需求分析: “解决这些问题需要系统做什么?”(4) 总体设计(概要设计): “应该怎样实现目标系统?”(5) 详细设计(模块设计): “如何具体地实现这个系统?” (6) 编码和单元测试:“写代码,测试每个模块!” (7) 综合测试: “通过各类测试和调试来完善软件” (8) 软件维护:“通过各种必须的维护活动使系统持久满足用户的需要!”二章:可行性研究的五个方案:技术可行性,经济可行性,操作可行性,法律可行性,社会效益可行性研究过程:1.复查系统规模与目标、2.研究目前的系统、3. 导出新系统的高层逻辑模型、4. 进一步定义问题、5. 导出和评价供选择的解法、6. 推荐行动方针、7. 草拟开发计划、8.书写文档提交审查系统流程图:用来描述物理系统的工具。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。

即:系统流程图≠程序流程图。

数据流图:用来描述逻辑系统的工具。

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。

三章:需求分析在软件生命周期中位置:最后一个阶段;任务:完整、准确、清晰、具体地确定系统所要完成的工作。

软件系统的综合要求:功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求获取需求的方法:访谈、面向数据流自顶向下求精、简易的应用规格说明技术、快速建立软件原型3种分析模型:数据模型(ER图),功能模型(DFD),行为模型(状态转换图)需求分析阶段的主要图形工具:层次方框图(描绘数据的层次结构);Warnier图(描绘数据的层次结构);IPO图(IPO图是输入、处理、输出图的简称)五章:总体设计的两个阶段:(1)系统设计阶段(2)结构设计阶段总体设计的设计原理:模块化,抽象,逐步求精,信息隐藏和局部化,*模块独立(耦合,内聚)耦合:是对一个软件结构内不同模块之间互连程度的度量;包括:(1)数据耦合——如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据(2)控制耦合——如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现)(3)特征耦合——整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素(4)公共环境耦合——两个或多个模块通过一个公共数据环境相互作用(5)内容耦合——如果出现下列情况之一,两个模块间就发生了内容耦合低——高3.内聚:标志一个模块内各个元素彼此结合的紧密程度;包括:(1)偶然内聚——如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的。

(2)逻辑内聚——如果一个模块完成的任务在逻辑上属于相同或相似的一类。

(3)时间内聚——如果一个模块包含的任务必须在同一段时间内执行。

(4)过程内聚——如果一个模块内的处理元素是相关的,而且必须以特定次序执行。

(5)通信内聚——如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据。

(6)顺序内聚——如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据)。

(7)功能内聚——如果模块内所有处理元素属于一个整体,完成一个单一的功能。

低——中——高7条启发规则:改进软件结构,提高模块独立性,模块规模适中,*深度、宽度、扇出和扇入合理(深度表示软件结构中控制的层数;宽度是软件结构内同一个层次上的模块总数的最大值;扇出:调用其它的模块数(3-4);扇入:被上一级模块调用数(越多越好)),*模块的作用域应在控制域范围内(模块的作用域定义为受该模块内一个判定影响的所有模块的集合。

模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。

),尽量降低模块接口的复杂程度,设计单入口、单出口的模块,模块功能可以预测六章:过程设计的工具:程序流程图(程序框图),盒图(N-S 图),PAD 图(问题分析图),*判定表,判定树,过程设计语言面向数据结构的设计方法:(1)Jackson 图(程序中数据元素彼此间的逻辑关系只有三类:顺序结构,选择结构,重复结构)(2) *改进的Jackson 图(3)* Jackson 方法程序的处理过程:(1)确定输入和输出数据结构;(2)找有对应关系的输入输出数据单元;(3)从数据结构图导出程序结构图 (均用Jackson 图表示);(4)列出所有操作和条件,并且把它们分配到程序结构图的适当位置;(5)用伪码表示程序。

七章:软件测试的定义或目标:测试是为了证明程序有错,而不是证明程序无错误;一个好的测试用例在于它能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。

测试步骤:模块测试,子系统测试,系统测试,验收测试,平行运行逻辑覆盖:(1)语句覆盖 (2)判定覆盖 (3)条件覆盖(4) 判定-条件覆盖 (5)条件组合覆盖 (6) 路径覆盖(7)点覆盖(8) 边覆盖黑盒测试步骤:等价划分,边界值分析,错误推测,因果图法白盒测试(结构测试)技术:分析程序内部—每个分支通路。

过程:按照程序内部的逻辑测试程序,检测程序中主要执行通路是否按预定要求正确工作。

软件可靠性的定义:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。

软件可用性的定义:程序在给定的时间点,按照规格说明书的规定,成功运行的概率。

八章:软件维护的定义:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

软件维护的分类:改正性维护(17%~21%),适应性维护(17%~21%),完善性维护(50%~66%),预防性维护(4%~5%)十三章:项目管理的概念:就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。

软件工作量的估算:静态单变量模型(E=A+B ×(ev)C ),动态多变量模型,COCOMO2模型 制定项目的进度工具:Gantt (甘特)图,工程网络估算软件规模:(1)代码行技术:L = 其中L 为估计的程序规模,a 为程序的最小规模、b 为程序的最大规模、m 为最可能的规模。

优点:代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。

缺点:源程序仅是软件配置的一个成分,用他的规模代表整个软件的规模似乎不太合理,用不同语言实现同一个软件所需要的代码行数并不相同,这种方法不适用于非过程语言。

三、名词解释题每小题3分,共15分。

31.软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

32.数据字典(DD ):数据字典是用来定义数据流图中的各个成分的具体含义的。

它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

33.内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

34.JSP 方法:JSP 方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。

35.多态性:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。

或(不64b m a ++同的对象,收到同一消息可以产生不同的结果。

)1.程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。

2.容错技术:对那些无法避开的差错,使其影响减少至最小的技术。

也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。

相关文档
最新文档