架构设计

2018《软件工程导论》期末知识点复习

2018-06-26  本文已影响181人  如琢待磨

title: 2018《软件工程导论》期末知识点复习
categories: 计算机专业课
tags: "软件工程"


前言:软件工程知识点总结,仅仅为了期末考试。带*不重要了解一下即可,黑体重点部分,需记忆

<--more-->

第一章 软件工程概论

  1. *软件:是计算机程序、方法、规则、相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档)
  2. *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和软件质量难以稳定。
  3. *软件的质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
  4. 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
  5. 软件危机的主要表现:
  1. 软件危机产生的主要原因:
  1. 软件危机如何解决:既要有技术措施(方法和工具),又要有必要的组织管理措施。
  2. 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
  3. 软件工程以关注软件质量为目标,包括方法、过程、工具、范式四个要素。
  4. 软件工程方法学:把软件生命周期全过程中使用的一整套技术方法的集合成为方法学(也称范型paradigm),包括三个要素:方法,工具和过程.目前使用最广泛的是传统方法学和面向对象方法学
  1. 软件生命周期
    软件生命周期
  1. 软件过程:指为了获得高质量软件所需完成一系列任务框架,它规定了完成各项任务的工作步骤;通常使用生命周期模型简洁地描述软件过程
  2. 生命周期模型:也称过程模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序
  3. 瀑布模型

①瀑布模型特点:

②瀑布模型适用:在开发的早期阶段软件需求被完整确定

③瀑布模型的优点: 可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证

④瀑布模型缺点:瀑布模型是由文档驱动;最终产品不能真正满足客户的需求

  1. 快速原型模型:首先建立一个反映用户主要需求的原型系统,让用户体验,之后提出意见,随之进行修改,再让用户体验...直至用户完全满意,据此写出规格说明文档
  2. 增量模型:也称渐增模型,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
  1. 螺旋模型:把它看作在每个阶段之前增加了风险分析的快速原型模型。
  2. *螺旋模型与增量模型的区别:(1)两者迭代层级不同:增量模型在活动级迭代;螺旋模型在过程级迭代;(2)两者需求分析的时间不同:增量模型常常是先做总体需求分析和设计,然后在编码和测试中逐个增量开发;螺旋模型在开发周期内采用简化瀑布模型或快速模型;(3)两者提交软件的方式不同:增量开发在上次增量的基础上提交新的一部分软件;螺旋模型每次迭代都提交一个新的完整的软件版本;(4)两者减少风险的方式不同:增量模型使用未成熟技术和经常的客户反馈等方法减少风险;螺旋模型中直接加进风险识别,风险分析、风险控制,计划性较强.
  3. 喷泉模型:典型的具有面向对象软件开发过程迭代和无缝的特性
  4. Rational 统一过程(Rational Unified Process Rational,RUP): RUP核心:RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。RUP特点:用例驱动;以体系结构为中心(高内聚低耦合);增量和迭代开发。
  5. RUP最佳实践
  1. RUP软件开发生命周期

①核心工作流 (纵轴代表核心工作流,横轴代表时间) 前6个为核心过程工作流, 后3个为核心支持工作流

②工作阶段

③RUP迭代式开发

第二章 可行性研究

  1. 可行性研究的目的不是为了解决问题,而是确定问题是否值得去解决
  2. 可行性:技术可行性、经济可行性、操作可行性、运行可行性、法律可行性。
  3. 可行性研究过程
  1. *系统流程图:是概括地描绘物理系统的传统工具。用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。表达的是数据在系统各部件之间流动的情况
符号 名称 说明
矩形 处理 能改变数据值或数据位置的加工或部件。如程序 、处理机、人工加工等都是处理
平行四边形 输入输出 表示输入或输出,是一个广义的不指名具体设备的符号
圆形 连接 指出转到图的另一部分或从图的另一部分转来,通常在同一页上
矩形下面 加个三角形 换页连接 指出转到另一页图上或另一页图转来
箭头 数据流 用来连接其他符号,指明数据流的方向
  1. *数据流图表示方法:实线表示数据流;虚线表示控制流;圆框代表处理数据的过程;矩形框表示产生与接收数据的对象;平行线表示数据存储区。
  2. 数据字典定义组成:数据流;数据流分量(即数据元素);数据存储;处理
  3. 数据字典定义数据的方法(对数据自顶向下分解):
