《软件工程》总结——第三章

本章的主要内容是软件项目管理

软件项目原理概述:

软件项目的特征:

1. 软件产品的不可见性;

2. 项目的高度不确定性;

3. 软件过程的多变化性;

4. 软件人员的高流动性。

总而言之,“复杂”和“变化”给软件项目的管理带来了相当大的难度,降低复杂性和控制变化成为软件项目管理面临的关键问题。

软件项目管理的“4P”:

1. 人员;2. 产品;3. 过程;4. 项目。

软件项目管理活动:

1. 项目启动:

(1) 确定项目活动;

(2) 组建项目团队;

(3) 建立项目环境。

2. 项目规划:

(1) 确定项目活动;

(2) 预算项目成本;

(3) 制定进度计划。

3. 项目实施:

(1) 监控项目执行;

(2) 管理项目风险;

(3) 控制项目变更。

4. 项目收尾:

(1)客户验收项目;

(2)安装培训软件;

(3)总结项目经验。

人员组织与管理:

      软件项目组织

            1. 民主式组织结构;

2. 主程序员式组织结构;

3. 技术管理式组织结构。

      软件团队的建设

            1. 明确的目标;

2. 清晰的角色分工与紧密的团队协作;

3. 融洽的关系与通畅的沟通;

4. 高昂的士气与高效的生产力;

            建立高效的项目团队涉及企业环境、人员激励和日常管理等因素,下面的基本原则有益于项目团队的建设:

                  1. 项目成员集中办公;

2. 人人参与产品设计;

3. 关注最终产品发布;

4. 注重项目人员培训;

5. 建立良好的企业文化。

项目沟通管理

      项目沟通复杂性

软件团队规模是影响沟通有效性的重要因素之一,团队成员数量的增加会使项目的有效交流变得十分困难。

项目沟通方式

1. 直接交谈;2. 电话交谈;3. 电子邮件;4. 会议;5. 项目网站;6. 书面报告。项目交流是无处不在的,项目管理者应当合理地选择恰当的沟通方式,建立通畅的沟通         渠道,保证能够及时准确地交流项目信息。

项目沟通活动

1. 规划项目沟通;2. 建立基础设施;3. 实施阶段性评审;4. 每周组织小组会议。

软件项目规划

      软件规模估算

1. 代码行技术:

期望值: L = (a + 4m + b) / 6;    [最佳的(a)、可能的(m)、悲观的(b)]

生产率: P = L / PM    [L 是软件的代码行数,其单位是千行代码 kLOC;PM 是软件开发的工作量,其单位是人月;P 是软件开发的生产率,其单位是每人月完成的代码行数。]

单位成本: C = S / L;    [S 是软件开发的总成本,其单位是人民币或美元等货币单位;C 是每行代码的平均成本。]

代码出错率: EQR = N / L;    [N 是软件的错误总数;EQR 是每千行代码的平均错误处]

2. 功能点技术:

1. 计算未调整功能点;2. 估计调整因子;3. 计算调整功能点。

软件成本估算

1. 专家判断;2. 类比估算;3. COCOMO模型。

软件项目计划

IEEE标准,具体规格如下:

1.  概述

1.1  项目概述

1.2  SPMP 的演化

2.  参考资料

3.  定义和缩写

4.  项目组织

4.1  外部接口

4.2  内部组织结构

4.3  角色和职责划分

5.  管理过程

5.1  项目启动计划

5.2  工作计划

5.3  控制计划

5.4  风险管理计划

5.5  项目收尾计划

6.  计划过程

6.1  过程模型

6.2  方法、工具和技术

6.3  基础设施

6.4  产品验收

7.  支持过程

7.1  配置管理计划

7.2  验收和确认计划

7.3  文档计划

7.4  质量保证计划

7.5  评审计划

7.6  问题解决

7.7  分包管理计划

7.8  过程改进计划

8.  其他计划

附录

索引

软件风险管理

      风险识别

1. 软件规模风险;2. 商业影响风险;3. 客户相关风险;4. 软件过程风险;5. 开发技术风险;6. 开发环境风险;7. 开发人员风险。

