软件工程导论复习总结

软件工程导论

    • 第一章 软件工程学概述
    • 第二章 可行性研究
    • 第三章 需求分析
    • 第五章 总体设计
    • 第六章 详细设计
    • 第七章 实现
    • 第八章 维护
    • 第九章 面向对象方法学索引
    • 第十、十一、十二章 面向对象分析、设计和实现
    • 第十三章 软件项目管理
    • 面向考试复习:

第一章 软件工程学概述

1.软件危机:软件危机是指在见算计软件的开发维护过程中遇到的一系列严重问题。

2.软件危机的主要表现

  • 对软件开发成本和研制进度的估计不准确
  • 用户对“已完成”的软件不满意
  • 软件产品的质量差,不够可靠
  • 软件的可维护性差
  • 软件缺少文档资料
  • 软件成本在计算机系统总成本中所占比例逐年上升
  • 软件开发生产率的提高跟不上计算机应用迅速普及深入的趋势

3.产生软件危机的原因

  • 软件日益复杂和庞大
  • 软件开发管理困难
  • 软件开发技术落后
  • 生产方式落后
  • 开发工具落后
  • 软件开发费用不断增加

4.IEEE定义软件:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。

  • 狭义定义:软件=程序+数据+文档
  • 程序:能够完成预定功能和性能的可执行的指令序列
  • 数据:使程序能够适当地处理信息的数据结构
  • 文档:开发、使用和维护程序所需要的图文资料

5.软件工程:软件工程是指导计算机软件开发维护的一门工程学科

6.软件的特性:复杂性、不可见性、经常变化、质量难以稳定。

7.软件工程的七条基本原理

  • 用分阶段的生命周期计划严格管理
  • 坚持进行阶段评审
  • 实行严格的产品控制
  • 采用现在程序设计技术
  • 结果要能够清楚地审查
  • 开发人员少而精
  • 承认不断改进软件工程实践的必要性

8.软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合称为方法学(也叫”泛型”)。
软件工程方法学的三要素:方法、工具、过程

目前使用的最广泛的是 传统方法学面向对象方法学

  • 传统方法学(也叫生命周期方法学或结构化泛型):把软件的生命周期划分为若干个阶段,顺序完成每个阶段,前一阶段结束的标准是后一阶段开始的标准,每个阶段结束前都要进行严格技术审查和管理复审,没有通过审查则进行返工,文档资料是审查的重点。特点:保证软件质量,提高可维护性。
  • 面向对象方法学:把数据和行为堪称是同等重要的。四个要点:1.用对象分解取代传统方法的功能分解。2.把所有对象都划分成类。3.类间有继承关系。4.对象仅能通过发送消息相互联系。特点:提高重用性。

9.软件的生命周期

