软件工程导论知识点
软件工程导论知识总结

软件工程导论第一章:软件工程学概论1. 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2. 概括的说,软件危机包括两方面问题:如何开发软件已满足日益增长的需求;如何维护数量不断膨胀的已有软件。
3. 软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速不及深入的趋势。
4. 产生软件危机的原因:在软件开发和维护的过程中存在这么多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
5. 在实践过称中或多或少的采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
6. 软件不同与硬件,他是计算机系统中的逻辑部件而不是物理部件。
7. 软件不同于一般程序,他的一个显著特点是估摸庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
8. 软件本身独有的特点确实给开发和维护带来一些客观困难。
9. 对用户要求没有完整的认识就匆忙着手编写程序是软件开发功臣失败的主要原因之一。
10. 一个软件从定义、开发、使用和维护,直到最终被遗弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
11. 软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
12. 软件工程是指导计算机软件开发和维护的一门工程学科。
13. 软件工程是:把系统的、规范的、可度量的途径应用与软件开发、运行和维护过程,也就是吧工程应用与软件;研究前面所提到的途径。
14. 软件工程的本质特性:软件工程关注与大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐的合作是开发软件的关键;软件必须有效地支持他的用户;在软件工程领域中通常由具有一种文化背景的人体另一种具有文化背景的人创造产品。
软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程导论知识点

❤软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
❤软件危机的主要典型表现:1.对软件开发和成本和进度的估计常常很不准确 2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的 5.软件通常没有适当的文档资料 6.软件成本在计算机系统总成本中所占的比例逐年上升7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势❤软件危机的原因:软件规模越来越大,结构越来越复杂,软件开发的管理困难,开发费用不断增加,开发技术落后,生产方式落后,开发工具落后生产率提高慢❤软件工程是指导计算机软件开发和维护的一门工程学科❤软件工程的本质特性:1.软件工程关注于大型程序的构造 2.软件工程的中心课题是控制复杂性3.软件经常变化4.开发软件的效率非常重要 5.和谐的合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品❤软件工程的基本原理:1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代的程序设计技术5.结果应能清楚的审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性❤软件工程方法学包含三个要素:方法,工具和过程其中方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题,工具是为运用方法而提供的自动的或半自动的软件工程支撑环境,过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤❤使用的最广泛的软件工程方法学:①传统方法学(也称为生命周期方法学或结构化范型)②面向对象方法学❤瀑布模型(生命周期模型)特点:1.阶段间具有顺序性和依赖性2.推迟实现的观点3.质量保证的观点❤软件生命周期:1.问题定义(要解决的问题是什么)2.可行性研究(对于上一个阶段所确定的问题有行得通的解决办法吗)3.需求分析(为了解这个问题,目标系统必须做什么)4.总体设计(概括地说,应该怎样实现目标系统)5.详细设计(应该怎样具体地实现这个系统呢)6.编码和单元测试7.综合测试8.软件维护(改正性维护,适应性维护,完善性维护,预防性维护)❤快速原型模型,增量模型(渐增模型),螺旋模型喷泉模型❤可行性研究的目的,就是用最小的待见在尽可能短的时间内确定问题是否能够解决从三个方面研究每种解法的可行性 1.技术可行性(使用现有的技术能实现这个系统吗)2.经济可行性(这个系统的经济效益能超过它的开发成本吗)3.操作可行性(系统的操作方式在这个用户组织内行得通吗)❤可行性研究过程的步骤:1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型 4.进一步定义问题 5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查❤数据字典是关于数据的信息和集合,也就是对数据流图中包含的所有元素的定义的集合❤数据流图和数据字典共同构成系统的逻辑模型❤数据字典由下列四类元素的定义组成 1.数据流2.数据流分量(即数据元素)3.数据存储4.处理❤定义数据的方法:1.顺序2.选择3.重复4.可选❤成本估计三种估算技术:1.代码行技术2.任务分解技术3.自动估计成本技术❤成本/效益分析的方法:1.货币的时间价值2.投资回收期3.纯收入4.投资回收率❤软件需求正确性的验证①一致性②完整性③现实性④有效性❤对系统的综合需求:1.功能需求2.性能需求3.可靠性和可用性需求4.出错处理需求5.接口需求6.约束7.逆向需求8.将来可能提出的要求❤与用户沟通获取需求的方法:访谈,面向数据流自顶向下求精,简易的应用规格说明书,快速建立软件原型❤分析建模:数据模型——E-R图,功能模型——数据流图,行为模型——状态转换图从哪些方面验证软件需求的正确性:1.一致性2.完整性3.现实性4.有效性❤验证软件需求的方法:1.验证需求的一致性2.验证需求的现实性3.验证需求的完整性和有效性❤总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构❤总体设计过程步骤:1.设想供选择的方案2.选取合理的方案3.推荐最佳方案4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档(①系统说明②用户手册③测试计划④详细的实现计划⑤数据库设计结果)9.审查和复审❤模块对立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果❤开发具有独立性功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立❤耦合(低→高)是对一个软件结构内不同模块之间互连程度的度量。
软件工程导论知识点总结