风险分析

风险因素包含性能、支持、成本、进度;分别分为四个风险级别:灾难性的、严重的、轻微的、可忽略的。

风险规划

1. 与现有人员一起探讨人员流动的原因,诸如恶劣的工作条件、低报酬、竞争激烈等;2. 在项目开始之前,采取行动以缓解那些在管理控制之下的原因;3. 在项目进行过程中,有效地管理和组织软件开发过程,保证软件开发的信息交流畅通。定义软件文档的标准,建立相应的机制以确保文档的及时建立,同时对所有工作进行详细复审,使得不止一个人熟悉该项工作;4. 如果发生人员流动,则采取一些技术措施以保证人员离开时工作的连续性;5. 在关键的技术环节,对于每一个开发人员都制定一个后备人员。

风险监控

1. 项目成员对项目压力的一般态度;2. 项目组的凝聚力;3. 项目组成员彼此之间的关系;4. 与报酬和利益相关的潜在问题;5. 在公司和公司外工作的可能性。

软件配置管理

      基本概念

IEEE给出如下定义:

软件配置项:软件配置项是为了配置管理而作为单独实体处理的一个工作产品或软件。

基线:基线是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变。

版本:版本是确定在明确定义的时间点上某个配置项的状态。

软件配置库:用于记录整个软件生命周期内与配置有关的所有信息。

配置管理活动

1. 配置项标识;2. 版本管理;3. 系统构建;4. 变更控制。

配置管理工具

使用CASE工具支持软件配置是至关重要的,比如CVS。

CVS 是一种并发版本控制工具,适宜于中小型软件企业使用,也经常应用在开发源代码软件的开发工作中,Linux操作系统就是在分布式 CVS 系统上开发成功的一个典型案例。

时间: 2024-09-30 10:23:15

《软件工程》总结——第三章的相关文章

《软件工程》前三章读后感

通过第一章认清什么是软件工程,对于软件工程是一个什么样的定义,在软件开发过程中遇到了什么特别的难题,也懂得了软件工程与计算机科学的关系.对于一个好的软件,要的是尽一切可能吧软件的bug都消灭掉,软件团队的人整天都要和bug打交道,做出一个完美的符合用户需求的软件. 问题:个个都觉得软件工程有前途,将来会不会过于饱和? 第二章大部分是单元测试,回归测试的内容.我明白了单元测试是为了能让自己在团队当中负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的量化丶的保证.

0321《软件工程》前三章总结(初稿)

第一章  软件工程:挑战与魅力共存 软件工程是用工程化的方法做软件开发,是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程. 软件工程的挑战 1.复杂性.软件工程师通常一次只能看到30至80行源代码,随着系统的成长和模块的增多,这些代码会以几何级数的速度增长. 2.不可见性.工程师看不到自己的源代码如何具体地在用户的机器上被执行的,商用软件出现了错误,工程师可以看到程序在出错的一瞬间留下痕迹,但是几乎无法完整重现程序到底出了什么问题. 3.易变性.修改软件容易,可是正确地修改软

软件工程概论第三章概括

阅读完第三章之后才真正感觉到开一个软件是多么的不容易,从人员的选择自己分配还有对于软件的全面了解都是开发软件过程中比较重要的问题. 本章首先对于软件项目管理的必要做了解释,从软件项目的特征到到整个开发的流程做介绍,能深刻了解到要想开发一个完美的软件必须有一个好的软件项目管理. 下面就开始介绍人员的选择与分配还是拿出微软的员工管理方法,每个软件有他的特点,所以在人员的选择上必须针对不同软件有不同的人员,而且他们的分配又是另外一个问题,配合好了,才能高效率的工作. 最后就是不得不提到的风险问题,做每

软件工程概论第三章--软件项目管理

