实用软件工程-宁夏大学(精)
实用软件工程 第2版 第4章 结构化分析

第4章结构化分析了解需求分析的任务和原则本章目标熟悉进行需求分析的步骤和方法了解需求管理熟悉需求分析的常用方法了解软件原型掌握结构化分析的几种常用建模方法掌握结构化分析的几种图形工具目录 需求分析4.1 需求分析4.14.2结构化分析概述4.3结构化分析方法4.4结构化分析图形工具4.1需求分析•4.1.1需求分析的任务为什么需要需求分析为了开发出真正满足用户需要的软件产品,明确地了解用户需求是关键。
虽然在可行性研究中,已经对用户需求有了初步的了解,但是很多细节还没有考虑到。
可行性研究的目的是评估系统是否值得去开发,问题是否能够解决,而不是对需求进行定义。
如果说可行性分析是要决定“做还是不做”,那么需求分析就是要回答“系统必须做什么”这个问题。
需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。
•1.确定系统的运行环境要求系统运行时的硬件环境要求,如对计算机的CPU、内存、存储器、输入/输出方式、通信接口和外围设备等的要求;软件环境要求,如操作系统、数据库管理系统和编程语言等的要求。
•2.确定系统的功能性需求和非功能性需求•需求可以分为两大类,功能性需求和非功能性需求,前者定义了系统做什么,后者定义了系统工作时的特性。
•功能需求是软件系统的最基本的需求表述,包括对系统应该提供的服务,如何对输入做出反应,以及系统在特定条件下的行为描述。
在某些情况下,功能需求还必须明确系统不应该做什么,这取决于开发的软件类型、软件未来的用户、以及开发的系统类型。
所以,功能性的系统需求,需要详细地描述系统功能特征、输入和输出接口、异常处理方法等。
•非功能性需求包括对系统提出的性能需求、可靠性和可用性需求、系统安全以及系统对开发过程、时间、资源等方面的约束和标准等。
性能需求指定系统必须满足的定时约束或容量约束,一般包括速度(响应时间)、信息量速率(吞吐量、处理时间)和存储容量等方面的需求。
•3.进行有效的需求分析•一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。
实用软件工程课后题答案

第一章:软件工程的内容与方法本章提示:软件工程的内容与方法这一章,特别重要。
首先,因为你学习了软件工程,最后连它的主要内容及方法都说不清楚,实在对不起自己。
其次,因为这一章是原书最重要的一章,它概括了全书的基本论点与论据,而这些论点与论据是作者对软件工程的新贡献。
下面是本章的习题解答:1.开发文档都有哪些?用图来表示它们之间的关系。
开发文档包括《目标程序》、《源程序》、《详细设计说明书》、《概要设计说明书》、《需求规格说明书》、《用户需求报告》、《软件合同》,它们之间的关系可以如图8-1所示。
图 8-1 开发文档之间的关系2.说明软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和Rational Rose。
软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。
3.请读者详细解释软件的定义和程序的定义。
软件的定义:软件 = 程序 + 数据 + 文档。
这里的程序是指程序系统。
这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。
这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。
现在有一种新提法正在引起关注,这种提法是:软件 = 知识 + 程序 + 数据 + 文档。
程序是计算机为完成特定任务而执行的指令的有序集合。
从应用的角度可理解为:面向过程的程序 = 算法 + 数据结构面向对象的程序 = 对象 + 信息面向构件的程序 = 构件 + 构架。
宁夏大学招生计划录取人数及招生专业目录(文科理科).doc

