软件工程-期末考试复习总结知识点+必考题型

合集下载

《软件工程》-重点考试知识点,简答

《软件工程》-重点考试知识点,简答

第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观察它的物理形态,只能通过观察他的是实际运行情况来了解他的功能特性和质量等;人们在分析设计开发测试过程以及软件开发项目的管理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更新的问题;开发运行依赖一定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件;按服务对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件的开发与维护过程中出现一系列严重问题的现象。

主要表现:●开发人员开发的软件产品不能完全满足用户的需求;●软件产品的质量难以得到保障;●开发周期开发经费和维护费用很难被准确估计从而给项目的管理带来很多麻烦;●随着技术的更新,用户的扩大,已有的软件产品不能灵活地适应环境的改变;●软件文档不完备并且存在文档内容与软件产品不符的情况。

原因:①软件开发是一项复杂的工程,需要用科学的工程化思想来组织和指导软件开发的各个阶段②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业认识不够充分缺乏经验⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和管理学的原理,运用工程学理论方法和技术,研究和指导软件开发和演化的一门交叉学科。

软件工程的目标:●使软件开发的成本控制在预计的合理范围内;●使软件产品的各项功能和性能能够满足用户需求;●提高软件产品的可靠性;●使生产出来的软件产品易于移植维护升级和使用;●使软件产品的开发周期能够控制在预计的合理时间范围内。

软件工程学科内容:●软件工程原理过程方法模型管理度量环境应用。

软件工程的基本原则:●将软件的生命周期划分为多个阶段,对各个阶段实施严格的项目管理;●坚持阶段评审制度已确保软件产品的质量;●实施严格的产品控制以适应软件规格的变更;●采用现代程序设计技术;开发出来的产品应该能够清楚地被审查;●合理地安排软件开发小组人员并且开发小组的人员要少而精;●不断改进软件工程的实践。

软件工程(清华钱乐秋版)期末复习重点

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程?在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

2、软件生存周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

C 软件设计只要解决待开发软件“怎么做”的问题。

软件设计通常可分为系统设计和详细设计。

系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。

详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。

D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。

E测试阶段的任务是发现并纠正软件中的错误和缺陷。

测试主要包括单元测试、集成测试、确认测试和系统测试。

F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。

3、简述各类软件过程模型的特点。

答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。

A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:接受上一阶段活动的结果作为本阶段活动的输入;依据上一阶段活动的结果实施本阶段应完成的活动;对本阶段的活动进行评审;将本阶段活动的结果作为输出。

B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

软件工程期末复习重点

软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

这个时期的工作通常又称为系统分析,由系统分析员负责完成。

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。

6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

7.维护时期的主要任务是使软件持久地满足用户的需要。

8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。

9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。

a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。

c)质量保证的观点:软件工程的基本目标是优质、高产。

为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。

每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

软件工程期末考试重点

软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。

A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。

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

第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。

概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。

c.运行维护:修正错误,使软件持久地满足用户需要。

改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。

如:瀑布模型的不足是不能适应需求的动态变更。

A.瀑布模型特点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交出的所有产品都必须是经过验证(评审)的。

缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

如果需求规格与用户需求之间有差异,就会发生这种情况。

只适用于项目开始时需求已确定的情况。

B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。

降低了规格说明文档变化的可能性。

减少了后续阶段错误的可能性。

c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。

当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

增量能够有计划地管理技术风险。

缺点:要求构件具备开放式的体系结构。

易退化为边做边改模型,从而使软件过程的控制失去整体性。

软件工程期末考试简答题汇总

软件工程期末考试简答题汇总

1什么是软件工程?基本原理有哪些?软件工程是指导计算机软件开发和维护的工程学科。

用分阶段的生命周期计划管理、坚持阶段评审、实行严格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进方法。

2成本_效益分析可用哪些指标进行度量?(写出公式)可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。

3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。

用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。

4非渐增式测试与渐增式测试有什么区别?两种都用于集成测试。

渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进行测试,每次增加一个模块。

非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

5试从基本符号和设计方法分析HC图与JACKSON图异同点答:HC图是面向DFD,而JACKSON图是面向数据结构的。

符号省略。

6软件测试的目的是什么?测试的目的是为了发现错误.7结构化程序设计的思想是什么?答:自上而下,逐步求精8请解释极限编程和自适应软件开发,并说明其异同?答:极限编程和自适应软件开发都属于敏捷过程模型。

极限编程是应用最广泛的敏捷过程(2分)。

按照计划、设计、编码和测试四个框架活动组织。

极限编程建议一系列新颖和有力的技术,保证敏捷团队创建能力体现客户指定优先级特征和功能的频繁软件开发(2分)。

自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。

该过程由自适应循环计划、相对严格的需求收集方法和一个迭代开发循环构成(2分)。