本章介绍了软件项目管理的相关知识,从软件项目管理概述.人员组织与管理.项目沟通管理.软件项目规划.软件风险管理及软件配置管理这几个方面展开讲述,详细的介绍了软件项目实行过程中的管理知识. 软件项目管理概述主要讲了:1.软件项目的特征,即软件产品的不可见性.项目的高度不确定性.软件过程的多变化性.软件人员的高流动性等.2.软件项目管理的“4P”,人员.产品.过程.项目.3.软件项目的管理活动,项目启动.项目规划.项目实施.项目收尾.概论讲述了软件项目管理的一些活动和重要的因素等. 人员组织与管理主

软件工程概论第三章

本章主要介绍了软件的项目管理包括软件项目的特征软件项目管理的“4P”(people.product.process(过程).project.).软件项目管理活动(项目启动.项目规划.项目实施.项目收尾),人员组织与管理包括软件项目组织(民主式组织结构.主程序员式组织结构.技术管理式组织结构),微软的软件开发组织包括微软开发团队的特点.项目团队的角色划分.大型项目的团队模型.软件团队的建设,项目沟通管理包括项目沟通复杂性.项目沟通方式.项目沟通活动,软件项目规划包括软件规模估算.软件成本估算.软件

《软件工程》第三章

软件项目特征:软件产品的不可见性:项目的高度不确定性:软件过程的多变化性:软件人员的高流动性. 有效的软件管理集中于:人员:产品:过程:项目. 软件项目的生命周期:项目启动:项目规划:项目实施:项目收尾 在大多数软件项目中,民主式.主程序员式.技术管理式是三种典型的开发组织方式. 微软公司采取灵活高效的组织方式管理软件产品的开发过程,其团队模式是小型多员化的并行开发项目组织,项目组成成员角色划分明确,互相分工合作,高效率的完成项目的开发工作. 项目团队中有程序管理角色,产品管理角色,软件开发角色

《软件工程》-第三章随笔

软件开发的成熟不仅体现在软件过程中,而且也体现在软件项目的管理过程中.软件项目的特征表现为不可见性,不确定性,多变化性,高流动性.软件项目管理集中于4个方面:人员,产品,过程,项目.管理也必须要存在一定的组织:民主示组织结构,主程序员示组织结构,技术管理示组织结构.篇章背后同样以微软公司的软件开发举例,微软公司的开发模式为小型的,多元化的项目组织形式,项目成员具有专业的技术水平和任务技能.项目即有项目人员实施,项目人员之间自然有沟通.人员的定期沟通有益于提高整个团队的开发效率.方式可以为直接交谈

阅读《软件工程—理论方法与实践》第三章心得体会

通过对第三章的阅读,对以下概念有了了解:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.其有利于将软件开发人员的个人开发能力转化成企业的开发能力,并使企业的软件开发能力不断提高和成熟.软件项目的特征有软件产品的不可见性.项目的高度不确定性.软件过程的多变化性,降低复杂性和控制变化成为软件项目管理面临的关键问题.软件项目管理集中于人员.产品.过程和项目.软件项目的生命周期包括项目启动(确定项目的目标和范围).项目规划(建立

【软件工程】第三、四章总结

现在的总结都是补得以前的.没有及时总结的后果就是再看自己的笔记的时候连自己都感觉好陌生.这样的学习是最没有效率的!看完一部分就总结是一个很好的习惯.但是我却总也坚持不下来.多么痛的领悟... [概要]软件的第三章讲的是软件需求分析.说白了就是在设计一个软件之前,我们首先要明白了解客户的需求.如果没有客户的需求就盲目的去做,就好像是没有球门的一场足球赛.就像我们的人生没有目标一样.即便是最后做出了一些东西也不一定满足客户的需求,那样的工作就是没有意义.所以,软件需求分析的阶段很重要.就像一个旗帜,

现代软件工程 第三章 练习与讨论

1  选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提.我们很多人是边看Asp.net的书, 边开发Asp.net 的项目,这相当于一边看医学书一边动手术…… 如果你是病人,你希望你的医生是下面的哪一种呢? a)     刚刚在书上看到你的病例, 开刀的过程中非常认真严谨, 时不时还要停下来翻书看看…… b)    富有创新意识, 开刀时突然想到一个新技术. 新