什么是软件软件的分类软件的发展软件危机软件工程软件工

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 什么是软件 ▪ 软件的分类 ▪ 软件的发展 ▪ 软件危机 ▪ 软件工程 ▪ 软件工程的目的和要求
什么是软件?
软件是计算机系统中与硬件相互依 存的另一部分,它是包括程序及其 相关文档的完整集合。
程序是按事先设计的功能和性能要 求执行的指令序列
文档是与程序开发,维护和使用有 关的图文材料
软件的特点
软件本身是复杂的
实际问题的复杂性
程序逻辑结构的复杂性
软件成本相当昂贵
相当多的软件工作涉及到社会因素
软件的分类
按软件的功能进行划分: 系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等
支撑软件 文本编辑程序 文件格式化程序 磁盘向磁带向数据传输的程序 程序库系统 支持需求分析、设计、实现、 测试和支持管理的软件
瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型
瀑布模型
快速原型模型
快速原型是快速建立起来的可以在计算 机上运行的程序,它所能完成的功能往 往是最终产品能完成的功能的一个子集。 上图中实线箭头表示开发过程,虚线箭 头表示维护过程。快速原型模型的第一 步是快速建立一个能反映用户主要需求 的原型系统,让用户在计算机上试用它, 通过实践来了解目标系统的概貌。
面向对象方法学
对象+类+继承+基于消息的通信
软件过程
软件过程是为了获得高质量软件所需要完成 的一系列任务的框架,它规定了完成各项任务的 工作步骤。
软件规格说明:规定软件的功能及其运 行的限制 软件开发:产生满足规格说明的软件 软件确认:确认软件能够完成客户提出 的要求 软件演进:为满足客户的变更要求,软 件必须在使用的过程中演进
产生软件危机的原因
与软件本身的特点有关, 和软件开发与维护的方法不正确
有关
软件工程
软件工程的定义 软件工程的基本原ቤተ መጻሕፍቲ ባይዱ 软件工程包含的内容 软件工程方法学三要素 软件工程方法学 软件过程 软件生存周期及其模型
软件工程的定义
IEEE(1993):软件工程是: ①把系 统的、规范的、可度量的途径应用于软 件开发、运行和维护过程,也就是把工 程应用于软件; ②研究①中提到的途 径。” Boehm:运用现代科学技术知识来设计 并构造计算机程序及为开发、运行和维 护这些程序所必需的相关文件资料
增量模型
增量模型也称为渐增模型,使用增量模型开 发软件时,把软件产品作为一系列的增量构 件来设计、编码、集成和测试。每个构件由 多个相互作用的模块构成,并且能够完成特 定的功能。使用增量模型时,第一个增量构 件往往实现软件的基本需求,提供最核心的 功能。随后的增量构件提供更完善、高级的 功能
增量模型图
软件工程的基本原理
1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚地审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性
软件工程包含的内容
软件工程包括技术和管理两方面的内容 所谓管理就是通过计划、组织和控制等一系
列活动,合理地配置和使用各种资源,以达 到既定目标的过程。 通常把在软件生命周期全过程中使用的一整 套技术方法的集合称为方法学 (methodology),也称为范型(paradigm)。
软件工程方法学三要素
软件工程方法学三要素:方法、工具和过程
方法是完成软件开发的各项任务的技术方法,回 答“怎样做”的问题;
应用软件
商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
按软件规模进行划分:
类别 参加人员数 研制期限 源程序行数
微型
1
1~4周 0.5k
小型 1
1~6月 1k~2k
中型 2~5
1~2年 5k~50k
螺旋模型
螺旋模型沿着螺线旋转,在四个象 限上分别表达四个方面的活动,即:
制定计划──确定软件目标,选定实 施方案,弄清项目开发的限制
风险分析──分析所选方案,考虑如 何识别和消除风险
实施工程──实施软件开发
客户评估──评价开发工作,提出修 正建议
软件危机
软件危机是指在计算机软件的开发和维 护过程中所遇到的一系列严重问题。
概括地说,软件危机包含两方面的问题 如何开发软件 如何维护数量不断膨胀的已有软件。
软件危机典型表现
(1)对软件开发成本和进度的估计常 常很不准确
(2)用户对“已完成的”软件系统常 常不满意
(3)软件产品的质量往往靠不住 (4)软件常常是不可维护的 (5)软件通常没有适当的文档资料
软件生存周期 life cycle
软件有一个孕育、诞生、成长、成 熟、衰亡的生存过程。这个过程即 为计算机软件的生存期
软件生存期的六个步骤,即可行性 研究、需求分析、设计、编码、测 试及运行维护
软件生存周期模型
软件生存期模型是跨越整个生存期 的系统开发、运作和维护所实施的 全部过程、活动和任务的结构框架
软件是一种逻辑实体,而不是具体 的物理实体。因而它具有抽象性 软件的生产与硬件不同,在它的开 发过程中没有明显的制造过程 在软件的运行和使用期间,没有硬 件那样的机械磨损,老化问题
软件的开发和运行常受到计算机系 统的限制,对计算机系统有着不同 程度的依赖性
软件的开发至今尚未完全摆脱手工 艺的开发方式
工具是为运用方法而提供的自动的或半自动的软 件工程支撑环境;
过程是为了获得高质量的软件所需要完成的一系 列任务的框架,它规定了完成各项任务的工作步 骤。
目前使用得最广泛的软件工程方法学,分别是传 统方法学和面向对象方法学。
软件工程方法学
传统方法学
传统方法学也称为生命周期方法学或结构化范 型。它采用结构化技术(结构化分析、结构化 设计和结构化实现)来完成软件开发的各项任 务
大型 5~20
2~3年 50k~100k
甚大型 100~1000 4~5年 1M(=1000k)
极大型 2000~5000 5~10年 1M~10M
按软件工作方式划分: 实时处理软件 分时软件 交互式软件 批处理软件
软件发展阶段
程序设计阶段 — 50至60年代 程序系统阶段 — 60至70年代 软件工程阶段 — 70年代以后
相关文档
最新文档