9需求工程的起始阶段,需求工程师的主要工作是?答:需求工程的起始阶段,工程师的主要工作为:1)建立基本的问题需求(2分)2)定义最重要的项目约束以及陈述主要的特征和功能(2分)3)与共利益的各方建立基本的谅解(2分)10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?11分析说明结构化分析和面向对象分析的区别?答:分析建模的目标是创建各种表现形式,以描述软件信息、功能和行为的需求(2分)。

《软件工程导论》期末复习题知识点

《软件工程导论》期末复习题知识点

《软件工程导论》期末复习知识点第一章填空题1、软件是、及其说明程序的。

答案:数据、计算机程序、各种文档2、软件工程包括软件开发技术和两大部分内容。

答案:软件工程管理选择题1、软件危机出现于,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。

A50年代末B60年代初 C 60年代末 D 70年代初A运筹学 B 工程学C软件学D软件学答案:C B2、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。

A 软件投机B软件危机C软件工程D软件产生答案:B3、产生软件危机的原因有如下几点,除了______。

A 软件开发过程未经审查B 软件开发不分阶段,开发人员没有明确的分工C 所开发的软件,除了程序清单外,没有其他文档D 采用工程设计的方法开发软件,不符合软件本身的特点答案:D4、软件产品的开发主要是( )。

A 复制B 再生产C 拷贝D 研制答案: D判断题1、文档是软件产品的一部分,没有文档的软件就不称其为软件。

()答案:√2、一个成功的项目唯一提交的就是运行程序。

()答案:×3、瀑布模型不适用于需求不确定的情况。

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

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

简答题1、简述软件危机发生的原因。

答案:(1)软件的规模加大、复杂性提高、性能增强;(2)软件是逻辑产品,尚未完全认识其本质和特点;(3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法;(4)用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应;(5)软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足。

软件工程期末考试复习重点

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

软件危机的主要表现:1、对软件开发成本和进度的估计常常很不准确。

2、用户对“已完成的”软件系统不满意的现象经常发生。

3、软件产品的质量往往靠不住。

4、软件常常是不可维护的5、软件通常没有适当的文档资料6、软件成本在计算机系统总成本中所占的比例逐年上升7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程:定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。

定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。

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

目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。

软件的生命周期:软件生命周期有软件定义、软件开发和运行维护3个时期组成;定义时期分为:问题定义、可行性研究和需求分析阶段;开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;维护时期的任务:是软件持久的满足用户的需求;瀑布模型:最广泛的过程模型;瀑布模型的特点:1、阶段间具有顺序性和依耐性;2、推迟实现的观点;3、质量保证的观点;Rational统一过程(RUP)四个阶段的工作目标:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;移交阶段:把开发出的产品提交给用户使用;第二章可行性研究的目的是确定问题是否值得去解决;可行性研究的方面:技术可行性、经济可行性、操作可行性;系统流程图描述物理模型;P39(要求会做)数据流图描述逻辑模型;P40(要求会做)数据流图(DFD)描绘信息流和数据从移动到输出的过程中所经受的变换;数据字典有以下4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储、处理;由数据元素组成的数据的方式三种基本类型:顺序、选择、重复;“=”是等价于(或者定义为),“+”是和(用来连接分量),“[ ]”是或(从其中选一),“{ }”是重复,“()”是可选;第三章:需求分析任务:功能需求是指定系统必须提供的服务,通过该分析划出该系统必须完成的所有功能。

《软件工程》期末考试复习题及参考答案

软件工程复习题(课程代码252258)一、填空题(本大题共60小题)1.数据项是指__不可再分解的___数据单元。

2.软件概要设计的主要任务就是___软件结构的设计___。

3.软件维护的内容包括校正性维持,适应性维护、____完善性维护_____和预防性维护。

4.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和___数据存储对象___。

5.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。

6.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

7.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。

8.软件结构是以模块为基础而组成的一种控制层次结构。

9.在结构化分析中,用于描述加工逻辑的主要工具有结构化语言、判定表和判定表三种。

10.软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

11.PDL是一种介于___自然语言___和形式化语言之间的半形式化语言。

12.从软件的功能角度划分,协助用户开发软件的工具性软件称为_支撑__软件13.消除软件结构中高扇入扇出的做法是______增加中间层次的控制模块_____。

14.如果一个软件系统的全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是____完全因子分解_____的系统。

15.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其__规格___就能照原样工作的特性。

16.为满足用户对软件提出的新的要求而对软件进行扩充、改进的维护称为____完善性__维护。

17.将整个软件划分成若干单独命名和可编址的部分,称之为___模块___。

18.软件需求的____物理视图_____给出处理功能和数据结构的实际表示形式。

19.在面向对象的开发技术中,__类___是一组具有相同数据结构和相同操作的对象的集合。

软件工程导论期末复习重点

软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。

软件工程导论期末考试考点

1.软件的定义:软件是程序、数据与相关文档的完整集合。

其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构,文档是开发、使用和维护程序所需要的图文资料。

2.软件危机的定义,表现、原因是什么?a)软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

