软件工程理论知识_第1页
软件工程理论知识_第2页
软件工程理论知识_第3页
软件工程理论知识_第4页
软件工程理论知识_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程第一部分传统软件开发方法1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2、软件危机有哪些主要表现?软件开发成本和进度的估计很不准确。用户对开发的软件系统常常不满意。 软件产品的质量往往靠不住。软件没有适当的文档资料,软件不可维护。软件开发成本逐年上升,软件开发生产率跟不上计算机应用。3、软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。4、软件生命周期一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常 把软件经历的这个漫长的时期称为软件生命周期。5、消除软件危机的途径彻底消除“软件

2、就是程序”的错误观念。必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完 成的工程项目。6、软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术 和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开 发出高质量的软件并有效地进行维护,这就是软件工程。7、软件工程目标和内容是什么?软件工程的目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于 移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发 的软件可靠性高。软件工程的内容:研究内容包括开发技术和开发管理两个方面。开发技术主要研究:软件开 发方

3、法,开发过程,开发工具和环境。开发管理主要研究:软件管理学, 软件经济学,软件心理学。8、软件工程具有下述本质特性软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户软件工程师的领域知识影响其创造产品9、软件工程的7条基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性10、面向对象方法学具有下述4个要点。把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。把所有对象都

4、划分成类(class)。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层 次结构的系统(也称为类等级)。对象彼此间仅能通过发送消息互相联系。11、软件生命周期由哪些时期组成?各个时期划分成哪些阶段?软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析开发时期:总体设计、详细设计、编码和单元测试、综合测试。维护时期:主要任务是使软件持久地满足用户的需要。12、什么是软件过程?软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成 各项任务的工作步骤。软件过程定义了

