1 / 14
文档名称:

华南理工大学软件工程复习提纲.docx

格式:docx   大小:517KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

华南理工大学软件工程复习提纲.docx

上传人:文档大全 2021/3/2 文件大小:517 KB

下载得到文件列表

华南理工大学软件工程复习提纲.docx

文档介绍

文档介绍:华南理工大学软件工程复****提纲
第一章 软件工程概述

软件是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档
,其内容主要是指什么?
(1)软件危机指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列问题的现象。
(2)主要表现
①开发进度难以预测
②开发成本难以控制
③用户对产品功能难以满足
④产品质量无法保证,难以维护
⑤缺少适当的文档资料

软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以达到提高软件质量,降低开发成本的目的。

(1)目标:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
(2)组成部分
①方法: 是指产生某些结果的形式化过程。
②工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。
③过程: 生产特定产品的工具和技术的结合

软件开发方法是一种使用早已定义好的技术集及符号表示****惯组织软件生产过程的方法。
主要有:结构化方法、可视化开发方法和面向对象的开发方法等
6. 好的软件的一些主要衡量指标。例如McCall 的质量模型。
第二章 过程和生命周期建模
1. 什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品?
(1)软件生命周期是指软件的产生直到报废或停止使用的过程。
(2)阶段、任务及制品
①问题定义:弄清“用户需要计算机解决什么问题”,提出关于“系统目标与范围的说明”,提交用户审查和确认。
②可行性研究:了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性。
③需求分析:确定用户对待开发软件系统的需求,包括功能、性能、运行环境约束。编写需求规格说明书和初步的用户手册。
④概要(总体)设计:根据SRS建立目标软件系统总体结构、设计全局数据库和数据结构,规定设计约束,制定集成测试计划
⑤详细设计:细化概要设计生成的各个模块,详细描述模块的内部细节(算法、数据结构等),形成可编程的程序模块,制定单元测试计划
⑥程序编码:根据详细设计规格说明书编写源程序
⑦集成测试:根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试
⑧确认测试:根据软件需求规格说明书,测试软件系统是否满足用户的需求
⑨运行维护:对使用后的软件进行维护,包括修正错误,增加功能,搬迁新环境等性能维护。

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。即确定要计算机“做什么”,要达到什么样的效果。
(优缺点)及要求,特别是原型法、瀑布模型、螺旋模型、增量和迭代等。
一、瀑布模型
需求分析→系统分析→程序设计→编码→单元测试和集成测试→系统测试→验收测试→运行和维护
(1)要求:
①一个开发阶段必须在另一个开发阶段开始之前完成。
②当客户引发的所有需求都已经过完整性和一致性分析,并形成需求文档之后,开发团队才能够开始进行系统设计活动。
③每一个过程活动都有与其相关联的里程碑和可交付产品。
(2)特点:
优点:采用规范的结构化方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证
缺点:对如何处理开发中产品和活动的变化没有提供相关指导;将软件开发视为制造而不是创造;创造一个产品没有迭代的活动;需要等待很长的时间
二、原型法
原型法是指在获取一组基本的需求定义后,利用高级软件工具可视化的开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。
(1)要求(过程)
确定用户的基本需求;构造初始原形;运行、评价、修改原形;形成最终的管理信息系统
(2)特点
优点:符合人们认识事物的规律,系统开发循序渐进,反复修改,减少开发中的风险和不确定性;开发周期短,成本相对少。
缺点:忽略软件的总体质量和长期的可维护性;开发过程要经过多次反复修改评价,不便于管理;开发人员易将原型取代系统分析;缺乏规范化的文档资料
适用范围:处理过程明确、简单系统;涉及面窄的小型系统
三、阶段化开发:增量和迭代
增量开发:需求文档中指定的系统按功能划分为子