第一章软件工程概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序是按事先设计的功能和性能要求执行的指令 序列
数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料
1.1.2软件的特点
软件是一种逻辑实体,而不是具体的物理 实体。因而它具有抽象性
在软件的运行和使用期间,没有硬件那样 的机械磨损,老化问题
软件的生产与硬件不同,在它的开发过程 中没有明显的制造过程,软件维护困难
3、按工作方式划分
– 实时处理软件:指在事件或数据产生时立即进 行处理
– 分时软件:在多个用户在联机情况下同时要求 系统对其进行处理时,系统将处理机时间轮流 分配给各用户,使用户感到系统仅为自己服务
– 交互式软件:可通过各种用户界面实现人机通 信
– 批处理软件:将一组作业或一批数据按要求的 顺序逐个处理,直至全部作业处理完毕
软件工程学教程
cxp2760@163.com caoxp@xiyou.edu.cn
13991212068
课程简介
课程名称: 软件工程 教 材:《Software Engineering 》(英)Ian Sommerville
《软件工程导论》 张海藩 教学方式:授课+项目讨论+上机实习 课时安排:32 + 16 考试类别:闭卷考试 参考教材:
(4)大型
5至10个人在两年多的时间里完成的5万到10 万行的程序。
例如编译程序、小型分时系统、应用软件包、 实时控制系统等很可能是这种软件。
参加工作的软件人员需要按二级管理,例如 划分成若干小组,每组5人以下为好。在任务 完成过程中,人员调整往往不可避免。因此 会出现对新手的培训和逐步熟悉工作的问题。
1.1.2软件的特点(2)
软件的开发和运行常受到计算机系统的限制, 对计算机系统有着不同程度的依赖性
软件的开发至今尚未完全摆脱手工艺的开发方 式
软件本身是复杂的,相当多的软件工作涉及到社 会因素 实际问题的复杂性 程序逻辑结构的复杂性
软件成本相当昂贵
1.1.3软件与硬件的关系
生命初期
“磨损”后
故障率
故障率
硬件的故障率曲线
副 作 修用 改
软件的故障率曲线
实际曲线
理想曲线 时间
1.1.4软件分类
1、按功能进行划分: – (1)系统软件:能够控制计算机系统各部件
(软硬件)协调、高效地工作和进程处理、 资源共享管理等 操作系统 数据库管理系统 设备驱动程序 通信处理程序等
(2)支撑软件
(2)小型
一个人半年之内完成的2千行以内的程序。
例如,数值计算问题或是数据处理问题就 是这种规模的课题。
这种程序通常没有与其它程序的接口。但 需要按一定的标准化技术、正规的资料书 写以及定期的系统审查。只是没有大题目 那样严格。
(3)中型
5个人以内在一年多时间里完成的5千到5万 行的程序。
工具软件,它帮助软件开发人员开发自己的软 件产品
– 文本编辑程序 – 文件格式化程序 – 磁盘向磁带向数据传输的程序 – 程序库系统
– 支持需求分析、设计、实现、测试和支持管 理的软件
(3)应用软件
为特定的应用目的而开发的服务性软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
3、按服务对象范围划分
(1)项目软件,也称定制软件
对于这样规模的软件,采用统一的标准,实 行严格的审查是绝对必要的。由于软件的规 模庞大以及问题的复杂性,往往会在开发的 过程中出现一些事先难于做出估计的不测事 件。
(5)甚大型
100至1000人参加用4到5年时间完成的具 有100万行程序的软件项目。
这种甚大型项目可能会划分成若干个子项 目,每一个子项目都是一个大型软件。子 项目之间具有复杂的接口。
1. 《软件工程——实践者之路》(原名:Software Engineering – A Practitioner’s Approach, Sixth Edition), Roger S. Pressman,清华大学出版社 2006
2. 软件工程学教程 陈 明 科学出版社 3. 软件工程实践者的研究方法 黄柏素等译 机械 4. 软件工程 邓良松等 西安电子科技大学出版社
第1章软件工程概述
1.1 计算机软件概念 1.2 软件的发展 1.3软件危机与软件问题 1.4 软件工程与开发准则 1.5 软件生命周期 1.6 软件开发模型
1.1 计算机软件概念
1.1.1 计算机软件 软件是计算机系统中与硬件相互依存的另一部分, 它是包括程序,数据及其相关文档的完整集合
例如,实时处理系统、远程通信系统、多 任务系统、大型操作系统、大型数据库管 理系统、军事指挥系统通常现有这样的规 模。
很显然,这类问题没有软件工程方法的支 持,它的开发工作是不可想象的。
(6)Leabharlann Baidu大型
2000人到5000人参加,10年内完成的 1000万行以内的程序。
这类软件很少见,往往是军事指挥、弹 道导弹防御系统。
(1) 微型
只是一个人,在几天之内完成的软件。写出的 程序不到5百行语句,仅供个人专用。
通常这种小题目无需做严格的分析,也不必要 有一套完整的设计、测试资料。不过这并不是 说可以随便地不讲任何方法地做。
事实说明,即使这样小的题目,如果经过一定 的分析、系统设计、结构化编码以及有步骤地 测试,肯定也是非常有益的。
这种课题开始出现软件人员之间、软件人员 与用户之间的联系、协调的配合关系问题。 因而计划、资料书写以及技术审查需要比较 严格地进行。
这类软件课题比较普遍,许多应用程序和系 统程序就是这样的规模。
在开发中使用系统的软件工程方法是完全必 要的,这对提高软件产品质量和程序人员的 工作效率起着重要的作用。
2、按软件规模进行划分
类别 参加人员数 微型 1 小型 1 中型 2~5 大型 5~20
甚大型 100~1000 极大型 2000~5000
研制期限 源程序行数
1~4周
0.5k
1~6月 1k~2k
1~2年 5k~50k
2~3年 50k~100k
4~5年 1M(=1000k)
5~10年 1M~10M
数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料
1.1.2软件的特点
软件是一种逻辑实体,而不是具体的物理 实体。因而它具有抽象性
在软件的运行和使用期间,没有硬件那样 的机械磨损,老化问题
软件的生产与硬件不同,在它的开发过程 中没有明显的制造过程,软件维护困难
3、按工作方式划分
– 实时处理软件:指在事件或数据产生时立即进 行处理
– 分时软件:在多个用户在联机情况下同时要求 系统对其进行处理时,系统将处理机时间轮流 分配给各用户,使用户感到系统仅为自己服务
– 交互式软件:可通过各种用户界面实现人机通 信
– 批处理软件:将一组作业或一批数据按要求的 顺序逐个处理,直至全部作业处理完毕
软件工程学教程
cxp2760@163.com caoxp@xiyou.edu.cn
13991212068
课程简介
课程名称: 软件工程 教 材:《Software Engineering 》(英)Ian Sommerville
《软件工程导论》 张海藩 教学方式:授课+项目讨论+上机实习 课时安排:32 + 16 考试类别:闭卷考试 参考教材:
(4)大型
5至10个人在两年多的时间里完成的5万到10 万行的程序。
例如编译程序、小型分时系统、应用软件包、 实时控制系统等很可能是这种软件。
参加工作的软件人员需要按二级管理,例如 划分成若干小组,每组5人以下为好。在任务 完成过程中,人员调整往往不可避免。因此 会出现对新手的培训和逐步熟悉工作的问题。
1.1.2软件的特点(2)
软件的开发和运行常受到计算机系统的限制, 对计算机系统有着不同程度的依赖性
软件的开发至今尚未完全摆脱手工艺的开发方 式
软件本身是复杂的,相当多的软件工作涉及到社 会因素 实际问题的复杂性 程序逻辑结构的复杂性
软件成本相当昂贵
1.1.3软件与硬件的关系
生命初期
“磨损”后
故障率
故障率
硬件的故障率曲线
副 作 修用 改
软件的故障率曲线
实际曲线
理想曲线 时间
1.1.4软件分类
1、按功能进行划分: – (1)系统软件:能够控制计算机系统各部件
(软硬件)协调、高效地工作和进程处理、 资源共享管理等 操作系统 数据库管理系统 设备驱动程序 通信处理程序等
(2)支撑软件
(2)小型
一个人半年之内完成的2千行以内的程序。
例如,数值计算问题或是数据处理问题就 是这种规模的课题。
这种程序通常没有与其它程序的接口。但 需要按一定的标准化技术、正规的资料书 写以及定期的系统审查。只是没有大题目 那样严格。
(3)中型
5个人以内在一年多时间里完成的5千到5万 行的程序。
工具软件,它帮助软件开发人员开发自己的软 件产品
– 文本编辑程序 – 文件格式化程序 – 磁盘向磁带向数据传输的程序 – 程序库系统
– 支持需求分析、设计、实现、测试和支持管 理的软件
(3)应用软件
为特定的应用目的而开发的服务性软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
3、按服务对象范围划分
(1)项目软件,也称定制软件
对于这样规模的软件,采用统一的标准,实 行严格的审查是绝对必要的。由于软件的规 模庞大以及问题的复杂性,往往会在开发的 过程中出现一些事先难于做出估计的不测事 件。
(5)甚大型
100至1000人参加用4到5年时间完成的具 有100万行程序的软件项目。
这种甚大型项目可能会划分成若干个子项 目,每一个子项目都是一个大型软件。子 项目之间具有复杂的接口。
1. 《软件工程——实践者之路》(原名:Software Engineering – A Practitioner’s Approach, Sixth Edition), Roger S. Pressman,清华大学出版社 2006
2. 软件工程学教程 陈 明 科学出版社 3. 软件工程实践者的研究方法 黄柏素等译 机械 4. 软件工程 邓良松等 西安电子科技大学出版社
第1章软件工程概述
1.1 计算机软件概念 1.2 软件的发展 1.3软件危机与软件问题 1.4 软件工程与开发准则 1.5 软件生命周期 1.6 软件开发模型
1.1 计算机软件概念
1.1.1 计算机软件 软件是计算机系统中与硬件相互依存的另一部分, 它是包括程序,数据及其相关文档的完整集合
例如,实时处理系统、远程通信系统、多 任务系统、大型操作系统、大型数据库管 理系统、军事指挥系统通常现有这样的规 模。
很显然,这类问题没有软件工程方法的支 持,它的开发工作是不可想象的。
(6)Leabharlann Baidu大型
2000人到5000人参加,10年内完成的 1000万行以内的程序。
这类软件很少见,往往是军事指挥、弹 道导弹防御系统。
(1) 微型
只是一个人,在几天之内完成的软件。写出的 程序不到5百行语句,仅供个人专用。
通常这种小题目无需做严格的分析,也不必要 有一套完整的设计、测试资料。不过这并不是 说可以随便地不讲任何方法地做。
事实说明,即使这样小的题目,如果经过一定 的分析、系统设计、结构化编码以及有步骤地 测试,肯定也是非常有益的。
这种课题开始出现软件人员之间、软件人员 与用户之间的联系、协调的配合关系问题。 因而计划、资料书写以及技术审查需要比较 严格地进行。
这类软件课题比较普遍,许多应用程序和系 统程序就是这样的规模。
在开发中使用系统的软件工程方法是完全必 要的,这对提高软件产品质量和程序人员的 工作效率起着重要的作用。
2、按软件规模进行划分
类别 参加人员数 微型 1 小型 1 中型 2~5 大型 5~20
甚大型 100~1000 极大型 2000~5000
研制期限 源程序行数
1~4周
0.5k
1~6月 1k~2k
1~2年 5k~50k
2~3年 50k~100k
4~5年 1M(=1000k)
5~10年 1M~10M