河南大学软件工程课程期末重点
本科软件工程期末考试各章复习要点整理

软件工程期末考试各章复习要点整理第一章软件工程概论本章以常见于简答题、选择题、填空题和判断题,主要内容包括下面几点:•什么是软件•软件的性质•什么是工程化•软件工程研究的内容•软件危机的表现题型举例:例1. 什么是软件,软件的本质是什么?或软件性质、软硬件最大区别(简答、填空或判断)答:是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。
软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。
软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。
例2. 什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里?(记住关键字)答:将成熟工程领域的方法应用于软件开发。
工程化的方法包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制例3. 简答题:简述软件工程学科研究的内容。
答:软件工程的知识体系包括如下内容过程:软件开发的步骤方法:软件开发各步骤所用到的技术管理:控制软件开发按照过程和方法顺利完成的技术和措施工具:辅助人们贯彻过程和方法,并实施管理相关例题:什么是软件危机?危机的主要表现是什么?(只记表现,前3点)答:软件危机就是软件在开发过程中存在的一系列严重问题的总称。
危机的主要表现:(1)软件的复杂性不断提高,对软件开发的成本和进度难于估计(2)软件质量不高,潜在差错的危害。
(3)缺乏完整、正确的文档,维护极困难,难于移植以至于不得不重复开发类似的软件。
(4)软件成本在计算机系统中总成本所占的比例逐年增高。
(5)软件生产率的提高远跟不上需求的增长。
第二章软件开发过程本章的主要内容有以下几点:•软件过程模型•传统过程模型(瀑布模型、螺旋模型、增量模型、原型模型)•统一过程模型(RUP)•敏捷过程模型(极限编程)•了解统一过程模型RUP的核心工作流例如RUP是一种软件开发方法(错误)RUP是软件开发过程模型。
软件工程期末考试主要知识点电子版

4.七条基本原理:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。
10、RUP是Rational软件公司进过多年的商业化经验的六条最有效的软件按开发经验:迭代式开发、管理需求、使用基本构件的体系结构、可视化建模、验证软件质量、控制软件变更11、.微软过程生命周期的阶段以及各阶段的里程碑:(1)规划阶段(项目目标得到认可);(2)设计阶段(完成产品设计);(3)开发阶段(完成开发工作);(4)稳定阶段(准备好可发布版本);(5)发布阶段(完成产品发布)13、可行性研究的目的是用最小的成本在较短的时间内确定问题是否能够解决。
14. 对问题的每一种解法一般需要进行1.技术可行性2.经济可行性3.操作可行性4.法律可行性15. 在可行性研究阶段使用的描述工具有哪些?系统流程图,数据流图,数据字典。
16. 系统流程图:是概括地描述物理系统的传统工具表达的是数据在系统各部件之间的、流动的情况。
其基本思想是用图形符号从黑盒子描绘组成系统的各个部件(程序、文档、数据库、人工过程等)数据流图:是一个图形化技术,它描述信息流和数据从输入一点到输出的过程中所经受的变换。
数据字典:关于数据的信息的集合,即对数据流图中包含的所有元素的定义的集合17. 数据流图仅反映系统必须完成的逻辑功能,所以只是描绘数据在软件中流动和被处理的逻辑过程18. 数据字典的基本元素:数据流、数据元素、数据存储、处理21. 在进行成本/效益分析时首先需要估计成本。
成本估计可以使用那些技术?代码行技术、任务分解技术、自动估计成本技术22. 需求分析阶段的具体任务是什么?确定对系统的综合要求、分析系统的数据要求;导出系统的逻辑模型;修正系统开发计划23. 需求分析最终结果是什么体现的?分析模型、软件需求规格说明书24. 需求分析阶段完成的文档有哪些?分析模型、软件需求规格说明书25. 需求分析阶段使用的图形工具有哪些?数据流图、E-R图、状态转换图、层次方框图、watnier图、IPO图26. 在大型数据处理系统的功能分析与设计中,数据库的概念设计对应于系统开发的哪个阶段?对应需求分析阶段27. 最常用的表示概念性数据模型的方法是什么?E-R图28. 一般说来,应该从哪几个方面来验证需求分析的正确性?一致性、完整性、现实行、有效性29. 什么有穷状态机?有穷状态机有何作用?有穷状态机又哪几部分组成?有穷状态机:一个5元组(JKTSF)J有穷非空状态集K有穷的非空输入集T是一个从(J-F)*K到J 的转换函数、S属于J,初始状态。
软件工程期末考试复习总结知识点+必考题型,推荐文档

