版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程复习资料1. 软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。很难检验开发的正确性且软件开发的质量也较难评价。因此控制软件开发过程相当困难。此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。这样维护的费用十分惊人,客观上使得软件较难维护。 (2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。在实践的过程
2、中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。这是造成软件危机的主要原因。 (3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。对用户的要求没有完整准确的认识就急于编写程序。这是许多软件开发失败的另一主要原因。事实上,许多用户在开始时并不能准确具体地叙述他们的需要。软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。 (4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。首先是文档缺乏一致性和完整性,从而失去管理的依据。因为程序只是完整软件产品的一个组成部分。一个软件产品必须
3、由一组的配置组成,不能只重视程序而应当特别重视软件配置。其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。 (5) 在软件的开发和维护关系问题上存在错误的观念。软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。所以做好软件的定义工作是降低软件成本,提高软件质量的关键。如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。另外,在软件生存期的不同结点进行修改需要付出的代价是很不相同的。在早期引入变更涉及面较小,付出的代价较低,在开发的中期软件配置的许
4、多成分已经完成,引入一个变更可能需要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上更复杂。因而付出的代价剧增。在软"已经完成"后再引入变更。则需要付出更高得多的代价。因此,必须把软件维护的观念引入软件开发的各个阶段,建立起软件开发与维护的正确关系。2.软件工程的概念 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。2. 软件工程的三要素方法、工具和过程3. 软件工程的基本原理(1) 用分阶段的生命周期计划严格管理(2) 坚持进行阶段评审(3)
5、实行严格的产品控制(4) 采用现代程序设计技术(5) 结果应能清楚地审查(6) 开发小组的人员应该少而精(7) 承认不断改进软件工程实践的必要性4. 软件生命周期问题定义可行性研究需求分析总体设计详细设计编码和单元测试综合测试软件维护5. 瀑布模型存在的问题靠文档驱动,用户不能全面地认识动态的软件产品。且过于理想化,可能出现设计上的错误。缺乏灵活性。6. RUP统一过程的四个阶段RUP模型将软件开发过程分为4个大的阶段,分别是先启、精化、(构建)和产品化。7. 可行性分析研究的主要目的用最小的代价在尽可能小的时间内,确定问题是否能解决,从而确定问题是否值得去解决。 8. 需求分析阶段所有分析方
6、法需要遵守的准则(1) 必须理解并描述问题的信息域,根据这条准则必须建立数据模型。(2) 必须定义软件应完成的功能,这条准则要求建立功能模型。(3) 必须描述作为外部事件结果的软件行为,这条准则要求建立行为准则。(4) 必须对描述信息,功能和行为的模型进行分解,用层次的方式展示细节。9. 需求分析的目的准确的回答“系统必须做什么”这个问题10. 数据字典的作用和概念概念:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。作用:数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以发挥作用。没有数据
7、字典,数据流图就不严格。11. 数据流图的图形元素 数据流 数据的源点或终点变换数据的处理 数据存储12. E-R图(非画图题)在ER图中有如下四个成分:矩形框:表示实体,在框中记入实体名。菱形框:表示联系,在框中记入联系名。椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)构成E-R图的3个基本要素是实体型、属性和联系,
8、其表示方法为:实体一般认为,客观上可以相互区分的事物就是实体,实体可以是具体的人和物,也可以是抽象的概念与联系。关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体。在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体。如果是弱实体的话,在矩形外面再套实线矩形。属性实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,在椭圆形外面再套实线椭圆。如果是
9、派生属性则用虚线椭圆表示。联系联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形13. 需求分析和软件设计两个阶段的目的需求分析:确定对系统的综合要求 分析系统的数据要求 导出系统的逻辑模型 修正系
10、统开发计划软件设计:用比较抽象概括的方式确定目标系统如何完成预定任务。14. 信息隐藏的概念在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。15. 耦合的概念和分类概念:耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.分类:内容耦合,公共耦合,外部耦合,控制耦合,标记耦合,数据耦合,非直接耦合,顺序耦合(耦合度由高到低排列)16. 内聚的概念和分类概念:内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。分类:偶然内聚,逻辑内聚,时间内聚,过
11、程内聚,通信内聚,顺序内聚,功能内聚(内聚度由弱到强排列)17. 模块化的概念概念:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。18. 详细设计的任务确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的蓝图(书上)(网上)(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。(3)为数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、
12、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。(4)其他设计:根据软件系统的类型,还可能要进行以下设计:代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。输入/输出格式设计。人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。(5)编写详细设计说明书。(6)评审。对处理过程的算法和数据库的物理结构都要评审。19. 设计复审的目的和作用避免后期付出高代价20. 判定树,判定表判定树和判定表是用于描述结构化分析方法中(数据加工)环节的工具21. 结构化程序设计的三种结构顺序,选择,
13、循环22. 画N-S图和pad图Pad:N-S图23. 软件测试的目的发现程序中的错误而执行程序的过程24. 软件测试的方法(黑盒&白盒)黑盒:把程序看做一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,他只检查程序功能是否能按规格说明书的规定正常使用,程序是否能适当的接受输入数据并产生争取的输入信息,程序测试过程中能否保持外部信息的完整性。黑盒测试又被称为功能测试。白盒:可以把程序看成装在一个透明白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序的主要执行通路是否都能按预定要求正确工作。白盒测试又被称为结
14、构测试。25. 软件测试的步骤(1)单元测试(也称模块测试):针对软件设计的基本单元程序模块,进行正确性检验的测试工作。目的在于发现各个模块内部可能存在的各种差错。单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行、独立地进行测试;(2)集成测试(也称组装测试,联合测试):在单元测试的基础上,将所有模块按设计要求集成在一起进行测试,以检验总体设计中各模块间的接口设计问题、模块之间的相互影响、上层模块存在的各种差错及全局数据结构对系统的影响等方面。(3)确认测试(也称验收测试,有效性测试):主要检验软件的功能和性能是否与需求说明书中的规定一致。(4)系统测试:将软件系统作为一个元素,放
15、入整个实际的计算机系统中,与计算机硬件、其他软件、使用人员等系统元素结合在一起,在实际使用环境下进行综合全面的测试。26. 软件测试用例的组成测试用例由输入数据和预期的输出数据组成。27. 根据题目要求设计测试用例请参考下方题目(3)28. 软件维护的分类(4种)(1)完善性的维护。完善性维护就是在应用软件系统使用期间为不断改善和加强系统的功能和性能,以满足用户日益增长的需求所进行的维护工作。在整个维护工作量中,完善性维护居第一位。(2)适应性维护。适应性维护是指为了让应用软件系统适应运行环境的变化而进行的维护活动。适应性维护工作量约占整个维护工作量的25%。(3)纠错性维护。纠错性维护的目的
16、在于,纠正在开发期间未能发现的遗留错误。对这些错误的相继发现,对它们进行诊断和改正的过程称为纠错性维护。这类维护约占总维护工作量的20%。(4)预防性维护。其主要思想是维护人员不应被动地等待用户提出要求才做维护工作,而应该选择那些还有较长使用寿命。29. 面向对象的特征封装,集成,多态30. 面向对象的建模语言UML请仔细复习书上第九章31. 面向对象的动态模型包含哪两种图型请仔细复习书上第九章32. 类的概念类 就是对具有相同数据和相同操作的的一组相似对象的定义。33. 类图的元素名称 ,属性 ,操作34. UML中对象之间类的关系(空心三角形,菱形分别表示什么)在UML图中,类之间的关系有
17、如下几种: 关联关系:Association 黑三角形聚合关系:Aggregation 空心菱形 组合关系:Composition 依赖关系:Dependency 带箭头的虚线泛化关系:Generalization 一端为空心三角形的虚线实现关系:Realization35. 画用例图参考下方题目最后一题36. 用例图图形元素37. 方框代表系统 椭圆代表用例 线条人代表行为者38. 对象模型的五个层次主题层、类&对象层、结构层、属性层、服务层。39. 面向对象分析方法的五个基本步骤第一步,确定对象和类。这里所说的对象是对
18、数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。第二步,确定结构(structure)。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。第三步,确定主题(subject)。主题是指事物的总体概貌和总体分析模型。第四步,确定属性(attribute)。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。第五步,确定方法(method)。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,
19、并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。40. UML的协助图和时序图时序图定义 : 描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图;时序图描述的事物: 时序图描述系统中类和类之间的交互, 将这些交互建模成消息交换, 时序图描述了类以及类之间的交换以完成的期望行为的消息, 时序图中每条消息都代表了类的一个操作 或者 引起状态机改变的触发事件;时序图表示 : 参与交互的对象在时序图顶端水平排列, 每个对象的底端绘制了一条垂
20、直虚线, 对象A像对象B发送消息, 用一条带箭头的实线表示, 该实线起始于对象A底部的虚线, 终止于对象B底部的虚线; 实线箭头水平放置, 越靠近顶端越早被发送.时序图轨迹 : 时序图提供了随时间推移的, 清晰的 可视化的轨迹;时序图组成 : 时序图包括四个元素 对象(Object), 生命线(Lifeline), 激活(Activation), 消息(Message);协作图 : 协作图是 一种 类图, 包含 类元角色 和 关联角色, 不仅仅是 类元 和 关联;- 强调 : 强调参与交互的 各个对象的结构信息 和 组织;协作图建模对象 : 对有交互的对象 和 这些对象之间的关系建模, 不参与
21、交互的对象及它们的关系忽略;协作图内容 : 协作图中表现了 类操作中用到的参数, 布局变量, 操作中的永久链;对象图扩展 : 协作图可以看做对象图的扩展, 该图展示了对象之间的关联, 显示出了对象间的消息传递;41. 软件重用的定义和层次(三个层次)定义:软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。层次:(1)知识重用(例如,软件工程知识的重用)。(2)方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。(3)软件成分的重用。42. 面向对象设计的启发规则1、 设计结果应该清晰易懂2、 一般特殊结构的深度适当3、 设计简单的类4、 使用简单
22、的协议5、 使用简单的服务6、 把设计变动减至最小43. 软件质量的的概念概括地说,软件质量就是“反应实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。44. 软件可移植性把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种度量方法是:用原来的程序设计和调试的成本除移植时需要的费用44.软件工程管理的定义45. 能力成熟度模型作用1.初始级 软件过程的特征是无序的,有时甚至是混乱的。 2.可重复级 软
23、件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。 3.已定义级 软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。 4.已管理级 软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。5.优化级 软件机构集中精力持续不断地改进软件过程。这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。46. 基线的概念基线(baseline)经过正式审查和认可作为以后进一步演进的基础,并且只有通
24、过正式的更改控制规程才能进行更改的规格说明或产品。简而言之 基线就是通过了正式复审的软件配置项。47. 关键路径的概念关键事件:EET(最早时刻)=LET(最迟时刻) 48. 度量软件规模的常用技术代码行技术 估算方法: 由多名有经验的软件工程师分别做出估计。 每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m), 分别算出这3种规模的平均值之后,再用下式计算程序规模的估计值: L=a+4m+b6单位:
25、; LOC或KLOC。 代码行技术的优点: 代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数; 有大量参考文献和数据。 代码行技术的缺点: 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理; 用不同语言实现同一个软件所需要的代码行数并不相同; 不适用于非过程性语言。功能点技术功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。1. 信息域特性 输入项数(Inp)、输出项数(Out)、查询数(
26、Inq)、主文件数(Maf)、外部接口数(Inf) 每个特征根据其复杂程度分配一个功能点数,即信息域特征系数a1,a2,a3,a4,a5 2. 估算功能点的步骤 (1) 计算未调整的功能点数UFP UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf (2) 计算技术复杂性因子TCF 技术因素对软件规模的综合影响程度DI: DI=i=114Fi技术复杂性因子TCF由下式计算: TCF
27、60;= 0.65 + 0.01 × DI 因为DI的值在070之间,所以TCF的值在0.651.35之间。 (3) 计算功能点数FP FP = UFP × TCF 功能点技术优点:与所用的编程语言无关,比代码行技术更合理。 功能点技术缺点:在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强。49. 评价软件质量的因素(常见的4个)可维护性,可靠性,可理解性,效率50.COCOMO2模型3个层次的估算
28、模型: 应用系统组成模型:这个模型主要用于估算构建原型的工作量,模型名字暗示在构建原型时大量使用已有的构件。 早期设计模型:这个模型适用于体系结构设计阶段。 后体系结构模型:这个模型适用于完成体系结构设计之后的软件开发阶段。 COCOMO2使用的5个分级因素:项目先例性、开发灵活性、风险排除度、项目组凝聚力、过程成熟度1. 请使用N-S图、PAD图描述下列程序的算法。(1)在数据A(1)A(10)中求最大数和次大数。2. 某公司为本科以上学历的人重新分配工作,分配原则如下:(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。要求:画出分析过程,得出判定表,并进行化简。3. “一个程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新时代青年的使命与担当5
- 河南省豫南九校高三政治新课标第一轮复习讲义:2.6求索真理的过程(人教版必修4)
- 热力发电厂常用英语技术词汇
- 公司级安全培训试题附参考答案【综合题】
- 员工三级安全培训试题附完整答案(考点梳理)
- 管理人员安全培训试题模拟题
- 生产经营单位安全培训试题答案AB卷
- 幼儿园手工课件
- 山东省滨州市博兴县2024-2025学年九年级上学期11月期中数学试题
- 语文公开课的活动方案
- 钢混组合梁施工方案
- 课件《“多元一体”视域下的中国古代民族关系》
- 初中班主任三年工作规划8篇
- (完整版)《春江花月夜》课件PPT
- 通信用阀控式密封铅酸蓄电池
- 蓝色卡通班委竞选主题班会PPT模板
- 金融行业视频监控联网解决方案
- 脚手架及模板工程安全培训课件
- 遗传性痉挛性截瘫duwanliang
- 上海教师招聘考试:中小学音乐学科专业知识考试真题及答案
- 武术剑术组合
评论
0/150
提交评论