宁夏⼤学招⽣计划录取⼈数及招⽣专业⽬录(⽂科理科).doc2019年宁夏⼤学招⽣计划录取⼈数及招⽣专业⽬录(⽂科理科)宁夏⼤学招⽣计划录取⼈数及招⽣专业⽬录(⽂科理科)2019年宁夏⼤学招⽣计划录取⼈数及招⽣专业⽬录(⽂科理科)选择可以说在很⼤程度上影响着考⽣后半⽣的⽣活⽅向和轨迹,很多考⽣因为⾼考填志愿时没有⾜够重视,要么浪费了不少分数;要么学了不喜欢的专业,在⼤学⾥感觉“痛不欲⽣”。
俗话说“七分考,三分报”,正是说明志愿填报的重要性。
那么如何填报志愿,填报志愿时选⼤学应主要考虑哪些指标?其中⼀个重要指标就是⼤学招⽣计划⼈数和招⽣专业。
今⽇将带你⼀起了解关于宁夏⼤学招⽣计划和招⽣⼈数、宁夏⼤学招⽣专业⽬录等相关知识。
注:2019年宁夏⼤学招⽣专业和招⽣计划⼈数截⾄发稿前官⽅暂未公布,所以⼩编先整理了2018年宁夏⼤学的招⽣计划专业的信息。
考⽣务必以官⽅发布的信息为准,本⽂只作参考!2018年宁夏⼤学招⽣计划⼈数和招⽣专业学院⼤类名称专业名称科类学制批次18年招⽣计划学费标准4850(元/学年)⼈⽂学院汉语⾔⽂学(教师教育)⽂史类四年11004400汉语⾔⽂学(⽂秘)⽂史类四年1404400历史学(教师教育)⽂史类四年1404400旅游管理⽂史类四年1354800新闻传播学院新闻传播学类新闻学⽂史类四年1804400政法学院法学⽂史类四年1804400思想政治教育(教师教育)⽂史类四年1804400⾏政管理⽂史类四年1404800社会学⽂史类四年1254400外国语学院英语(教师教育)⽂史类四年1704400英语(翻译)⽂史类四年1704400⽇语⽂史类四年1204400俄语⽂史类四年1154400阿拉伯学院阿拉伯语⽂史类四年1604400经济管理学院经济学⽂理兼招四年1404800经济学(⾦融)⽂理兼招四年1404800⼯商管理类会计学市场营销⼯商管理⽂理兼招四年11404800信息管理与信息系统理⼯类四年1354800物流管理⽂理兼招四年1354800农林经济管理⽂理兼招四年1354800数学统计学院数学与应⽤数学(教师教育)理⼯类四年1804800数学类数学与应⽤数学信息与计算科学理⼯类四年11054800应⽤统计学理⼯类四年1354800物理与电⼦电⽓⼯程学院物理学(教师教育)理⼯类四年1404800物理学(应⽤物理)理⼯类四年1404800电⽓⼯程及其⾃动化理⼯类四年1804800电⼦信息类电⼦信息⼯程(卓越⼯程师)通信⼯程理⼯类四年11104800新能源材料与器件理⼯类四年1354800信息⼯程学院计算机类(与印度国家信息技术学院合作项⽬)计算机科学与技术(与印度国家信息技术学院合作项⽬)软件⼯程(与印度国家信息技术学院合作项⽬)⽹络⼯程(与印度国家信息技术学院合作项⽬)理⼯类四年11809800化学化⼯学院化学(教师教育)理⼯类四年1354800化学(分析与检测)理⼯类四年1354800应⽤化学理⼯类四年1354800化⼯与制药类化学⼯程与⼯艺制药⼯程理⼯类四年11004800材料化学理⼯类四年1304800⽣命科学学院⽣物科学(教师教育)理⼯类四年1404800⽣物科学类⽣物科学⽣物技术理⼯类四年1804800资源环境学院地理科学(教师教育)⽂理兼招四年1404800环境科学理⼯类四年1354800地理科学类地理信息科学⼈⽂地理与城乡规划理⼯类⽂理兼招四年1704800房地产开发与管理⽂理兼招四年1304800农学院⾷品科学与⼯程理⼯类四年1704800植物⽣产类园艺农学植物保护理⼯类四年1954800林学类园林林学理⼯类四年1604800农业资源与环境理⼯类四年1304800草业科学理⼯类四年1304800动物科学理⼯类四年1304800动物医学理⼯类四年1304800葡萄酒学院葡萄与葡萄酒⼯程(国际课程班)理⼯类四年2407200葡萄与葡萄酒⼯程(葡萄酒营销国际课程班)理⼯类四年2407200葡萄与葡萄酒⼯程(葡萄酒⽂化旅游国际课程班)理⼯类四年2407200机械⼯程学院交通运输理⼯类四年1804800机械⼯程(卓越⼯程师)理⼯类四年1354800机械类机械⼯程过程装备与控制⼯程理⼯类四年11504800 ⼟⽊与⽔利⼯程学院建筑类建筑学城乡规划理⼯类五年1704800⼟⽊⼯程理⼯类四年1804800⽔利⽔电⼯程理⼯类四年1354800交通⼯程理⼯类四年1354800⼯程管理理⼯类四年1354800农业⽔利⼯程理⼯类四年1354800教育学院应⽤⼼理学(教师教育⼼理健康)⽂理兼招四年1354800 应⽤⼼理学⽂理兼招四年1354800教育技术学理⼯类四年1354800⼩学教育(教师教育)⽂理兼招四年1354400学前教育(教师教育)⽂理兼招四年1504400体育学院体育教育(教师教育)⽂理兼招四年21084800运动训练⽂理兼招四年2628000武术与民族传统体育⽂理兼招四年278000⾳乐学院⾳乐学(教师教育)⽂理兼招四年21058800舞蹈表演⽂理兼招四年2628800美术学院美术学(教师教育)⽂理兼招四年2858800视觉传达设计⽂理兼招四年2408800环境设计⽂理兼招四年2408800国际教育学院会计学(中英⾼等教育合作项⽬)⽂理兼招四年23323800 ⼯商管理(中英⾼等教育合作项⽬)⽂理兼招四年23323800 宁夏⼤学(中卫校区)汉语⾔⽂学(⽂秘)⽂史类四年2804400旅游管理⽂史类四年2704800电⼦商务⽂理兼招四年21004800市场营销⽂理兼招四年21004800软件⼯程(云计算⼤数据,与印度国家信息技术学院合作)理⼯类四年21209800软件⼯程(与印度国家信息技术学院合作项⽬)理⼯类四年2709800学前教育(教师教育)⽂理兼招四年2804400⾏政管理⽂史类四年2504800环境科学理⼯类四年2804800合计4850备注:宁夏计划中含预科转⼊计划,体育教育(教师教育)计划含⾼⽔平运动队计划。
《实用软件工程》教案首页