软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。
很难检验开发的正确性且软件开发的质量也较难评价。
因此控制软件开发过程相当困难。
此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。
这样维护的费用十分惊人,客观上使得软件较难维护。
(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。
但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。
在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。
这是造成软件危机的主要原因。
(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。
对用户的要求没有完整准确的认识就急于编写程序。
这是许多软件开发失败的另一主要原因。
事实上,许多用户在开始时并不能准确具体地叙述他们的需要。
软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
首先是文档缺乏一致性和完整性,从而失去管理的依据。
因为程序只是完整软件产品的一个组成部分。
一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。
其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5) 在软件的开发和维护关系问题上存在错误的观念。
软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。
所以做好软件的定义工作是降低软件成本,提高软件质量的关键。
如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。
软件工程期末考知识点归纳(自制)

需求分析工具,任务,内容需求分析也称为需求工程,是一个非常重要而有很复杂的,需要交替进行,反复迭代的过程。
需求分析过程通过执行初步沟通、需求导出、分析与精化、可行性研究、协商和沟通、规格说明、验证和变更管理八个不同的活动来完成。
非形式技术主要包括会谈、调查表和场景技术,用于获取用户需求和系统需求。
排错调试(debug)又称排错或纠错调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正调试工作:对错误进行定位并分析原因,即诊断;对于错误部分重新编码以改正错误;重新测试软件项目管理计划的重要方面项目是指一系列独特的、复杂的并相互关联的活动。
项目参数包括项目范围、质量、成本、时间、资源。
项目三维管理:时间维:即把整个项目的生命周期划分为若干个阶段,从而进行阶段管理。
知识维:即针对项目生命周期的各个不同阶段,采用和研究不同的管理技术方法。
保障维:即对项目人力、财力、物力、信息等后勤保障管理。
特点项目管理是一项比较复杂的工作项目管理具有创造性项目管理的对象是项目或被当作项目来处理的作业项目负责人(或项目经理)在项目管理中起着非常重要的作用项目管理需要集权领导和建立专门的项目组织项目管理的方法、工具和手段具有先进性、开放性五个阶段启动阶段:用户提出需求,开发人员进行需求分析,确定可行性,编写项目实施计划。
计划阶段:创建项目范围文档和项目计划,项目范围详细描述项目范围。
实施阶段:实施阶段意味着项目正在进一步设计、编码、测试,小组成员正在创造项目需要的可交付产品。
控制阶段:项目经理开始监督小组成员的工作,将项目的进度、任务和预算控制在正常的范围内。
收尾阶段:项目负责人和用户批准和签署项目,交付产品。
项目的收尾阶段标志着项目的正式结束。
测试目标,执行过程没找到Sa(结构化分析)结果结构化分析方法是一种自顶向下,逐步分解的面向数据和数据流的建模方法。
结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。
软件工程期末复习知识点整理汇编

复习整理一、绪论1.软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。
(软件=程序+文档)2.软件工程的定义●是指导计算机软件开发和维护的一门工程学科;●采用工程化的原理与方法对软件进行计划、开发和维护;●把证明正确的管理技术和最好技术综合运用到软件开发中;●研究经济地开发出高质量的软件方法和技术;●研究有效维护软件的方法和技术。
3.软件危机的概念,及出现的原因软件开发技术的进步未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
产生原因:⑴软件规模越来越大,结构越来越复杂⑵软件开发管理困难而复杂。
⑶软件开发费用不断增加。
⑷软件开发技术落后。
⑸生产方式落后,仍采用手工方式。
⑹开发工具落后,生产率提高缓慢。
4.三种编程范型的特点(1) 过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小(2) 面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大(3) 基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大二、软件生存周期与软件过程1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动●定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期●目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。
●主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护(P19)2、软件生命周期划分为哪几个阶段软件生命周期分为三个时期八个阶段:●软件定义:问题定义、可行性研究;●软件开发:需求分析、概要设计、详细设计、编码、测试;●软件运行:软件维护3、瀑布模型的特点和缺陷特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)优点:●可强迫开发人员采用规范化的方法。
软件工程期末复习要点归纳总结

第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。
5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。
软件工程期末复习要点归纳总结

第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、①把系统的、规的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。
5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。
软件工程期末考试要点