5、运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软 件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。13、(1)瀑布模型的特点:阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点瀑布模型优点:可强迫开发人员采用规范的方法(如结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。瀑布模型缺点:最主要的是“瀑布模型是由文档驱动的”,在文档方面花费了在量的人力与物力。14、可行性研究的任务是什么?进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;从系统逻辑模型中,选择问题的若干种主要解法,研究每一种

6、解法的可行性,为以后 的行动提出建议;如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较 好的解决方案,并为工程制定一个初步的计划。15、可行性研究包括哪几方面的内容?技术可行性,使用现有的技术能实现这个系统吗?经济可行性,这个系统的经济效益能超过它的开发成本吗?操作可行性,系统的操作方式在用户组织内行得通吗?法律可行性,开发系统是否违反国家法律,是否侵犯他人利益。社会效益可行性,开发的系统能为用户带来怎样的社会经济效益。16、数据流图是一种图形化技术,它对系统的逻辑功能进行描绘,图中没有任何具体的物理 元素,只是描绘数据在软件中流动和被处理的逻辑过程。17、数据字典是

7、关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。数据字典由下列4类元素组成:(1)数据流(2)数据项(即数据元素):组成数据流和数 据存储的最小元素。(3)数据存储(4)处理18、在需求分析时,结构化分析方法应遵守哪些准则?(1)必须理解并描述问题的信息域,建立数据模型。(2)必须定义软件应完成的功能,建立功能模型。(3)必须描述作为外部事件结果的软件行为,建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。19、什么是需求分析?需求分析阶段的基本任务是什么?需求分析:软件分析员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求 陈述转

8、化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。基本任务:问题识别,软件分析员和用户确定对问题的综合需求,这些需求包括功能需求,性能 需求,环境需求,用户界面需求。分析与综合,导出软件的逻辑模型。编写文档,包括编写需求规格说明书,初步用户使用手册,确认测试计划,修改 完善软件开发计划。20、从哪些方面验证软件需求的正确性?(1)一致性:所有需求必须是一致的,不能互相矛盾。(2)完整性:需求必须是完整的,规格说明书应包括用户需求的每个功能或性能。(3)现实性:用户需求应该是用现有的硬件技术和软件技术来实现的。(4)有效性:需求是正确有效的,确实能解决用户面对的问题。21、有哪些验

9、证软件需求的方法?(1)验证需求的一致性:审查软件需求规格说明书是否丰在冗余、遗漏、不一致等问题。(2)验证需求的现实性:分析利用现有的软、硬件技术实现目标系统的可能性。(3)验证需求的完整性和有效性:审查软件需求规格说明书是否完整、准确地描述目标 系统的需求。22、总体设计目的是什么?总体设计的任务是什么?总体设计目的就是回答“系统应该如何实现?”。这个阶段有两个任务:划分出组成系统的物理元素一一程序、文件、数据库、人工过程和文档等;设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块 相互间的关系。23、模块是数据说明,可执行语句等程序对象的集合,它是构成程序的基本构

10、件。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把 若干模块构成一个整体,完成用户需求。模块化的目的是使一个复杂的大型软件简单化。24、什么是模块独立性?写出模块独立性重要的理由。模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且 接口简单。模块独立性重要的理由主要有两条:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。25、耦合是对一个软件结构内不同模块之间互连程度的度量。内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程序的度量。数据耦合:指两模块之间有调用关系,传递的是

11、简单的数据值。功能内聚:指模块内所有元素共同完成一个功能,缺一不可。26、在开发软件过程中总结出了哪些启发规则?改进软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的作用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测27 .详细设计的任务是什么?为每个模块确定采用的算法;确定每一模块使用的数据结构;确定模块接口的细节;编写过程设计说明书;设计每一模块的测试用例。28、结构程序设计有哪些好处?开发出的程序结构层次清晰; 不使用GOTO语句,程序的静态和动态结构情况比较一致;控制结构有确定的逻辑模式;可重用的代码量大;程序的逻辑结构清

12、晰,有利于程序正确性证明。29、程序流程图的主要优点是:对控制流程的描绘很直观,便于初学者掌握。程序流程图的主要缺点如下:程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流 程,而不去考虑程序的全局结构。程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程 序设计的精神,随意转移控制。程序流程图不易表示数据结构。30、N-S图的特点:功能域(即控制结构)明确,可以从盒图上一眼就看出来。不可能任意转移控制。很容易确定局部和全程数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。31、PAD图的主要优点如下:使用PAD图设计出来的程序必然是结构化程

13、序。PAD图所描绘的程序结构十分清晰。用PAD图表现程序逻辑,易读、易懂、易记。容易将PAD图转换成高级语言源程序。PAD图的符号支持自顶向下、逐步求精方法的使用。32、Jackson图有哪些结构?它又有哪些优点?Jackson图有三种结构:顺序结构、选择结构和重复结构。它有下面优点:便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;形象直观可读性好;既能表示数据结构也能表示程序结构。33、定量度量程序复杂程度的方法有哪三方面价值?把程序的复杂程度乘以适当常数即可估算出软件中错误的数量,以及软件开发需要的 工作量。定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量

14、的复杂程度可以作为模块规模的精确限度。34、G.Myers给出的关于测试的一些规则:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。35、软件测试准则有几条?所有测试都应该能追溯到用户需求。应该远在测试开始之前就制定出测试计划。把Pareto原理应用到软件测试中。应该从“小规模”测试开始,并逐步进行“大规模”测试。(5 )穷举测试是不可能的。为了达到最佳的测试效果,应该由独立的第三方从事测试工作。36、软件测试是软件测试人员设计出一系列测试方案,竭力发现程序中存在的错误的过程。 测试阶段的根本

15、目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量 的软件系统交给用户使用。软件测试方法有两种:黑盒测试和白盒测试。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规 定正常工作。黑盒测试又称为功能测试。白盒测试法是按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能 按预定要求正确工作。白盒测试又称为结构测试。37、单元测试着重从哪几个方面对模块进行测试?模块接口局部数据结构重要的执行通路出错处理通路边界条件38、软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。 软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行

16、的概率。39、软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过 程。软件维护可有四项活动:改正性维护:诊断和改正使用期间程序中存在的错误的过程,称改正性维护。适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,称适应性维 护。完善性维护:为完善软件而增加功能或改进已有的功能的活动,称完善性维护。预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基 础而修改软件活动,称预防性维护。40、决定软件可维护性的因素主要有几个?可理解性:理解软件的结构、接口、功能和内部过程的难易程度。可测试性:诊断和测试的难易程度。可修改性:软件修改的难易程

17、度。可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度。可重用性:软件构件可重用的难易程度。第二部分面向对象软件开发方法1、对象的定义主要有下面几种形式:定义1:对象是具有相同状态的一组操作的集合。定义2:对象是对属性值和操作的封装。定义3:对:=其中,ID是对象的标识或名字MS是对象中的操作集合DS是对象的数据结构MI是对象受理的消息名集合(对外接口)2、对象的特点以数据为中心对象是主动的实现了数据封装本质上具有并行性模块独立性好3、类就是对具有相同数据和相同操作的一组相似对象的定义。也就是说,类是对具有相同 属性和行为的一个或多个对象的描述。4、实例就是由某个特定的类所描述的一个

18、具体的对象。5、消息就是某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由下述3部分组成:接收消息的对象;消息选择符(也称为消息名);零个或多个变元。6、方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的 算法,响应消息的方法。7、属性就是类中所定义的数据,它是对客观实体所具有的性质的抽象。8、面向对象方法开发软件通常需要建立三种形式的模型:对象模型:描述系统数据结构的模型;动态模型:描述系统控制结构的模型;功能模型:描述系统功能的模型。9、什么是用例?用例具有哪些特征?用例是系统完成的一系列动作,这些动作除了完成系统内部功能外,还包括与行为者

19、的通信。用例具有下述特征:代表某些用户可见的功能,实现一个具体的用户目标;总是被行为者启动,并向行为者提供可识别的值;必须是完整的。10、行为者是指与系统交互的人或其他系统,它代表外部实体。11、建立对象模型的工作步骤是:确定对象类和关联;对大型复杂问题还要进行一步划分出若干个主题;给类和关联增添属性,并对它们进一步描述;利用适当的继承关系进一步合并和组织类;5)对类中的操作则需等到建立了动态模型和功能模型之后才能确定。12、建立动态模型的步骤有:编写典型交互行为的脚本;从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象;排列事件发生次序,确定每个对象可能的状态及状态间的转换,并用状态图描绘它

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论