第11章软件工程管理
红岩第11章主要内容
红岩第11章主要内容在软件工程中,软件是指计算机程序和相关数据的集合。
它是通过对问题进行建模和分析,设计解决方案并实施的过程中产生的。
软件工程是一门跨学科的学科,涉及计算机科学、数学、工程学和管理学等多个领域。
软件工程的目标是开发高质量、可靠、易维护和可扩展的软件系统。
为了实现这些目标,软件工程采用了一系列有效的方法和技术,并遵循一定的开发过程。
软件工程的主要任务包括需求分析、系统设计、编码、测试和维护等。
需求分析是软件工程的第一步,它的目标是明确用户的需求和期望。
在这个阶段,软件工程师与用户进行沟通,收集并分析用户的需求,制定软件的功能和性能要求。
需求分析的结果是需求规格说明书,它描述了软件系统的功能和性能要求。
系统设计是软件工程的第二步,它的目标是将需求规格转化为软件系统的结构和组织。
在这个阶段,软件工程师设计软件系统的架构,确定模块和组件的接口,定义数据结构和算法。
系统设计的结果是设计文档,它描述了软件系统的结构和组织。
编码是软件工程的第三步,它的目标是将系统设计转化为可执行的程序代码。
在这个阶段,软件工程师根据设计文档编写程序代码,并进行测试和调试。
编码的结果是可执行的程序代码,它实现了软件系统的功能和性能要求。
测试是软件工程的第四步,它的目标是验证软件系统是否符合需求规格。
在这个阶段,软件工程师设计测试用例,并运行这些测试用例来检查软件系统的功能和性能。
测试的结果是测试报告,它描述了软件系统的缺陷和问题。
维护是软件工程的最后一步,它的目标是修复软件系统中的缺陷和问题,并进行改进和优化。
在这个阶段,软件工程师对软件系统进行故障排除,并进行性能调优和功能扩展。
维护的结果是修复和改进后的软件系统,它能够满足用户的需求和期望。
除了上述的主要任务,软件工程还涉及项目管理、质量保证、配置管理和文档管理等方面。
项目管理是为了确保软件工程的进度和质量,质量保证是为了确保软件系统的质量和可靠性,配置管理是为了控制软件系统的变更,文档管理是为了记录和传播软件工程的知识和经验。
软件工程第十一章面向对象设计
THANKS
感谢观看
01
抽象类是一种不能被实例化的 类,它只能被其他类继承。
02
抽象类可以包含抽象方法和具 体方法。抽象方法是没有具体 实现的方法,需要在继承抽象 类的子类中实现。
03
通过继承抽象类,子类可以继 承抽象类的属性和方法,并且 可以重写或实现抽象类中的方 法。
接口与抽象类的选择
在设计软件时,选择使用接口还是抽象类取决于具体需求和设计目标。
关系
关系描述了对象之间的交互和联系。 常见的关系包括关联、聚合和继承。
继承与多态的设计
继承
继承是一种实现代码重用的方式,子类可以继承父类的属性和方法,并可以扩展或覆盖它们。通过继承,可以建 立类之间的层次结构,使得代码更加清晰和易于维护。
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。多态可以提高代码的灵活性和可扩展性, 使得程序更加易于维护和修改。
02
类与对象的设计
类的定义与属性
类的定义
类是对象的抽象,它描述了一组具有相同属性和行为的对象。类定义了对象的结构、行为和关系。
属性
属性是类中用于描述对象状态的变量。每个对象都有其自己的属性值,这些属性值决定了对象的状态 。
对象的行为与关系
行为
行为是类中定义的方法,用于描述对 象可以执行的操作。方法定义了对象 的行为和功能。
高层模块不应该依赖于低层模块,它们都应 该依赖于抽象。
面向对象设计的优势
提高代码可重用性
通过类和继承实现代码重用,减少重 复代码。
提高代码可维护性
面向对象设计使得代码结构更加清晰, 易于理解和维护。
提高开发效率
通过快速原型开发,快速构建软件系 统。
《软件工程》教学课件 第11章 软件项目管理
下 表 是 根 据 63 个 项 目 的 数 据 统 计 结 果 , 按 照 基 本 的 COCOMO模型估算的工作量和进度。
总体类型 组织型
半独立型 嵌入型
工作量 MM=10.4(KLOG)1.05 MM=3.0(KLOG)1.12 MM=3.6(KLOG)1.20
进度 TDEV=10.5(MM)0.38 TDEV=10.5(MM)0.35 TDEV=10.5(MM)0.32
i1
其中:ai — 估计的最小行数 bi — 估计的最大行数 mi — 最可能的行数
将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本。
IBM 估算模型
1977年由Waiston 和 Felix 总结了IBM联合系统 分部(FSD)负责的60个项目的数据,利用最小二 乘法拟合,得到如下估算公式:
PERT(Program evaluation & review technique)计 划评审技术或CPM(Critical path method)关键路径法, 都是采用网络图来描述项目的进度安排。如图描述了开发 模块A、B、C的任务网络图。各边上所标注的数字为该任 务所持续的时间,数字结点为任务的起点和终点。
70
任务
月份 1 2 3 4 5 6 7 8 9 10 11 12
60
需求分析 ▲ ▲ ▲
50
总体设计
▲ ▲▲
40
详细设计
▲▲
30
编码 软件测试
▲ ▲▲
20
10
▲▲▲
0 一月
二月
三月
四月
五月
六月
进度表
2.甘特图(Gantt Chart)
软件工程导论第11章
【还可以把适配接口再进一步细分为转换接口和扩充接口。转换接口, 是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来 的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的 服务的集合。当使用C++语言编程时,应该在根类(或适当的基类)中, 把属于转换接口的服务定义为纯虚函数。如果某个服务有多种可能的 实现算法,则应该把它当作扩充接口。扩充接口与转换接口不同,并 不需要强迫用户在派生类中重新定义它们,相反,如果在派生类中没 有给出扩充接口的新算法,则将继承父类中的算法。当用C++语言实现 时,在基类中把这类服务定义为普通的虚函数。】
4. 弱耦合 耦合:指一个软件结构内不同模块之间互连的紧 密程度。 在面向对象方法中,对象是最基本的模块,因此, 耦合主要指不同对象之间相互关联的紧密程度。 弱耦合是优秀设计的一个重要标准。
5
对象之间的耦合分为两大类: (1) 交互耦合: 对象之间的耦合通过消息连接来实现。 使交互耦合尽可能松散,应遵守下述准则: 尽量降低消息连接的复杂程度。 应该尽量减少消息中包含的参数个数,降低参数的复 杂程度。 减少对象发送(或接收)的消息数。 (2) 继承耦合 与交互耦合相反,应该提高继承耦合程度。 通过继承关系结合起来的基类和派生类,构成系统中 粒度更大的模块。设计时应该使特殊类尽量多继承并 使用其一般化类的属性和服务,从而更紧密地耦合到 其一般化类。
13
2. 软件成分的重用级别 (1) 代码重用 源代码剪贴:最原始的重用形式。 复制或修改原有代码时可能出错,存在严重的配臵 管理问题,人们几乎无法跟踪原始代码块多次修改 重用的过程。 源代码包含:许多程序设计语言都提供包含库中 源代码的机制。配臵管理问题有所缓解,修改了库 中源代码之后,所有包含它的程序自然都必须重新 编译。 继承:利用继承机制重用类库中的类时,无须修 改已有的代码,就可以扩充或具体化在库中找出的 类,基本上不存在配臵管理问题。
软件工程课本讲解面向对象的OMT方法
化旳动态模型 + 细化旳功能模型。
16
第11章 面向对象的OMT方法
对象模型化技术OMT 对象模型化技术把分析时搜集旳信息构造在三类
模型中,即对象模型、功能模型和动态模型。
这个模型化旳过程是一种迭代过程。
17
第11章 面向对象的OMT方法
图11.4 三元关联 29
第11章 面向对象的OMT方法
角色为关联旳端点,阐明类在关联中旳作用和角 色。不同类旳关联角色可有可无,同类旳关联角色不 能省。角色旳表达如图11.5所示。
教师
讲授
课程
主讲
内容
图11.5 关联旳角色旳表达
30
第11章 面向对象的OMT方法
2) 受限关联
受限关联由两个类及一种限定词构成,限定词是 一种特定旳属性,用来有效地降低关联旳重数,限定 词在关联旳终端对象集中阐明。
技术之上旳,OMT措施旳基础是开发系统旳3个模型,再 细化这3种模型,并优化以构成设计。对象模型由系统中 旳对象及其关系构成,动态模型描述系统中对象对事件旳响应及对 象间旳相互作用,功能模型则拟定对象值上旳多种变换及变换上旳
约束。
6
第11章 面向对象的OMT方法
11.1.2 系统分析
分析旳目旳是拟定一种系统“干什么”旳模型,该模型经过 使用对象、关联、动态控制流和功能变换等来描述。分析过程是 一种不断获取需求及不断与顾客磋商旳过程。
8
第11章 面向对象的OMT方法
3. 构造动态模型
构造动态模型旳环节如下: (1) 准备经典交互序列旳脚本。 (2) 拟定对象间旳事件并为各脚本安排事件跟踪。 (3) 准备系统旳事件流图。 (4) 开发具有主要动态行为旳各个类旳状态图。 (5) 检验状态图中共享事件旳一致性和完整性。 最终得到:动态模型 = 状态图 + 全局事件流图。
第11章 软件项目管理-软件工程基础(第3版)-胡思康-清华大学出版社
第 4 页4
软件项目管理概述
软件项目管理目标
软件项目管理成功的目标包括以下几方面: ⑴ 如期完成项目 ⑵ 项目成本控制在计划之内 ⑶ 妥善处理用户的需求变动 ⑷ 保证项目质量⑸ 保持对项目进度的跟踪与控制
第11章 软件项目管理
第 5 页5
软件项目规模度量
任何软件项目都需要定量描述才能制定软件开发成本。只有把软件项目 中设计的各项因素,如软件开发时间、人员数量、开发环境的软件工具和硬 件系统、资金等资源的指标尽可能量化,才能准确估算软件产品的规模、复 杂度、工作总量。没有定量的项目将难以展开软件管理和实施过程。
❖系统的内部处理复杂吗
❖代码设计可重用吗
❖ 设计中包括转换和安 装吗
❖ 系统的设计支持不同 组织的多次安装吗
❖ 系统的实际有利于用 户的修改和使用吗
第 10 页10
软件项目规模度量
面向功能的度量
一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和 其它属性:
生产率 = FP/E 质量 = ER/FP 成本 = S/FP 文档 = ER/FP
第11章 软件项目管理
第 2 页2
软件项目管理概述
软件项目管理的特点
⑷ 软件产品虽然分通用软件和领域软件,但其都是“定制”的定向系统 ,目前仍无法摆脱手工开发模式。“没有完全一样的软件项目”,这不仅对 项目实施过程难以控制,而且还需要根据具体应用领域、环境等制定特殊管 理过程和内容。
⑸ 源于应用领域的复杂性和软件开发技术的复杂性,软件自身是一个复 杂系统。因而软件管理要对复杂软件系统过程做到未雨绸缪,对软件开发内 容抽丝剥茧般的细致。 ⑹ 软件项目管理需要综合各方面,特别是社会因素、精神因素、认知要素、 技术问题、领域问题、用户沟通等各项复杂内容。
第11章 净室软件工程
11.2 净室策略
(6)代码生成、检查和验证。以某种专门语言 代码生成、检查和验证。 表示的盒结构规格说明被翻译为适当的程 序设计语言。 然后, 序设计语言 。 然后 , 使用标准的走查或检 查技术来保证代码和盒结构的语义相符性, 查技术来保证代码和盒结构的语义相符性 , 以及代码的语法正确性。 最后, 以及代码的语法正确性 。 最后 , 对源代码 进行正确性验证。 进行正确性验证。
11.2 净室策略
(5)正确性验证。净室团队对设计及代码进行一系 正确性验证。 列严格的正确性验证活动。 列严格的正确性验证活动。 验证从最高层次的盒结构(规格说明)开始, 验证从最高层次的盒结构(规格说明)开始,然后 移向设计细节和代码。 移向设计细节和代码。 正确性验证的第一层次通过应用一组“ 正确性验证的第一层次通过应用一组“正确性问 来进行, 题”来进行,如果这些没有证明规格说明是正确 则使用更形式化的(数学的)验证方法。 的,则使用更形式化的(数学的)验证方法。
11.1 基本概念
“第一次就将事情做正确”是软件工程最重要的 第一次就将事情做正确” 第一次就将事情做正确 哲学。 哲学。 净室软件工程是这样一个过程:它强调在程序构 净室软件工程是这样一个过程: 造开始前进行正确性的数学验证, 造开始前进行正确性的数学验证,并且将软件可 靠性认证作为软件测试的一部分。 靠性认证作为软件测试的一部分。 其底线是极低的故障率, 其底线是极低的故障率,这是使用非形式化方法 难于或不可能达到的。 难于或不可能达到的。
11.3 功能规格说明
净室软件工程通过使用盒结构规格说明的方法来遵 净室软件工程通过使用盒结构规格说明的方法来遵 盒结构 从操作分析原则。 从操作分析原则。 一个“ 在某个细节层次上封装系统( 一个“盒”在某个细节层次上封装系统(或系统的 某些方面) 某些方面)。 通过逐步求精的过程,盒被精化为层次。“每个盒 通过逐步求精的过程,盒被精化为层次。 规格说明的信息内容足以定义其精化, 规格说明的信息内容足以定义其精化,不需要依赖 任何其他盒的实现” 任何其他盒的实现” 。 这使得分析员能够按层次划分一个系统——从顶层 从顶层 这使得分析员能够按层次划分一个系统 的基本表示到底层实现的特定细节。 的基本表示到底层实现的特定细节。
软件工程各章名词解释
名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。
计算机科学与技术专业课课件_软件工程SE_Chapter11
面向对象设计的准则
◆强内聚
(1) 服务内聚
一个服务应该完成一个且仅完成一个功能。
(2) 类内聚
类的属性和服务应该全都是完成该类对象的任务所必需的, 其中不包含无用的属性或服务。如果某个类有多个用途,通 常应该把它分解成多个专用的类。
(3) 一般-特殊内聚
一般-特殊结构应该是对相应的领域知识的正确抽取。 一般说来,紧密的继承耦合与高度的一般-特殊内聚是一致的。
◆信息隐藏
●信息隐藏通过对象的封装性实现:类结构分离了接口 与实现,从而支持了信息隐藏。对于类的用户来说, 属性的表示方法和操作的实现算法都应该是隐藏的。
2013-8-31
上海大学计算机学院
3
面向对象设计的准则
◆弱耦合
(1) 交互耦合 对象之间的耦合通过消息连接来实现,则这种耦合就 是交互耦合。尽量降低消息连接的复杂程度。应该尽 量减少消息中包含的参数个数,降低参数的复杂程度。 减少对象发送(或接收)的消息数。 (2) 继承耦合 继承是一般化类与特殊类之间耦合的一种形式。从本 质上看,通过继承关系结合起来的基类和派生类,构 成了系统中粒度更大的模块。因此,它们彼此之间应 该结合得越紧密越好。 设计应该使特殊类尽量多继承并使用其一般化类的属 性和服务。
实例重用、继承重用和多态重用。
◆可重用软构件应具备的特点
(1) 模块独立性强。具有单一、完整的功能,且经过 反复测试被确认是正确的。 (2) 具有高度可塑性。提供为适应特定需求而扩充或 修改已有构件的机制。 (3) 接口清晰、简明、可靠。
2013-8-31
上海大学计算机学院
9
类构件
◆类构件的重用方式
2013-8-31 上海大学计算机学院 12
软件工程(习题与参考答案)
第1章概述〔习题与参考答案〕[判断题]1. 由于今天个人计算机不断开展壮大,人们不再采用软件团队的开发方式。
〔×〕2. 由于软件是产品,因此可以应用其他工程制品所用的技术进展生产。
〔×〕3. 购置大多数计算机系统所需的硬件比软件更昂贵。
〔×〕4. 大多数软件产品在其生命周期中不需要增强功能。
〔×〕5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
〔√〕6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
〔×〕[选择题]1. 〔〕因素促使计算机系统越来越复杂。
〔D〕A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系构造方面的深刻变化D. 以上所有选项2. 下面的〔〕不再是现代软件工程师关注的问题。
〔A〕A. 为什么计算机硬件的本钱这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的本钱这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于〔〕。
〔C〕A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于〔〕。
〔C〕A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的〔〕说法是正确的。
〔C〕A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的根本目标是〔〕。
〔B〕A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. 〔〕是将系统化的、标准的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程 第4版 第11章 软件工程管理
本章内容
11.1 软件工程管理概述 11.2 软件开发成本估算 11.3 软件工程人员组织 11.4 软件配置管理 11.5 软件质量保证 11.6 软件开发风险管理 11.7 软件工程标准与软件工程文档
这种估算方法的优点是,由于各个任务单元的成本 可交给该任务的开发人员去估计,因此估计结果比较准 确。缺点在于,由于具体工作人员往往只注意到自己职 责范围内的工作,而对涉及全局的成本。
11.2.3 COCOMO2 模型
COCOMO2 模型分为如下3 个模型,在估算软件开发工作量时,对软件细节问题考虑的详 尽程度逐渐增加。
OPTION
软件开发人员一般分为项目负责人、系统分析员、高级程序员、程序员、初级程序员、资 料员和其他辅助人员。
项目负责人需要对项目的需求和团队人员有全面的了解
系统分析员需要有概括能力、分析能力和社交活动能力
程序员需要有熟练的编程能力等 资料员和其他辅助人员负责及时登记软件工程每个阶段的文档等资料
11.3 软件工程人员组织
11.1 软件工程管理概述
02 软件工程管理的重要性
OPTION
基于软件本身的复杂性,软件工 程将软件开发划分为若干个阶段,每 个阶段完成不同的任务、采取不同的 方法。
如果软件开发管理不善,造成的 后果会很严重。因此软件工程管理非 常重要。
11.1 软件工程管理概述
03 软件工程管理的内容
OPTION
02 组织机构
OPTION
软件开发团队不能只是一个简单的集合,要求具有良好的组织机构,要具有合理的人员分 工和有效的通信,共同高效率地完成任务。
按项目划分的模式
按职能划分的模式
矩阵型模式
11.3 软件工程人员组织
软件工程导论(第11章)
3. 信息隐蔽
在面向对象方法中,信息隐蔽通过对象的封
装性实现:类结构分离了类的接口与类的实
现,从而支持了信息隐蔽。
4. 弱耦合
弱的耦合可以提高软件模块的独立性,避免 某一部分模块发生变化对其它模块有较大的影 响。
一般来说,对象间的耦合有两大类:
A.交互耦合:对象间的耦合通过信息连接来
实现。应使交互耦合尽量松散。
2. 一般—特殊结构的深度应适当
中等规模的系统中,类等级层次数应保持 为7±2。不是必要情况,不应该随意创建派生类;
3. 设计简单的类:设计小而简单的类,便于
开发和管理;
1)避免包含过多的属性; 2)有明确的定义; 3)尽量简化对象之间的合作关系; 4)不要提供太多服务。
4. 使用简单的协议:设计简单的类接口,发送 的消息中参数要少。 5. 使用简单的服务:编写实现每一个服务时, 避免复杂的语句和结构; 6. 把设计变动减至最小。
2.
两个方向的关联都用属性实现,这种方法能 实现快速访问。
3.
用独立的关联对象实现双向关联。关联对象 不属于相互关联的任何一个类,它是独立的 关联类的实例 。
40
41
4、关联对象的实现
关联对象的实现方法取决于关联的阶数:
一对一关联:
• 关联对象可以与参与关联的任一个对象合并。
一对多关联:
• 关联对象可以与“多”端对象合并。
11.9 设计类中的服务 11.9.1 确定类中应有的服务 11.9.2 设计实现服务的方法
1. 设计实现服务的算法
1)算法复杂度;
2)容易理解、容易实现;
3)容易修改;
2. 选择数据结构 3. 定义内部类和内部操作
《软件工程》课件第11章 面向对象的OMT方法
1. 问题陈述 问题陈述为记下或获取对问题的初步描述。
第11章 面向对象的OMT方法
2. 构造对象模型 构造对象模型的步骤如下: (1) 确定对象类。 (2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。
第11章 面向对象的OMT方法
两个类之间的关联称为二元关联,三个类之间的 关联称为三元关联。关联的表示是在类之间画一连线。 图11.3表示了二元关联,图11.4表示一种三元关联, 说明程序员使用计算机语言来开发项目。
第11章 面向对象的OMT方法 图11.3 二元关联
第11章 面向对象的OMT方法 图11.4 三元关联
第11章 面向对象的OMT方法
操作的表示如图11.2底部区域所示,操作名后可跟 参数表,用括号括起来,每个参数之间用逗号分开,参 数名后可跟类型,用冒号与参数名分开,参数表后面用 冒号来分隔结果类型,结果类型不能省略。
2. 关联和链 关联和链是建立对象及类之间关系的一种手段。 1) 关联和链的含义 链表示对象间的物理与概念的联结,如张三为通 达公司工作。关联表示类之间的一种关系,就是一些可 能的链的集合。 正如对象与类的关系一样,对象是类的实例,类是 对象的抽象。而链是关联的实例,关联是链的抽象。
第11章 面向对象的OMT方法
3. 构造动态模型 构造动态模型的步骤如下: (1) 准备典型交互序列的脚本。 (2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。 最后得到:动态模型 = 状态图 + 全局事件流图。
软件过程管理 (11)
E
+1SD
+2SD
+3SD
99.7%
46
决策树分析
决策树分析是一种图表分析方法 提供项目所有可供选择的行动方案,行动方案 之间的关系,行动方案的后果以及发生的概率 提供选择一个最佳的方案的依据
chapter__10
47
决策树分析与EMV ( Expected Monetary Value)
chapter__10 51
课堂练习课堂练习
.025*10=2.5元
0.5*-1.5=--0.75元
0.25*-3=--0.75元
GameA:EMV=1
0.25*(10-2)=2元
0.5*-2=-1元
chapter__10
0.25*-2=-0.5元 52
GameB:EMV=0.5
量化检查表
chapter__10
20
chapter__10
21
chapter__10
22
情景分析法
通过对系统内外相关问题的系统分析,设计出 多种可能的未来前景,然后用类似于撰写电影 剧本的手法,对系统发展态势做出子自始至终 的情景和画面的描述。 是一种适用于对可变因素较多的项目进行风险 预测和识别的系统技术,在假定关键影响因素 有可能发生的基础上,构造多重情景,提出多 种未来的可能的结果,以便采取适当措施防患 于未然。
风险影响项目目标的严重程度 从无影响到无穷大
风险后果度量
高、中、低 极高、高、中、低、极低 灾难,严重,轻微,可忽略 等等
chapter__10 38
chapter__10
39
软件工程第11章(3-01)
2.编码的目的
编码的目的是使用选定的程序设计语言,把模块的过程性 描述翻译为用该语言书写的源程序。 编码产生的源程序应该正确可靠、简明清晰,而且具有较 高的效率。前两点要求是一致的,因为源代码越是清楚简 明,就越便于验证源代码和模块规格说明的一致性,也就 越容易对它进行测试和维护。
1.代码和程序遵守标准 与规范的重要性
1.2.2 编码语言的基本成分
1.数据成分 数据成分指明该语言能接受的数 据,用来描述程序中所涉及的数 据。如各种类型的变量、数组、 指针、记录等。作为程序操作的 对象,具有名称、类型和作用域 等特征。使用前要对数据的这些 特征加以说明。数据名称由用户 通过标识符命名,类型说明数据 须占用多少存储单元和存放形式, 作用域说明数据可被使用的范围。 以某语言为例,其数据构造方式 可分为基本类型和构造类型
1.2.2 编码语言的基本成分
3.控制成分 控制成分指明该语言允许的控制结构,人们可以利用这 些控制成分来构造程序中的控制逻辑。基本的控制成分 包括顺序控制结构、条件选择结构和循环结构
1.2.2 编码语言的基本成分
4.转输成分 传输成分指明该语言允许的数据传输方式,
在程序中可用它进行数据传输。 例如,Turbo C语言标准库提供了两个控 制台格式化输入、输出函数printf()和 scanf(),这两个函数可以在标准输入/输 出设备上以各种不同的格式读/写数据。 printf()函数用来向标准输出设备写数据, scanf()函数用来从标准输入设备上读数据。
1.1.4 编码途径
程序编码的一般途径有以下几种。 1.自顶向下的开发 2.自底向上的开发
3.自底向上和自顶向下相结合的开发
软件工程与项目管理课程标准
软件工程与项目管理课程标准一、课程概述(一)课程性质《软件工程与项目管理》是计算机应用专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件项目管理。
(二)课程基本理念本课程以“面向岗位、以岗位需求”为导向;以典型工作过程为依据选取教学内容;充分考虑学生的学习特点和职业发展需要。
(三)课程设计思路根据软件技术专业所涉及到的计算机语言编程和数据库术技术知识,以项目为驱动,通过“老师命题-学生实践”的方式在“知识-实践-项目”环节中提高学生的学习兴趣和动手能力;采用分段实施的教学过程:知识讲授阶段-实践阶段-强化指导来逐步提高学生的实际动手能力,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程目标(一)总体目标:本课程的总目标是:“以学生实践为主体”,通过课程的实施,帮助学生学会自主学习。
使学生的知识、技能、素质得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的职业素养。
课程内容突出高职教育特点,确保人才培养目标的实现。
(二)具体目标1、知识目标掌握软件工程的基本概念及原理、掌握软件工程的基本原则和方法工具;了解当今软件企业的工作规范。
2、能力目标通过本课程的学习,掌握软件工程的基本理论、实用的开发方法和技术,并能够把软件工程的思想应用于软件项目实施过程;了解软件工程各领域的发展方向,对中小型软件项目进行可行性和需求分析、设计、编码、测试的能力及开发过程中应遵循的流程、准则、标准和规范,为今后从事软件工程实践打下良好的基础。
3、素质目标使学生具备团队精神及软件专业人员的基本素质,为就业和将来的发展打下理论和实践基础;培养学生认真参与、积极交流的主体意识;激发学生的学习热情,使学生初步形成编制程序的意识和科学精神。
三、课程内容标准第一章软件工程概述(一)教学目的、要求本章要求学生了解什么是软件危机和软件工程,软件危机产生的历史背景、根源和由此产生的大量的失败,了解软件工程是从何种角度切入到软件开发中去,如何解决软件危机,了解消除软件危险的途径。
软件工程 第11章 软件重用
软件工程第11章软件重用在软件工程的领域中,软件重用是一项具有重要意义和价值的理念与实践。
它就像是在建筑领域中重复使用标准化的建筑材料和设计模块,能够极大地提高软件开发的效率、质量和可维护性。
软件重用,简单来说,就是在新的软件开发项目中,重复使用已有的软件元素,这些元素可以是代码、设计、文档,甚至是测试用例等。
想象一下,如果每次盖房子都要从烧制砖头开始,那得多麻烦和低效。
同样的道理,在软件开发中,如果每次都要从头开始编写所有的代码,那不仅费时费力,还容易出错。
那么,软件重用到底有哪些好处呢?首先,它能显著提高开发效率。
当我们可以直接使用已经经过验证和优化的软件组件时,就不必再花费大量时间去重新开发类似的功能,从而大大缩短了开发周期。
其次,软件重用有助于提高软件的质量。
因为被重用的软件元素通常已经在之前的项目中经过了充分的测试和验证,其稳定性和可靠性相对较高。
再者,它能够降低开发成本。
减少了重复的开发工作,也就降低了人力、时间和资源的投入。
最后,软件重用还能增强软件的可维护性。
由于重用的部分具有一致性和标准化的特点,维护起来会更加容易。
然而,要实现软件重用,并不是一件简单的事情。
它需要我们在软件开发的整个过程中,建立起一套有效的管理和技术体系。
在需求分析阶段,我们就需要考虑是否有可以重用的软件组件能够满足当前项目的需求。
这就要求开发人员对已有的软件资源有充分的了解和掌握。
同时,还需要对新的需求进行准确的分析和评估,以确定哪些部分可以通过重用现有组件来实现,哪些部分需要进行新的开发。
在设计阶段,我们要设计出具有良好可重用性的软件架构。
这意味着架构应该具有清晰的层次结构、简洁的接口和高度的模块化。
这样的架构能够方便地将不同的软件组件组合在一起,同时也便于对单个组件进行替换和升级。
在编码阶段,开发人员需要遵循一定的规范和标准,以确保编写的代码具有良好的可读性、可维护性和可重用性。
代码的注释、命名规则、代码结构等方面都需要精心设计,以便其他开发人员能够轻松理解和使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)估计各个任务单元的成本;
(4)汇合成项目总成本。
●由底向上成本估计的缺点是:具体工作人员往往只
注意到自己范围内的工作,对涉及全局的花费可能估
计不足,可能使成本估计偏低。
3. 算法模型估计
●算法模型就是资源模型,要选择适用的模型。
●算法模型估计法常与自顶向下估计或由底向上估计
结合使用。
软件工程
12
T = 2.47 × E 0.35 (月)
软件工程
4
2. Putnam (普特南)资源模型
●Putnam 资源模型是动态多变量资源模型。 用以下的方程式表示:
K = L3 / ( c3 T4 )
其中: L (行):源程序长度。 T (年):开发时间。 K (人-年): 全生存周期工作量。
c: 与开发环境有关的常数。
E=2.8×L1.20 T=2.5×E0.32
与硬件关系密切的程序,如 操作系统、 数据库管理系统、 实时处理与控制程序等。
软件工程
8
属性
产品 属性
计算机 属性
人员 属性
项目 属性
表11.2 调节因子和它的值范围
调节因子
调节值范围
例11.1中 使用的值
要求的可靠性等级
0.75 - 1.40
1.00
人力
②
①
③
td
t
图11.5 Rayleigh - Norden 曲线
● td 相当于软件开发完成的时间; ● 用虚线画出来的矩形,显示了平均使用人力的问题:
①浪费的人力 ②不足的人力 ③过晚的人力。
软件工程
14
SOFTWARE DEVELOPMENT STEPS
REQUIREMENTS ANALYSIS
11.4 人员的分配与组织
●各个开发阶段需要的人力并不相同。一
般地说, 计划与分析阶段只需要很少的人;
概要设计的人多一些; 详细设计的人又多
一些; 编码和测试阶段的人数最多; 在运
行初期, 需要较多的人参加维护, 但很快
就可以减少下来, 只需保留很少的维护人
员就可以满足需要。
软件工程
13
1. Rayleigh-Norden 曲线
④多次反复,直到专家意见接近。
(2)然后在项目内部(按阶段或任务单元)进
行成本分配。
●自顶向下成本估计的缺点是:对某些局部问题
或特殊困难容易低估;如果所开发的软件缺乏
可以借鉴的经验,估计时就可能出现较大的误
差。
软件工程
11
2. 由底向上成本估计
(1)先将开发任务分解为许多子任务;
(2)子任务再分成子子任务,直到每一个任务单元;
9
11.3 软件成本估计 ●软件成本估计方法有主要3类:自顶向 下成本估计、由底向上成本估计和算法 模型估计。
软件工程
10
1. 自顶向下成本估计
(1)首先估算总成本(可以采用特尔斐专家估计
法);
●特尔斐( Delphi )法:
①多个专家各自填“成本估计表”;
②综合专家意见,把摘要意见通知大家;
③开始新一轮估计;
软件工程
3
1.静态单变量资源模型 资源 = c1 × (估计的软件特征) c2
其中: ●资源为开发工作量 E(人-月)、开发时间 T(月) 或开发人数 P; ●“估计的软件特征”通常用源程序长度L(千 行)表示; ● c1、c2为依赖于开发环境和应用领域的2个经 验常数。 如: E = 5.1 × L 0.91 (人-月)
开发方法的现代化 软件工具的数质量 完成时间的限制
软件工程
1.46 - 0.71 1.42 - 0.70 1.29 - 0.82 1.21 - 0.90 1.14 - 0.95
1.24 - 0.82 1.24 - 0.83 1.23 - 1.10
0.86 0.86 1.00 1.10 1.00
0.91 1.10 1.00
SYSTEM DESIGN
PROGRAM DESIGN
PROGRAM IMPLEMENTATION
UNIT TESTING
软件工程
7
表11.1 不同类型软件的 COCOMO模型
软件 类别
组织型
半独立 型
嵌入型
模型 方程
适用范围
E=3.2×L1.05 T=2.5×E0.38
高级语言应用程序,如科学 计算、数据处理、企业管理 程序等规模较小的软件产品
E=3.0×L1.12 T=2.5×E0.35
大多数实用程序,如编辑程 序、连接程序、编译程序等。 (规模较大的软件产品)
例11.1 有一个嵌入型的电信处理程序,程序 规模为10000行。计算所需的工作量与开发时间。
E = 2.8 × 10 1.20 = 44.4 (人-月) T = 2.5 × 44.4 0.32 = 8.4 (月) ●中间COCOMO模型以静态单变量模型为基础, 增加15个工作量调节因子,是静态多变量模型。
软件工程
5
11.2.2 COCOMO模型 (COnstructive COst MOdel,结构性 成本模型) ●COCOMO模型分为基本COCOMO模 型、中间COCOMO模型 和 详细 COCOMO模型三种。
软件工程
6
●基本COCOMO模型是静态单变量模型,它将 软件分类为:组织型、半独立型和嵌入型 3种 类型,每类分别使用一组不同的模型方程(见 表11.1)。
数据库规模
0.94 - 1.160.94产品来自杂度0.70 - 1.65
1.30
对程序执行时间的约束
1.00 - 1.66
1.11
对程序占用存储容量的约束
1.00 - 1.56
1.06
开发环境的变动
0.87 - 1.30
1.00
开发环境的响应时间
0.87 - 1.15
1.00
分析员水平 程序员水平 对应用领域的熟悉程度 对开发环境的熟悉程度 对所用语言的熟悉程度
3.项目的其它管理
①项目进度安排;
②人员的分配与组软件工织程 。
2
11.2 软件估算模型 (Resource Estimation Model)
11.2.1 资源估算模型 (Resource Estimation Model)
●资源模型用来估算软件在开发中花费的 资源,如开发时间、开发人数以及工作量 等(人-月 或 人- 年)。
第十一章 软件工程管理 Chapter 11 Software Engineering Management
软件工程
1
11.1 管理的目的与内容
●管理的目的:按预定的时间和费用,成功地
完成软件的计划、开发和维护任务。
●管理的内容
1.费用管理
①估算软件的开发费用;
②管理开发费用的有效使用。
2.质量管理(包括配置管理)