要
教
学
内
容
第二章 软件工程标准化
2.1 软件工程标准化的意义
2.2 软件工程标准分类
2.3 GB8567-88
目
的
要
求
1.了解软件工程标准化的意义
2.掌握软件工程标准分类
3.详细了解GB8567-88规范
重点
软件工程标准化
难点
软件工程标准化
教具
Window 2000、JDK1.5、SoDA工具及其它必要工具
《实用软件工程》
教案首页
上海托普信息技术学院
软件学院
史 君
二OO六年七月
教案首页
课题
软件生存周期与软件文档
上课时间
班级
05软件1,2
周次
1
课程类型
√教授/实验/实训(打勾)
节次
3,4
日期
9.11
主
要
教
学
内
容
第一章 软件开发与软件文档
1.1 软件生存周期与软件文档
1.2 软件文档的作用
1.3 软件文档的分类
日期
9.25
主
要
教
学
内
容
第三章 CASE工具与软件文档写作
3.1 CASE概述
3.2 CASE工具支持下的文档
3.3 SoDA
目
的
要
求
1.了解CASE技术及在软件开发中心的作用
2.常用软件文档写作工具
3.SoDA工具的基本使用
重点
SoDA
难点
SoDA
教具
Window 2000、JDK1.5、SoDA工具及其它必要工具
完成日期
实用软件工程第6章

实用软件工程第6章在实用软件工程中,第 6 章往往涵盖了一些关键且重要的概念和方法。
这一章可能会涉及到软件开发过程中的特定阶段、技术或者管理策略。
假设这一章的主题是“软件测试与质量保证”。
软件测试是软件开发中至关重要的环节,它的目的是发现软件中的缺陷和错误,以确保软件产品能够满足用户的需求和期望,并且能够在各种预期的环境中正常运行。
软件测试并不仅仅是在软件开发完成后进行的一项活动,而是应该贯穿于整个软件开发的生命周期。
在软件测试中,有多种不同的测试类型。
其中,单元测试是针对软件中的最小可测试单元,通常是函数或方法进行的测试。
开发人员在编写代码的同时,就应该编写相应的单元测试用例,以确保每个单元的功能正确性。
集成测试则是将多个模块组合在一起进行测试,检查它们之间的接口和交互是否正常。
系统测试是在整个系统完成集成后进行的,包括对功能、性能、安全性等方面的测试。
而验收测试则是由用户或客户参与,以确认软件是否满足他们的业务需求。
测试用例的设计是软件测试中的一个关键环节。
好的测试用例应该具有较高的覆盖率,能够覆盖到各种可能的情况,包括正常情况和异常情况。
等价类划分、边界值分析、因果图等都是常用的测试用例设计方法。
等价类划分是将输入数据划分为若干个等价类,从每个等价类中选取一个代表性的数据进行测试。
边界值分析则着重于输入和输出的边界值,因为在这些地方往往容易出现错误。
因果图则用于分析输入条件之间的组合关系,从而设计出更全面的测试用例。
除了测试用例的设计,测试的执行和管理也非常重要。
测试执行需要严格按照测试计划和测试用例进行,并且要对测试结果进行详细的记录和分析。
如果发现了缺陷,需要及时进行报告和跟踪,确保缺陷得到修复。
在测试过程中,还需要对测试环境进行有效的管理,确保测试环境与实际的生产环境尽可能相似,以提高测试结果的准确性和可靠性。
质量保证则是一个更广泛的概念,它不仅仅关注软件产品的质量,还包括软件开发过程的质量。
实用软件工程