类图表示
  • 定义属性:可见性 属性名:类型名=初值
    可见性:(+)public、(-)private、(#)protected
    例:-管理员:String=“增删改查”
  • 定义服务:可见性 操作名(参数表):返回类型{性质串},参数表是用逗号分割的形式参数序列语法 “参数名:类型名=默认值”
  • 表示关系的符号:

    • 关联
      1.普通关联:通常关联是双向的,可以给关联取名字,直线两端可以写上关联重数,”*”代表多重,未标注重数默认为1
      2.关联的角色:这书上它不说人话,我也没看懂(先放着)
      3.限定关联:对关联的含义做某种约束,可以把模型的重数从1对多变成1对1,或从多对多变成多对1
      4.关联类:进一步说明对象间关联的性质。引入一个关联类来记录这些附加信息。关联类通过虚线与关联连接。(说人话就是牵跟虚线对该关联进行解释说明)
    • 聚集:聚集是关联的特例,表示整体——部分的关系
      1.共享聚集:处于部分方的对象可同时参与多个处于整体方对象的构成。(相当于多对多关系,一个学生可以是同一个高数教学班,也可以是同一个英语教学班)表示方法:在整体类的地方画一个空心菱形
      2.组合聚集:部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失。(简单来说就是大类没了,其中包含的小类也随之消失),用实心菱形表示。
    • 泛化:一般来说是继承关系
      1.普通泛化:普通继承关系
      2.受限泛化:加一些约束条件如:多重(多次继承同一个上层基类)、不相交、完全(父类中所有子类都在类图中穷举)、不完全
    • 依赖和细化
      1.依赖:就是你想象中的依赖,一个类的模型元素改变会影响依赖于它的模型元素
      2.细化:同一个事物在不同抽象层次上描述时,描述间具有细化关系。(说人话就是解释的更清楚了叫细化)

    5.动态模型
    好像不考,不是很确定

    6.功能模型

    • 用例图
      1.系统:系统被看作一个测试用例的黑盒子
      2.用例:可以被行为者感受到的、系统的一个完整的功能。特征:用例代表某些用户可见的功能,实现一个具体的用户目标;用例总是被行为者启动的,并向行为者提供可识别的值;用例必须是完整的。
      3.行为者:与系统交互的人或其他系统,它代表外部实体。用例总是由行为者启动的。
      4.用例间的关系:泛化关系(分为扩展关系和使用关系)、包含关系
    • 用例建模:一个用例模型由若干用例图组成。创建用例模型的步骤为:1.定义系统 2.寻找行为者和用例 3.描述用例 4.定义用例之间的关系 5.确认模型,其中寻找行为者和用例是关键

    7.三种模型之间的关系

    对象模型 动态模型 功能模型
    对象的静态结构及相互关系 与实践和顺序有关的系统性质 与值的变化有关的系统性质
    描述系统的数据结构 控制结构 系统的功能
    干事的实体(主体) 什么时候干 干什么

    第十、十一、十二章 面向对象分析、设计和实现

    • 复杂问题的对象模型的5个层次分别为:主题层、类与对象层、结构层、属性层、服务层

    其他的自己看吧,我也不知道重点在哪里…

    第十三章 软件项目管理

    1.软件配置项:软件过程的输出信息可以分为3类:程序、文档、数据

    2.基线:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。(说人话:基线建立之前随便改,建立之后也可以改但是很麻烦)

    面向考试复习:

    • 先拿大题分:(排名越前面越重要)

    1.测试用例

    2.数据流图

    3.类图(见第9章)

    4.系统结构图

    1)从新系统数据流程图出发导出初始结构图。即首先把整个系统看作一个模块,然对其逐层分解。分解时,要遵守划分模块的基本原则和完成数据流程图所规定的各项任务及其处理顺序。每分解出一层模块,都要标明信息传递情况并考虑每一模块的实现方法,同时还要考虑系统结构的层数。
    (2)对系统结构图进行改进。即从提高模块的独立性目标出发,检査每一个模块,是否还可以降低关联度,提高聚合度,如果可以,就要对其改进,直到理想为止。
    划分模块的规则:
    1.做到高内聚、低耦合
    2.模块大小适中
    3.深度、宽度、扇入、扇出适当
    4.模块的作用域在控制域之内
    5.降低接口复杂度
    6.单入口单出口
    7.模块功能可预测

    5.实体联系图(E-R图)
    6.用例图

    方框代表系统椭圆代表用例线条人代表行为者直线连接行为者用例,表示两者间交换关系,用例间的关系分为扩展(extend)和使用(include)关系。画用例图的关键是定义系统寻找行为者和用例描述用例定义用例间的关系

    7.流程图
    8.控制流图
    9.状态转移图
    10.顺序图(这篇文章讲得详细)

    https://blog.csdn.net/litianxiang_kaola/article/details/53957312.

    11.Jackson图
    12.对象模型
    13.等价类测试法

    • 其他重点慢慢更…

    来源:吕祖茂

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年11月10日
    下一篇 2020年11月10日

    相关推荐