软件工程主要知识点文档_第1页
软件工程主要知识点文档_第2页
软件工程主要知识点文档_第3页
全文预览已结束

下载本文档

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

文档简介

1、软件危机的定义指在软件的开发和维护过程中所遇到的一系列严重问题。软件工程为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。三、软件工程的基本准则1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6. 开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性方法学:是指软件生命周期全过程中使用的一整套技术方法的集合,也称为范型。方法、工具和过程软件生存周期的定义软件定义、软件开发和运行维护二、各个阶段的基本任务1.问题定义 2.可行性研究3.需求分析4.总体设计5.详细设计 6.编

2、码和单元测试7.综合测试 8.软件维护过程为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。描述了 who、when、what、how,用以实现某一个特定的具体目标瀑布模型适合于功能,性能明确,完整,无重大变化的软件开发。在开发前均可完整, 准确,一致和无二义性地定义其目标,功能和性能等的系统。(局限性:瀑布模型在大量消除非结构化软件,降低软件的复杂性,促进软件开发工程方面起到很大作用。快速原型模型已有类似原型或有原型开发工具;进行产品移植或升级。增量模型优点:短时间内提交部分产品,降低开发风险;留给开发人员一定的需求分析时间;也留给用户一定的学习时间,避免较大的

3、心里压力。螺旋模型主要适用于内部开发的大规模软件项目需要有丰富的风险评估专家。需求的定义 对用户讲是对软件产品的解释,是用户对目标软件系统在功能、行为、性能、 设计和约束等方面的期望业务需求、用户需求和功能需求,另外还有非功能需求。数据字典的任务是:对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。5类词条:数据流、数据项、文件、加工、外部实体。需求分析的过程1定义系统的边界:建立系统与其外部实体间的界限,明确接口处的 信息流。2分析需求可行性:分析每一个需求实现的可行性,确定与实现相关的开发 风险。3确定需求优先级:需求优先级有

4、助于开发组织和版本规划。4建立需求分析模型:通过建立需求的多种视图,揭示出需求的不正确、不一致、遗漏和冗余等更深 的问题。5创建数据字典:确保客户和开发人员使用一致的定义和术语。总体设计的基本任务系统设计设计软件的结构设计过程1.设想供选择的方案 2.选取合理的方案3.推荐最佳方案4.功能分解5.设计 软件结构6.设计数据库7.制定测试计划8.书写文档9.审查和复审模块化就是把程序划分成独立命名且可独立访问的模块。四属性接口;功能;状态 逻辑作用结构清晰可靠性高可修改性降低复杂度、便于分工抽象是人类在认识复杂现象的过程中使用的最强有力的思维工具。软件工程过程的每一步都是对软件解法的抽象层次的一

5、次精化。模块化的概念与抽象是紧密相关的。模块独立 每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接 口简单即:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立耦合1无直接耦合:2数据耦合3标记耦合4控制耦合5公共 6内容耦合讨论1怎样从需求分析阶段的数据流图DFD产生概要设计说明书或模块说明书?第1步:精化DFD ;第2步:确定DFD的类型(分为变换型和事务型两类);第3步:分解上层模块,设计中下层模块结构;第4步:根据优化准则对软件结构求精。第5步:描 述模块功能、接口及全局数据结构;第 6 步:复查,如果有错,转向第 2 步修改完善,无 错则

6、进入详细设计。六 详细设计 根本目标是如何实现所要求的系统,即要对目标系统进行精确描述,为编码 阶段做准备。 基本任务 1模块的算法设计 2 模块内的数据结构设计 3 模块接口设计 用户界面设计是一个迭代过程,即先创建设计模型,再用原型实现这个设计模型,并由用 户试用和评估,然后根据用户意见进行修改。 软件测试的特性:挑剔性、复杂性、不彻底性、经济性软件测试准则( 1) 所有测试都应能追溯到用户需求(2) 应该远在测试开始之前就制定出测试计划。(3)把Pareto原理应用到软件测试中(4)测试应从“小规模”开始,并逐步进行“大规模”( 5) 穷举测试是不可能的( 6) 为了达到最佳的测试效果,

7、应该由独立的第三方从事测试工作。测试步骤 1. 模块测试(单元测试) 2. 子系统测试(集成) 3. 系统测试(集成测试) 4. 验 收测试(确认测试) 5. 平行运行逻辑覆盖 1.语句覆盖 2.判定覆盖 3.条件覆盖 4.判定 /条件覆盖 5.条件组合覆盖 6.路径覆盖 调试途径 1. 蛮干法 2. 回溯法 3. 原因排除法 对分查找法、归纳法和演绎法 软件工程的目的是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统 的总成本。软件维护 :是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 11改正性维护 2 适应性维护 3完善性维护 4预防性维护 决定软件

8、可维护性的因素 1. 可理解性 2. 可测试性 3. 可修改性 4. 可移植性 5. 可重用性 系统文档指从问题定义、需求说明、系统设计、实现到验收测试计划这样一系列和系统实 现有关的文档提高可维护性的方法 1建立明确的软件质量目标 2 使用先进的软件开发技术和工具 3进行明 确的质量保证审查 4 选择可维护的程序设计语言 5 改进程序文档 面向对象方法学的出发点和基本原则:是尽可能使开发软件的方法与过程尽可能接近人类 认识世界解决问题的方法与过程,使得描述问题的问题空间与实现解法的解空间在结构上 尽可能一致。要素 1 抽象 2、封装性(信息隐蔽) 3、共享性 4、强调对象结构 面向对象建模得

9、到的模型包含系统的 3 个要素:静态结构 (对象模型 )、交互次序 (动态模型 ) 和数据变换 (功能模型 )。5 个层次组成: 主题层、类与对象层、结构层、属性层和服务层对应 找出类与对象,识别结构,识别主题,定义属性,定义服务。建立动态模型的步骤: 第一步,准备典型的交互序列的场景 第二步,确定对象之间的事件和为每个场景准备一 个事件跟踪图 第三步,为每个重要的动态行为的类开发一个状态图最 后,检验状态图之间共享事件的一致性和完全性。面向对象设计的准则 1. 模块化 2. 抽象 3. 信息隐藏 4. 弱耦合 5. 强内聚 6. 可重用 类构件 3 种重用方式,分别是实例重用、继承重用和多态重用 测试单个类的方法主要有随机测试、划分测试和基于故障的测试等3 种。采用基于线程或基于使用的策略完成集成测试 代码行技术的主要优点:代码是软件开发项目 “产品”,很容易计算它的行数。 代码行技术的缺点是: 1 源程序仅是软件配置的一个成分,用它的规模代表整个软件的规 模似乎不太合理; 2用不同语言实现同一个软件所需要的代码行数并不相同; 3 这种方法不 适用于非过程语言 软件质量: 是指软件与明确地叙述的功能、 性能需求、 文档中明确描述的开发标准以及任何 专业开发的软件产品都应该具有的隐含特

温馨提示

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

评论

0/150

提交评论