第1讲 绪论 本资料由-大学生创业|创业|创业网http://www.chuangyw.com/提供资料 第1讲 绪论 本资料由-大学生创业|创业|创业网http://www.chuangyw.com/提供资料 在线代理|网页代理|代理网页|http://www.dailiav.com 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http://pigproxy.cn
本讲内容 ● 软件 ● 软件的发展及软件工程 ● 软件规划 ● 软件计划 ● 领域分析 ● 软件 ● 软件的发展及软件工程 ● 软件规划 ● 软件计划 ● 领域分析 本资料由-大学生创业|创业|创业网http://www.chuangyw.com/提供资料 在线代理|网页代理|代理网页|http://www.dailiav.com 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http://pigproxy.cn
一 软件
问题: 1、什么叫硬件? 2、什么叫软件? 3、你从那些角度来理解软件概念?
演示几个软件以引出软件 1.Windows 2.word 3.成绩计算软件 4.IE浏览器
1.1 软件的概念 1、软件的常识定义: 软件是相对硬件而言的,是计算机系统中的程序、数据及其相关文档的总称。
程序是能完成确定任务,用计算机语言描述的,并能够在计算机系统上执行的语句序列。
求1+2+3+…+100累加和 main() { int i, sum=0; for (i=1; i<=100;i++) sum=sum+1; printf(“sum=%d\n”,sum); }
数据用来描述软件所要处理的业务和事物的静态特征,是程序处理的对象。
文档是指与程序开发、维护和使用有关的图文资料。
需要从以下两个方面理解软件: 1)在计算机系统中,我们把除了所有可见性设备和资源之外的计算机系统的组成部分统称为软件。 2)软件的概念比程序广泛,程序是软件的构成部分。
1.1 软件的概念 2、软件的本质: 软件是认识的中介、是人意识的外化、是人的意识基于机器的特殊反映。
1.2 软件的特征 1. 智能性 软件是人的智力劳动的产物,具有明显的智能性特征。 2. 无形性 软件不象可见设备那样具有明显的物理形体和形态,人们无法直接观察到它的形态。
3. 抽象性 软件是一种逻辑实体,而不是具体的物理实体,具有抽象性。 4. 依附性 软件不象其它产品和设备能够独立存在和工作,软件的开发和运行必须依赖于计算机系统硬件。
5. 复杂性 软件的复杂性是由软件可以解决任何行业和领域中的问题的特征所决定的。 6. 泛域性 软件可以服务与人类智能所能到达的所有领域。
7. 非损性 软件在使用过程中不象其他产品存在损耗和老化现象,只要硬件环境不发生故障和改变,软件就可以永远使用。 8. 复制性 由于软件在光、电、磁的介质上贮存,所以软件具有可复制性。
9. 演化性 软件投入运行之后,软件的功能、性能、人机界面、硬件环境处于不断变化之中,我们把软件在生存周期中不断变化的特性称之为软件的动态演化性。
1.3 软件的分类 1. 按软件功能划分 系统软件是指能与计算机硬件紧密结合,使计算机系统的各个部件、相关的软件和数据协调有效工作的软件。 操作系统; 数据库管理系统; 设备驱动程序等.
1.3 软件的分类 1. 按软件功能划分 应用软件则是指为特定领域开发和服务的一类软件,我们在日常工作和生活中,大量应用的是这类软件。 企业管理软件; 财务管理软件; 股票管理软件等.
问题二: 1、具两个系统软件的例子。 2、具两个应用软件的例子。
2. 按软件规模划分 按照软件开发所需要的人力、时间和源程序行数可以把软件划分成为微型、小型、中型、大型和超大型五类。 类型 开发人员 表1-1 软件规模划分 类型 开发人员 开发期限 源程序行数 微型 1 1-4周 0.5K 小型 1-6月 1K-2K 中型 2-5 1-2年 5K-50K 大型 5-20 2-3年 50K-100K 超大型 20以上 3年以上 1M以上
二 软件的发展与软件工程
2.1 软件发展的三个阶段 1946年世界上第一台计算机出现之后,就有了程序的概念,程序是软件的前身。 几十年来,软件的发展经历了程序设计,程序系统和软件工程三个阶段。
表1-2 软件发展的三个时期和特点
1. 人们对软件的看法逐步全面化 ◆ 从专家到一般开发人员 ◆ 从艺术到工程 ◆ 从程序设计技巧到需求分析、设计、编程、调试、维护等全面软件开发
2. 软件的内涵发生了重大变化 软件的概念和内涵从简单的程序发展成为程序、数据以及软件开发所需的一切文档。
3. 软件的需求是软件发展的动力 ◆软件可以应用到社会生活的各个领域; ◆软件产业成为国民经济支柱型产业; ◆程序软件需求刺激着软件开发的发展
4. 从程序编写发展到整个软件生存期 软件的范围从程序发展到整个软件生存周期。
2.2 软件危机 60年代初,由于认识、技术和需求的变化,出现了严重软件危机,具体表现在: ◆ 软件开发不能按照计划进行控制和完成,普遍存在拖延工期的现象; ◆ 开发出来的软件满足不了用户的需求; ◆ 软件投资严重超出预算; ◆ 软件可靠性和可用性差。 ———因软件危机提出了软件工程
2.3 软件工程 一、软件工程概念的提出 软件工程(software engineering)的概念是于1968年在北大西洋公约组织举行的一次学术会议上首次提出来的。经过几十年的发展,软件工程已经成为一门独立的学科。
软件工程是运用计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,探索和指导软件开发和维护的一门综合性学科。 2.3 软件工程 二、软件工程的概念 软件工程是运用计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,探索和指导软件开发和维护的一门综合性学科。
三、 软件工程学科的基本内容 2.软件工程方法 3.软件工程技术 5.软件工程质量 6.软件工程环境 7.软件工程应用 1.软件工程原理 软件工程是一门年轻的学科,到目前为止,对软件工程学科的构成和基本内容还没有形成统一认识。主要包括以下分支学科: 1.软件工程原理 2.软件工程方法 3.软件工程技术 4.软件工程管理 5.软件工程质量 6.软件工程环境 7.软件工程应用
软件工程原理是软件工程学科所遵循的基本规律和原则,包括: 1.软件工程原理 软件工程原理是软件工程学科所遵循的基本规律和原则,包括: ◆ 软件工程学基础; ◆ 软件工程学科中的基本规律; ◆ 软件工程学科应遵循的基本原则。
软件工程方法是软件工程学科的核心。包括: ▲ 软件开发方法 ▲ 软件管理方法 ▲ 软件度量方法 ▲ 软件维护方法 2.软件工程方法 软件工程方法是软件工程学科的核心。包括: ▲ 软件开发方法 ▲ 软件管理方法 ▲ 软件度量方法 ▲ 软件维护方法
软件工程技术主要包括: ▲软件开发技术 ▲软件度量技术 ▲软件演化技术 ▲软件应用技术 ▲软件管理技术 ▲其它相关技术 ▲软件环境技术 3.软件工程技术 软件工程技术主要包括: ▲软件开发技术 ▲软件度量技术 ▲软件演化技术 ▲软件应用技术 ▲软件管理技术 ▲其它相关技术 ▲软件环境技术
4.软件工程管理 主要包括: ▲ 软件项目管理 ▲人员管理 ▲ 软件过程管理 ▲经费管理 ▲ 软件维护管理 ▲进度管理 ▲ 软件质量管理 ▲文档管理
5.软件工程度量 主要包括: ▲ 软件费用度量 ▲工作量度量 ▲ 生产效率度量 ▲质量度量 ▲ 性能度量 ▲结构和复杂性度量 ▲ 软件算法度量 ▲软件预决算
软件环境由计算机硬件、通信网络、支撑软件等要素构成。软件必须考虑软件环境以及软件环境对软件开发的制约和影响。 6.软件工程环境 软件环境由计算机硬件、通信网络、支撑软件等要素构成。软件必须考虑软件环境以及软件环境对软件开发的制约和影响。 计算机硬件 通信网络 支撑软件
软件工程应用主要研究如何有效地把软件工程原理、方法、技术应用到软件开发和维护过程中去,以有效地提高软件开发效率和质量。 7.软件工程应用 软件工程应用主要研究如何有效地把软件工程原理、方法、技术应用到软件开发和维护过程中去,以有效地提高软件开发效率和质量。 航天 交通 农业 工业 科研
三 软件生存周期与软件开发模型
3.1 软件生存周期 软件生存周期所历经的阶段到目前还没有统一的划分标准,从五阶段到十二阶段不等。 ● 软件策划 ● 软件分析 ● 软件设计 ● 系统实现 ● 软件演化
3.2 软件生存期模型 3.2.1 瀑布模型 瀑布模型反映了软件生存期各阶段明确任务、自上而下、顺序固定、逐级过渡的结构模式,各阶段的联系就象瀑布流水一样自上而下、不可逆返。
软件策划 需求分析 软件设计 实现 测试 维护 瀑布模型
3.2.2 螺旋模型 螺旋模型规定软件开发采取分步推进、逐步深化的螺旋方式。 在螺旋模型下,每一个螺旋式的循环都是对上一次循环的进一步深化和细化。快速原型法和面向对象方法都采用螺旋模型。 螺旋模型更符合人们认识事物的一般规律。
喷泉模型表示软件生存期需要划分成为多个相对独立的阶段,但各个阶段之间的界限并不是十分明确,相邻阶段之间存在明显的重迭和交叉。 3.2.3 喷泉模型 喷泉模型表示软件生存期需要划分成为多个相对独立的阶段,但各个阶段之间的界限并不是十分明确,相邻阶段之间存在明显的重迭和交叉。 系统维护 软件策划 软件分析 软件设计 软件实现
3.2.4 演化模型 演化模型软件通过多次迭代演化完成. ◆ 适应于不能明确确定需求的软件开发; ◆ 通过多次更迭过程来完成; ◆ 初期,由用户提出基本需求,构造一个核心系统; ◆ 用户进行评价,再完善; ◆ 多次反复完成软件开发.
需求 设计 实现 开 发 核心系统开发 第二次迭代 迭代模型
四 软件开发方法 1. 结构化方法 2. JSD方法 3. 原型方法 4. 面向对象方法
4.1 结构化开发方法 4.1.1 结构化开发方法的含义 结构化开发方法是指遵循系统的思想,按照工程化的方法,充分考虑用户的需求,严格划分工作阶段,自顶向下逐步分解地进行系统分析和设计,按照设计方案自底向上进行实施的一套相对完整和规范的系统开发方法。
4.1.2 结构化开发方法的特点 ◆ 遵循系统化思想 ◆ 充分考虑用户需求 ◆ 严格划分工作阶段 ◆ 按照工程化的方法 4.1.2 结构化开发方法的特点 ◆ 遵循系统化思想 ◆ 充分考虑用户需求 ◆ 严格划分工作阶段 ◆ 按照工程化的方法 ◆ 突出系统各部分的联系和结构
4.1.3 结构化分析 结构化分析用分层数据流图来进行分析
学生成绩管理顶层数据流图
数据字典
1.4.1.4 结构化设计 1、总体设计
2、详细设计 1)、IPO图
2)、流程图(程序框图) 求N的阶乘的程序流程图
3)、判定树
4.1.5 结构化开发方法的不足 ● 与人类认识问题的一般规律有相饽之处 ● 功能分析法不能够全面反映问题域 4.1.5 结构化开发方法的不足 ● 与人类认识问题的一般规律有相饽之处 ● 功能分析法不能够全面反映问题域 ● 方法的描述体系缺乏连贯性和一致性 ● 文档繁杂、开发工作量大 ● 不便于交流和理解 ● 难以适应需求的变化 ● 重用性不好
4.2 JSD方法 Jackson系统开发方法(JSD,Jackson system development method)是在Jackson的面向数据结构的程序设计方法的基础上发展而来的,是一种面向软件开发全过程的系统化开发方法。
4.2 JSD方法 划分为建模、设计和实现三个阶段。 包括实体活动分析、实体结构分析、建立进程模型、确定系统功能、确定系统时序、系统实现等6个步骤。
4.3 快速原型方法 快速原型法的基本思想是: 在系统开发中通过自动化或半自动化系统开发原型生成环境的支持,根据用户的初步需求,快速生成一个能够反映用户初步需求的系统模型,并把这个模型称之为系统原型。把产生的系统原型展现给用户,开发人员与用户有针对性地就系统原型进行讨论,用户对系统原型提出自己看法和改进意见,开发人员根据用户的意见再进一步地修改原型,并反复这个过程,直到用户对系统原型满意为止。最后把系统原型转换为实际系统。
快速原型法的特点: ● 更符合人们对事物地认识规律 ● 使系统开发工作直接化、简单化 ● 提高了系统开发效率 快速原型法的局限性 : ● 不能作为大型软件的独立开发方法 ● 不适应于内部蕴涵大量计算逻辑处理,而交互处理不多的应用 ● 不适应于非规范的业务领域
4.4 面向对象方法 ● 面向对象方法产生于1967年的第一个面向对象语言Simula; ● 面向对象的分析和设计开始于八十年代中期,广泛使用于九十年代。 ● 面向对象方法是用面向对象的思想指导系统开发的规范化软件开发方法。 ● 目前,已经形成相对成熟和完善的方法体系。
本讲小结 1.1 软件 1.1.1 软件的概念 1.1.2 软件特征 无形性、智能性、抽象性、非独立性、 复杂性、非耗损性、可复制性、 软件工程概论 第1讲 绪论 本讲小结 1.1 软件 1.1.1 软件的概念 1.1.2 软件特征 无形性、智能性、抽象性、非独立性、 复杂性、非耗损性、可复制性、 演化性、开发方式独特 1.1.3 软件的分类 一 按软件作用划分 系统软件,应用软件 二 按软件规模划分 微型、小型、中型、大型、超大型 <
本讲小结 1.2 软件的发展及软件工程 1.2.1 软件发展的三个阶段 程序设计、程序系统、软件工程 1.2.2 软件危机 软件工程概论 第 1 章 概论 本讲小结 1.2 软件的发展及软件工程 1.2.1 软件发展的三个阶段 程序设计、程序系统、软件工程 1.2.2 软件危机 50-60年代出现的一场软件开发和应用的 普遍性问题。 1.2.3 软件工程 一 软件工程概念的提出 1968年提出,一门综合性学科。 二 软件工程学科的基本内容 软件工程原理、方法、技术、管理、 质量、环境、应用 <
本讲小结 1.3 软件生存周期和软件开发模型 1.3.1 软件生存周期 1.3.2 软件工程生存周期模型 瀑布模型、螺旋模型、喷泉模型、 软件工程概论 第 1 讲 绪论 本讲小结 1.3 软件生存周期和软件开发模型 1.3.1 软件生存周期 1.3.2 软件工程生存周期模型 瀑布模型、螺旋模型、喷泉模型、 迭代模型、智能模型 1.3.3 软件工程开发的牛头模型 < 本资料由-大学生创业|创业|创业网http://www.chuangyw.com/提供资料 在线代理|网页代理|代理网页|http://www.dailiav.com 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http://pigproxy.cn
本讲小结 1.4 软件开发方法 1.4.1 结构化软件开发方法 1.4.2 JSD化软件开发方法 1.4.3 快速原型化方法 软件工程概论 第 1讲 绪论 本讲小结 1.4 软件开发方法 1.4.1 结构化软件开发方法 1.4.2 JSD化软件开发方法 1.4.3 快速原型化方法 1.4.4 面向对象软件开发方法 < 本资料由-大学生创业|创业|创业网http://www.chuangyw.com/提供资料 在线代理|网页代理|代理网页|http://www.dailiav.com 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http://pigproxy.cn