软件工程导论重点内容 联系客服

发布时间 : 星期五 文章软件工程导论重点内容更新完毕开始阅读4ee21a252f60ddccda38a0bf

第一章 软件工程概述

重点掌握的内容:软件和软件工程的基本概念 一.什么是软件?

1.满足功能要求和性能的指令或计算机程序集合; 2.处理信息的数据结构;

3.描述程序功能以及程序如何操作和使用所要求的文档; 软件的特点:

软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的 在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题

软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工的开发方式 软件的开发费用越来越高,成本相当昂贵。 二.软件危机以及产生软件危机的原因?

1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。软件产品“供不应求”。 2.软件成本在计算机系统总成本中所占的比例逐年上升。

3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。 4.软件产品的质量不容易保证。 5.软件产品常常是不可维护的。

6.软件产品的重用性差,同样的软件多次重复开发。 7.软件通常没有适当的文档资料。

产生软件危机的原因可归结为两个重要的方面: 软件生产本身存在的复杂性; 软件开发所使用的方法和技术。 三、软件危机

1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。

3、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。 (3) 软件产品的质量往往靠不住。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件工程

1、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程准则可以概括为7条基本原则: 用分阶段的生命周期计划严格管理; 坚持进行阶段评审

1

实行严格的产品控制 采用现代程序设计技术 应能清楚地审查结果 合理安排软件开发小组的人员 承认不断改进软件工程实践的必要性

3、软件工程方法学三要素:方法、工具和过程 4、软件生命周期(概念、三时期,八阶段)

软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。 软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 软件开发时期分为4阶段:总体设计、详细设计、编码和单元测试、综合测试

五、软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护实施的全部工作和任务的结构框架。 1)瀑布模型

瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。

采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 特点

? 阶段的顺序性和依赖性(规范化) ? 推迟实现的观点(系统化) ? 质量保证(阶段评审) ? 存在问题

? 不适合需求模糊的系统(需求的迷糊性和不确定性) 适用于操作系统、编译系统、数据库管理系统等系统软件的开发 快速原型模型:

所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌

3)增量模型:是瀑布模型的顺序特征与快速原型法德迭代特征相结合的产物。这种模型把软件看成一系列相互联系的增量,在看法过程的各次迭代中,每次完成其中的一个增量。 4)喷泉模型

5)微软过程 六、思考:

你认为“软件就是程序”这一个观点正确吗?如果不正确,请批驳之。 1. 请从以下几个方面结合自己的经验实例加以论述。

软件就是程序的观点是不正确的,因为软件等于程序加文档加数据。

(1) 文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用。

(2) 在软件开发的每一个阶段都应有相应的文档。它是开发人员与用户以及开发人员与项目管理人员之间交流的媒介

(3) 文档是软件在不同阶段的表现形式。 (4) 程序与文档必须一致,文档才有价值。 (5) 文档质量直接决定软件质量的高低。

(6) 文档也是软件测试和维护的依据。在没有文档或文档不全的情况下对大型软件进行测试与维护是不可思议的事情。

2

(7) 文档是软件可重用的依据。

2、有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答。 答:对, 第二章 可行性研究 重点掌握的内容:可行性研究的系统流程图 一般内容:可行性研究的任务和步骤,成本效益分析 一、可行使研究:

1、 可行性研究的任务:是用最小的代价在尽可能短的时间内确定问题是否能够解决。一般来说,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案等方面研究可行性

可行性研究的目的:在明确了所要研究问题定义之后,分析员应该在明确目标系统所有限制和约束的前提下,去确定该问题是否值得去解决。(或就是用最小代价在尽可能短的时间内确定问题是否能够解决。) 2、可行性研究过程: 1)复查系统规模和目标 2)研究目前正在使用的系统 3)导出新系统的高层逻辑模型 4)进一步定义问题 5)导出和评价供选择的解法 6)推荐行动方针 7)草拟开发计划 8)书写文档提交审查 3、系统流程图的定义和作用:

可行性研究对现有系统做概括的物理模型描述,如用图形工具表示则更加直观简洁。系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不是对信息进行加工处理的控制过程。在可行性研究过程中,利用系统流程图来描述所建议系统的物理模型。

4、数据流程图的定义和作用:数据流程图有两个特征:抽象性和概括性。

? 抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况。

? 概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体 5、数据流程图的组成元素

数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

6、数据流程图的组成:外部实体(外部实体是指系统之外的人或单位,它们和本系统有信息传递关系)数据流,处理、数据存储。 如何绘制数据流程图

(1)识别系统的输入和输出,画出顶层图

(2)画系统内部的数据流、加工与文件,画出一级细化图 (3)加工的进一步分解,画出二级细化图 (4)其它注意事项 7、数据流程图的注意点

1)每个处理都必须有流入的数据流和流出的数据流,如果没有,是错误的。(数据守恒)

2)每个数据存储应该有流入的数据流和流出的数据流,如果缺了一种,是Warning的;缺两种就错了。

3

3)、数据流只能在处理与处理、数据存储或者外部实体之间流动。、数据存储到数据存储、外部实提到外部实体、外部实提到数据存储之间的数据流都是错误的。

4)、 一个处理可以细分成多个子处理,分成若干个层次(均匀分解) 5)、良好命名

系统流程图与数据流程图有什么区别?

答:1)系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。 2)系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。 3)数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。 三、数据流图:!!!!!!!!!!!!!!!!!!

1、组成符号:4中基本图形符号正方形、圆角矩形、开口矩形 2、数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”。 3、一套分层的的数据流图由顶层、底层、和中间层组成。 4、画分层数据流图基本原则与注意事项: a.自外向内,自顶向下,逐层细化,完善求精。

b.保持父图与子图的平衡。也就是说,父图中某加工的输入数据流中的数据必须与它的子图的输入数据流在数量和名字上相同。

c.保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。

d.加工细节隐藏。根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节。

e.简化加工间关系。在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目。

f.均匀分解。应该使一个数据流中的各个加工分解层次大致相同。

g.适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。 h.忽略枝节。应集中精力于主要的数据流,

而暂不考虑一些例外情况、出错处理等枝节性问题。 i.表现的是数据流而不是控制流。 j.每个加工必须既有输入数据流,又有输

出数据流.在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读。

小结:一个软件系统,其数据流图往往有多层。如果父图有N个加工(Process),则父图允许有0~N张子图,但是每张子图只能对应一张父图。在一张DFD图中,任意两个加工之间可以有0条或多条名字互不相同的数据流;在画数据流图时,应该注意父图和子图的平衡,即父图中某加工的输入输出数据流必须与其输入输出流在数量和名字上相同。DFD信息流大致可分为两类:交换流和事务流。 9、数据字典

1). 数据字典是在数据流程图的基础上,对数据流程图中的各个元素进行详细的定义与描述,起到对数据流程图进行补充说明的作用。

2). 数据字典的内容包括:数据流、数据流分量(即数据元素)、数据存贮、处理逻辑和外部实体。 3).数据字典的作用是什么?

对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。 数据字典的实现:P49

4