人人范文网 范文大全

软件工程 基础实践教程 读书总结

发布时间:2020-03-03 14:18:01 来源:范文大全 收藏本文 下载本文 手机版

软件工程 基础实践教程吴洁明 著

第一章 软件工程概述

1.2软件工程发展简史

20世纪70年代,第一代软件工程,即传统软件工程。80年代,第二代即对象工程。90年代第三代即构件工程。

1.3软件工程的定义和目标

软件工程是将系统化的、规范的、可度量的方法应用于软件的开发运行和维护过程,也就是将工程化应用于软件开发和管理之中。

软件工程研究的主要目标是软件开发技术和软件开发管理两个方面。

目标:(1)合理预算开发成本,付出较低的开发费用;(2)实现预期的软件功能,达到较好的软件性能,满足用户的需求。(3)提高所开发软件的可维护性,降低维护费用。(4)提高软件开发生产率,及时交付使用。

1.4 软件工程的7条基本原理

1.用分阶段的生命周期计划严格管理。2.进行阶段证实是。3.实行严格的产品控制。4.采用现代程序设计技术。5.结果应能清楚地审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。

1.5 软件生命周期模型

可行性研究、需求分析、设计、实现、测试和集成、维护

瀑布模型、快速原型化模型、演化模型、螺旋模型、构件组装模型

1.6软件工程过程

第一级 初始级、第二级 可重复级、第三级 定义级、第四级 管理级、第五级 优化级

1.7 软件开发方法简述

1.Parnas方法有两个闪光点:信息隐藏技术;错误预防技术。

信息隐藏技术:在概要设计时列出可能会发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。

错误预防:在每个可能产生的错误之前增加一些判断,防止软件出现不可预料的结果。

2.Yourdon方法3.面向数据结构的软件开发方法4 问题分析方法PAM5.面向对象的软件开发方法6.可视化开发方法

1.8 软件工程相关的技术规范、标准和最新文献的信息源

CMM规范、ISO9000-

3、ISO/IEC12207标准、PSP规范、TSP规范、软件配置管理系列标准、JAVA规范、C++规范、Unicode标准、其他资料

第二章可行性研究

2.2可行性研究的步骤

1.复查系统的规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查

2.3 可行性分析的要素经济、技术、社会环境、人

2.4 成本/效益分析

2.4.1 程序规模估算

第一种方法:根据以前做过的类似项目规模与新项目规模的比例关系,对照以前项目的工作量求出新项目的工作量。

第二种方法:基于功能点的估算方法,该方法中确定了5个信息域特性:输入项数,输出项数,查询数,主文件数和外部接口数。

2.4.2 工作量估算

1.IBM模型 2..Putnam模型3.COCOMO||模型

2.4.3 成本/效益分析方法

1.倾向的时间价值 2.投资回收期 3.纯收入 4.投资回收率

第三章需求工程

3.1 需求工程的概念

需求工程由需求开发和需求管理组成。需求开发是指需求的获取、分析、规格说明和验证。需求管理是在软件开发过程中对需求开发结果的控制、跟踪和管理。

3.1.1 需求分类分为4个层次:业务需求、用户需求、功能需求和非功能需求。 业务需求是反映组织机构或客户对软件高层次的目标要求。

用户需求是用户使用该软件要完成的任务。

功能需求定义了软件开发人员必须实现的软件功能。

非功能需求是对功能需求的补充。

3.1.2 需求工程的主要活动

需求开发的活动:获得需求;分析需求;编写需求规格说明书;审查需求。

需求管理的活动:需求变更控制;需求版本控制;需求跟踪;需求状态跟踪控制。

3.1.3 高质量需求的特征

需求开发阶段的主要产品是软件需求规格说明书,在评审过程中应特别关注下面几点: 完整性,正确性,可行性,必要性,划分优先性,无二义性

3.1.4 影响需求质量的因素

1.用户需求不断增加 2.模棱两可的需求 3.用户不配合 4.过于精简的需求说明 5.忽略了用户的分类 6.不准确计划 7.不必要的特性

3.3 需求获取方法

调研计划包括:调研的部门,调研前的培训内容,调研的时间和地点,设计调研访谈表,调研结果分析,调研报告的格式和内容。

1.发现问题及时与开发人员沟通。2.用户必须坚持需求审查。

3.3.1 必须向用户交代的两个重要问题

第一,软件开发与其他产品的开发过程一样是分阶段的,每个阶段都有阶段产品。 第二,分阶段审查产品时产品的合格标准是什么?

需要提交的阶段产品及其主要内容和提交时间:软件范围和目标说明书;软件调研报告;软件开发计划书;软件需求分析规格说明书;软件设计规格说明书;软件模块开发卷宗;软件测试计划书;软件测试报告;软件用户手册;软件开发月报。

3.4 定义软件的质量属性

有效性:指在预定的时间内系统正常运行时间的比例。

高效性:系统效率用来衡量处理器优化、磁盘和内在空间利用率、通信带宽利用率等系统资源的使用情况。

灵活性/可修改性:灵活性反映在软件中添加新功能时所需要的工作量。

安全性:保证系统不被非法访问,防止数据丢失、防止病毒入侵、防止私人数据进入系统。 互操作性:表明产品与其他系统交换信息和使用服务的难易程度。

可靠性:可靠性指标是软件在给定时间间隔内按照规格说明书的规定正常运行的概率。 健壮性:指当软件遇到非法输入数据或相关的运行环境出现异常软件仍能正确运行的程度。 易用性:可指对用户某项操作的时间要求,也可指用户学习操作软件所用的时间要求,或者是对软件操作形式的要求。

可维护性:它描述纠正一个缺陷或进行一个变更的简易程度。

可移植性:度量把软件从一种环境移到另一种环境中所花费的工作量。

可重用性:表明一个软件组件可用于其他软件的程度。

可测试性:指测试软件时缺陷的简易程度。

可理解性:指人们通过阅读程序源代码和相关文档了解程序功能、结构和运行方式的容易程度。

3.5 需求优先级

3.7 需求管理

目的:保障需求规格说明书与软件产品的一致性;控制需求变更对项目开发的影响;使需求活动与计划保持一致。

第四章 结构化分析

4.1 结构化分析的主要工具

结构化分析方法研究的核心是数据的组成、数据流向和对数据的加工处理。

4.1.3 数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。 数据流是数据结构中的数据在系统内的传播路径。

数据元素是数据处理中最小的、不可分割的单位,它直接反映事物的某个属性。

4.1.6 实体关系图它给出了一组基本的构件:数据对象、属性、关系和各种类型指示符,主要目的是表示数据对象及其关系。

4.2 结构化分析方法的实现步骤

两条基本原则:必须要理解问题的数据域和功能域;按自顶向下、逐层分解的方式对问题进行分解和细化。

步骤;1.信息分析 2.回溯 3.补充 4.确定非功能需求 5.复查 6.画出软件的功能结构图 7.修正开发计划 8.编写需求文档。

4.3 结构化分析规格说明书

第5章 结构化软件设计

5.1 软件设计的过程

典型总体设计过程:1.设想供选择的方案对每种合理的方案都应该备下列四份资料:系统流程图,组成系统的元素清单,成本/效益分析,实现这个方案的进度计划。 2.推荐最佳方案 3.功能分解 4.设计软件结构 5.数据设计 6.制定测试计划 7.书写文档 8.设计审查和复审

9.评审详细设计

5.2 软件设计原则和影响设计的因素

原则:1.多样化设计 2.设计可回溯到需求 3.充分利用已有的模块 4.设计应该表现出一致性和规范性 5.设计的易修改性 6.容错性设计 7.设计的粒度要适当 8.在设计时就要开始评估软件的质量 9.设计评审

5.3 软件设计的概念

5.3.1 模块

一般把用一个名字就可调用的一段程序称为“模块”。模块具有如下三个属性:功能、逻辑、状态

5.3.2 模块化

模块化就是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。

5.3.3 模块独立性

反映模块独立性的有两个标准:内聚和耦合

1.耦合:指模块间相互关联的程度

耦合分为7类:内容耦合、公共耦合、外部耦合、控制耦合、数据结构耦合、数据耦合、非

直接耦合、

2.内聚:指一个模块内部各元素之间的紧密程度

巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。

5.5 结构化设计方法

具体流程:1.首先分析流程图的类型 2.将数据流程图映射为结构图 3.用“因子分解”方法定义软件的层次结构。 4.优化设计结构

5.5.1 数据流和类型:交换流、事务流

5.5.2 变换分析变换分析方法由以下四步组成:重画数据流程图;区分逻辑输入、逻辑输出和中心变换部分;进行第一级分解,设计上层模块;进行第二级分解,设计中、下层模块。

5.7 优化软件设计

规则1:模块功能完善化 规则2:设计功能单一和结果可预测的模块 规则3:消除重复功能规则4:模块的作秀范围应在控制范围之内 规则5:模块的大小要适中 规则6:尽可能减少高扇入的结构 规则7.将模块中相对变化较大的部分剥离出去

5.8 设计复查

复查过程分为三部:首先,采用概要设计复查的方法来检查在概念上的设计;然后,在关键设计审查中,应向其他开发者描述关键技术上的设计细节;最后,进行程序设计的复查,程序设计的复查羽毛球详细设计阶段。

5.9 数据设计

5.9.1 数据设计的原则:1.用于软件的系统化方法也适用于数据,在导出、评审定义软件需求和软件体系结构时,必须定义和评审其中用到的数据流、数据对象、数据结构。 2.确定所有的数据结构以及在每种数据结构上实施的操作。 3.应该建立一个数据字典,用它来定义数据和软件的设计。 4.底层数据设计的决策应该推迟到设计过程的后期进行,在数据设计中也可以使用自顶向下、逐步细化的方法。 5.数据设计要遵从信息隐藏原则,只有那些相关的模块才能访问相应的数据结构,数据结构的逻辑表示与物理表示要分开。 6.应当创建一个存放数据结构和相关操作的库 7.软件设计和程序设计语言应当支持抽象数据类型的定义和实现,否则,对于一些复杂数据结构的设计和实现可能是非常困难的。

5.9.2 数据结构设计

5.11 详细设计

5.11.1 结构化设计

包括顺序、条件和重复三种结构。顺序结构实现了任何算法定义中的核心处理,条件结构允许根据逻辑情况选择处理方式,重复结构提供了循环。

核心内容:1.程序模块只有一个入口和一个出口 2.程序中只包含顺序、条件和循环三种控制结构 3.详细设计阶段采用自顶向下逐步求精的方法,可以把一个模块的功能爱步分解细化为一个系列具体的处理步骤。

第6章 软件测试

6.1 软件测试的概念

6.1.1 测试定义

从广义上讲,是指软件产品生存周期内所有的检查、评审和确认活动。从狭义上讲,软件测试是为了发现错误而执行程序的过程。

软件测试的原则:1.应该把测试贯穿在整个开发过程之中 2.每个测试用例都应该包括测试输入数据和这组数据输入作用下的预期输出结果。 3.要对每个测试结果进行全面检查,不要漏掉已经出现的错误迹象。5.在设计测试用例时,应该包括有效的、期望的输入情况,也要包括无效的和不期望的输入情况。 6.软件中遗留的错误数量与已经发现的错误数量成正比。

7.回归测试的关联性要特别引起注意,修改一个错误而想起更多我错误的现象并不少见 8.

测试程序时不公要检查程序是否做了它应该做的事情,还要检查它是否做了不该做的事情。

9.严格执行测试计划。 10.做好测试记录,为统计和维护提供基础数据。

软件工程基础

软件工程实践个人总结

软件工程实践

软件工程实践课个人总结

大学计算机基础实践教程实践心得

软件工程读书心得体会

软件工程读书心得体会

软件工程实践学习心得

软件工程实践心得

软件工程总结

软件工程 基础实践教程 读书总结
《软件工程 基础实践教程 读书总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档