实用软件工程实用软件工程简介在现代社会中,软件工程已经成为科技行业中一个重要的领域。
软件工程旨在通过系统化的方法和工具来开发、维护和管理软件。
本文将介绍软件工程的基本概念、常用技术和方法,以及它在现实生活中的应用。
软件工程的基本概念1. 软件开发生命周期软件开发生命周期是软件工程中的基本概念之一。
它包括需求分析、设计、编码、测试和部署等阶段。
这些阶段的顺序和执行方法是根据不同的软件开发方法和项目需求来确定的。
2. 软件测试软件测试是软件工程中的重要环节。
它旨在通过系统化的方法检查和评估软件的功能和性能,以确保软件的质量和稳定性。
常用的软件测试方法包括单元测试、集成测试、系统测试和验收测试等。
3. 软件项目管理软件项目管理是软件工程中至关重要的一步。
它包括项目计划、进度控制、资源分配和沟通管理等方面。
良好的项目管理可以有效地提高团队协作效率,保证项目的顺利进行。
常用的软件工程技术和方法1. 面向对象技术面向对象技术是软件工程中常用的设计和开发方法之一。
它通过将系统抽象为对象,将数据和操作封装在一起,提供了更加灵活和可扩展的设计思路。
常见的面向对象编程语言包括Java、C++和Python等。
2. 敏捷开发敏捷开发是一种迭代和增量的软件开发方法。
它注重快速响应需求变化,并通过短周期的迭代开发来逐步完善产品。
敏捷开发强调团队协作和及时交付,适合于需求变化频繁的项目。
3. 瀑布模型瀑布模型是软件开发生命周期中最早的一种方法。
它按照线性的顺序依次完成需求分析、设计、编码、测试和部署等阶段。
瀑布模型适用于需求比较稳定的项目,但不适用于需求变化频繁的项目。
实用软件工程的应用1. 软件开发软件工程在软件开发过程中发挥着重要的作用。
软件开发团队可以根据软件工程的原理和方法来规划和管理项目,提高开发效率,并确保软件的质量和稳定性。
2. IT项目管理IT项目管理也是软件工程的一个重要应用领域。
通过软件工程的方法和工具,项目经理可以更好地掌控项目进度、资源分配和风险管理等方面,确保项目的成功实施。
实用软件工程第二版教学设计

