软件工程(十九)

来源:互联网 发布:ubantu安装mysql数据库 编辑:程序博客网 时间:2024/05/17 02:25

人员分配与组织-Personnel

1.项目组的角色构成:
在规模化、产业化的软件开发企业中,分工日趋细化,工种及人员角色较为明确。
* 秘书:主要负责维护和管理软件配置中的文档、源代码、数据及所依附的各种磁介质;规范并收集软件开发过程中的数据和可重用软件,对其进行分类并提供检索机制;协助软件开发小组准备文档,对项目中的各种参数,如代码行、成本、工作进度等进行估算;参与小组的管理、协调和软件配置的评估。
* 软件工具员:负责软件开发、测试等工具的收集、准备和保管。
* 软件配置员:负责软件项目的程序、文档和数据的各种版本控制,保证软件系统的一致性与完整性。
* 系统分析员:负责系统调研、需求分析工作。
* 设计开发人员:负责软件设计、代码编写与调试工作。
* 软件测试员:人数与开发人员相当,负责软件测试及测试结果的整理。
* 编辑:负责软件各类文档资料的撰写和编辑工作。

2、开发人员的组织形式
(1)程序设计小组:2 ~ 8人的非正式组织
优点:规模小,交流方便。
缺点:没有明确的权威负责人,组员间缺乏必要的协调。
这里写图片描述
(2)主程序员组(Chief Programmer Team):Baker IBM , 1972,核心3人
3、人力的分配和人数的确定
* 开发实践表明,软件开发各阶段所需要的技术人员类型、层次和数量是不同的。
* 软件开发项目的工作量与交付时间的4次方成反比,并由此得出了软件开发的权衡定律:在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。
* 曾担任IBM公司操作系统项目经理的F.Brooks 也从大量的软件开发实践中发现:“向一个已经延期的软件项目追加开发人员,可能使项目完成得更晚。” ——当开发人员以算术级数增长时,人员间的通信将以几何级数增长 。

质量保证 ——Quality Assurance
1、软件质量的定义:McCall’s quality model (1977)
“软件与明确的和隐含地定义的需求相一致的程度”(需求、准则、其它)
2、质量保证的措施:
⑴ 审查:由组长、作者、2位评审员(与评审结果有利害关系的)组成审查小组,进行发现、记录错误的工作,并复查返工结果。
⑵ 复查和管理复审:从技术、管理两方面进行的复查工作。
⑶ 测试

软件质量的度量
* 质量度量贯穿于软件工程的全过程中以及软件交付用户使用之后。
* 在软件交付之前得到的度量可作为判断设计和测试质量好坏的依据。这一类度量包括程序复杂性、有效的模块性和总的程序规模。
* 在软件交付之后的度量则把注意力集中于还未发现的差错数和系统的可维护性方面。
* 使用得最广泛软件质量的事后度量包括正确性、可维护性、完整性和可使用性。
(1) 正确性:一个程序必须正确地运行,并为它的用户提供某些输出。
正确性要求软件执行所要求的功能。正确性的度量是每千代码行(KLOC)的差错数,其中将差错定义为已被证实是不符合需求的缺陷。
(2) 可维护性:软件维护比其它的软件工程活动需要更多的工作量。还没有一种方法可以直接度量可维护性,因此必须采取间接度量。
有一种简单的面向时间的度量,叫做平均变更等待时间MTTC。
这个时间包括分析变更要求、设计适当的修改、实现变更并测试、及把变更发送给所有的用户。
一个可维护的程序与不可维护的程序相比,应有较低的MTTC。(3) 完整性:完整性度量一个系统抗拒对它的安全性攻击(事故的和人为的)的能力。
软件的所有三个成分程序、数据和文档都会遭到攻击。
度量完整性,需要定义两个附加的属性:危险性和安全性。
危险性是特定类型的攻击将在一给定时间内发生的概率,安全性是排除特定类型攻击的概率。
(4) 可使用性:如果一个程序不具有“用户友好性”,即使它所执行的功能很有价值,也常常会失败。可使用性量化“用户友好性”,并依据以下四个特征进行度量:
* 为学习系统所需要的体力上的和智力上的技能;
* 为达到适度有效使用系统所需要的时间;
* 当软件被某些人适度有效地使用时所度量的在生产率方面的净增值;
* 用户角度对系统的主观评价(可以通过问题调查表得到)。


欢迎关注我的微信个人订阅号
这里写图片描述
每天多学一点0.0

2 0
原创粉丝点击