当前位置:文档之家› 软件工程11_软件开发环境

软件工程11_软件开发环境

4
2017/9/4
Eric
检出文件D
文件D 版本 n
Kate
检出文件D 编辑文件D
文件D 版本 n+1
编辑文件D
检入文件D
检入文件D
• 版本系统对于冲突问题的解 决通常存在两种方法。 • 第一种方法被称为是悲观的 方法,原理是第一个检出文 件的人将会拥有对该文件的 排它锁。好处在于能够保证 一个文件只由一个人同时进 行编辑并且不会导致任何的 冲突发生。 • 第二种是乐观的方法,开发 人员可同时对文件进行编辑 ,但涉及如何合并修改和冲 突的解决。 • 版本系统与其它工具联合使 用会发挥出更大的价值。
2017/9/4 11
• 确定最小持续时间的路径又被称为是关键路径,每个处于 关键路径上的工作包如果遇到计划外的延期则意味着整个 项目的拖延。 • 复杂项目计划中很重要的一个工作就是在关键路径上尽可 能少的安排工作包,这样也能够在计划中为工作包产生更 多的时间缓冲。 • 每个项目计划以及所有项目员工的总体分配方案是彼此依 赖的复杂系统,不仅要使得员工的工作负担尽量均衡也要 使得项目尽可能快的进展下去,这对项目的计划提出了更 高的要求。
• 版本管理主要包括两个方面的工作:
– 一方面要规范化不同开发人员之间的合作方式 ,必须能够保证一个人的工作不会被其它人意 外的覆盖; – 另一方面是要确保每个人工作的对象是当前需 要的版本而且能够为后续开发提供基础。
• 累进式的开发过程可能随时有一些新想法 和实现,但随后又被抛弃掉,这就需要有 方便回到先前工作状态的机制。
第11章 软件开发环境
• 软件开发人员进行团队开发,需要保证工作在正确的 版本下,而且每个开发者要有独立的开发环境并给出 测试和集成的方式——版本管理和生成管理。 • 项目计划是项目管理的内容,包括工作量估算等。
• 软件质量的管理及其保证。
• 项目管理中的人员组织和管理。
2017/9/4
1
版本管理
2017/9/4 2
确定开发 任务
[小缺陷] 修正缺陷
累进式的 开发过程
[原因不明] 进一步调试
模块编码
[局部算法调整] 小范围更换解决方案
[整体算法调整] 模块测试 大范围更换解决方案
[正常]
[未完成] [完成]
版本树
2017/9/4 3
文件从版本管理系统 中检出(Checkout)
文件编辑
将文件检入版本管理 系统(Checkin)
2017/9/4 9
XBRL数据库项目
130PD
项目管理
10PD
质量保证
35PDΒιβλιοθήκη 项目基础设施5PD
项目开发
80PD
原型开发
用例1: XBRL科目构建 10PD
用例n: XBRL导入 35PD
项目部署
15PD
20PD
• 每项工作任务同时也给出了对应的工作量,使用单位“人 天(PD)”表示。 • 对每项工作包应存在两个评估值——期望的工作量和为潜 在问题预留的缓冲量。
2017/9/4 10
任务安排与工程网络图
• 为了更好的完善计划,除了需要合理的估算每个工作包的 工作量外,还需要识别出彼此之间的依赖关系,即理清工 作任务的优先级和顺序性。
P2 P1 3 7 P3
2 5 3
4
6 5 P4
4
P5 7
任务 最小持 续时间 最大持 续时间
• 工作任务之间的依赖关系可以通过工程网络图进行展现, 其中没有给出最小和最大工作量,而是关注每个工作包持 续的时间状况。 • 持续时间分析的好处是了解和掌握工作被分解到工作包后 的并行情况。
7
2017/9/4
变更管理
• 软件生存周期内全部的软件配置是软件产品的真 正代表,必须使其保持精确。 • 软件过程中某一阶段的变更,均要引起软件配置 的变更,这种变更必须严格加以控制和管理,保 持修改信息,并把精确、清晰的信息传递到软件 过程的下一步骤。 • 软件变更管理包括建立控制点和建立报告与审查 制度。 • 变更管理还包括对用户的确认以及使其随时掌握 变更的进度以及细节,如责任人等内容。
2017/9/4
6
发布管理
生成 生成 管理 管理 版本 配置 管理 管理
发布 发布 管理 管理
变更 变更 管理 管理
版本 生成 管理 管理
• 发布管理(Release)的主要作 用是协调在合适的时间对合适 的用户交付合适产品的保证。 • 软件资源、软件开发过程以及 开发人员的分散化,导致软件 发布管理的复杂化。 • 软件开发不是一蹴而就的过程 。 • 发布管理是对项目管理的一个 有效补充。
2017/9/4 8
项目计划及跟踪
• 与技术实现的关注点不同,项目管理主要关注组织和管理 层面的内容。 • 在项目计划的开始,第一步是要决定哪些任务需要完成。 这个工作可以通过一种叫做工作分解结构(WorkBreakdown-Structure,WBS)进行展开,将任务按照层 次的结构由上到下逐步进行分解。 • 在分解的过程中需要注意子任务间的工作内容应尽量做到 无重叠或较少的重叠。 • 还存在一些跨任务的工作,如质量保证、项目管理以及针 对用例的技术工作。 • 还可以有其它的分解方式,比如根据目标软件的构成进行 分解也是有意义的。
• 版本管理系统的核心工作是对项目软件或者 项目文档的管理,把存储所有项目内容的数 据库称为版本仓库(repository),版本仓 库可以理解为一个存储着所有开发历史的数 据库,与通常意义的数据库不同,它一般是 在现有文件系统上的高效实现。 • 所有纳入版本仓库进行管理的各种软件资产 统称为软件配置项,包括各种文档、数据以 及代码等。 • 配置项在其生命周期的特定时间点上通过正 式评审而进入正式受控的一种状态,称之为 基线(baseline)。 • 作为配置管理的基础,基线可理解为软件配 置项的一个稳定版本,基线为后续开发活动 提供了信息的稳定性和一致性。
5
2017/9/4
生成管理
• 生成(Build)管理系统的主要任务是描述最终软件产品 的结构和生成过程。 • 在生成管理的应用领域,Ant和Make工具的主要作用:
– 提供边界条件的管理,如系统配置以及其它相关变量; – 命令链的执行管理,其描述了从某些对象出发构建新对象的过程 及其结果位置等。
• Ant的一个示例。 • 理论上应该将更多的开发环节都使用工具进行自动化的支 持,它们的主要目的除了为环节本身提供效率,更应为其 它环节提供便利。
相关主题