BIT自动化软件工程导论开卷考试索引

说明

本文为开卷考准备资料(以目录为主)

各位同学,学校已排定《软件工程导论》的考试时间,为12月20日(周五)上午10:10-11:10,1小时。

考试为开卷,可以携带和使用任何纸质材料,但不能携带和使用任何电子设备。

考试题型及分数分布为:

卷面满分:40分。

一、判断正误并说明原因(共2题,每题5分,总分10分)

二、简答题(共2题,每题5分,总分10分)

三、软件工程工具使用题(总分10分)

四、软件开发案例分析题(总分10分)

第一章 绪论

一、软件概念和特点

  1. 软件开发的实例

  2. 软件发展历史

  3. 软件定义

二、软件危机的产生

  1. 表现

  2. 原因

  3. 软件工程的提出(定义、内容)(方法+工具+过程)

  4. 软件的生命周期(软件定义+软件开发+使用与维护+软件废弃)

  5. 软件工程的基本原理(生命周期、阶段评审、产品控制、现代化程设、责任清晰明确、开发人员少而精、不断改进过程)

第二章 软件工程方法学和软件过程

一、软件工程方法学

  • 生命周期方法学(分阶段计划控制、顺序实施、结构化分析设计)

    • 严格的分阶段计划(时间分解)

    • 瀑布式开发模式(顺序实施)

    • 严格技术审查和管理复审(技术、经济管理)

    • 各阶段采用结构化技术(自上而下、逐步求精)

  • 面向对象方法学(面向对象、类的继承复用、循环迭代开发)

    • 以对象作为基本的软件构件

    • 软件定义和实现的统一

    • 重视软件复用

    • 通过逐步演化来完成软件开发(循环迭代)

  • 敏捷方法学(应对用户需求迅速变化、短周期角度、写作轻量级开发)

    • 追求软件交付使用终极目标(基于软件按期交付、满足用户实际需求)

    • 强调全面合作和交流(甲乙方有效交流)

    • 重视软件开发中人的个性(开发人员积极性)

    • 强调团队的力量(合力)

    • 灵活采用各种开发和管理方式

二、软件过程

  • 瀑布模型

  • 快速原型法(基于瀑布模型,均不能适应需求的变化)

  • 增量模型

  • 螺旋模型

  • RUP统一软件开发过程(面向对象,基于网络)

  • 喷泉模型(仅适用于面向对象方法学)

  • 变换模型

  • 极限编程(符合敏捷)

  • Scrum(自组织)

  • 微软过程

第三章 生命周期方法学

一、生命周期方法学的阶段划分

  • 软件定义

    • 问题定义

    • 可行性研究

    • 需求分析

  • 软件开发

    • 总体设计

    • 详细设计

    • 编码实现

    • 综合测试

  • 维护阶段

  • 软件废弃

二、软件定义阶段(实质:系统建模)

问题定义、可行性研究、需求分析

  1. 问题定义:总目标、标志性文档

  2. 可行性研究:技术、经济、操作、标志性文档、进行步骤(注重高层逻辑not具体逻辑)

  3. 软件定义阶段常用工具

    1. 系统流程图

    2. 数据流图

    3. 数据字典

    4. 实体-联系图

  4. 需求分析

三、软件开发阶段

  1. 软件设计的基础理论

    1. 程序、模块化、结构图、抽象和逐步求精(结构化技术)、模块独立性(耦合、内聚)

  2. 总体设计:总体实现方案、总体结构、标志性文档(系统设计说明书)、结构化设计方法(面向数据流的设计)

  3. 详细设计:标志性文档(模块设计说明)、自顶向下(存根模块)or自底向上(驱动模块)

    1. 结构化程序设计(Dijkstra取消GOTO)(逐步求精)

    2. 盒图(N-S图)

    3. 过程设计语言PDL(伪码)

    4. 判定表或判定树

  4. 编码实现:所有源程序、标志性文档(源程序、单元测试报告)、编程风格

