软件工程学概述(一)

最近拜读了软件工程的有关资料,感觉很有收获,遂写了这篇读书笔记。这篇读书笔记从“这个过程可以解决软件开发的哪些问题”,到“为什么出现这些问题”,然后“怎么解决这些问题”,最后是微软过程的解决方案。洋洋洒洒分了两大章,这是第一部分,在这里只写了我感觉对实际应用比较有益的东西。

第一部分,“软件危机”概念,具体有以下表现:

  1. 对开发成本和进度估计不准确
  2. 用户对“已完成的”软件系统不满意
  3. 软件质量不过关
  4. 软件不可维护
  5. 没有留下文档资料,后期维护艰难
问题远远不止这些,所谓“软件危机”,是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。那我们要解决这些问题,就要了解他们是怎么产生的。

                                                  

第二部分,“软件危机”产生的原因

  1. 软件本身的特点。由于软件的代码缺乏可见性,所以质量难以评价。而且牵一发动全身,越到后期发现的问题,修改付出的代价越大。
  2. 软件开发与维护的方法不当。对用户要求没有完整准确的认识就匆忙着手编写程序,是一个很严重的问题。只有用户才真正了解他们自己的需要,但许多用户在开始时并不能准确具体的叙述他们的需要,码农需要做大量的调研,反复与用户进行交流,才能全面准确具体的了解用户的需求。

了解了问题为什么出现,下面我们就来谈一下,怎么去解决。


第三部分,“软件危机”解决方案

为了解决这些问题,既要技术措施(方法和工具),又要有必要的管理措施。一门新兴学科——软件工程,应运而生。从技术和管理两方面研究如何更好的开发和维护软件。

软件工程,采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明的正确的管理技术和当前的能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护他。

作为一门学科,他有自己的本质特征,基本原理,方法学,定义了软件的生命周期,还有很多软件过程的模型(即获得高质量的软件的管理步骤),这里就不一一摘抄了,下面我们来说极限编程。

2001年17位专家起草了敏捷过程,由四个简单的价值观组成:

  1. 个体和交互胜过过程和工具
  2. 可以工作的软件胜过面面俱到的文档
  3. 客户合作胜过合同谈判
  4. 响应变化胜过遵循计划
极限编程是敏捷过程中最富盛名的一个,“极限”二字是指把好的开发实践运用到极致。极限编程广泛应用户需求模糊且经常改变的场合,具有对变化和不确定性更快速、更敏捷的反映特性,因此能够较好的适应商业竞争环境下对小型项目提出的有限资源和有限时间的约束,以下简述采用的有效的开发实践。

  1. 用户作为开发团队成员
  2. 使用用户素材
  3. 短交付周期
  4. 验收测试
  5. 结对编程
  6. 测试驱动开发
  7. 代码集体所有
  8. 持续集成
  9. 可持续的开发速度
  10. 开放的工作时间
  11. 及时调整计划
  12. 简单的设计
  13. 重构
  14. 使用隐喻

关于极限编程的开发过程和开发模式,以及微软过程的有关内容,会在后面的博客 ,软件工程学概述(二)中讲述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值