华南理工大学《软件工程》复习要点.docx

合集下载

(完整word版)软件工程复习重点

(完整word版)软件工程复习重点

三大块内容:软件危机与软件工程传统软件开发方法面向对象方法一、软件危机与软件工程:软件、软件危机、软件生存期、软件开发模型、软件管理1、软件:软件是能够完成预定功能和性能的可执行的计算机程序+使程序正常运行所需要的数据+描述软件开发过程及其管理、程序的操作和使用的有关文档。

文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通信与交流、管理与维护、用户服务2、软件危机a)表现:软件成本高、难于控制开发进度、软件工作量估计困难、软件质量低、软件修改维护困难b)原因:需求问题(描述不精确、理解不一致)、管理问题、方法和工具问题、软件本身的特点3、软件生存期:a)三个时期:定义时期(软件计划、需求分析)—>开发时期(软件设计、编码实现、测试)—>使用和维护时期(维护)b)六个阶段:软件计划需求分析设计编码测试使用与维护c)生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点(利于尽早发现错误,如阶段文档、评审)4、软件开发模型a)瀑布模型:文档驱动i.阶段划分、分而治之、控制开发过程的复杂性ii.自顶向下、由抽象到具体,顺序进行优点:规范管理开发过程、文档驱动缺点:初期系统的需求难以完全确定、文档驱动、周期长b)原型模型:i.针对:软件开发初期需求难以确定ii.基本思想:快速建立原型,完善用户需求iii.优点:用户参与、快速iv.缺点:快速弱功能、对开发环境要求高c)螺旋模型(风险驱动)d)增量模型(模块、功能驱动)e)迭代模型f)喷泉模型5、软件管理a)区别于其他工业产品生产管理的特点b)主要内容:开发计划与进度管理、文档管理、人员组织管理、成本管理、质量管理二、传统软件工程方法:a)软件计划i.问题定义ii.可行性研究1.经济可行性2.技术可行性3.法律可行性b)需求分析i.结构化分析SAii.面向数据流的分析方法1.DFD四个组成部分(表示方法、命名)2.DFD作图:需求描述DFD3.层次分解法(保持父图和其子图的平衡)4.数据字典(符号)c)软件设计i.总体设计1.模块独立性:高内聚2.作用域是控制域的子集3.单入单出4.规模、深度、宽度、扇入、扇出适当ii.传统设计方法1.面向数据流的设计方法(数据流图)a)结构化设计SD-对应有SD结构化需求分析、SP结构化实现b)DFD软件结构(层次图)i.变换设计ii.事务设计c)优缺点2.面向数据结构的设计方法a)Jackson方法b)Jackson图i.三种元素间的逻辑关系:顺序、选择、重复ii.可描述两种数据结构:数据结构、程序结构c)思想:数据结构与程序处理过程相互转换d)步骤:I/O DS对应关系Program Structure细化求精e)优缺点:i.数据入手ii.简化数据处理程序的设计iii.模块与独立性原则没有给予应有的重视iv.求提供对复杂系统设计过程的支持3.Parnas方法iii.详细设计1.结构化程序设计SPa)高效率---良结构b)三种基本控制结构、单入单出2.过程设计的工具d)实现/编码i.语言1.功能等价2.描述问题方便性有差异a)例如:OOPL---非OOPLii.程序设计风格e)软件测试i.目标ii.方法1.正确性证明2.静态测试3.动态测试a)黑盒(功能)测试i.等价类划分ii.边界值分析iii.错误推测b)白盒(结构)测试i.语句覆盖ii.判定覆盖iii.条件覆盖iv.判定—条件覆盖v.条件组合覆盖iii.步骤f)软件维护i.四种类型1.校正性2.适应性3.完善性4.预防性ii.提高可维护性的措施三、面向对象方法(Object-oriented Method)a)OOM与CM对比:区别—优点i.思维方式iv. 稳定性ii.可重用性v. 可维护性iii.大型软件b)OOSE方法i.三个阶段、五个模型、E CASE第二章.传统软件工程方法:软件计划具体任务:项目定义、可行性分析、软件计划其中:可行性分析:1、可行性研究实质:可行性研究试一次大大压缩和简化了的系统分析和设计过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程。

《软件工程》复习提纲

《软件工程》复习提纲

《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。

