南京工程学院 软件工程复习路线

软件工程复习

分值分布:

  • 单选 10

  • 单选 10

  • 多选 20

  • 简答 20

  • 填空 20

  • 综合 20(DFD、用例图、白盒法三选一)

第一章

1.1 软件工程的产生和发展

  • 软件危机怎么产生?

    经费预算不足

    计划完成时间一拖再拖

    开发的软件不符合用户需求

    软件可维护性差

    软件可靠性差

  • 软件危机的表现

    软件产品质量差

    软件生产效率低

  • 什么叫软件工程

    工程化地管理软件项目

  • 软件工程的主要目标

    以较少的投资获取高质量的软件

  • 软件划分

    系统软件、支撑软件、应用软件

1.3 软件工程模型

  • 软件生命周期

    可行性研究→需求分析→概要设计→详细设计→编码→测试→运行与维护

  • 软件工程三要素

    方法、工具、过程

  • 过程模型

    • 瀑布模型

      适合需求明确的软件项目开发

      优点:简单易用,清晰地描述了软件生命周期的全过程,消除非结构化软件,降低软件的复杂性,促进软件开发工程化

      缺点:无法解决需求不明确的问题

      瀑布模型是整体开发模型

    • 增量模型

      适合于软件需求不明确、设计方案有一定风险的项目

      增量模型是非整体开发模型

    • 原型模型(循环模型)

      ①快速分析

      ②构造原型

      ③运行和评价原型

      ④修改与改进

    • 螺旋模型

      螺旋模型是一种迭代模型,将瀑布模型和增量模型结合,加入风险评估

      优点:降低开发风险

      缺点:增加开发成本

    • 智能模型(专家模型)

      智能模型也称为基于知识的软件开发模型,是知识工程与软件工程在开发模型上结合的产物,是以瀑布模型与专家系统的综合应用为基础建立的模型

1.4 软件开发方法

  • 面向结构化开发,包含哪三个

    结构化分析方法(Structured Analysis,SA)、结构化设计方法(Structured Design,SD)、结构化程序设计方法(Structured Program,SP)

  • 面向对象开发包括哪三个

    面向对象分析(Object-Oriented Analysis,OOA)、面向对象设计(Object-Oriented Design,OOD)、面向对象程序设计(Object-Oriented Program,OOP)

  • 敏捷开发

    敏捷开发方法是以人为核心,迭代式的开发方法

    • XP方法(极限编程)

      以用户需求作为软件开发的最终目标,是一种测试驱动的开发方法

      核心价值观:沟通、简单、反馈、勇气

第二章

2.1 软件需求的基本概念

  • 哪个是软件需求阶段?

    需求分析

  • 软件需求的分类

    用户需求

    • 系统需求

      功能需求

      非功能需求

      领域需求

2.2 需求工程过程

  • 获取需求的方法?

    了解领域知识

    需求收集

  • 需求获取的困难

    应用领域广泛

    非功能需求的建模技术缺乏

    沟通困难

    需求不断变化

  • 需求分析与建模(DFD)

    p56-57

  • 需求的有效性验证

    有效性

    一致性

    完备性

    可验证性

  • 需求变更方法

    软件基线

    软件家族法

    多视点法

2.4 需求分析方法与建模技术

  • SA

    SA法建立的分析模型以分层的数据流图为主,再辅以数据词典和加工的逻辑说明,对构成数据流图的主要成分做进一步描述

  • DFD三大原则

    先全局后局部,先整体后细节,先抽象后具体

  • 数据词典的4类条目

    数据流

    数据项

    文件

    基本加工

第三章