一、大作业(20分)计划与管理(5 分)需求分析建模(5分)设计建模(5分)最终完成的作品(5分)二、报告(16分)三、课堂互动(4分)四、期中考试(20 分)五、期末考试(40 分)软件工程期末考试要点一、怎么理解个体和交互胜过工具和过程?产品胜过文档?(敏捷开发)人是获得成功的最为重要的因素。
合作、沟通以及交互能力要比单纯的编程能更为重要。
没有文档的软件是一种灾难。
过多的文档比过少的文档更糟。
二、RUP阶段,含义,理解。
Rational Unified Process 有四个阶段:–先启–定义整个项目的范围–精化–制定项目计划、描述功能、建立体系架构框架和可执行的“体系结构基线”–构建–构造软件产品–产品化–将软件产品移交到最终用户手中三、敏捷开发出发点?敏捷宣言?XP第一条原则的含义?通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。
个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也有价值,但我们认为左项具有更大的价值完整团队XP项目的所有参与者(开发人员、业务分析师、测试人员等等)一起工作在一个开放的场所中,他们是同一个团队的成员。
这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。
计划游戏XP习惯把一次迭代发布的内容称之为“planningg ame”,在迭代之处确认阶段称为“IterationP lanningG ame”迭代计划游戏,而确认可发布内容范围称为“Release Planning Game”发布计划游戏;计划是持续的、循序渐进的。
每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。
四、需求分析阶段的产品?主要工作产品:需求定义文档(客户角度)需求规格说明(技术人员角度)配置管理文档(支持两个文档间直接对应)五、为甚要进行WBS(目的、意义、内容)?怎样进行WBS分解?项目分解目的——明确项目所包含的各项工作;项目分解的结果就是WBS(Work Breakdown Structure 任务分解结构)图•项目分解意义——WBS 图是实施项目、创造最终产品或服务所必须进行的全部活动的一张清单,也是进度计划、人员分配、预算计划的基础•项目分解内容——项目分解就是先把复杂的项目逐步分解成一层一层的要素(工作),直到具体明确为止WBS 分解方法●基于可交付成果的划分–上层一般为可交付成果为导向–下层一般为可交付成果的工作内容●基于工作过程的划分–上层按照工作的流程分解–下层按照工作的内容划分六、EO、EQ的区别?EO有数据演化、对ILF的修改七、开展一个项目最先要做的事情?理解客户需要什么,分析要求,评估可行性,协商合理的方案,无歧义地详细说明方案,确认规格说明,管理需求以至将这些需求转化为可运行的系统八、LOC、FP各自的优缺点。
(完整版)软件工程期末考试复习总结知识点+必考题型(最新整理)

