软件工程第八章知识点
- 格式:doc
- 大小:33.50 KB
- 文档页数:2
软件工程考核知识点-第8章-软件维护第8章软件维护软件投入使用后就进入软件维护阶段。
维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。
8.1软件维护的内容软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。
1.校正性维护在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段来。
这些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
校正性维护占整个维护工作的20%左右。
2.适应性维护随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。
为了使应用软件适应这种而修改软件的过程称为适应性维护。
这种维护活动占整个维护活动的25%。
3.完善性维护在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。
这是因为用户的业务会发生变化,组织机构也会发生变化。
为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。
4.预防性维护为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
这是为以后进一步的运行和维护打好基础,占整个维护工作的4%。
8.2 维护的特点8.2.1非结构化维护和结构化维护软件的开发过程对软件的维护过程有较大的影响。
若不采用软件过程的方法开发软件,则软件只有程序而无文档,维护工作非常难,这就是一种非结构化的维护。
若采用软件工程的方法开发软件,则各阶段都有相应的文档,这容易进行维护工作,这是一种结构化的维护。
1.非结构化维护因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解、分析源程序开始。
这是软件工程时代以前进行维护的情况。
2.结构化维护用软件工程思想开发的软件具有各阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
四年级软件工程下册第八单元总结1. 单元概述四年级软件工程下册第八单元主要介绍了软件工程的核心概念和方法,旨在帮助学生深入理解软件工程的基本原则,掌握软件开发过程中的关键环节,培养良好的软件工程实践习惯。
本单元涵盖了软件需求分析、软件设计、编码、测试和维护等方面的内容,通过理论讲解、实例分析和实践操作,使学生能够全面掌握软件工程的理论和实践技能。
2. 单元知识点2.1 软件需求分析软件需求分析是软件开发过程中的首要环节,主要任务是理解和收集用户需求,形成需求文档。
本单元介绍了需求分析的基本方法,包括调查法、观察法、访谈法和原型法等,并讲解了需求分析的基本步骤,包括需求收集、需求分析、需求规格化和需求验证等。
2.2 软件设计软件设计是软件开发过程中的关键环节,主要任务是根据需求分析结果,设计软件的总体结构和具体实现方案。
本单元介绍了软件设计的基本方法,包括结构化设计、面向对象设计和敏捷设计等,并讲解了设计的基本步骤,包括问题域分析、功能分析、结构分析和详细设计等。
2.3 编码编码是软件开发过程中的实现环节,主要任务是将设计好的软件方案转化为计算机可以理解的程序代码。
本单元介绍了编码的基本规范和技巧,包括编码风格、命名规则和编程习惯等,并讲解了常见编程错误和调试方法。
2.4 测试测试是软件开发过程中的验证环节,主要任务是检查软件的功能和性能是否满足需求分析中的规定。
本单元介绍了测试的基本方法,包括黑盒测试、白盒测试和灰盒测试等,并讲解了测试的基本步骤,包括测试计划、测试用例设计和测试执行等。
2.5 维护维护是软件开发过程中的持续环节,主要任务是修复软件在使用过程中发现的问题,优化软件性能,延长软件寿命。
本单元介绍了维护的基本方法和策略,包括错误修复、性能优化和功能扩展等,并讲解了维护的基本步骤,包括维护计划、维护实施和维护评估等。
3. 单元实践本单元要求学生通过实践操作,将所学的软件工程理论和方法应用于实际的软件开发过程中。
软件工程吴迪第八章课后答案HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】软件工程课后答案《软件工程》作业及答案1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2假设你是一家软件公司的总工程师,当你把图给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
软件工程各章节重要知识点按考试大纲总结LELE was finally revised on the morning of December 16, 20202014软件工程各章节重点知识点(按考试大纲总结)第1章:软件工程的范畴THE SCOPE OF SOFTWARE ENGINEERING1掌握软件工程、软件危机、生命周期的概念 1%Software engineering is a discipline学科 aim is the production生产 of software.fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs changeSoftware crisis:the quality of software was unacceptably low,deadlines and budgets were not being met.Life-cycle model:The steps to follow遵循 when building构建 software,A theoretical description理论描述 of what should be done.Life cycle:The actual steps实际步骤 performed执行 on a specific具体 product.2掌握维护的3种分类并能够结合具体例子进行判断 1%Postdelivery maintenance:Corrective纠错性 maintenance;Perfective完善性maintenance;Adaptive适应性 maintenanceCorrective纠错性 maintenance:removal去除 of residual faults残留错误 ;leaving the specifications规格说明文档 unchangedPerfective完善性 maintenance:additional functionality额外功能;decreased response time减少响应时间Adaptive适应性 maintenance:changes made in response to changes in the environment3掌握为什么没有计划、文档和测试阶段 1%Why There Is No Planning Phase计划阶段, Testing Phase测试阶段 or Documentation Phase文档阶段?Planning, continual持续的 testing and documentation activities活动 are carried out执行throughout贯穿于 the life cycle.There is no separate独立的 planning, testing or documentation phase.This testing is the responsibility职责 ofEvery software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group)Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We cannot test without documentation.We cannot maintain without documentation.4掌握软件工程的传统生命周期模型(瀑布模型)的阶段划分和各阶段的主要任务1%Classical(Waterfall瀑布) Life-Cycle Model1. Requirements phaseExplore研究 the concept概念;Elicit提取 the client’s requirements客户需求2. Analysis (specification) phaseAnalyze分析 the client’s requirements;Draw up制定 the specification document规格说明文档(specifications);Draw up the software project management plan软件项目管理计划(SPMP);“What the product is supposed期望 to do”3. Design phaseArchitectural design结构设计, followed by;Detailed design详细设计;“How the product does it”4. Implementation phaseCoding编码;Unit testing单元测试;Integration集成;Acceptance testing验收测试5. Postdelivery maintenanceCorrective纠错性 maintenance;Perfective完善性 maintenance;Adaptive适应性 maintenance6. Retirement5掌握传统的维护观念与现代的维护观念之间的区别1%Classical maintenance is Development-then-maintenance model开发-维护模型This is a temporal时间性 definition,Classification归类 as development or maintenance depends on取决于 when an activity is performed.Modern Maintenance is nowadays defined as:The process过程 that occurs when a software artifact软件制品 is modified被修改 because of a problem or because of a need for improvement改善 or adaptation适应.Maintenance occurs whenever software is modified修改.Regardless of不管 whether this takes place before or after installation of the software product.Modern maintenance is corrective, perfective, or adaptive maintenance performed at any time.第2章:软件生命周期模型SOFTWARE LIFE-CYCLE MODELS1 掌握编码-修补模型、瀑布模型、快速原型开发模型、开源模型、敏捷过程模型、同步-稳定模型、螺旋模型等这些模型的模型图(如果有图的话)以及优缺点和适用场合,并能绘制。
软件工程第08章在软件工程的领域中,每一个章节都像是一座知识的宝库,而这第08 章,则聚焦于软件的测试与维护。
软件测试,这可不是一项轻松的任务。
想象一下,我们精心打造了一个软件,就好像建造了一座高楼大厦。
在交付给用户使用之前,必须要进行全面而细致的检查,确保每一个角落都没有问题,每一个功能都能正常运行。
这就是软件测试的重要使命。
测试的类型多种多样。
有单元测试,就像是检查大楼的每一块砖头是否坚固;有集成测试,好比查看各个房间之间的连接是否顺畅;还有系统测试,如同审视整座大楼的整体性能和安全性。
每一种测试都有着独特的方法和重点。
单元测试,通常由开发人员自己来完成。
他们会针对软件中的最小单元——函数、模块等进行测试,确保这些基础部分的正确性。
通过编写测试用例,输入各种可能的数据,然后检查输出是否符合预期。
这就像是给每一块砖头都做了严格的质量检测。
集成测试则是将多个单元组合在一起进行测试。
它要检查这些单元之间的接口是否匹配,数据的传递是否准确无误。
比如说,一个房间的门能否顺利地打开和关闭,与其他房间的通道是否畅通无阻。
系统测试则是站在用户的角度,对整个软件系统进行全面的测试。
包括功能测试,看看软件是否满足了用户的需求;性能测试,检测软件在不同负载下的运行速度和稳定性;兼容性测试,确保软件能够在各种不同的操作系统、浏览器和硬件环境下正常工作。
软件测试不仅仅是找出错误,更重要的是预防错误的发生。
通过在开发过程中早期介入测试,可以及时发现和解决问题,避免问题在后期积累,导致修复成本的大幅增加。
然而,即使经过了严格的测试,软件在投入使用后仍然可能会出现问题。
这就引出了软件维护这个重要的环节。
软件维护可不是简单地修修补补,它包括了纠错性维护、适应性维护、完善性维护和预防性维护。
纠错性维护,就是当软件出现故障时,迅速定位并修复问题,让软件能够恢复正常运行。
这就好像大楼里的某个管道漏水了,需要赶紧找到漏点并修好。
适应性维护则是为了让软件能够适应新的运行环境,比如操作系统的升级、硬件的更新等。
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
一、选择
1、软件维护工作的最主要部分是(A )
A.改正性维护B.适应性维护
C.完善性维护D.预防性维护
2、软件维护工作中大部分的工作是由于(D )而引起的。
A.程序的可靠性 B.适应新的硬件环境
C.适应新的软件环境 D.用户的需求改变
3、在软件生存周期中,时间最长,所花费的精力和费用也最多的阶段是 B 。
A.详细设计 B.维护
C.概要设计 D.测试
4、修改软件以适应外部环境(新的硬件、软件配置)或数据环境(数据库、数据格式、数据输出/输入方式、数据存储介质)发生变化是指?( B )
A.改正性维护B.适应性维护
C.完善性维护D.预防性维护
5、软件的可维护性是评价软件质量的一个重要标准,下面关于提高软件可维护性的措施描述正确的有 A 。
(A)在进行需求分析的同时考虑维护问题
(B)设计时选择时间效率和空间效率尽可能高的算法
(C)提高程序可读性,尽量使用高级语言编程
(D)测试结束时,删除程序中的注解以缩短源程序长度
6、可维护性的特性中,相互矛盾的是 B 。
A.可理解性与可测试性 B.效率性和可修改性
C.可修改性和可理解性
D. 可理解性与可读性
7、各种软件维护的类型中最重要的是 A .
A.完善性维护 B.纠错性维护
C.适应性维护
D.预防性维护
8、软件维护困难的主要原因是 C 。
A.费用低 B.人员少
C.开发方法的缺陷
D.维护难
9、维护阶段的文档是 C 。
A.软件需求说明 B.操作手册
C.软件问题报告
D.测试分析
10、产生软件维护的副作用,是指 C 。
A.开发时的错误 B.隐含的挫样
C.因修改软件而造成的错误
D.运行时误操作
二、填空
1、在软件产品被开发出来并交付用户使用之后,就进入了软件的阶段。
(运行维护)3、软件生命周期的最后一个阶段是软件的阶段,也是持续时间最长、代价最大的一个阶段。
(维护)
2、软件工程的主要目的就是要提高软件的可性,减少软件所需要的工作量,降低软件系统的。
(维护,维护,总成本)
4、是影响软件可维护性的决定因素。
(文档)
5、实质上是软件再工程。
(预防性维护)
6、维护可分为____,____,____,____四类。
(改正性维护;适应性维护;完善性维护;预防性维护)
三、简答
1、决定软件可维护性的因素有哪些?
答:(1)可理解性
(2)可测试性
(3)可修改性
(4)可移植性
(5)可重用性
2、软件维护过程包括哪些方面?
答:(1)维护组织
(2)维护报告
(3)维护事件流
(4)保护维护记录
(5)评价维护活动
3、软件维护的定义和特点?
答:定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
特点:(1)结构化维护与非结构化维护差别巨大
(2)维护的代价高昂
(3)维护的问题很多
4、修改性维护与排错是否是一回事?为什么?
答案:修改性维护与排错不是一回事,改正性维护是对软件投入运行后,暴露出的一部分在测试阶段没有发现的错误,对软件进行的修改的过程。
排错是错误发现后,对错误定位,然后修改程序的过程。
前者是一种维护过程,而后者是维护过程中的一个步骤。
5、影响软件可维护性的主要因素有哪些?你认为的途径是什么?
答案:软件系统的维护,必须是软件是可以维护的,要使得软件可以维护,必须保证软件的可维护性。
软件的可维护性是指理解,改正,改动,改进软件的难易程度。
它受三各方面的影响:即软件的可理解性,可测试性,可修改性。
解决软件可维护性还有两个关键的问题:软件系统必须要有完整,详细的文档资料;并且要在系统开发中采用软件模块化,结构化设计,使用合适的程序语言,注意程序风格等。