概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。

33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。

文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。

软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。

计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。

44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。

(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。

具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。

(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。

(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。

(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。

(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。

(5)维护性:软件产品可被修改的能力。

华软软件工程复习提纲

华软软件工程复习提纲
书名、作者、类别等描述书籍的基本信息统称,“ 关键字”则是代表其中之一,因此无需对其建模;
“功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用 到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;

筛选修选类



“计算机类”、“非计算机类”是该系统中图书的两大分类, 因此应该对其建模,并改名为“计算机类书籍”和“非计算机 类书籍”,以减少歧义; “外借情况”则是用来表示一次借阅行为,应该成为一个候选 类,多个外借情况将组成“外借情况列表”,而外借情况中一 个很重要的角色是“朋友”—借阅主体。虽然到本系统中并不 需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋 友的借阅情况,因此还是将其列为候选类。为了能够更好地表 述,将“外借情况”改名为“借阅记录”,而将“外借情况列 表”改名为“借阅记录列表”; “购买金额”、“册数”都是统计的结果,都是一个数字,因 此不用将其建模,而“特定时限”则是统计的范围,也无需将 其建模;不过从这里的分析中,我们可以发现,在该需求描述 中隐藏着一个关键类—书籍列表,也就是执行统计的主体。
得到候选类
书籍 计算机类书籍 非计算机类书籍 借阅记录 借阅记录列表 书籍列表

在使用“名词动词法”寻找类的时候,很多团 队会在此耗费大量的时间,特别是对于中大型 项目,这样很容易迷失方向。其实在此主要的 目的是对问题领域建立概要的了解,无需太过 咬文嚼字
关联分析建模
多重性分析建模
职责分析
书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时从统

顺序图示例-还书
顺序图示例-POS机
43
软件测试
软件测试
45

白盒测试 黑盒测试 对比测试(背靠背测试) Alpha测试和Beta测试的定义与区别

软件工程复习提纲(附答案)

软件工程复习提纲(附答案)

软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。

2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。

第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。

工具:为过程和方法提供自动化或半自动化的支持。

2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。

建模:它包括创建模型和设计两方面。

创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。

构建:它包括编码和测试。

部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

华工软件工程重点整理

华工软件工程重点整理

软件工程重点(吐血整理——林新发)红色的是重点中的重点前面数字是课本页码第一章概论1 什么是计算机软件计算机软件指计算机系统中的程序及其文档3软件的特点(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大(3)软件的使用没有硬件那样的机械磨损和老化问题4软件的分类(1)系统软件(如操作系统、编译程序等)、(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)6软件工程定义软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程7生存周期软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

这个过程即为计算机软件的生存周期软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护12能力成熟度模型CMM(了解一下)初始级、可重复级、已定义级、已管理级、优化级18瀑布模型(重)系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护第二章系统工程41系统工程的任务(1)识别用户的要求,确定待开发软件的总体要求和范围,(2)系统建模和模拟(3)进行成本估算,做出进度安排(4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

(5)生成系统规格说明书42可行性分析(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)(2)技术可行性(风险分析、资源分析、技术分析)(3)法律可行性第三章需求工程48软件需求指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求50需求获取方法与策略(重)建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况51 图3.253 创建用况模型的主要步骤(1)确定谁会直接使用该系统,即参与者(Actor)(2)选取其中一个参与者(3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程(5)描述该用况的基本过程54需求分析原则(重)1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节5.分析过程应该从要素信息移向细节信息第四章结构化分析与设计62第三段第一句概念(重)软件设计是把软件需求变换成软件表示的过程,主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段64软件设计的过程(重)制定规范、体系结构和接口设计、数据/类设计、部件级(过程)设计、编写设计文档、设计评审65设计的原则抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦合)68内聚耦合内聚是一个模块内部各个元素彼此结合的紧密程度的度量耦合是模块之间的相对独立性(互相连接的紧密程度)的度量76图形表示法(重)程序流程图、N-S图、PAD81 PDL的例子(重重重重重,有编程大题,可用中文写)PROCEDURE spellcheck IS 查找错拼的单词BEGINsplit document into single words把整个文档分离成单词lood up words in dictionary在字典中查这些单词display words which are not in dictionary显示字典中查不到的单词create a new dictionary 造一新字典END spellcheck外语法(关键字)、内语法(自然语言)第五章结构化分析与设计(重点章)86抽象和分解抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)自顶向下逐层分解充分体现了分解与抽象的原则87 图5.288数据流图(DFD )(重重)91数据流图画法1画出系统的输入和输出(顶层图)2画出系统内部(0层图)3画出加工内部(1~n 层图)4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)97分层DFD 的一致性和完整性一致性:父图与子图平衡、数据守恒、局部文件完整性:1每一个加工至少有一个输入数据流和一个输出数据流2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件3分层DFD 中的每个数据流和文件都必须命名(除了流入或流出文件的数据),并保持与数据字典一致4分层DFD 中的每个基本加工都应该有一个加工规约115结构图名词解释:SA 结构化分析 SD 结构化设计 SP 结构化程序设计结构图的基本成分有:模块、调用和数据模块是指具有一定功能的可以用模块名调用的一组程序语句,如函数、子程序等它们是组成程序的基本单元一个模块具有其外部特征和内部特征 实体-关系图 数据流图状态转换图 数据字典在SD 中,我们只关注模块的外部特征,而忽略其内部特征调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者 为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7 扇出(fan out):该模块直接调用的模块数目。

软件工程复习提纲.doc

软件工程的复习题纲第一章1、软件工程的生存周期:制定计划;需求分析;总体设计;详细设计;程序编写;软件测试;运行/维护。

2、软件工程的各个生存期模型的特点和适合项目。

(生存期模型有瀑布模型、V模型、原型模型、增量式模型和螺旋式模型)(部分是在网上找的,老师说考这些模型的特点,有什么情况下适合用什么来进行开发。

)瀑布模型的特点:(1)阶段间具有顺序性和依赖性。

(2)推迟实现的观点。

(3)每个阶段必须完成规定的文(每个阶段结束前完成文档审查, 及早改正错误。

)(4)下一个阶段可以回溯到前面的某个阶段适合于:1.开发阶段需求很少有变化2.分析设计人员对应用领域很熟悉3.低风险项目4.用户使用环境很稳定5.用户除提出需求外,很少参与开发工作类似的项目如:公司的财务系统;库存管理系统;短期项目V模型的特点:(1)简单易用(2)强调测试过程与开发过程的对应性和并行(3)没有反应实际的开发过程。

V模型适合的项目:❑在项目开始前,项目的需求很明确❑在项目开始前,解决方案也很明确❑对系统的性能安全很严格的项目❑类似的项目如:❑航天飞机等❑公司的财务系统原型模型的特点:(1)在需求定义之前,需要快速构建一个系统(2)根据构建系统的优缺点,用户给开发人员提出反馈意见(3)根据反馈意见修改软件需求规格,以便系统可以更正确的反映用户的需求(4)减少各种假设以及风险适合的项目:❑在项目开始前,项目的需求不明确❑需要减少项目需求的不确定性❑类似的项目如:❑确定显示界面❑第一次开发的产品,验证可行性增量式模型的特点:1.需求多变,可以分阶段提交产品。

2.分析设计人员对应用领域不熟悉,难以一步到位。

3.用户参与整个软件开发工程中,起到对客户起到镇静剂的作用,增量能够有计划地管理技术风险。

4.软件公司自己有较好的类库或构件库5.增量的内容写入合同,可能会引起客户的不满。

6.融合了瀑布模型的基本成分和原形实现的迭代特征,优点是人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可增加人力实现下一下增量。

软件工程复习知识要点

1 软件和软件工程概念软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。

2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序和数据是分别的。

程序的最小单位是类。

3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。

4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。

5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。

接受工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。

功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。

可移植性是指软件从某一环境转移到另一环境时所作努力得程度。

7.软件生存期由软件定义、软件开发和运行维护三个时期组成。

开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。

开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。

8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求微小环节。

(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提交管理机构进行分析评审。

2 软件工程方法和工具1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类相识问题和解决问题的方法和过程,从而使描述问题的问题空间和其解空间在结构上尽可能一样。

2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。

通过一系列变换将形式的规格说明细化成为程序。

3.面对对象 = 对象 + 类 + 继承 + 消息通信。

华南理工大学《软件工程》考试复习题

华南理工大学《软件工程》考试复习题《软件工程》试题一、单项选择题(每题2分,共20分)1. Windows XP Professional Edition是()A、系统软件B、人工智能C、事务软件D、应用软件2.计算机辅助软件工程,简称()A、SAB、SDC、SCD、CASE3.系统概要设计的主要成果是()A、界面要求B、可行性分析报告C、概要设计说明书D、程序流图4.检查软件产品是否符合需求定义的过程称为()A、确认测试B、集成测试C、验收测试D、验证测试5.模块内聚度越高,说明模块内各成分彼此结合的程度越()A、松散B、紧密C、无法判断D、相等6.软件设计阶段的输出主要是()A、程序B、模块C、伪代码D、程序设计规格说明书7.在瀑布模型中,将软件划分为若干个时期,可行性研究一般属于()A、维护时期B、计划时期C、运行时期D、开发时期8.数据结构设计是进行数据的()A、概要设计B、详细设计C、逻辑设计D、用户视图设计9.结构化分析的核心是()A、自底向上的抽象B、自顶向下的分解C、用DFD建模D、数据字典10.测试与调试最大不同在于()A、操作者的心理状态B、它们的行为取向C、使用的工具D、运用的方法二、填空题。

(每小题2分,共计20分)1.软件工程是一门工程学科,涉及软件生产的各个方面,从最初的(系统描述阶段)一直到使用后的(系统维护阶段),都属于其学科范畴。

2.系统的总体特性是系统整体上的属性,只有当所有子系统被整合形成完全的系统之后才能表现出来,系统特性有两种类型:(功能特性)和(非功能特性)。

3.在风险规划过程中,项目管理者要考虑已经识别出的每一个重大风险,并确定处理这个风险的策略。

这些策略可以分为三类,即规避策略,(最低风险策略)和(应急计划)等。

4.系统原型是软件系统的初始版本,它可以用来展示一些概念,给出设计选择、发现问题和可能的解决方案。

一个软件原型支持需求工程过程中的两个活动:(需求的导出和分析)和(需求的有效性验证)。

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结软件工程是指在软件开发的全过程中,应用工程的原理、方法和经验对软件进行开发、运行和维护的过程。

在软件工程这个学科中,包括了软件需求、软件设计、软件构建、软件测试、软件维护等多个阶段和技术。

下面是软件工程期末复习的要点归纳总结:1.软件开发过程模型-瀑布模型:各个阶段按顺序进行,每个阶段完成后不可回溯。

-增量模型:将软件划分为多个增量,每个增量独立进行开发。

-螺旋模型:将软件开发过程分为多个循环,每个循环都包括需求分析、设计、开发和测试。

-迭代模型:将软件开发过程分为多个迭代,每个迭代包括需求分析、设计、开发和测试。

2.软件需求工程-需求获取:通过需求采集、用户访谈、问卷调查等方式获取需求。

-需求分析:对需求进行整理、分类、抽象和规范化,得出系统需求。

-需求规格说明:将需求规格化为需求文档,包括用例、用例图、领域模型等。

-需求验证:通过评审、原型验证等方式验证需求的正确性和完整性。

3.软件设计-结构化设计:通过模块化、自顶向下、逐步求精的方式进行软件设计。

-面向对象设计:通过类、继承、多态等面向对象的概念进行软件设计。

-架构设计:设计软件的整体框架和组件之间的关系。

-接口设计:设计软件的各个组件之间的接口。

4.软件构建-编码:根据设计文档进行编码,可以使用编程语言、集成开发环境等工具。

-调试:通过调试工具,对程序进行调试,找出存在的问题并进行修复。

-集成:将各个模块集成到一起,进行整体测试,确保功能的正确性。

-部署:将软件部署到目标环境中,确保软件能够正常运行。

5.软件测试-单元测试:对软件的最小单元进行测试,如函数、方法等。

-集成测试:对软件的各个模块进行整合测试,确保模块之间的协调性。

-系统测试:对整个系统进行测试,确保系统满足用户需求。

-验收测试:由用户对软件进行测试,验证软件是否满足用户需求。

6.软件维护-改正性维护:修复软件中的错误。

-适应性维护:根据用户需求,对软件进行功能扩展。

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

华南理工大学《软件工程》复习要点
第一章概述
1.1软件:程序+相关文档和配置信息
通用软件,定制产品
软件工程一>计算机科学/系统工程
软件过程:1.软件描述2.软件开发3.软件有效性验证4.软件进化
软件过程模型:1.工作流模型2.数据流或活动模型3.角色/动作模型
(从特定角度提出软件过程的简化描述)
1.瀑布模型开发方法
2.进化式开发方法
3.形式化转换
4.基于可复用的组件的系统组合
软件成本
软件工程方法统一建模语言UML
CASE工具
1.2职业道德
1.机密
2.工作能力
3.知识产权
4.计算机滥用
第三章软件过程
软件描述软件设计和实现软件冇效性验证软件进化
3.1软件过程模型
瀑布模型:
需求定义和分析;系统和软件设计;实现和单元测试;集成和系统测试;运行和维护进化式开发:
探索式开发;抛弃式原型。

存在的三个问题:过程不可见,系统结构通常较差,特殊工具和技术的使用
形式化系统开发:
用形式化数学转换來将系统描述转换成一个可执行程序。

与瀑布模型之间的木质区别:
1•软件需求描述被精炼成一个用数学符号表达的详细的形式化描述
2.设计、实现和单元测试的开发过程被一个转换的开发过程所替代,在这个转换的开发过
程中,形式化描述经过-•系列转换变成一个可执行程序。

面向复用的开发:
1.组件分析
2.需求修改
3.使用复用的系统设计
4.开发和集成
3.2过程反复
混合模型增量式开发;螺旋式开发。

增量式开发:
瀑布模型的优势在于其简单的管理模型以及设计和实现的分离,这使得系统是鲁棒的、容易修改的。

述化式开发允许需求和设计决策的延迟,但是也导致了软件的较羌结构和难以理解和维护。

增量式开发是一个结合这两个模型的优点的综合方法。

冃的:减少返工
好处:
1.客户无需等到整个系统的实现。

(就可以使用)
2.客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验。

3.项冃总体失败的风险比较低。

4.重要的系统服务肖定接受了最多的测试,客户不太可能遇到失败。

螺旋式开发:每个回路被分成四个部分
1.目标设置风险评估和规避开发和有效性验证规划
特点:明确的风险考虑
3.3软件描述〃非重点
需求工程过程有四个主要阶段:
1.可行性研究需求导出和分析需求描述需求有效性验证
3.4.软件设计和实现〃非重点
多次反复的过程,设计过程屮的活动是交替进行的。

设计过程中的一些特别的活动包括:
1.体系结构设计抽彖描述接口设计组件设计数据结构设计
算法设计
设计方法——结构化方法
结构化方法所支持的模型:
1.数据流模型
2.实体-关系模型
3.结构化模型
4.面向对象方法
调试过程:错位定位,设计错误修复,程序错误修复,程序重测
3.5软件有效性验证〃非重点
测试过程:
1.单元测试模块测试子系统测试系统测试接受测试(a测试)
当一个系统要作为软件产品在市场上销售吋,所要进行的测试称为0测试。

3.6软件进化〃非重点
3.7软件描述
第四章项目管理
管理活动
项目规划项目计划:
项冃调度条形图,活动网状图
管理风险项日/产品/业务
第五章软件需求
分类。

用户需求系统需求软件设计描述;
5.1功能需求和非功能需求(领域需求)
5.2用户需求
不可能适用任何现实的模烈来描述,而是用口然语言、图表和直观的图形来叙述。

用户描述必须遵守的原则:按照设计好的一个标准的格式书写,使用一致的语言,加亮文木突出关键性的需求,尽量避免使用计算机专业术语。

5.3系统需求
结构化语言描述,PDL描述,借口描述。

5.4软件需求文档
引言一般描述,专门需求附录索引
第七章系统模型
上下文模型
行为模型:数据流模型,状态机模型
数据模型
对象模型:继承模型,对象聚合,对象行为建模
CASE!作平台
第八章软件原型系统开发
软件过程中的原型开发:进化式原型开发抛弃式原型开发
快速原型技术:适用动态高级语言数据库程序设计组件和应用集成
用户界面原型开发
第十章体系结构的设计
开发的体系结构模型可能包括:
静态结构模型,动态过程模型,接口模型,关系模型
10.1系统构成
容器模型
客户机/服务器模型
抽象机模型
10.2控制模型
集中式控制:调用■返回模型;管理者模型
基于事件的控制:事件驱动系统:广播模型;中断驱动模型
10.3模块化分解
面向对象模型
数据流模型
10.4领域相关的体系结构
类模型一>编译器模型:词法分析器,符号表,语法分析器,语法树,语义分析器代码生成器
参考体系结构一>OSI参考模型
第十二章面向对象的设计
面向对彖的分析
面向对象的设计
血向対象的程序设计
12.1对象和对象类
操作,方法。

泛化分层结构(画图)
并发对象服务器主动对象
12.2面向对象设计过程
系统上下文和使用模型
它们的补充模型:
1.系统上下文是一个静态模型,描述环境中的其他系统。

2.系统使用模型是一个动态模型,描述系统实际上是如何与坏境交互的。

体系结构的设计实例:气象台体系软件三个层:接口,数据采集,仪器。

对象识别
设计模型:静态模型,动态模型;子系统模型,序列模型,状态机模型;
接口对象描述
12.3设计进化
第十九章检验和有效性验证
有效性验证:我们是否在建立一个正确的产品?
检验:我们是否在正确的建立一个产品?
V&V过程
软件检查(静态)软件测试(动态)
缺陷测试,统计性测试
系统需要的信任程度依赖于系统的设计忖标、系统用户对它的期望和忖前的市场环境。

测试和调试的区別:前者是证明一个软件系统中存在缺陷的过程,后者是一个对缺陷定位和修改的过程。

19.1检验和有效性验证规划
V&V过程的规划应该在开发过程的早期就开始着手。

软件测试计划的结构:需求跟踪测试项目测试时间安排测试记录程序硬件和软件需求约束
19.2软件检查
程序检查:数据缺陷,控制缺陷,输入/输出缺陷,接口缺陷,存储管理缺陷,异常管理缺陷
19.3自动静态分析
控制流分析数据使用分析接口分析信息流分析路径分析
19.4净室软件开发方法
形式化描述增量式的开发结构化程序设计静态检验系统统计性测试
使用净室过程作为大型系统开发时,需要:描述团队,开发团队,认证团队
第二十章软件测试
20.1缺陷测试
目标是找出潜伏的缺陷。

(讣系统眾露具不正确的一面)软件测试的一个特性就是要证明有错,而不是证明没错。

黑盒测试(功能性测试):适用于由功能构成的和由对象构成的系统。

等价划分:找出程序必须处理的所有输入类型,然后做等价划分。

边界?
结构化测试(白盒测试):适用于相对较小的程序,从函数所用的算法可以找出等价划分。

路径测试:属于一种结构化测试策略。

实例:二分搜索流图
20.2集成测试
这里的测试是要发现组件交互中的问题。

测试根据系统描述来做,在一些系统组件一完成就开始进行。

自顶向F:桩到桩的测试。

自底向上:不需要系统体系结构设计的完成就可以进行。

比较:1.体系结构的冇效性2.系统演示3.测试的执行4.测试的观察)
接口测试
接口类型:1.参数接口2.共享内存接口3.程序接口4.消息传递
接口错i吴:接口课用,接口课解,计时错课
测试的一般准则
测试强度:在超过设计极限负荷的情况下,连续用例继续测试直至火败为止。

对于基于网络的分布式系统特别有用。

20.3面向对象的测试
测试的四个层次:
1.测试与对象关联的单个操作
2.测试单个对象类
3.测试对象祥
4.测试面向对象系统对彖类调试:1.对象中所有操作被单独隔离测试2.对彖所有加性的设置和访问的测试。

3.对彖的所有可能状态的测试。

集成测试的3个可用的方法:1.丿IJ例或基于场景的测试2.线程测试3.对象交互测试阅读以下两章,适当掌握。

第二十二章人员管理
22.4人员能力成熟度模型(能够分辨儿个模型)
其中的一部分是软件过程成熟度模型(CMM)
P-CMM冇5个层级的模型。

初始级
可重复级:补偿培训绩效管理人员配备沟通工作环境
已定义级:分享的文化基于能力的实践职业开发能力开发人力规划知识和技能分析已管理级:机构生产力定位机构能力管理基于团队的实践团队建设指导
优化级:持续的人力改革培训个人能力开发。

相关文档
最新文档