软件工程导论名词解释

合集下载

软件工程导论资料

软件工程导论资料

•软件工程是:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等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. 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.容错技术:对那些无法避开的差错,使其影响减少至最小的技术。

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

相关文档
最新文档