四、软件综合测试

  1. 软件测试的基础理论

    1. 测试目标

    2. 测试方法

    3. 测试准则

    4. 测试步骤

  2. 单元测试

  3. 集成测试

  4. 验收测试(对象:整个软件)

  5. 测试数据设计

  6. 测试工具

  7. 程序调试

  8. 软件可靠性理论(有计算公式)

五、软件维护

  1. 维护的定义和分类(改正、适应性、完善性、预防性、)

  2. 维护过程(人员组织、事件流、文档)

  3. 可维护性

  4. 逆向工程和再工程

第四章 面向对象方法学

零、生命周期方法学回顾

  • 严格的分阶段计划

  • “瀑布式”开发模式

  • 严格的技术审查和管理复审

  • 结构化技术

  • 对功能需求分析的依赖

  • 软件重用性差

  • 维护代价高

  • 与现实世界的差异

  • 与硬件和运行平台发展趋势的分期

  • 数据与处理过程的分离

一、面向对象方法学基础知识

  1. 基本概念(对象、以数据为核心、消息和方法、属性、类和实例、继承)

  2. 特点(对象、类、继承、消息机制)

  3. 优点

二、统一建模语言UML

  1. UML历史

  2. UML内容(基础结构上层结构、对象约束语言、图交换)

    1. 核心:定义一个元语言的核心,进行复用

    2. 模型基本符号:图

  3. 静态描述工具(类图、对象图)

  4. 功能模型描述工具(用例图)

  5. 动态模型描述工具(状态机图、顺序图)

三、面向对象分析

  1. 一般过程

  2. 简历系统静态模型

  3. 建立系统功能模型

  4. 建立系统动态模型

四、面向对象设计

  1. 一般过程(演进迭代、逐步精华)(喷泉模型)

  2. 问题域子系统设计

  3. 任务管理子系统设计

  4. 数据管理子系统设计

第五章 敏捷方法学

一、敏捷思想提出

  1. 敏捷思想的提出(软件危机)

  2. 发展现状

二、敏捷方法学

  1. 敏捷宣言

  2. 敏捷方法学特点(面向对象)

  3. 主要方法

    1. Scrum方法(计划、体系结构设计、Sprint和交付与巩固)

    2. XP极限编程(轻量级、灵巧)

    3. 水晶系列方法

    4. 动态系统开发方法

    5. 适应性软件开发方法

    6. 特性驱动开发方法

三、极限编程

  1. 历史

  2. 定义

  3. 核心价值观(沟通、简单、反馈、勇气、尊重)

  4. 实践原则(计划项目、小版本、简单设计、测试驱动、持续集成、重构、结对编程、代码共享、每周只工作40小时、现场客户、隐喻、编码标准)

  5. 实施过程(站会)

四、Srum

  1. 特点

    1. 无领导

    2. 简单

    3. 需求变化

  2. 过程框架

    1. Product Owner

    2. Scrum Master

    3. Team

    4. 仪式

      • Spint Planning Meeting

      • Daily Scrum Meeting(站会)

      • Sprint Review Meeting

      • Sprint Retrospective Meeting

    5. 工具(Backlog、Burndown Chart)

第六章 软件项目管理

一、软件开发成本估算

  1. 软件规模估计

    1. 代码行技术

    2. 功能点技术

  2. 软件开发工作量估计(人月)

    1. 静态单变量模型

    2. 动态多变量模型

    3. COCOMO2模型

  3. 软件开发成本估算

二、进度管理

  1. 软件开发耗时估计

  2. 软件开发的进度控制

  3. 进度计划(甘特图、工程网络)

三、组织管理

  1. 民主制程序员组(敏捷时代)

  2. 主程序员组

  3. 等级小组制

四、 质量管理

  1. 软件质量的定义

  2. 软件质量模型

  3. 软件质量保证

五、配置管理

六、软件工程标准化和认证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值