实用软件工程第二版教学设计
一、课程目标
本课程旨在帮助学生掌握实用软件工程的基本概念和方法,了解软件开发过程中的各个环节和角色,并具备设计和实现简单软件系统的能力。
二、课程教学内容
1.认识软件工程
2.软件生命周期
3.软件需求工程
4.软件设计和架构
5.软件测试
6.软件项目管理
7.软件质量保证
8.软件工具和环境
三、教学方法
本课程采用理论讲授和案例实践相结合的方式,通过课堂讲解、课外阅读、课程演示和作业等形式进行教学,重点培养学生的软件设计和编码能力。
1。
实用软件工程(第5版)课件 (10)[50页]
![实用软件工程(第5版)课件 (10)[50页]](https://img.taocdn.com/s3/m/51de05be581b6bd97f19eae9.png)
▪ 这种努力的条件是:研发人员对企业的内部管理了如指 掌,对数据库设计的理论和技巧十分精通。如今,这种 努力已获初步成功,小型ERP产品开始普及。目前,它 已经由第三类产品,变成了第二类产品。
▪ 4.需要重新做业务流程规范和需求规格定义的 软件产品
▪ 第三类软件产品的客户化工作量大,工期也较长,例如: 分行业的管理信息系统MIS、分行业的企业资源规划系统 ERP等。
▪ 严格地讲,第三类软件产品实质上不算一种真正意义的 软件产品,只算一种行业应用软件框架,或行业应用软 件解决方案。
▪ 有了这种软件框架或软件解决方案后,软件厂商就能通 过快速原型法,在较短的时间内完成客户化工作。随着 软件厂商经验和技术的日积月累,尤其是分行业的类库、 构件库和中间件的日积月累,以及企业内部管理规范化 的发展趋势,第三类软件产品的实施周期也会日益缩短。
▪ 项目和产品既有显著的不同,又有紧密的关系。这种关 系是:做软件项目是手段,做软件产品是目的,软件项 目做多了,软件项目就慢慢地变成了软件产品。正如一 位名人所说:路,其实地上本没有路,走的人多了,才 成了路。
10.1 软件产品分类
▪ 软件产品是指不局限于特定业务领域、能被广大用户直 接使用的软件系统,如操作系统、编译系统、工具系统、 通用财务系统等。
▪ 软件项目是指针对特定业务领域、需要提供业务流程重 组与优化的软件系统,如MIS, ERP, 电子商务、自动跟踪 控制系统等,它们一般叫做软件项目,最多也只能叫做 “需要客户化的软件产品”。
▪ 3.只需要少量客户化工作的软件产品
▪ 第二类是只需要少量客户化工作的软件产品,如财务系 统、保险系统、金融证券系统、税务系统、海关系统、 政府办公系统、公检法系统、电力控制系统、电信计费 系统等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宁夏大学数学计算机学院 赵国栋
第14章 软件质量保证
本章导读
质量保证一直是CMMI和ISO9000的中心议题,是微 软公司和IBM公司的重点课题,同样也是项目管理的重 要内容。 通常,人们将“质量标准、配置管理、测试测量”, 作为质量管理的三大支柱,而将“SQA计划、SQA进度、 SQA评审和审计”,作为质量管理三大要素。 本章先论述软件质量保证的基本概念和多种方法, 后介绍IT企业软件质量保证文档书写的参考指南。
正式评审会议的流程(续)
阅读人:向评审小组展示工作产品的各部分。 检查者:提出缺陷、问题、疑问、改进建议。 创建者:解答问题,简短回答提出的问题,使检查者 进一步了解工作产品,从而帮助发现缺陷。 记录人:详细的记录到问题日志上。
3. 评审会议的跟踪
涉及的新角色有:审核者。 涉及的文档有:评审会议跟踪表,由审核者跟踪软件 缺陷的修复情况,并详细记录到评审会议跟踪表中。 审核者:进行跟踪,确定正式评审会议上确定的缺陷 都被按照改进意见修改了,填写评审会议确信跟踪表。
3. CMM2的“软件质量保证SQA”过程
(1) 首先,通过监控软件的开发过程,来保证产品的 质量; (2) 其次,保证软件产品及软件开发过程,符合相应 的标准与规程; (3) 最后,保证软件产品、软件过程中存在的不符合 项问题得到处理,必要时将问题反映给高级管理者。 结合这三项内容,CMM2的软件质量保证手段主要 有三项:“审计、评审和处理不符合项”。审计是检查 做没做,做了多少,以及按什么标准和规范做的。评审 是检查干得好不好,是否还存在不符合项。处理不符合 项是跟踪纠错过程,直至改正为止。
评审在质量保证中的作用
80 70 60 50 40 30 20 10 0 分析阶段 设计阶段 编码阶段 测试阶段 发布阶段 单位缺陷修改成本 单位缺陷发现时间
正式评审会议的流程
1. 评审会议的准备 涉及的角色有:创建者、评审负责人、检查者。 涉及的文档有:评审检查单。 (1)创建者负责陈述评审目标;提交工作产品及其规 范;与评审负责人一起选择检查者,并分配角色。 (2)评审负责人负责计划、安排和组织评审活动,与 创建者一起选择检查者。评审负责人应该从创建者处将 评审产品的内容准备齐全,并打包发送给检查者。评审 负责人还要询问每个检查者的准备时间,确定会议准备 是否充分,如果不充分,应重新安排会议时间。 (3)检查者:检查工作产品,发现其缺陷,提出问题, 并且记录到评审检查单中。
序号 1 2
3
4 5 6 7 8 9 10 11
质量因素 质量因素的定义 正确性 系统满足规格说明书和用户目标的程度。 健壮性 在意外环境或错误操作下,系统做出适当响应的 程度。 完整性 对未经授权的人使用系统的企图,系统能够控制 的程度。 可用性 系统完成预定的功能时,令人满意的程度。 可理解性 系统的理解和使用的容易程度。 可维修性 诊断和改正发现的错误所需的工作量大小。 灵活性 修改或改进系统,需要的工作量多少。 可测试性 系统容易测试的程度。 可移植性 移植到另一种平台中运行所需资源的多少。 可再用性 软件系统的可复用程度。 互运行性 与其他系统集成,所需的工作量多少。
5. CMM4的软件质量保证手段“软件质量管理”
CMM4的“软件质量管理”目的是:建立对项目的 软件产品质量的定量了解,以便实现特定的质量目标, 例如在流程、时间、功能、性能、接口、界面上的特定 需求目标。为此,要对软件工作产品,实施内容丰富的 特定测量计划,进行质量的定量管理。
6. CMM5的软件质量保证手段“缺陷预防”
14.2 软件质量保证方法
1. 从四个方面来改进软件质量
(1) 力图从编程语言上实现突破。已经从机器语言、 汇编语言、面向过程的语言、面向数据的语言,发展到 面向对象、面向构架的语言。 (2) 力图从CASE工具上实现突破。这些工具有: OracleDesigner,PowerDesigner,ERwin,Rose,San Francisco,北大青鸟系统,分行业的业务基础平台。 (3) 力图从软件过程管上实现突破。如CMMI, ISO9000,微软企业文化,IBM企业文化。 (4) 力图从测试与纠错上实现突破。先后出现了各种 测试方法、工具和纠错手段。
4. CMM3的软件质量保证手段“同行评审”
俗话说,隔行如隔山,所以外行不能参与评审。同 行评审是指同行进行软件产品验证的活动,其目的是为 了及早和高效地从软件工作产品中识别并消除缺陷。与 技术评审不同,同行评审的对象一般是部分软件工作产 品,重点是发现软件工作产品中的缺陷。 所谓同行,是指和开发者在被评审的软件工作产品 上有相同的开发经验和知识的人员。一般来讲,不建议 管理者作为同行,参与同行评审,也不应使用同行评审 的结果去评价产品开发者的功过是非。 有人会说:同行是“冤家”。没关系,因为同行评 审是挑剔,是找缺陷,“冤家”更好。
要求 具体内容 了解 1) 软件质量及其相关概念的定义 2) 质量管理与控制的三个层次 3) 传统软件工程中质量管理的弱点 4) 同行评审 5) 软件质量保证管理文档 理解 1) 从四个方面来改进软件质量 2) CMM/CMMI改进软件质量的方法 3) 软件组织内部的“七化原则”和“五报一例制 度” 关注 1) CMM2的“软件质量保证SQA”过程 2) 《软件质量保证计划》的编写方法
CMM5的“缺陷预防”目的是:鉴别缺陷的原因, 并防止它们再次发生。具体做法有:建立项目缺陷分析 的工程数据库,字段有:“缺陷编号、缺陷名称、缺陷 类型、缺陷部位、缺陷原因、影响范围、发生频率、发 生时间、所属项目”等。将分析结果,尤其是带普遍价 值的过程更改,通知组织中的其他软件项目组。
7.CMMI软件质量保证的措施
什么样的软件是质量好的软件?
事实上,不同的人对软件质量有不同的评价和看法: (1)用户认为,功能、性能、接口满足了需求就是好软件。 (2)营销人员认为,客户群大且能卖个好价钱就是好软件。 (3)管理者认为,软件开发的进度、成本、质量(功能+性 能+接口)在计划的控制范围内就是好软件。 (4)开发者认为,易维护、可移植、可重用就是好软件。 上述众多观点不无道理,但都是从各自的利益出发的。应当 说上述评价和看法的汇总,才是货真价实的好软件。
8. 软件质量保证的其他措施
除了CMM/CMMI外,为了抓好软件质量管理,软 件组织的高层经理和项目经理,还应该大力提倡并严格 执行“七化原则”,即在软件质量管理中,管理人员要 做到:行为规范化,报告制度化,报表统一化,数据标 准化,信息网络化,管理可视化,措施及时化。 为了执行好上述“七化原则”,在软件组织内部的 各个项目中,还要建立“五报一例制度” :日报表、 周报表、月报表、里程碑报表、重大事件报表和例会制 度。实行“高层经理抓月报,部门经理抓周报,项目经 验抓日报”的上、中、下三层的管理方法。
14.1 软件质量基本概念
1. 软件质量及相关概念的定义
【定义14-1】所谓软件质量,就是供方提供的软件产 品满足用户明确和隐含需求的能力特性的总和。 【定义14-2】所谓软件产品,就是供方交付给用户 使用的一套计算机程序、数据以及相关文档。 【定义14-3】所谓供方,就是向用户提供产品的组 织。供方有时又称承包方。 通过上述定义,知道了软件质量是什么,以及意味 着什么。在此之前,可能不知道这么多概念,只知道好 的软件的特点是功能强、性能优、易使用、易维护、可 移植、可重用。
2. 质量管理与控制的三个层次
(1) 事先的预防措施:制订软件过程开发规范和软件 产品质量标准,对软件开发和管理人员进行这方面知识 和技能的定向培训;(规范是对行为的约束、标准是对 产品的约束、规程是对操作的约束) (2) 事中的跟踪监控措施:按照CMM/CMMI或 ISO9000的过程管理思想,对软件过程和软件产品的质 量控制提供可视性管理; (3) 事后的纠错措施:对软件工作产品和软件产品加 强评审和检测。评审是在宏观上框住您,在微观上挑剔 您,找出不符合项。检测是为了发现Bug,改正错误。 结论:软件质量保证措施,应以提前预防和实时跟 踪为主,以事后测试和纠错为辅。
CMMI软件质量保证的措施(续)
(3)项目计划过程,包括定义度量和度量的内容。度 量就是测量,分析就是统计与决策。 (4)过程和产品质量保证过程域,目的就是对过程及 相关工作产品进行客观评价,提供给项目成员和管理部 门。强调同行评审与审计,交流和解决不一致问题。 (5)验证过程域,目的就是保证所选的工作产品符合 特定的需求。验证是个增量过程,它从需求验证开始, 经历工作产品的验证,直到最后完整产品的验证。 (6)确认过程域,目的就是证明工作产品和产品构件, 当它们处于其计划的环境中时,能完成其计划的用途。
CMMI更关注软件质量管理与控制。在CMMI 的24个过程域中,直接与质量管理有关的过程域 有9个: (1)需求管理过程域,目的就是管理项目的产 品和产品构件的需求,标识需求与项目计划、工 作产品之间的不一致性,并解决不一致性问题。 (2)度量和分析过程域,目的就是开发和维持 用于支持管理信息需要的度量能力。
CMMI软件质量保证的措施(续)
(7)组织级过程性能过程域,目的就是建立和维护组 织标准过程集性能的定量理解,且提供过程性能数据、 基线和模型来定量地管理组织的项目。 (8)项目定量管理过程域,目的就是定量地管理项目 的已定义过程,从而实现项目已建立的质量和过程性能 目标。 (9)因果分析和解决方案过程域,目的就是识别发生 缺陷和其他问题的原因,采取行动来预防其将来再次发 生。 结论:质量来源于过程,过程需要改进,改进需求 量模型,改进是无止境的,这就是CMMI精神! CMMI 精神万岁!
14.3 评审在质量保证中的作用
从大量的软件实践中得知,正式评审工作被认为是 尽早发现软件缺陷,降低软件成本的最有效手段。 软件缺陷的发现时间,同缺陷修正的成本呈幂次关 系。根据IBM的研究结果,假定在分析阶段发现的错误 其改正成本为1个货币单位,那么在测试之前(设计编 码阶段)发现一个错误的修改成本约为6.5个货币单位, 在测试时(集成测试、系统测试和验收测试)发现一个 错误的修改成本约为15个货币单位,而在发布之后(已 经交到用户手上)发现一个错误的修改成本约为60~ 100个货币单位。该比例同样也适用于发现一个错误需 要的时间代价。