软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。
很难检验开发的正确性且软件开发的质量也较难评价。
因此控制软件开发过程相当困难。
此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。
这样维护的费用十分惊人,客观上使得软件较难维护。
(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。
但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。
在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。
这是造成软件危机的主要原因。
(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。
对用户的要求没有完整准确的认识就急于编写程序。
这是许多软件开发失败的另一主要原因。
事实上,许多用户在开始时并不能准确具体地叙述他们的需要。
软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
首先是文档缺乏一致性和完整性,从而失去管理的依据。
因为程序只是完整软件产品的一个组成部分。
一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。
其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5) 在软件的开发和维护关系问题上存在错误的观念。
软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。
所以做好软件的定义工作是降低软件成本,提高软件质量的关键。
如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。
软件工程期末考试重点整理

软件工程的基本概念:研究软件生产和软件管理的工程学科。
主要内容:软件工程的基本概念。
软件开发模型。
软件开发各阶段的任务、技术、方法。
传统方法、面向对象方法。
软件工程管理。
软件质量保证。
软件工程环境。
软件工程三要素:方法、工具和过程什么是软件生命周期?定义一个软件从开始计划起,到废弃不用为止,称为软件的生存周期。
软件生存周期包括:计划(主要任务:调查和分析,调查用户需求,分析新系统的主要目标,分析开发该系统的可行性)、开发(主要任务:系统分析、设计和实现)与运行(主要任务:做好软件维护,使软件在整个生存周期内保证满足用户的需求和延长使用寿命)3个时期,每一时期又可细分为若干更小的阶段。
将软件开发过程划分生存周期的目的:把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理需求分析的主要任务是1通过对问题及其环境的理解、分析和综合,建立分析模型;2在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求不大出来。
需求分析的步骤通过对现实环境的调查研究,获得当前系统的具体模型;去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型;分析当前系统与目标系统的差别,建立目标系统的逻辑模型;对目标系统进行完善和补充,并写出完整的需求说明;对需求说明进行复审简述衡量模块独立性的两个准则。
选择程序设计语言的原则有哪些?简述你对程序设计风格的理解。
程序设计阶段的特点:生产方式:个体手工劳动。
生产工具:机器语言、汇编语言。
开发方法:追求编程技巧,追求程序运行效率。
程序难读、难懂、难修改。
硬件特征:价格贵、存储容量小、运行可靠性差。
软件特征:只有程序、程序设计概念,不重视程序设计方法。
“软件测试不能证明程序的正确性”,谈谈你对这句话的理解。
“软件维护是软件运行时期的工作,与软件开发各阶段联系较少,该阶段工作是简单的,难度也要小得多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1..软件的特点:软件是一种逻辑实体,具有抽象性。
2.软件危机表现:成本高、计算机软件和硬件费用比上升、软件质量得不到保证、由于软件
质量问题导致失败的软件项目非常多、进度难以控制、维护非常困难
3.产生软件危机的原因: 1.与软件本身的特点有关(难于维护,逻辑复杂)
2.与软件开发与维护的方法不正确有关:软件≠程序;急于成=
拔苗助长;各自为阵无方法/学
4.软件工程的定义:软件开发、运行、维护和引退的系统方法
5.软件工程三要素:方法、工具和过程。
6.方法:面向对象、面向过程、面向数据,为软件开发提供 如何做 的技术
7.生命周期的定义:从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补
和完善,直到被新的需要所代替而停止使用该软件的全过程。
8. 软件制造的八个阶段:可行性分、需求分析、概要设计、详细设计、编码、测试、交付
9. 需求分析阶段要明确 做什么
10.过程模型:
(1)瀑布模型: 特点:时间上具有顺序性和依赖性;推迟实现的观点;质量保证的观
点
优点:适合于用户需求明确、完整、无重大变化的软件项目开发。
缺点:实际项目很少按照该模型给出的顺序进行;
用户常常难以清楚地给出所有需求;
用户必须有耐心,等到系统开发完成
(2)原型模型—快速原型模型:在用户不能给出完整、准确的需求说明,或者开发者
不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户
的一组基本需求,快速建造一个原型(可运行的软件)
(3)增量模型:是一种渐进地开发逐步完善的软件版本的模型
(4)螺旋模型:螺旋模型的基本思想是降低风险
(5)喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向
对象的软件开发过程。
(6)演化模型:是一种全局的软件(或产品)生存周期模型。属于迭代开发方法
(7)智能模型:智能模型也称为基于知识的软件开发模型,它综合了上述若干模型,
并把专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人
员完成开发工作。
11.面向对象三要素:方法、属性、标识符。
12.RUP:统一软件开发工程,RUP重复一系列周期,每个周期由一个交付给用户的产品结束。
每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流(需求、
分析、设计、实现、测试)分别迭代。
13.UML定义:适用于各种软件开发方法、软件生命周期的各个阶段 、各种应用领域以及各
种开发工具。
14.OOA:面向对象的分析。 OOD:面向对象的设计。
15.UML由以下5类图来定义: 第1类:用例图
第2类:静态图(包括类图、对象图和包图)
第3类:行为图(包括状态图和活动图)
第4类:交互图(包括时序图和协作图)
第5类:实现图(包括组件图和配置图)
16.需求分析定义:确定系统必须完成哪些工作,明确做什么。
17.获取需求的5W1H方法:why 定律:为什么要引入系统
What 定律:明确系统要做什么,
Who 定律、When 定律、Where定律:需求细化阶段,用来产
生系统需求的用例图
How 定律:如何实现这个系统
18.面向对象设计原则:模块化、封装、抽象、信息传递局部化、模块独立化
19.模块化:不是越多越好
20.模块独立性: 耦合度与内聚度,最好的情况是高内聚、低耦合。
耦合度最高是内容耦合,最低是非直接耦合。
内聚最高是偶然内聚,最低是功能内聚
21.数据库:表来源于类图。
22.界面的设计原则最重要在功能。
例如:用于很多功能,每个功能拥有一个界面,这样的功能应该保持一致,因为功能都是类
似的。
23.编码:依照详细设计来进行。
风格:(1)注释分为:序言性注释;功能性注释;
(2)数据说明:数据说明的次序应该标准化;当多个变量名在一个语句中说明时,
应该按字母顺序排列这些变量。如果设计时使用了一个复杂的数据结构,则应该用注解说
明用程序设计语言实现这个数据结构的方法和特点。
(3)注意视觉组织
24.软件测试的定义:为了发现错误而执行程序的过程。测试只能找出程序中的错误,但在
未发现错误时,并不能证明程序中没有错误。
25.软件测试的目标:尽可能多的发现软件中潜藏的错误,一个成功的测试是发现了至今未
发现的错误的测试
26.测试的分类:静态测试、动态测试。动态测试又分为黑盒测试(主要是软件的功能)和
白盒测试(主要是软件的结构)。
27.基于不同阶段的测试:单元测试、集成测试、系统测试、验收测试
28.Alpha测试:在开发环境中、Beta测试:在真实环境中
29.维护定义:就是在软件已经交付使用之后,为了保证软件在相当长的时期能够征程运作
所进行的软件活动
30:维护时开发过程中耗时最长的。
31.维护类型:改正性维护(因开发时测试不完成,遗留下来的错误);
适应性维护(环境改变时进行的维护);
扩充与完善性维护(用户提出新要求)(这种维护占比最大);
预防性维护(提高软件的可靠性)(占比最小);
32.错误发现越早越好,因为这样花费的代价小。
33.软件系统的文档分为用户文档和系统文档。
34.调试:发现错误并改正的过程。
35.维护软件最重要的就是文档。