关闭

人与软件工程

标签: 项目管理产品文档测试工作email
607人阅读 评论(0) 收藏 举报
分类:
        软件开发工程化可以看作是确定一个软件过程,并确保软件过程正确执行的行为。从产品的角度来看,规范软件过程的目的是为了提高产品的质量,降低个体的不确定因素对软件质量的影响。而软件产品不同于传统产品的特点在于,软件开发是一项智力密集、创造性成分较高的劳动,天然存在着开发者个人水平、思维方式与喜好等方面对产品不可避免的影响。因此,任何软件开发标准规范的贯彻执行在实际中都会碰到这样的困难:

* 开发人员对由规范引入的额外负担的抵制
大部分程序员对写需求分析文档、模块规格文档不会有什么兴趣,因此有可能造成敷衍、应付的局面,从而产生大量无用的垃圾文档,反而浪费开发者和管理者的时间;

* 项目中资源的缺乏与执行规范所必须的管理代价之间的矛盾
很多情况下要求完成项目的时间和资金有限,因此开发人员为了完成任务有可能无法保持相关文档的更新,项目管理者迫于按期完工的压力不得不放弃很多QA工作,或者由于资金有限根本无法分配QA力量;

* 执行规范本身引入的个体不确定性因素
QA人员在对项目情况和软件技术没有十分深入了解的情况下,如何断定一份需求规格说明是完整的、无二义性的?如何判断开发人员提交的规格说明是符合要求的?软件过程中的验证与审核手段很多情况下依赖于个人判断,其本身又造成了个体因素对产品质量可能造成的影响,这与传统产品的制造是很不相同的。

* 管理指标量化在软件开发中的困难
对软件过程进行管理的前提是能够看到实施情况与实施目标之间的差异,但对软件开发进行度量并不是一件容易的事情。项目管理者希望能在审核报告中能看到这样的明确说明:“该模块提供的功能与需求规格说明之间存在16~18%的差异,测试用例的覆盖率仅达到82.6%……”但对于发部分人员水平有限的组织来说,这并不是选择一个优秀的过程模型就能办到的。

* ……,等等

因此,在贯彻执行软件过程规范时,如果仅仅依靠文件规定的约束和行政管理手段,可能不会收到好的效果,甚至可能造成生产率的降低,这与引入软件过程规范的初衷是矛盾的。在这些问题中,有一些是软件开发行为自身的深层矛盾,是当前水平无法有效解决的,但也有一些是可以通过努力克服的。在实施软件过程中,应该注意以下两点:

1、坚持管理以人为本的原则
管理本身的目的不是对人进行限制,而是帮助人解决问题。举例来说,开发过程中创建文档的目的是为了加强开发者及用户之间的交流,为了使得产品更加易于理解和开发,而不是为了满足规范规定的文档必须如何齐全本身。如果开发者能够从详尽的需求说明中获取对模块彻底把握的安全感,从测试过程获取对最终产生优质产品的信心,那么他们对这样的规范体系就会很容易接受并自觉执行。确保软件过程的实施,对于开发者而言,应该是起到降低开发难度,减少开发工作量的作用,而不仅仅是有利于项目管理者。


2、适当地以法治手段取代人治手段
相对于依赖人的决策判断来实施管理的“人治”来说,“法制”手段就是不需要个体主观判断参与的管理方法。对于软件开发来说,就是建立CASE支持环境,使得软件过程实施的管理自动化、可度量化、可实施化(在下节将另行陈述)。例如,如果CASE系统发现本周用户对某些功能需求规范的更改频度超过60%,而其中80%属于某一个特定用例,那么CASE系统将判定此用例的定义与用户实际需求有较大偏差,并通过email提醒相关需求工程师。
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

软件工程领域 相关概念

编码相关:1、模块和组件的区别? 模块(Module)和组件(Component)是一对容易混淆的名词,也常常用来相互替换。两者是否有差异往往取决于专业背景、所在领域、以及视角。 Modu...
  • LavanSum
  • LavanSum
  • 2017-06-08 09:59
  • 357

画图理解软件工程-还有一些闲话(一)

初来CSDN,以前一直在博客园记笔记,现在发现博客园确实做的跟友好啊,美观大方。 。。。貌似又说废话了,现在切入正题吧。       好了进入专业装逼模式,首先说说软件工程一些理论为什么重要吧。 ...
  • u010281209
  • u010281209
  • 2016-11-25 17:09
  • 567

什么是软件工程?

软件工程学科诞生后,人们为软件工程给出了不同的定义,例如最早的定义是由F.L. Bauer给出的,即“软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则...
  • JavaWebRookie
  • JavaWebRookie
  • 2016-06-13 18:39
  • 2199

软件工程复习重点

软件工程复习重点 一、 软件工程概述 1. 软件的概念及特点 定义:软件是程序、数据及开发、使用和维护程序所需要的所有文档 特点:软件是一个逻辑的而不是物理的产品 2. 软件危机的表现形式 1) ...
  • IT_DREAM_ER
  • IT_DREAM_ER
  • 2016-07-06 21:19
  • 2242

浅谈对软件工程的认识与理解

软件工程涉及的资源有:人力、资金、时间的合理分配,涉及到文化与管理等,及各种规划化。   软件开发是一个把用户需要转化为软件需求,把软件需求转化为软件设计,用软件代码来实现软件设计,对软件代码进行测试...
  • ShareUs
  • ShareUs
  • 2016-03-11 16:47
  • 11519

软件工程中的那些图:系统流程图,程序流程图和数据流图

软件工程看完后,开始着手写有关机房收费系统的软工文档。可是其中的各种图把我搞得头疼,于是我把软件工程中提到的那些图总结了一下,还望众位大神指正! 系统流程图(System Flowchart):...
  • lianhao19900202
  • lianhao19900202
  • 2016-05-23 10:10
  • 2059

如何学习软件工程

个人浅见:软件工程涉及的内容非常多,而且学习时理论抽象的东西居多,没有具体的实践经验在将来处理具体问题时会有难度,也许这也是为什么很多人觉得很空洞的原因,不过事实显然并非如此。如果是在学校学习,个人建...
  • u013467442
  • u013467442
  • 2014-12-03 17:25
  • 2581

浅谈对软件工程的理解

SA17225439 阳晴 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 在学习《软件工程(C编码实践...
  • qq_28946537
  • qq_28946537
  • 2017-11-08 19:02
  • 211

软件工程的七条基本原则

1、 用分阶段的生命周期计划严格管理     在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划...
  • mydriverc2
  • mydriverc2
  • 2015-07-27 14:02
  • 2157

山东大学软件工程复习纲要

英文版《软件工程》教学内容回顾 (下述问题仅是课件中的主要部分回顾,问题答案以课件为主要参考) Chapter01 SE的定义、目的、方法及作用(P2 / P16) 定...
  • dkbnull
  • dkbnull
  • 2015-12-09 09:55
  • 2739
    个人资料
    • 访问:439152次
    • 积分:4753
    • 等级:
    • 排名:第7068名
    • 原创:72篇
    • 转载:121篇
    • 译文:2篇
    • 评论:39条
    最新评论
    友情链接