![软件工程知识点整理_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e12/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e121.gif)
![软件工程知识点整理_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e12/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e122.gif)
![软件工程知识点整理_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e12/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e123.gif)
![软件工程知识点整理_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e12/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e124.gif)
![软件工程知识点整理_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e12/ce28a7e0-a1f5-42eb-87c3-b0ea5bfb5e125.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.1、 计算机软件概念软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述文档是为了便于了解程序所需的阐明性资料,文档一般是给人看的2、 软件发展的3个阶段(了解)程序设计阶段50至60年代程序系统阶段60至70年代软件工程阶段70年代以后3、 软件工程概念(1) 把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2) 研究(1)中提到的途径3、 软件生存周期概念及其6个阶段软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。为计算机软件的生命周期。软件生命周期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。
2、4、 瀑布模型的思想、特点及其局限性思想:(1)软件开发过程与软件生命周期是一致的(2)相邻二阶段之间存在因果关系(3)需对阶段性产品进行评审特点:(1)接受上一阶段活动的结果作为本阶段活动的输入(2) 依据上一阶段活动的结果哦实施本阶段应完成的活动(3) 对本阶段的活动进行评审(4) 将本阶段活动的结果作为输出,传递给下一阶段局限性:(1)缺乏灵活性,如用户需求一开始很难确定 (2)到最后阶段才能得到可运行的软件版本5、 增量模型思想、特点和局限性(1)增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充
3、,重复增量发布的过程,直至产生最终的完善产品。(2)增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征(3)增量模型强调每一个增量都发布一个可运行的产品(第一个增量是核心产品)·特点:增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。·增量模型特别适用于:1、需求经常变化的软件开发 2、市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发·增量模型能有计划地管理技术风
4、险,如早期增量版本中避免采用尚未成熟的技术。原型模型:原型应该包括目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能原型模型两个阶段(1)原型开发阶段(2)目标软件开发阶段原型的使用策略:废弃策略-主要用于探索型和实验型原型的开发。追加策略-主要用于演化型原型的开发。使用原型法需注意:(1)用户对系统模糊不清,无法准确回答目标系统的需求 (2)要有一定的开发环境和工具支持(3)经过对原型的若干次修改,应收敛到目标范围内,否则可能失败(4)对大型软件而言,原型可能非常复杂而难以快速形成,若没有现成的,不应考虑采用该方法优点有助于获取用户需求,加强对需求的理解尽早发现软
5、件中的错误支持需求的动态变化适合于需求动态变化、事先难以确定的系统局限性不能支持风险分析螺旋模型:·基本思想:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。·螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动制定计划 确定软件目标,选定实施方案,弄清项目开发的限制风险分析 分析所选方案,考虑如何识别和消除风险实施工程 实施软件开发客户评估 评价开发工作,提出修正建议·优点有助于获取用户需求,加强对需求的理解尽早发现软件中的错误支持需求的动态变化支持风险分析,可降低或者消除软件开发风险适合于需求动态变化,事先难以确定并且开发风险较大的系统风险概念
6、(1)风险涉及的是未来将要发生的事情(2)风险涉及改变(3)风险涉及选择,具有不确定性7、喷泉模型:喷泉模型是一种支持面向对象开发的模型体现迭代和无间隙特征 1、该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。 2、各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。 形式化方法概念:形式化方法是建立在严格数学基础上的一种软件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为
7、形式化方法。软件过程模型总结:1、瀑布模型建议线型流程的框架活动,这在软件世界里通常与当代软件开发的现实情况不符(例如,持续的变更、演化的系统、紧迫的开发时间)。但瀑布模型确实适用于需求定义清楚且稳定的软件开发。2、增量软件过程模型通过一系列的增量发布产生软件。3、演化过程模型认识到大多数软件工程项目的迭代特性,其设计目的是为了适应变更。演化模型,例如原型开发及螺旋模型,快速地产生增量的工作产品(或是软件的工作版本)。这些模型可以应用于所有的软件工程活动从概念开发到长期的软件维护。8、 基于计算机的系统概念以及6个组成元素基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素
8、的组合。六个元素:·软件指计算机程序、数据结构和相关的工作产品,以实现所需要的逻辑方法、规程或控制·硬件指提供计算能力的电子设备、支持数据流的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)·人员指硬件和软件的用户和操作者·数据库 指通过软件访问并持久存储的大型的有组织的信息集合·文档 指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、硬复制手册、联机帮助文件、Web站点)·规程 指定义每个系统元素的特定使用或系统所处的过程性语境的步骤9、 可行性分析的任务开发一个基于计算机的系统通常都受
9、到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。回答“是否可以做?”的问题软件工程要以经济为本,用户为先!10、 需求工程的6个阶段及任务I. 需求获取 通过与用户的交流,了解业务现状以及对待开发系统的期望需求获取收集的“原始材料”为进行需求分析提供了基础II. 需求分析与协商对需求进行分类组织,分析需求之间的关系检查需求的一致性、重叠和遗漏的情况根据用户的需要对需求进行排序。在需求获取阶段,经常出现以下问题: 提出的要求超出软件系统可以实现的范围或实现能力不同的用户提出了相互冲突的需求 III
10、. 系统建模借助建模技术对获取的需求信息进行分析和表达,排除错误和弥补不足,确保需求文档正确反映用户真实意图常用的分析和建模方法IV. 需求规约(Specification) (编写文档)通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求软件需求规约是分析任务的最终产物需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用V. 需求验证 (评审)需求开发阶段工作的复查手段对功能的正确性、完整性和清晰性,以及其它需求给予评价为保证软件需求定义的质量,评审应以专门指定的人员负责(应该是需求分析人员之外的其他人员),
11、并按规程严格进行 VI. 需求管理 (维护一致性)一种获取、组织并记录系统需求的系统化方案:对所有需求工程相关活动的规划和总体控制需求变更管理:一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程(变更的记录、分析、变更过程管理、追踪等)11、 软件需求的概念用户对目标系统在功能、行为、性能等方面的要求12、 软件需求规约主要包括的内容通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求软件需求规约是分析任务的最终产物需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用13、 软件设计阶段的任务数据/类
12、设计:将分析-类模型变成类的实现和软件实现所需要的数据结构体系结构设计:体系结构设计定义了软件的整体结构接口设计:接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信构件级设计:构件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述界面设计:14、 软件设计过程1、制定规范2、体系结构和接口设计3、数据/类设计4、构件级(过程)设计5、编写设计文档6、设计评审15、 模块化概念模块化,即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程16、信息隐藏的概念信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数
13、据),对于不需要这些信息的其他模块来说,是不可访问的。17、 功能内聚概念和数据耦合概念功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。数据耦合:两个模块之间仅通过参数表传递简单数据,则称为数据耦合。18、 结构化分析与设计中,判断结构好坏的标准高内聚低耦合。(了解)·模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱·一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高·模块独立性比较强的模块应是高内聚低耦合的模块19、 部件级设计(详细设计)的描述工具(描述方式)(了解)在构件级设计阶段,主要完成如下工作
14、:(1)为每个构件确定采用的算法,选择某种适当的工具表达算法的过程,编写构件的详细过程性描述(2)确定每一构件内部使用的数据结构(3)在构件级设计结束时,应该把上述结果写入构件级设计说明书,并且通过复审形成正式文档,作为一下阶段(编码阶段)的工作依据。20、 结构化分析模型包含哪些模型数据流图数据字典结构化语言判定表、判定树21、 系统响应时间的概念从发出指令到系统接收并且处理、反馈给指令者的时间过程。22、 界面设计的黄金原则·让用户拥有控制权 1)交互模式的定义不能强迫用户进入不必要的或不希望的动作的方式2)提供灵活的交互3)允许用户交互可以被中断和撤销4)当技能级别增长时可以使
15、交互流水化并允许定制交互5)使用户隔离内部技术细节·减少用户的记忆负担 1) 减少对短期记忆的要求2) 建立有意义的缺省3)定义直觉性的捷径4)界面的视觉布局应该基于真实世界的隐喻5)以不断进展的方式揭示信息·保持界面一致1) 允许用户将当前任务放在有意义的语境中2)在应用系列内保持一致性3)不要改变用户已经熟悉的用户交互模型23、 编程实现时需要注意的问题a) 细节包括标识符命名的注意问题b) 程序注释的注意问题c) 代码的视觉组织d) 数据说明的注意问题e) 语句结构的注意问题24、 软件测试的目的、测试用例的概念(了解)软件测试的目的:测试是一个为了发现错误而执行程序
16、的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试测试用例的概念测试用例是为了某个特殊目标而编制的一组测试输入、执行调节以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。25、各种逻辑覆盖准则之间的关系(了解)逻辑覆盖主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。通常希望选择最少的测试用例来满足所需的覆盖标准。主要的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖26、 单元测试、集成测试、确认测试和系统测试的对象、依据和任务·单元测试:对象:软件构件或模块依据:
17、设计描述任务:发现构件和模块内部错误·集成测试:对象:集成后的软件系统依据:每个模块都能独立的工作任务:揭露设计阶段产生的错误·确认测试:对象:经集成测试后的软件依据:软件需求规约任务:发现软件是否实现了规约的全部功能,文档资料是否齐全·系统测试:对象:经确认测试后的软件依据:软件是计算机系统的一部分,会受到系统其他元素的制约任务:测试是否符合软件工程中对软件的要求,是否有好的兼容性27、 测试和测试的概念、回归测试概念·测试是由一个用户在开发者的场所进行的,软件在开发者对用户的“指导下”进行测试。经测试后的软件称为版软件。·测试是由软件的最终
18、用户在一个或多个用户场所进行的,与测试不同,开发者通常不在测试现场,因此,测试是软件在一个开发者不能控制的环境中的“活的”应用,用户记录所有在测试中遇到的(真正的或想象的)问题,并定期把这些问题报告给开发者,在接到测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有的用户发布最终的软件产品。·回归测试就是对已经进行过的测试的子集的重新执行,以确保对程序的改变和修改,没有传播非故意的副作用。28、 测试完成标准(了解)Musa和Ackerman提出了一个基于统计标准的答复:“如果一个在按照概率的方法定义的环境中,1000个CPU小时内不出错运行的概率大于0995的话,那么我
19、们就有95%的信心说,我们已经进行了足够的测试”。使用指定的测试用例设计方法产生测试用例,运行这些测试用例均未发现错误(包括发现错误后已被纠正的情况),则测试可终止。观察测试阶段中单位时间内发现错误数目的曲线:29、 软件维护及4种类型的维护概念软件维护:指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。纠错性维护:为了改正软件系统中的错误,使软件能够满足预期的正常运行状态的要求而进行的维护适应性维护:为了使软件适应内部或外部环境变化,而去修改软件的过程改善性维护:满足使用过程中用户提出增加新功能或修改已有功能的建议维护预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动30、 改善性维护在维护中所占的比例最大。31、 提高可维护性的方法确定质量管理目标和优先级规范化程序设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年五年级语文上册教学总结样本(二篇)
- 2025年个人商铺租房合同标准版本(三篇)
- 医药行业物流运输合同范文
- 加油站装修项目居间协议
- 城市道路监理居间合同
- 乳制品低温运输托运协议
- 医疗器械无菌运输管理合同
- 海鲜冷链物流代理合同
- 酒泉灰色烧结砖施工方案
- 市政项目渣土清理运输协议
- 呆死帐的发生与预防课件
- 10000中国普通人名大全
- 导数常见函数图像
- 起重机械安装吊装危险源辨识、风险评价表
- 华北理工儿童口腔医学教案06儿童咬合诱导
- 中国建筑项目管理表格
- 高一3班第一次月考总结班会课件
- 公共政策分析导论教学课件汇总完整版电子教案
- 我国油菜生产机械化技术(-119)
- 大跨度斜拉桥上部结构施工技术(图文并茂)
- 论人口模型论文计划生育政策调整对人口数量结构及其影响
评论
0/150
提交评论