b)软件危机的表现:●对软件开发成本和进度的估计常常很不准确。

●经常出现用户对“已完成的〞软件系统功能不满意的现象。

●软件产品的质量往往达不到要求。

●软件通常不可维护。

●软件通常没有适当的文档资料。

●软件成本在计算机系统总成本中所占的比例逐年上升。

●软件开发生产率提高的速度,远远跟不上计算机应用迅速普与深入的趋势。

c)软件危机的原因:i.客观原因:与软件本身的特点有关●软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。

软件缺乏“可见性〞。

●软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。

软件缺乏“可插拔性〞。

●如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,必须有严格而科学的管理。

ii.主观原因:与软件开发与维护的方法不正确也有关●目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,这可能是使软件问题发展成软件危机的主要原因。

●忽视需求分析只重视编码与运行。

•编写程序所需的工作量只占软件开发全部工作量的10%~20%。

•在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。

•图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。

●忽视文档只重视程序必须认识到一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。

必须清除只重视程序而忽视软件配置其余成分的糊涂观念。

●轻视维护是一个最大的错误。

统计数据表明,实际上用于软件维护的费用占软件总费用的55%~70%。

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

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

2.软件工程的概念 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

2. 软件工程的三要素 方法、工具和过程

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

4. 软件生命周期 问题定义 可行性研究 需求分析 总体设计 详细设计 编码和单元测试 综合测试 软件维护

5. 瀑布模型存在的问题 靠文档驱动,用户不能全面地认识动态的软件产品。且过于理想化,可能出现设计上的错误。缺乏灵活性。

6. RUP统一过程的四个阶段 RUP模型将软件开发过程分为4个大的阶段,分别是先启、精化、(构建)和产品化。

7. 可行性分析研究的主要目的 用最小的代价在尽可能小的时间内,确定问题是否能解决,从而确定问题是否值得去解决。

8. 需求分析阶段所有分析方法需要遵守的准则 (1) 必须理解并描述问题的信息域,根据这条准则必须建立数据模型。 (2) 必须定义软件应完成的功能,这条准则要求建立功能模型。 (3) 必须描述作为外部事件结果的软件行为,这条准则要求建立行为准则。 (4) 必须对描述信息,功能和行为的模型进行分解,用层次的方式展示细节。

9. 需求分析的目的 准确的回答“系统必须做什么”这个问题

10. 数据字典的作用和概念 概念:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 作用:数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以-- 3 / 17 发挥作用。没有数据字典,数据流图就不严格。 11. 数据流图的图形元素 → 数据流 □ 数据的源点或终点 变换数据的处理 〓 数据存储

12. E-R图(非画图题) 在ER图中有如下四个成分: 矩形框:表示实体,在框中记入实体名。 菱形框:表示联系,在框中记入联系名。 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。 连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。) 构成E-R图的3个基本要素是实体型、属性和联系,其表示方法为: 实体 一般认为,客观上可以相互区分的事物就是实体,实体可以是具体的人和物,也可以是抽象的概念与联系。关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体。在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体。如果是弱实体的话,在矩形外面再套实线矩形。 属性 实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,在椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。 联系 联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形 --

4 / 17 13. 需求分析和软件设计两个阶段的目的 需求分析:确定对系统的综合要求 分析系统的数据要求 导出系统的逻辑模型 修正系统开发计划 软件设计:用比较抽象概括的方式确定目标系统如何完成预定任务。

14. 信息隐藏的概念 在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

15. 耦合的概念和分类 概念:耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口. 分类:内容耦合,公共耦合,外部耦合,控制耦合,标记耦合,数据耦合,非直接耦合,顺序耦合(耦合度由高到低排列)

16. 内聚的概念和分类 概念:内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。 分类:偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚(内聚度由弱到强排列)

17. 模块化的概念 概念:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

18. 详细设计的任务 确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的蓝图(书上) (网上)(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。 (2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念-- 5 / 17 性的数据类型进行确切的定义。 (3)为数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 (4)其他设计:根据软件系统的类型,还可能要进行以下设计: ①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。 ②输入/输出格式设计。 ③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。 (5)编写详细设计说明书。 (6)评审。对处理过程的算法和数据库的物理结构都要评审。 19. 设计复审的目的和作用 避免后期付出高代价

20. 判定树,判定表 判定树和判定表是用于描述结构化分析方法中(数据加工)环节的工具

21. 结构化程序设计的三种结构 顺序,选择,循环 22. 画N-S图和pad图 Pad:

相关文档
最新文档