首页 东赢体育 成功案例 网站建设 电商设计 新闻中心 联系方式
QQ联系
电话联系
手机联系

第一讲 软东赢体育件开发概述

  东赢体育 1968年北大西洋公约组织的计算机科学家在联邦德国召 开会议,讨论软件危机问题,正式提出“软件工程”的概 念。

   软件工程即采用工程的概念、原理、技术和方法来开发和 维护软件,将工程管理技术成功的经验和思想与具体软件 的开发过程、研究技术相结合,形成一整套适合于计算机 软件开发的方法、规范和技术。

  ① ② ③ ④ ⑤ ⑥ ⑦ 对软件开发成本和进度估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往不可靠 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统中所占比例逐年上升 软件开发生产效率提高的速度运远跟不上计算机应用 迅速普及深入的趋势。

   软件的研制工作需要投入大量的、复杂的、高强度的脑力 劳动,它投入的成本是比较高的。  软件工作涉及到相当多的社会因素,如软件的开发和运行 涉及到机构设置,体制运作及管理方式等问题,甚至涉及 到人们的观念和心理,这些因素直接影响到项目的成败。

   软件开发方法往往依赖于硬件技术,同时效仿硬件技术, 但是又远远落后于硬件技术。  比如至今为止,软件的开发尚未完全摆脱手工艺的方式, 但是硬件技术已经发展到超大规模集成电路阶段,而从 市场上买到的软件,本身是一个完整的系统,不能作为 构件再组成其他程序。

   盖一个茅草屋,几个人几天就可以完成。但盖一个摩天 大楼,需要很多人协作,需要可行性分析、设计蓝图、 施工、验收等过程东赢体育,在投入后还要进行维护东赢体育。  建筑师设计大厦会考虑体系结构问题。建造房子时可以 使用预先做好的预制件,而不用一砖一瓦开始做。有时 因为某些原因,可以把用于别的房子的构件,对房子质 量等没有影响。

  (2)软件生产与硬件不同,软件开发没有明显的制造过程, 不能完全工程化。  软件成为产品后,其制造只是简单的拷贝而已。  由于软件本身是非常复杂的--实际问题的复杂性、程序 逻辑结构的复杂性,软件执行时经过一个不连续的离散 状态(离散数学)。桥梁是一种类似于连续的系统,可 用微分方程描述。软件不能完全工程化。  容错的概念:设计桥梁要使它能承受可预见的考验。软 件设计的前提是我们并不能预见软件能遇到的任何情况, 在遇到意外时,能够将损失降到最小。

  (1)系统软件  操作系统:管理东赢体育、分配、控制系统资源组程序的集合, 提供给用户可操作的基本应用界面。  编译程序:把高级语言转换为计算机可识别并执行的机 器语言  数据库管理系统:存储、管理数据,方便信息数据的使 用  网络通信管理程序:对网络间通信进行控制和管理  诊断程序:检查和判断计算机系统的故障  等等

   世界上第一个编软件的人—阿达(Augusta Ada) 19世纪60年代为机械式计算机巴贝奇编写软件  软件是整个计算机系统中具体实现各种功能和操作的核心 部分。  软件=程序方法数据文档  程序是按事先设计的功能和性能要求,执行的指令序 列  方法是提供如何构造软件的技术  数据是使程序能正常操纵信息的数据结构  文档是与程序开发,维护和使用有关的图文材料

  20世纪80年代末至今 •网络计算机 •并行计算 •人工神经网络 •专家系统 •强大的桌面系统 •多项开发技术

  20世纪70年代中至80年代末 •消费者影响 •低成本硬件 •潜入”智能” •分布式系统

  (2) 西部旅行—开发经验  对于一个完全不熟悉旅途和目的地情况的人,在途中会遇 到各种各样的问题,解决这些问题只能依赖别人的经验、 书本知识和自己的判断。如果这些问题解决得好,可能成 功到达目的地,否则就会走弯路,甚至离目的地越来越远, 最后由于时间或经费等原因不得不放弃履行。  如果这个人以前曾经成功地到达目的地,那么他以后再次 到西部旅行时就会熟悉沿途的情况,对可能遇到的风险就 会预先做好防范,成功到达目的地的机会就会大大增加。

  (1)软件是一种逻辑实体东赢体育,而不是具体的物理实体,因此它 具有抽象性,质量问题不易暴露.

   人们往往忽视软件质量问题及其造成的损失。  桥梁和操作系统的一个重要区别在于,土木工程界和软件 工程界对于崩溃这件事情的态度不一样。1940年Tacoma Narrows大桥坍塌 vs Windows死机  如果一个软件工程师像一般工程师对待桥梁坍塌那样严肃 地对待操作系统崩溃,软件工程的职业水准就会大大提高。

   软件开发过程确定以促进开发小组内部合作的活动和组织 的程序,使得能交给客户一个性能优良的产品。  过程模型包括:说明执行活动的次序;说明需要交出什么 样的制品,以及什么时候交出;将活动和制品分配给开发 者;提供监控项目进程、评估产出和计划未来项目的准则;  迭代式和增量式开发  能力成熟度模型CMM(1-5级)  ISO9000

   由前节可以看出,在信息系统开发中许多关于项目失败、 超出期限和预算、解决方案错误、系统不可维护的例子, 几乎四分之三的软件项目由于上述原因中的一种或多种 而失败。  这些“基本的困难”确定了软件开发中的一个不变得事 实,这个不变事实简要地指明软件是作为一种创造性的

  (3)软件不同于机械、电子设备,它不存在磨损和老化问题, 然而它存在退化问题,设计人员必须多次修改东赢体育。  桥梁维护仅限于粉刷、修复小裂缝、重铺路面。修改操作 系统三年修改50%的源代码,把操作系统从一种机器移植 到以一种完全不同的机器,是很自然的。  维护考虑经济问题。新旧技术选择。  只有坏的软件才需要维护?  软件维护成本和时间占整个软件成本和时间的50-60%, 有的甚至80%。

  20世纪50年代初至60年代初 •自定义软件 •有限的分布 第二阶段 •面向批处理 20世纪60年代中至70年代末 •软件产品 •数据库 •实时 •多用户

  软件的定义的发展  程序的集合:50-60年代  程序+文档:70年代,软件危机以后,认识到 文档的重要性  程序+文档+数据+方法:80年代以后,加强 软件生产的工程化、规范化

   客户因素:客户的需要被误解或没有被完全捕捉;客户 需求变化过于频繁;客户没有准备为项目提交足够的资 源;客户不想与开发者合作;客户具有不现实的期望; 系统不再对客户有利。  开发组织:未雇佣最好的开发者;为现有的开发者未提 供继续培训和教育的机会;开发者之间进行信息交换和 交互不够;未通过消除障碍并努力激励开发者;未提供 一个令人鼓舞的工作环境;使个人目标和组织策略及目 标不一致;缺少团队工作;

       bug的故事 0金额帐单的故事 美国战略防空司令部的导弹虚惊 Therac—25医用线性加速器致病人死亡 飞毛腿导弹击中沙特兵营

  ① ② ③ ④ ⑤ ⑥ ⑦ 用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采纳现代程序设计技术 结果应能清楚地审查 开发小组的人员应少而精 承认不断改进软件工程实践的必要性

  开发人员需要一种语言来创建可视化系统模型,并与客 户和其他开发人员讨论。  目前通用的语言是UML和支持UML的一些CASE工具如: MagicDraw,Power Designer,Rational Rose

他们成就了我们,我们为他们创造价值
最终我们成为了朋友,为朋友做事,我们两肋插刀

他们成就了我们

我们为他们创造价值

朋友,请填写您的需求提交给我们

*请认真填写需求信息,我们会在24小时内与您取得联系。