软件工程导论复习知识点

  • 格式:doc
  • 大小:25.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、软件:

软件定义:

软件=程序+文档+数据

软件特点:

1、具有抽象性

2、没有明显的制造过程

3、软件的维护比硬件的维护要复杂得多

4、对计算机系统有着不同程度的依赖性

5、尚未完全摆脱手工艺的开发方式

6、软件本身是复杂的

7、软件成本相当昂贵

8、相当多的软件工作涉及到社会因素软件的发展:

程序设计、程序系统、软件工程

软件危机:

软件危机指的是软件开发和维护过程中遇到的一系列严重问题。

软件危机的问题:

如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机表现:

1.开发成本难以控制,进度不可预计;

2.软件系统的质量和可靠性很差,难以满意;

3.软件文档相当缺乏,软件系统不可维护;

4.软件开发生产率很低,软件产品供不应求。

5.软件产品成本十分昂贵。

软件危机产生原因:

1、软件本身的特点

2、对软件开发与维护存在许多错误认识和做法

3、软件开发与维护的方法不正确

解决软件危机途径:

1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。

2、研究和推广成功的软件开发技术和方法。

3、开发和使用好的软件工具。

软件生命周期:

软件所经历的定义、开发、使用和维护直到废弃所经历的时期。

程序设计环境:

源程序编辑,编译或解释,链接,调试和运行工具的集合

软件工程环境:

软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合

二、软件工程:

软件工程定义:

研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。

软件工程性质:

涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管

理科学中的方法和原理进行软件生产的管理。用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。

软件工程三要素:

方法、工具和过程。

软件方法:

是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。包括:传统方法学面向对象方法学需要解决的问题:

软件成本、软件可靠性、软件维护、软件生产率和软件复用。

基本内容:

包括理论、结构、方法、工具、环境与规范等

目标:

以较少的投资获得易维护、易理解、可靠和高效率的软件产品。

原则:

即分解、抽象和信息隐蔽、一致性和确定性

原理:

工程化和系统化。

软件过程:

软件过程是把输入转化为输出的一组彼此相关的资源和活动

从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求转化为输出(软件产品。

软件工程过程包含四种基本的过程活动:

Plan 软件规格说明:规定软件的功能及其运行的限制

Do 软件开发:产生满足规格说明的软件

Check 软件确认:确认软件能够完成客户提出的要求

Action 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进

软件工程的基本原理:

强调使用生存周期方法学、强调使用结构分析与结构设计任务

软件工程的目标:

生产具有正确性、可用性以及开销合宜的产品

1、付出较低的开发成本

2、达到要求的软件功能

3、取得较好的软件性能

4、开发的软件易于移植

5、需要较低的维护费用

6、能按时完成开发

7、及时交付使用

三、软件生命周期:

生命周期基本流程:

问题定义→可行性研究→需求分析→总体设计(概要设计→详细设计→编码和单元测试→综合测试→软件维护。

瀑布模型:

这种方法是从一个阶段呈瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入-处理-输出-评审中。

增量模型:

定义基本需求→将需求赋予增量构件→设计系统体系结构→开发增量构件→集成增量构件→确认系统

把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。每个构件由多个

相互作用的模块构成,并且能够完成特定的功能。增量开发方法的新演进版本叫做“极限程序设计

演化模型:

先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。

快速原型方法是原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃

原型运用方式:

抛弃策略和附加策略

喷泉模型:

体现了迭代和无间隙的特性。

系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。

需求分析阶段→设计阶段→编程阶段→集成与确认阶段→维护阶段→演进阶段

微软软件开发过程:

战略:靠改进特性与固定资源来激发创造力

①计划阶段②设计阶段③开发阶段④稳定化阶段⑤发布阶段。

微软管理过程:

一、将大项目分成若干里程碑式的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。

二、运用想象描述和对特性的概要说明指导项目。

三、根据用户行为和有关用户的资料确定产品特性及其优先顺序。

四、建立模块化的和水平式的设计结构,并使项目结构反应产品结构的特点。

五、靠个人负责和固定项目资源实施控制。

四、可行性研究:

可行性研究实质:

可行性研究实质上是要进行一次简化、压缩了的需求分析和设计过程,要在较高层次上以抽象的方式进行需求分析和设计过程。

可行性研究目的: