软件工程
电子教案
王树林
软件工程作业
实验题目:
( 1) 网上图书订购系统
读者可在网上查看图书信息, 并通过网络订购自己
所需要的图书 。 实现的功能有:图书查询, 新书介绍,
会员管理, 查询记费, 读者缴费, 售书统计, 书库盘存,
电子借阅, 新书预定, 读者登录等 。
( 2) 锅炉温度控制系统
锅炉温度可以自己设定, 一旦设定, 锅炉将保持在
这一恒定温度, 误差保持在 1度以内 。
控制原理:控制系统通过温度传感器采集锅炉水温,
如果水温高于指定温度, 则系统发出关闭加热阀门, 停
止加热;如果水温底于指定温度, 系统发出打开加热阀
门的命令, 开始加热 。 控制人员可以通过仪表设定温度 。
软件工程作业
? ( 3) 中小学智能排课系统
软件主要功能:能根据教师要求 ( 如某
天不得排课 ), 课程约束 ( 如体育不能排在
上午第一节课 ), 班级约束 ( 如某班星期五
下午最后一节课不排课 ) 等信息自动为班级
和教师生成课程表, 要求主课尽量排在上午
和下午一, 二节课, 副课尽量排在上午和下
午的最后一节课 。 对于软件不能安排的课程,
教务工作者能够手工调课 。
软件工程作业
? 要求系统可以进行两节连课处理,如作文课
可以连课上;排出的课程表中不允许有教师
冲突的情况,比如,一个教师同时给两个班
级上课是不允许的。同时还要求课程表中的
课程要有变化,比如一个班级的数学课总是
排在上午第一节课是不好的课程表。
每周上课天数可以是 5天也可以是六天,
每天上课天数可以是 7节或是 8节。每个年级
所开课程是一样的,而且所开课程可以变化。
最后,系统可以为每个班级和每位教师
打印课程表。
软件工程作业
( 4) 电梯控制系统
技术指标:楼层 M层, 电梯 N部 。 请设计一
个能够同时控制这 N部电梯的控制系统 。
1,每个电梯有一些按钮, 每个按钮对应一个
楼层 。 当按下按钮后, 按钮灯亮, 并指出电
梯开往相应的楼层 。 当电梯到达该楼层后,
按钮灯熄灭 。
2,除底层和顶层只有一个按钮外, 每个楼层
有两个按钮, 分别指示上楼和下楼的请求,
当按下后, 按钮灯亮 。 如果电梯已到达该楼
软件工程作业
层, 或者电梯正在沿所请求的方向运动, 或者
遇到有冲突的请求时, 按钮灯灭 。 在后一情
况下, 如果两楼层同时发出请求, 则只能取
消其中一个请求 。 决定服务优先次序的算法
应尽量减少两个请求的等待时间 。
3,当没有服务请求时, 电梯保持在最后一个目
的楼层, 电梯门关闭 。
4,系统以事件驱动方式响应楼层对电梯的请求 。
所有楼层的优先级是相同的 。
5,系统以事件驱动方式响应电梯内部对到达楼
层的要求, 并按照电梯运动方向依次完成这
些要求 。
软件工程作业
6、每个电梯都有一个紧急按钮,按下后
向管理人员发出报警信号,然后电梯被
置为“不可用”状态。每个电梯都有取
消“不可用”状态的机制。
软件工程作业
作业要求:
任选一个题目, 按照软件工程方法完成实验作业,
最后必须提交一份报告 。 报告内容包括 ( 1) 需求分
析; ( 2) 总体设计; ( 3) 详细设计, 可在数据流图
方法和面向对象方法中选择其一; ( 4) 原型实现或
模拟, 可自选一种熟悉的环境实现软件的部分功能
( 如 VC或 Delphi) 。
作业形式:
电子文档或纸质报告。
交做业时间:
第 16周,过期扣分。
相互抄袭者一律按应得分的 50%处理。
第 4章 软件过程和项目的度量
测度对于任何工程而言都是最基本的。
研究总是从定性到定量的。只有定量分析才
是科学的。
软件度量是指计
算机软件中范围广泛的测度。测度可以应用于
整个软件项目中,辅助估算、质量控制、生
产率评估及项目控制。我们主要关心项目的
生产率和质量的度量。
4.1 测度、度量和指标
测量( measure)、测度( measurement)和
第 4章 软件过程和项目的度量
度量( Meatrics)在含义上是相似的,但也有一
些差别。
测量( measure)是对一个产品过程的某个属性
的范围、数量、维度、容量或大小提供了一
个定量的表示。如在一个模块的复审中发现
的错误数就是一次测量。
测度( measurement)是确定一个测量的行为。
如调研若干模块的复审,以收集每一次复审
所发现的错误数的测量。
度量( Meatrics)是对一个系统、构件或过程具
有的某个给定属性的度的一个定量测量。如
每一次复审所发现的错误的平均数。
第 4章 软件过程和项目的度量
软件工程师收集测量结果并产生度量,这
样就可以获得指标,indicator”。指标是一个
度量或度量的组合。指标使得项目管理者能
够调整开发过程、项目或产品,从而更好地
完成产品开发。
软件度量使得管理者更深入地理解项目和
更好地管理项目。
4.2 过程和项目领域中的度量
测度在工程界是常事。测量动力消耗,重
量,体积,温度,电压,信噪比等。
第 4章 软件过程和项目的度量
应该收集度量,以确定过程和产品的指标。
项目指标使得软件项目管理者能够,
( 1)评估正在进行的项目状态;( 2)跟
踪潜在的风险;( 3)在问题造成不良
影响前发现问题;( 4)调整工作流程
或任务;( 5)评估项目组控制软件质
量的能力。
第 4章 软件过程和项目的度量
4.2.1 过程度量和软件过程改进
软件质量和组织效率的决定因素
过程
产品
商业软件
技术人员 开发环境
用户特性
第 4章 软件过程和项目的度量
不同类型的过程数据可以分为“私有的和公用
的”。私有的度量数据如:缺陷率,开发中
发现的错误,个人软件过程( PSP)是一个过
程、测度和方法的结构化集合。
某些过程度量对软件项目是私有的,但对所有
小组成员是公用的。
公用度量一般吸取了原本是个人的或小组的私
有信息。
软件过程度量对于一个组织提高其总体的过程
成熟度,能够提供很大的帮助。
第 4章 软件过程和项目的度量
软件接口 6.0%
硬件接口 7.7%
错误检测 10.9%
用户界面 11.7%
规约 25.5%
标准 6.9%
数据处理 10.5%
逻辑 20%
四种软件项目中错误 /缺陷的成因及来源
第 4章 软件过程和项目的度量
遗漏 二义性
规约缺陷
修改
不正确
选择了错误的用户调研
用户给出错
误信息调研不充分
使用过时的信息
第 4章 软件过程和项目的度量
4.2.2 项目度量
软件过程度量主要用于战略目的。软件项
目度量则是战术的。软件项目管理者和软件
项目组经过使用项目度量及从其中导出的指
标,可以改进项目工作流程和技术活动。
项目度量的目的是双重的。( 1)指导软件项目
的开发;( 2)评估软件质量。
每个项目都应该测量:
输入 ----完成工作所需要的资源的测量。
输出 ----软件工程过程中产生的交付物或工作产
品的测量。
第 4章 软件过程和项目的度量
结果 ----表明交付物的效力的测量。
4.3 软件测量
测量在现实世界可分为两类:直接测量和间
接测量。软件测量也可以分为两大类:直接
测量和间接测量。
直接测量:如成本和工作量、软件代码行( lines
of code,LOC)、执行速度、内存大小、单位
时间内错误报告。
和间接测量,功能、质量、复杂性、有效性、
可靠性等。
第 4章 软件过程和项目的度量
4.3.1 面向规模的度量
面向规模的软件度量是通过规范化质量或
生产率的测量而得到的。如:
项目 LOC 工作量 成本 文档 错误 缺陷 人员
Alpha 12100 24人月 168 365 121 28 3
beta 27200 62 440 1224 321 86 6
第 4章 软件过程和项目的度量
为了产生可以与其他项目中同类度量相比较的
度量,我们选择代码行作为规范化值。从而
能够为项目产生一组简单的面向规模的度量:
? 每千行代码( KLOC)的错误数。
? 每千行代码( KLOC)的缺陷数。
? 每行代码的成本。
? 每千行代码( KLOC)的文档数。
面向规模的度量并不被普遍认为是测量软件开
发过程的最好方法。
第 4章 软件过程和项目的度量
4.3.2 面向功能的度量
面向功能的软件度量使用软件所提供的
功能的测量作为规范化值。
测量参数 记数 简单 平均 复杂 合计
用户输入数 3 4 6
用户输出数 4 5 7
用户查询数 3 4 6
文件数 7 10 15
外部界面数 5 7 10
总记数值
第 4章 软件过程和项目的度量
FP=总记数值 *( 0.65+0.01*∑Fi)
Fi的取值在 0—5之间。
Fi:
1.系统需要可靠的备份和复原吗?
2.需要数据通讯吗?
3.有分布处理功能吗?
4.性能很关键吗?
5.系统是否在一个已有的很实用的操作环境之中
运行?
6.系统需要联机数据项吗?
第 4章 软件过程和项目的度量
7,输入、输出、文件或查询复杂吗?
8,需要联机更新主文件吗?
….
第 4章 软件过程和项目的度量
? 每个功能点的错误数。
? 每个功能点的缺陷数
? 每个功能点的成本
? 每个功能点的文档页数
? 每个人月完成的功能点数
第 4章 软件过程和项目的度量
4.3.3 扩展的功能点度量
第 4章 软件过程和项目的度量
4.4 调和不同的度量方法
五个影响软件生产率的重要因素
( 1)人的因素:组织规模与技能
( 2)问题因素:问题复杂性、设计约束或改变

( 3)过程因素:分析与设计技术、复审技术和
CASE工具
( 4)产品因素:系统的可靠性和性能
( 5)资源因素:软件硬件资源的可用性与
CASE工具。
第 4章 软件过程和项目的度量
4.5 软件质量度量
软件工程的最高目标就是产生高质量的系
统、应用软件或产品。为了达到这个目标,
软件工程师必须掌握在成熟的软件过程背景
下有效的方法和现代化的工具软件的应用。
还要评估是否能够达到高质量的目标。
软件工程师应采用技术度量来客观地评估质量,
而不能采用主观的方法进行评估。
第 4章 软件过程和项目的度量
4.5.1 概述影响质量的因素
可从三个方面来评估软件, ( 1)产品的操作(使
用它);( 2)产品的修改(改变它);( 3)产品的
转换(移植它)。
4.5.2 测量质量
对软件进行正确性、可维护性、完整性、及可用性的测
量为项目组提供了有用的技术指标。
正确性,一个程序必须能够正确操作,否则就没有价值。
可维护性:修改错误容易,增加新功能也容易等,可维
护性无法直接测量,那么就得采用间接测量。可用平
均修改时间( mean-time-to-change,MTTC)来度量可
维护性。
第 4章 软件过程和项目的度量
完整性:抗病毒及黑客攻击,
可用性及用户友好性,可从四个方面来测量,
( 1)学会一个系统所需要的体力的或智力
的投入;( 2)在系统的使用上达到中等效率
所需要的时间;( 3)当系统由某个人具有中
等效率的人使用时,测量到的生产率的净增
长;( 4)用户对系统的态度的一个主观评估。
第 4章 软件过程和项目的度量
4.5.3 缺陷排除效率( DRE)
缺陷排除效率( Defect Removal Efficiency,
DRE)在项目级和过程级都能提供有益的质
量度量。
DRE=E/(E+D)
其中 E=软件交付给最终用户之前所发现的错误
数。
D=软件交付之后所发现的缺陷数
1是最理想的 DRE值。
DRE也能用来在项目中评估一个小组发现错误
的能力。
第 4章 软件过程和项目的度量
DREi=Ei/(Ei+E i+1)
其中 Ei =在软件工程活动 i中所发现的错误
数; E i+1 在软件活动 i+1中所发现的错
误数,这些错误来源于软件工程 i活动中
未能发现的错误数。
质量目标是使 DRE为 1。
第 4章 软件过程和项目的度量
4.6 在软件过程中集成度量
大多数软件开发者仍然没有进行测量,
更可悲的是,他们中大多数根本就没有
开始测量的愿望。
第 4章 软件过程和项目的度量
Software engineering
process
Software
project
Software
product
Data
collection
Metrics
computation
Metrics
evaluation
indicators
metrics
measures
4.7 Summary
Measurement enables managers and practitioners to
improve the software process; assist in the
planning,tracking,and control of a software
project; and assess the quality of the product
(software) that is produced.Measures of specific
attributes of the process,project,and product are
used to compute software metrics,These metrics
can be analyzed to provide indicators that guide
management and technical actions,
Process metrics enable an organization to take
a strategic view by providing insight into the
effectiveness of a software process.Project
4.7 Summary
metrics are tactical,They enable a project manager
to adapt project work flow and technical
approach in a real-time manner.
Both size- and function-oriented metrics are
used throughout the industry,Size-oriented
metrics make use of the line of code as a
normalizing factor for other measures such as
person-months or defects,The function point is
derived from measures of the information domain
and a subjective assessment of problem
complexity.
4.7 Summary
Software quality metrics,like productivity metrics,
focus on the process,the project,and the product,
By developing and analyzing a metrics baseline
for quality,an organization can act to correct
those areas of the software process that are the
cause of software defects,In this chapter,four
quality metrics –correctness,
maintainability,integrity,and usability—are
discussed,Additional quality metrics are
described later in this book,
4.7 Summary
Measurement results in cultural change,Data
collection,metrics computation,and metrics
evaluation are the three steps that must be
implemented to begin a metrics program, By
creating a metrics baseline –a database
containing process and product measurements—
software engineers and their managers can gain
better insight into the work that they do and the
product that they produce.