3.2 软件体系结构设计

  • 仓库模型

    有利于数据共享

    • 优点

      从一个子系统产生的数据可以被其他子系统共享数据

      各个子系统之间不需要知道其他子系统如何使用它产生的数据

      所有子系统都拥有一致的视图

    • 缺点

      子系统之间必须要有一致的视图

      数据结构可能被改变,翻译代价高

  • 层次模型

    • OSI七层模型

      应用层

      表示层

      会话层

      传输层

      网络层

      数据链路层

      物理层

  • 分布式系统模型

    B/S

    C/S

    • 优势

      开放性高

      容错能力强

      透明性高

    • 不足

      复杂性

      安全性

      不可预知性

  • 云计算模型

    • 3种服务模式

      软件即服务(Software as a Service,SaaS)

      平台即服务(Platform as a Service,PaaS)

      基础架构即服务(Infrastructure as a Service,IaaS)

    • 3种部署模式

      公有云

      私有云

      混合云

  • 雾计算

    在云资源和用户之间加了一个中间体提高计算速度

  • 控制模型

    • 分类

      • 集中控制模型

        调用-返回模型

        管理者模型

      • 事件驱动控制模型

        广播模型

        中断驱动模型

  • 模块分解

    • 原则

      低耦合,高内聚(数据耦合,功能内聚)

    • 基本单元

      功能

      逻辑

      状态

3.4 详细设计描述工具

流程图

N-S图

PAD问题分析图

PDL

判立表

判立树

3.6 MVC设计模式

模型-视图-控制器

第四章

  • UML

    • 静态建模

      用例图

      • 类图

        属性

        • 关系

          关联

          • 聚合

            整体

            部分

      对象图

      • 包图

        依赖

        泛化

      组件图

      配置图

    • 动态建模

      • 状态图

        状态

        事件

      • 活动图

        对象

        泳道

      • 顺序图

        激活

        时间轴

      合作图

      • 消息

        简单消息

        同步消息

        异步消息

  • 常用的连接关系

    关联:用于连接模型元素或链接(一条直线)(—————)

    依赖:一个元素依赖于另一个元素(一条虚线箭头)(- - - - - - - >)

    泛化:用于描述父类与子类之间的继承关系(一条空心箭头)(————▷)

    聚合:表示整体与部分的关系,由部分元素构成整体,其中菱形一端是整体类,另一端是部分类(一条菱形空心箭头)(—————◇)

    组合:比聚合更紧密的整体-部分关系(一条菱形实心箭头)(————◆)

    细化:依赖关系的一个变体,类B是类A细化的结果(一条虚线空心箭头)(类B - - - - - ▷ 类A)

第五章

5.1 程序设计语言的选择

  • 语言分类

    • 低级语言

      机器语言

      汇编语言

    • 高级语言

      面向过程

      面向对象

      混合型

  • 程序设计语言选择准则

    项目的应用领域

    算法和计算复杂性

    软件的执行环境

    性能因素

    数据结构的复杂性

    软件开发人员的知识水平及心理因素

5.2 程序设计方法

  • 面向对象的核心概念

    数据封装

    继承

    多态性

    泛型编程

5.6 软件复用

  • 软件复用

    合成复用

    渐进复用

第六章

6.1 软件测试概述

  • 软件测试的基本步骤

    ①单元测试

    ②集成测试

    ③确认测试

    ④系统测试

    ⑤验收测试

6.6 面向对象的测试

  • 面向对象的测试

    • 不同点

      能更早地定义出测试用例,早期介入进行测试可以降低成本

      尽早编写系统测试用例,以便开发人员与测试人员对系统需求的理解保持一致

      面向对象的测试模式更注重软件的实质

第七章

7.1 软件维护的基本概念

  • 维护类型

    完善性维护

    适应性维护

    纠错性维护

    预防性维护

7.4 软件可维护性

  • 可维护性

    可理解性

    可靠性

    可测试性

    可修改性

    可移植性

    效率

    可使用性

7.5 软件工程再工程技术

  • 逆向工程

    核心:抽取

    处理抽取

    界面抽取

    数据抽取

第八章

8.2 项目进度计划

  • 进度计划

    进度表

    甘特图

    时标网状图

    PERT、CPM

8.3 软件项目成本估算技术

  • COCOMO模型

    基本COCOMO模型

    中间COCOMO模型

    详细COCOMO模型

8.4 软件项目人力资源管理

  • 3类成员

    事业型

    自我实现型

    交际型

  • 凝聚力

    拥有内部标准

    成员紧密工作

    成员了解彼此工作

    无私编程

8.6 软件质量保证

  • 度量方法

    精确度量

    全面度量

    简易度量

  • CM

    标识变更

    控制变更

    确保变更

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值