当前位置:文档之家› 软件开发技术基础详解

软件开发技术基础详解

以IBM公司的OS/360操作系统为例。它共有4000多 个模块、100万行指令,共投入5000人年,耗资5 亿美元,但在交付使用的系统中仍找出2000个以 上的错误。
软件危机的具体表现
⑴软件开发进度难以预测 ⑵软件开发成本难以控制 ⑶用户对软件功能难以满足 ⑷软件产品质量无法保证 ⑸软件产品难以维护 ⑹软件通常缺少适当的文档资料 ⑺生产率提高的速度不能满足社会需要
软件危机产生的原因
产生软件危机有两个方面的原因:
与软件本身的特点有关;是内在因素、 客观的存在,只能因势利导加以解决。
与软件开发和维护的技术方法有关;是 外在因素,可以完善、提高。
软件特点的因素(内因)
软件是逻辑产品,是代码化了的人的思维活 动。在总体构思时,别人无法管理和干预。 在写出程序、并在机器上运行之前,进展情 况难以掌握,开发质量也无法评估。这些都 给管理和控制带来不便。
式开发; 从由少数软件天才的编程艺术到由广大用户直
接参与的应用开发。
阶段划分
半个多世纪以来,软件及软件开发技术在 理论、观念、目标及技术方法等方面都发 生了很大变化。
以10年左右为间隔,划分为五个阶段。详 见表1-1。
表中概述了每个时期软件开发技术的特点, 包括软件开发技术处理的对象、用途、目 的、开发方法、开发工具、发展状况、技 术突破、理论成就及目标等。
软件开发技术基础
计算机教学实验中心
教学内容
1.理解软件及其软件工程的概念 2.了解软件危机与软件的生命周期概念 3.理解典型软件开发过程 4.了解OO软件开发技术 5.了解C/S和B/S软件系统的结构
问题的提出
什么是软件 ? 软件有哪些特征? 软件工程的含义是什么? 什么是软件危机? 什么是软件生命周期? 软件开发技术究竟有哪些 B/S和C/S结构是什么? ……
应用软件
应用软件是为满足用户不同领域、不同问题的 应用需求而提供的那部分软件。 它可以拓宽计算机系统的应用领域,放大硬件 的功能。 应用软件具有无限丰富和美好的开发前景。 ① 事务处理软件
② 实时软件
③ 科学计算和数据处理软件
④ 嵌入式软件
⑤ 人工智能软件
按规模划分软件分类
类别
微型 小型 中型 较大型 大型 极大型
参加人 员数 1 1 2~5
5~20 100~1000 2000~5000
研制期限 1~4周 1~6月 1~2年 2~3年 4~5年 5~10年
产品规模 (语句行数)
0.5k 1k~2k 5k~10k
50k~100k 1M
1M~10M
实例 选择排序程序 数值计算程序
汇编程序
数据库系统 操作系统
空中交通管制系 统
实用、可靠、可操作性; 可维护性强 方便用户 不会折旧、损坏、零部件老化
软件产品的成本构成不同
一般产品的成本构成: 材料、设计、生产制造、 售后服务、税费、……
软件产品的成本构成: 人力、设计、售后服务、税费、……
软件产品以定制生产为主
硬件产品的生产技术和工艺已经成熟,可 以做到标准化、系列化成批生产,不论哪 个厂家生产的产品,用户买来都可以集成、 组装和替换使用。 尽管软件产品复用是软件界孜孜不倦追求 的目标,在某些局部范围内几家领军软件 企业也建立了一些软件组件复用的技术标 准,例如,OMG的CORBA、Microsoft 的COM和DCOM、SUN的EJB和J2EE, 但是目前还做不到大范围使用软件替代品。 大多数软件仍然是为特定任务或用户定制 的。
软件
系统软件 应用软件
操作系统 网络系统 语言编译器 工具软件
管理软件 实时软件 科学计算、数据处理 嵌入式软件 人工智能软件 专用领域软件
系统软件
是支持计算机系统正常运行并实现用 户操作的那部分软件。
一般是在计算机系统购买时随机携带 的,也可以根据需要另行安装。
①操作系统(Operating System) ②网络系统(Network System) ③语言编译系统( Language Compiler) ④通信软件(Communications Software) ⑤工具软件(Tools Software)
软件危机
从20世纪60年代开始,软件业出现,研制软件系 统需要投入大量的人力、物力和资金,但是系统 的质量却无法保证。开发软件所需的高成本与软 件产品的低质量之间存在尖锐的矛盾。软件生产 周期漫长,不能满足市场需求,软件开发陷入不 可自拔的恶性循环之中。这种现象被称为“软件 危机”(Software Crisis)。
软件是特定问题在计算机上的运行描述。实 际问题的复杂性决定了一个实用软件系统规 模往往十分庞大。大有大的难处。程序规模 越大,控制、管理难度也就越大。
软件产品的不同属性
为便于软件产品的研制、生产、维护 和使用,软件还必须具有:
可维护性(Maintainability) 独立性(Dependability) 效率性(Efficiency) 可用性(Usability)
软件分类
软件按不同方式划分为不同的类型:
按功能划分 按规模划分
按功能划分软件分类
软件的基本概念
计算机系统由计算机硬件和软件构成
计算机能完成各种神奇的功能是因为存在各种软件
什么是软件?
Hale Waihona Puke 软件=程序+文档+数据
什么是程序?
程序是为实现特定目标或解决特 定问题而用计算机语言编写的命
令序列的集合
IEEE的软件定义:指计算机程序、方法和规则、相关的文档 资料以及在计算机上运行它所必需的数据
软件开发技术发展史
社会应用需求的驱动是推进软件发展进程的主线: 从软件发展早期的按个人意愿编写代码,到按
软件工程的理论生产大型应用系统; 从手工作坊式的封闭性制作到按标准制式、大
工业生产的开放系统; 从注重个人精雕细琢地编写代码的技巧到注重
工程项目的管理和开发团队的协作; 从为特定应用定制设计到以复用为目标的组件
软件的特征
软件是逻辑产品 软件产品质量的体现方式不同 软件产品的生命周期和失败曲线不同 软件产品的成本构成不同 大多数软件仍然是定制生产的 软件产品的不同属性
软件是逻辑产品
软件产品是: 具有产值、价格、质量和功能的特性 看不见,是逻辑的、无形的 是脑力劳动的结晶
软件产品质量体现方式不同
质量体现方式不同:
相关主题