符号 含义
= 等价于或定义为
+ 和(连接两个分量)
[] 或,多个用|隔开
{} 重复
() 可选
标识符 字母字符+字母数字串
字母数字串 0{字母或数字}7
字母或数字 [字母字符|数字字符]
  1. 成本效益分析的方法及如何运算:
    第一步估计开发成本、运行费用和新系统将带来的经济效益。需从货币时间价值,投资回收期,纯收入,投资回收率
    方法有三种:

第三章 需求分析

  1. 需求分析的任务
  1. 分析建模与规格说明
    模型: 就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成
    需要建立的三种模型:数据模型、功能模型和行为模型
  1. 状态转换图符号含义及怎么画 P65,P67
  2. 层次方框图:是用树形结构的一系列多层次的矩形框描绘数据的层次结构。最顶层矩形框:代表完整的数据结构;下面各层的矩形框代表数据的子集;最底层的矩形框代表实际数据元素

第四章 形式化说明技术

  1. 按形式化程度分为三类:
  1. 非形式化的缺点
  1. 形式化的优点:
  1. 应用形式化准则

第五章 总体设计

  1. 设计过程2个阶段(系统设计阶段:确定系统的具体实现方案 和 结构设计阶段:确定软件结构); 9个步骤
  1. 设计原理的相关概念
  1. 耦合:是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合程度强烈影响着系统的可理解性、可测试性、可靠性、可维护性。设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境的耦合的范围,完全不用内容耦合。
  1. 内聚:标志着一个模块内各个元素彼此之间结合的紧密程度,它是信息隐藏和局部化概念的扩展。设计原则:力求高内聚,通过提高模块间的内聚降低耦合从而使模块获得较高的独立性。高内聚意味着低耦合
  2. 低内聚
  1. 中内聚
  1. 高内聚
  1. 7种内聚的优劣评分
名称 得分
功能内聚 10
顺序内聚 9
通信内聚 7
过程内聚 5
时间内聚 3
逻辑内聚 1
偶然内聚 0
  1. 启发规则
  1. 描绘软件结构的图形工具(例子见P102,P103)

第六章 详细设计

  1. 人机界面设计指南:P123,P124
  1. 程序流程图:
  1. 盒图(N-S图)的特点:
  1. 问题分析图(PAD图):使用二维结构的图来表示程序的控制流。其优点:
  1. 判定表:当算法中含有多重嵌套的条件选择时
  1. 判定树:判定表变种
  1. PDL(过程设计语言):也称伪码,具有严格的关键字外部语法,用于定义控制结构和数据结构,内部语法灵活自由,适应各种工程项目。

其优点:

其缺点:

  1. McCabe方法:McCabe根据程序控制流的复杂程度度量 程序的复杂程度,这样度量出的结果称为程序的环形复杂度

①流图的表示:

②计算环形复杂度的方法:

第七章 实现

编码:把详细设计结果翻译成某种程序语言书写的程序
软件测试:是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审

第七章实现(编码和测试).png
补充

测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。

白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次;对所有逻辑判定的取值(“真”与“假”)都至少测试一次;在上下边界及可操作范围内运行所有循环;测试内部数据结构的有效性等。

黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能;界面错误;数据结构错误或外部信息(如外部数据库)访问错误;性能错误;初始化和终止错误。

第八章 维护

  1. 软件维护的定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程
  2. 结构化维护和非结构化维护

①非结构化维护

  1. 决定软件可维护的因素

第八章 面向对象方法学引论

  1. 面向对象方法学要点

①基本原则:尽可能模拟人类习惯的思维方式,是开发软件的方法和过程尽可能接近人类认识的世界解决问题的方法和过程
②4个要点

  1. 对象:是描述该对象属性的数据以及对这些数据施加的所有操作封装在一起构成的统一体

①对象的定义

  1. 其它概念

第十章 面向对象分析

  1. 建立对象模型

①三个子模型,按所解决的问题进行划分

②5个层次

③对象模型创建的步骤

第十一章 面向对象设计

  1. 面向对象设计准则
  1. 类构件的重用方式
上一篇 下一篇

猜你喜欢

热点阅读