软件工程导论知识点总结软件工程导论知识点总结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 编程与测试编程是将设计转化为可执行代码的过程,而测试是验证代码是否达到预期功能的过程。
软件工程导论复习知识点

软件工程导论复习知识点一、软件:软件定义:软件=程序+文档+数据软件特点:1、具有抽象性2、没有明显的制造过程3、软件的维护比硬件的维护要复杂得多4、对计算机系统有着不同程度的依赖性5、尚未完全摆脱手工艺的开发方式6、软件本身是复杂的7、软件成本相当昂贵8、相当多的软件工作涉及到社会因素软件的发展:程序设计、程序系统、软件工程软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
软件危机的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机表现:1.开发成本难以控制,进度不可预计;2.软件系统的质量和可靠性很差,难以满意;3.软件文档相当缺乏,软件系统不可维护;4.软件开发生产率很低,软件产品供不应求。
5.软件产品成本十分昂贵。
管理科学中的方法和原理进行软件生产的管理。
用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程三要素:方法、工具和过程。
软件方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
包括:传统方法学面向对象方法学需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件复用。
基本内容:包括理论、结构、方法、工具、环境与规范等目标:以较少的投资获得易维护、易理解、可靠和高效率的软件产品。
原则:即分解、抽象和信息隐蔽、一致性和确定性原理:工程化和系统化。
软件过程:软件过程是把输入转化为输出的一组彼此相关的资源和活动从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求转化为输出(软件产品。
软件工程过程包含四种基本的过程活动:Plan 软件规格说明:规定软件的功能及其运行的限制Do 软件开发:产生满足规格说明的软件Check 软件确认:确认软件能够完成客户提出的要求Action 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进软件工程的基本原理:强调使用生存周期方法学、强调使用结构分析与结构设计任务软件工程的目标:生产具有正确性、可用性以及开销合宜的产品1、付出较低的开发成本2、达到要求的软件功能3、取得较好的软件性能4、开发的软件易于移植5、需要较低的维护费用6、能按时完成开发7、及时交付使用三、软件生命周期:生命周期基本流程:问题定义→可行性研究→需求分析→总体设计(概要设计→详细设计→编码和单元测试→综合测试→软件维护。
软件工程导论 复习资料

软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。
本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。
1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。
软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。
了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。
1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。
通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。
2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。
了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。
2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。
在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。
2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。
编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。
3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。
掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。
软件工程导论知识点

软件生存期的阶段划分:(1)可行性研究与计划;(2)需求分析;(3)总体设计;(4)详细设计(5)实现(6)集成测试(7)确认测试(8)使用和维护软件=程序+文档+数据产生软件危机的原因:软件本身特点(客观):逻辑部件:管理和控制软件开发过程相当困难,较难维护;规模庞大:代码长度不正比程序复杂程度;软件开发与维护的方法不正确(主观):没有认识到软件的生命周期;软件开发不同阶段进行修改需要付出的代价差别很大;软件产品=程序+每个阶段的文档资料。
消除软件危机的途径:对计算机软件有一个正确的认识(软件≠程序);技术措施:推广使用在实践中总结出来的开发软件的成功技术和方法;开发和使用更好的软件工具等;管理措施:必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
软件发展的4大趋势:流水线生产、网络化、服务化与全球化。
软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
”软件工程具有下述的本质特性:1.软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人。
软件工程的基本原理;1用分阶段的生命周期计划严格管理:2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应少而精7承认不断改进软件工程实践的必要性软件工程三个要素:方法、工具、过程软件工程方法学,分别是传统方法学和面向对象方法学。
传统方法学:把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务面向对象方法:是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法面向对象方法学具有下述4个要点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
软件工程导论 复习资料

名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3.软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。
或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。
6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
开发软件时,对于提高软件开发人员工作效率至关重要的是开发程序人员数量。
软件工程中描述软件生存周期的瀑布类型一般包括计划、需求分析、设计、编码、测试、维护等几个阶段。
其中,设计阶段在管理上可以依次分成概要设计和详细设计两个步骤。
在结构化的分析方法中,用以表达系统内数据的运行情况的工具有数据流图。
在结构化的分析方法中,用实体关系图表达系统中的对象及其发展,在实体关系图中,表达对象和实体关系之间的关联有三种类型:一对一联系,一对多联系,多对多联系。
软件需求分析的任务,不应包括结构化程序设计,进行需求分析可使用多种工具,但判定表是不适用的,在需求分析中,分析员要从用户那里解决的最重要的问题是要让软件做什么。
规格说明书的内容不应当包括对算法详细功能性描述,该文档在开发中具有重要的作用,但其作用不应包括软件可行性分析的依据。
原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统,它从用户界面的开发入手,首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见。
一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。
一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚性是偶然内聚的。
将几个逻辑上相似的成份,放在同一个模块中,通过模块入口的一个判断决定执行哪一个功能,该模块的内聚性是逻辑内聚的。
模块中所有成份引用共同的数据,该模块的内聚性是通信内聚的。
模块内的某成份的输出是另一些成份的输入,该模块的内聚性是顺序内聚的。
模块中所有成份结合起来完成一项任务,该模块的内聚是功能内聚。
模块化程序设计:1.便于由多人分工编制大型程序。
2.软件功能易于扩充。
3.易于理解,也便与排错。
4.只要模块之间的接口关系不变,模块内部实现细节的修改将不会影响别的模块。
5.模块间的单向调用关系叫做模块的层次结构。
程序设计风格指导原则:1.嵌套的重数应加以限制。
2.尽量少使用全局变量。
3.使用有意义的变量名。
4.把常见的局部优化工作留给编译程序去做。
5.程序的格式应有助于读者理解程序。
6.尽量少使用goto语句。
测试过程需要三类输入:软件配置,测试配置,测试工具。
测试的费用已超过软件开发费用的30%以上,高产的测试是指用少量的测试用例运行程序发现被测试程序尽可能多的错误,单元测试是在实现阶段完成的,集成测试的计划是在概要设计阶段制定的,确认测试的计划是在需求分析阶段制定的。
软件测试的目的是发现软件的错误,为了提高测试效率,应该选择发现错误的可能性大的数据作为测试数据。
使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和制定的附带标准。
与设计测试无关的文档是项目开发计划。
软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的结果。
软件调试的目的是找出错误所在,并改正之。
结构化设计是一种应用最广泛的系统设计方法,是以数据流图为基础,自顶向下,求精和模块化的过程。
概要设计的结构是提供一份模块说明书。
需求分析是由分析员了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出软件规格说明书。
注释是提高程序可读性的有效手段,好的程序注释占到程序总量的1/3.变换型和事务型是程序结构的标准形式。
从某处获得数据,再对这些数据做处理,然后将结果送出是属于变换型。
PAD图是一种详细设计工具。
排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的95%。
分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的总貌。
数据流图中,当数据流向或流自文件时,数据流不必命名,有文件名就足够了。
分析员是用户和软件人员的中间人。
在软件开发中,有利于发挥集体智慧的一种做法是设计评审。
在开发软件时,程序开发环境可用来提高程序猿的工作效率。
软件测试中设计测试实例主要由输入数据和预期输出结果两部分组成。
结构化程序设计主要强调程序的可读性。
开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作软件危机。
成功的测试是指发现程序的错误。
系统开发的需求分析阶段的重要工作之一是数据定义。
文档是软件开发人员、维护人员、用户以及计算机之间的桥梁,软件开发人员在各个阶段以文档作为前段工作成功的体现和后段工作的基础。
单独测试一个模块时,有时需要一个驱动程序驱动被测试的模块,有时还要有一个或几个桩模块模拟由被测试模块调用的模块。
在结构化程序设计思想提出以前,在程序设计中曾强调程序的效率。
现在,与程序的效率相比,人们更重视程序的可理解性。
软件测试中,白盒测试方法是通过分析程序的内部逻辑来设计测试实例的方法,除了测试程序外,还适用于对软件详细设计阶段的软件文档进行测试。
黑盒测试方法是根据程序的功能来设计测试实例的方法,除了测试程序外,它适用于需求分析阶段的软件文档进行测试。
在软件生命周期中,维护阶段所需工作量最大,约占70%。
结构化分析方法产生的系统说明书由一套分层数据流图,一本数据字典和一组小说明及补充材料组成。
软件的可维护性一般由两次故障平均间隔时间和故障平均恢复时间来度量。
采用高级语言编写程序,可提高程序的可移植性。
仅根据规格说明书描述的程序功能来实现测试实例的方法成为黑箱法。
测试是以发现错误为目的的,而排错(调试)是以定位,分析和改正错误为目的的。
请按顺序写出软件生命期的几个阶段:需求分析,概要设计,详细设计,编码,测试,维护。
软件发展过程中,第一阶段(50年代)称为“程序设计原始时期”,这时既没有操作系统也没有高级语言,程序员只能用汇编语言编写程序。
第二阶段(50年代末——60年代末)称为“基本软件期”,出现了操作系统并渐普及,随之高级语言编译技术也有较大发展。
第三阶段(60年代——70年代中)称为“程序设计方法的时代”。
与硬件费用下降相反,软件开发费用急剧上升。
人们提出了结构化程序设计和模块化程序设计等程序设计方法,设法降低软件开发的费用。
第四阶段(70年代中至今)称为“软件工程时期”,软件开发技术不再仅仅是程序设计技术,而是同软件开发的各阶段(需求分析,设计,编码,测试,使用和维护)及整体和管理有关。
软件危机出现于60年代末,为了解决软件危机,人们提出了用工程学的原理来设计软件,这就是软件工程的诞生。
瀑布模型把软件生存周期划分为软件定义、软件开发和运行及维护三个阶段,而每一个阶段又可细分为若干更小的阶段。
软件的概要设计又称为总体设计,其主要任务是建立软件系统的总体结构。
结构化分析SA是软件开发需求分析阶段所使用的方法,PAD图不是SA所使用的工具。
结构化分析方法以数据流图、数据字典和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是功能内聚。
Jackson设计方法由英国的M.Jackson提出的,它是一种面向数据结构的设计方法。
结构化设计思想的核心是要求程序只由顺序、循环和分支三种结构组成。
源程序的版面文档要求应有变量说明、适当注释和统一书写格式。
在软件工程中,当前用于保证软件质量的主要技术手段还是测试。
在软件工程中,高质量的文档标准是完整性、一致性和无二义性。
在软件研究过程中,CASE是指计算机辅助软件工程。
软件(结构)设计阶段(概要设计)的文档是模块结构图和说明书。
软件的维护是指对软件的改进、适应和完善。
逆向工程在软件工程中主要用于分析阶段。
软件工程中,只根据程序的功能说明而不关系程序内部的逻辑结构的测试方法,称为黑盒法测试。
在软件的设计阶段应提供的文档是概要设计规格说明书和详细设计规格说明书。
程序流程图、N—S图和PAD图是设计阶段的详细设计使用的算法表达工具。
软件的可维护性是指软件的可理解程度,程序修改的难易程度。
月收入≤800元者免税,现用输入数800元和801元测试程序,则采用的是边缘值分析方法。
采用黑盒法测试程序是根据程序的功能说明。
数据流图的小说明中描述的最基本部分是加工逻辑。
系统的健壮性是指在有干扰或输入数据不合理等意外情况下,系统仍能进行适当地工作。
软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是用较少的投资获得高质量的软件。
不适于作为数据流图处理(加工)框名称的是工资支票数据。
某模块的功能是打印录取通知书或不录取通知书,调用模块可通过此模块传递布尔标志信息决定本次调用哪种通知书的打印,这种模块之间的耦合称为控制耦合。
适应性维护的含义是为使软件在改变乐得环境下仍能使用所进行的维护。
采用白盒法测试模块(程序),应根据内部逻辑结构。
软件的质量标准中,某些因素是不可兼得的。
程序编写(实现)阶段完成的文档有用户手册、操作手册。
软件总体结构的内容应在概要设计规格说明书文档中阐明。
使用结构化分析方法时,采用的基本手段是分解和抽象。
决定软件可维护性的主要因素可概括为可测试性、可理解性、可修改性。
要减少两个模块之间的耦合,则必须模块间传递的参数要少且不传递开关型参数以及两模块不引用同样的全局变量。
软件开发中系统分析阶段产生的文档是系统说明书。
初始化模块和结束模块从块内联系看,被称为时间内聚模块。
结构化设计方法采用变换分析和事物分析技术实现从数据流图导出初始化结构图。
在软件测试中,确认(验收)测试主要用于发现需求分析阶段的错误。
结构化系统分析主要是通过处理功能分解进行分析的。
结构化设计方法是面向数据流的设计方法。
在维护请求且进行的维护过程中,应先确定维护类型,然后对维护要求进行评估并分别处理。
划分软件生存周期的阶段时应遵循的基本原则是各阶段的任务尽可能相对独立。
OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。
这种协同在模型中是以表明对象通信方式的一组消息连接来表示的。
用黑盒法设计测试用例时采用的方法包括因果图法。
软件维护过程中,修改代码或数据后未作测试将会引起维护副作用。
可视化不属于面向对象程序设计的特性。
一般来说,在管理软件中,软件生存周期各个阶段的工作量以维护阶段所占的比例最大。
系统开发人员使用系统流程图或其他工具描述系统,估计每种方案的成本和效益的工作是在总体设计阶段进行的。
设一模块内部的处理动作为:成分A的输出是成分B的输入,则该模块的聚合性称为顺序内聚。
某个模块的作用域是指收该模块内的判定所影响的所有模块。
如果按用户要求增加新功能或修改已有的功能而进行的维护工作,称为完善性维护。
软件维护阶段是软件生存周期中持续时间最长的阶段,它从软件交付使用时算起。
软件质量因素中,正确性是指软件产品能准确执行需求规格说明中所规定的任务。