第一讲 软件与软件开发.

Slides:



Advertisements
Similar presentations
口臭不苦惱 清新口氣大作戰 口臭不只破壞人際的互動,更是 身體發出的警訊,不能輕忽。 康健雜誌 89 期文. 梁煙純 攝影.邱瑞金.
Advertisements

AWS 公有云服务. Amazon Web Service 简介 AWS 是向最终用户交付计算资源、保存数据和其他应用程序的一种最经济划算的方式,开发人员只需要按使用量付费,无需前期资本支出。利用 AWS ,开发人员可以轻松购买计算、存储、数据库和其他基于 Internet 的服务来支持其应用程序,以及灵活选择任何开发平台或编程环境。
满纸荒唐言, 一把辛酸泪。 都云作者痴, 谁解其中味? 《红楼梦》概况  全书一百二十回(前八十为 曹雪芹著,后四十为高鹗续 写)  中国古典小说创作的最高峰  中国封建社会的百科全书 — — 毛泽东  推荐读本 —— 《红楼梦》 1982 年人民文学出版社新 校注本,中国艺术研究院红 楼梦研究所校注.
《菲律宾华语课本》第十二册 小学六年级 1 、复习 2 、生词学习 3 、语法学习 4 、课文讲解 5 、布置作业.
2015年陕西省中考语文试题评析 咸阳市秦都中学 陈飞跃.
苏 轼.
沙漠里的奇怪现象 竺可桢.
学习单元——仿宋字. 学习单元——仿宋字 字体的由来 印刷字体的一种,仿照宋版书上所刻的字体,笔画粗细均匀,有长、方、扁三体。也叫仿宋体,仿宋字。 后来人们又模仿宋体字的结构、笔意,改成笔画粗细一致、秀丽狭长的印刷字体,这就是仿宋体。
研(修)定學校災害防救計畫 李佳昕.
海伦·凯勒.
第三章作品之四 《左传·郑伯 克段于鄢》 一、作品简介 二、中心思想 三、课文分析 四、艺术特色.
拓 展 培 训 师 基础教程.
“乐圣”贝多芬用它的智慧谱写的《命运交响曲》告诉我们:向命运呐喊,向命运抗挣,我们会胜利的,前面就是美好和幸福。
梳理探究 优美的汉字.
南昌 --我的家乡 姓名:万欣 时间:
义务教育课程标准实验教科书人教版小学语文六年级下册
心在哪裡 夢在哪裡.
 鉴赏诗歌的表达技巧.
计算机导论 指导教师:杨建国 二零零九年九月.
22 窗前的气球 李桂琳.
大雁归来 (美国)利奥波德 课件 制作人 支迎秋.
福建省2016届高三毕业班语文学科研讨会议资料之八
展苞初放的唐五代词 菩萨蛮 温庭筠.
峰信 电话管理系统 产品介绍 上海艾家电子商务有限公司 2011年7月.
(讲座幻灯课件请在网上下载,让我们一起思考!)
高考诗歌鉴赏 复习系列(六) 按内容分类鉴赏.
第七章 电子商务系统的运营与维护.
不可全抛一片心 逢人只说三分话 闲时莫论人非 静坐常思己过 言多语失 祸从口出 沉默是金 守口如瓶 三缄其口
化石是古代生物的遗体、遗物或遗迹埋藏在地下变成的跟石头一样的东西。
请您欣赏.
蓝卓移动校园在开放教育 领域中的广泛应用.
在我们身边有许多爱读书的人.
2016年赶集产品介绍.
说“一”不“二” 语言文字运用 --避免歧义.
华威先生.
媒体融合式转型 社会和文化教研部 高级经济师 郭全中
我的早年生活 温斯顿 . 丘吉尔 chemlihua.
人教版语文四年级上册 猫.
木兰从军.
普希金. 普希金 检查预习 瞬息( ) 幽寂( ) 延绵( ) 萋萋( ) 忧郁( ) 伫立( ) 涉足( ) 向往( ) 尴尬( ) shùn 瞬息( ) 幽寂( ) 延绵( ) 萋萋( ) 忧郁( ) 伫立( ) 涉足( ) 向往(
病家两要说.
上海市闸北区卫生信息平台 标准化成熟度测试工作汇报 上海市闸北区卫生局 2013年6月27日.
行云服务:助公有云普及一臂之力.
作業系統 補充: 雲端運算.
李瑛 我骄傲,我是一棵树 江苏省外国语学校 惠慧.
淺談雲端運算 (Cloud Computing)
软件工程基础 云计算概论 刘 驰.
2 回延安 部编本人教版·八年级语文下册.
我们每个人都听过掌声,有些掌声是你给别人的,有些掌声是别人给你的。掌声响起来,你的心情怎样?
口 技 林嗣环.
芦 叶 船.
K/3 Cloud V6.0产品培训 -- 业务监控 K/3 Cloud 产品部
K/3 Cloud V6.1产品培训 -- 业务监控 K/3 Cloud 产品部
大自然的文字 江门实验中学 梁晓燕.
班級:四企四B 指導老師:李文瑞老師 組員: 莊煜麒4950L089 黃暉原4950L109
李允中教授-軟體工程實驗室研究方向 觀點導向之軟體發展(Aspect-Oriented Software Development): 觀點導向軟體開發方法主要源自於重新思考軟體系統的模組化(Modularization)以及關注點分離的概念(Separation of Concerns)。當建構軟體系統功能時,往往會發現到除該功能本身之外,必須還要在這些功能上特別關注其他面向的考量,例如執行效能的面向、元件或模組的再利用性、系統的可靠程度等等。因此,一個軟體系統內,往往存在著這些錯綜交織的面向於軟體開發的
第三編 唐宋文学批评 第五章 唐代文学批评.
風能 主題:風能 班級:四環工一A 組員:林明哲 4980N047 江信宏 4980N079
第九組報告 指導教授 : 林振緯 組員 : 資工四甲 曹又升 黃晏林 黃冠惟
Introduction to Service Science 课程概述
B、資訊系統開發方法論 系統開發生命週期法 雛型開發法 合作需求規劃與合作應用設計 使用者自建系統 資訊系統的委外與租用 套裝軟體的引進
2019/5/18 普通話 聲調 聲母 韻母.
雲端架構對企業外部管理與內部管理的改變.
第14章 云计算.
赤壁赋 苏轼. 赤壁赋 苏轼 赋是一种有韵的文体,讲求声律、押韵、对比等形式,有辞赋、骈赋和律赋等。 关于赋 赋是一种有韵的文体,讲求声律、押韵、对比等形式,有辞赋、骈赋和律赋等。     
雲端運算的技術趨勢與影響 資管四A 謝宗儒 A.
沁园春.雪 毛泽东 库庄初级中学 王周瑜.
劝 学 《荀子》.
第四课 诗两首 1、假如生活欺骗了你 2、未选择的路.
红树林.
Presentation transcript:

第一讲 软件与软件开发

软件的复杂性 是其自身所固有的 抽象、分治、分类等思想 将在其中发挥极为关键的作用

内 容 一、软件 二、软件开发 三、网络环境带来的影响

一、软件 1、什么是软件 2、软件的发展现状 3、软件的发展特点 4、软件的本质特性 5、软件的发展趋势

1、什么是软件 计算机软件一般指 计算机系统中的 程序 及 文档 程序 是 以计算机语言表达的软件系统 文档 是 以人类语言表达的软件系统 计算机系统中的 程序 及 文档 程序 是 以计算机语言表达的软件系统 文档 是 以人类语言表达的软件系统 二者互相配合 共同构成了完整的软件系统 人类抽象的经验、知识正逐步由软件予以精确地体现

软件 是脑力劳动的产物 是系统逻辑的体现 必须依附于一定的载体 例如:纸张、软盘、硬盘、光盘等 其它的物品呢?不需要载体? 软件 是脑力劳动的产物 是系统逻辑的体现 必须依附于一定的载体 例如:纸张、软盘、硬盘、光盘等 其它的物品呢?不需要载体? 老 子:  道德经: 第十一章:     三十辐共一毂(gǔ) ,当其无,有车之用。     埏(shān)埴(zhí)以为器,当其无,有器之用。     凿户牖(yǒu )以为室,当其无,有室之用。     故有之以为利,无之以为用。 解读的力量! 鲜花与饲料

软件到底有什么奥妙? 人类自身的感官不能直接确定它的存在: 分子、原子 等对于人们总有一定的神秘性:感官距离很“遥远” 软件: 通常 存在于纸带、磁带、光盘等之中 运行起来 靠: 集成电路 发挥作用 显示器 显示状态 竟然还可以在 不同的载体 之间十分方便地跳跃! 显示出来后离我们又这么“近”! 如此有用!

万物皆数? 我们可以对认识的任何一种东西进行编码 以产生它的一个具体“实例” 数据与代码: 从歌德尔定理到图灵不停机问题 静态代码分析!

软件作为逻辑产品的特点: 劣势: 不易被理解 容易出错 找错、排错困难 优势: 易于变化,适应性强 复制成本低,适合规模经济 给我们的生活、学习等带来了巨大的变化

2、软件的发展现状 (1)已经存在大量正在运行的软件 金融、电信、航空航天等 (2)软件的应用范围不断扩大 商务、交通、家电等,“计算机软件?” (3)软件的规模与复杂性持续增加 越来越多的知识正在由软件进行显式表达 (4)出现了大量与软件相关的标准 (3)的需求 (5)软件危机仍然存在(软件脱节) 1968-2011 四十三年!

软件工程四十年:软件工程、构件、中间件

3、软件的发展特点 (1)软件应用范围将继续扩大,成为信息社会的物理设施 (2)遗留软件将继续发挥作用 (3)软件的可靠性与安全性日趋重要 (4)网络化软件将是发展重点

4、软件的本质特性 构造性 演化性 其它特点:知识密集、逻辑产物

软件的构造性 软件 是 典型的知识产品 是 客观世界中 问题空间的具体描述 软件 是有结构的 构造性 是软件的本质特性 软件 是 典型的知识产品 是 客观世界中 问题空间的具体描述 软件 是有结构的 构造性 是软件的本质特性 传统的软件开发 是 个体作坊式的 只 解决功能问题 未 考虑结构问题 造成 软件 复杂度 高 维护难度 大

软件的演化性 软件 是 客观事物的一种反映 是 知识的提炼 知识的体现 知识的固化 客观世界 不断发展 不断发生变化 软件 是 客观事物的一种反映 是 知识的提炼 知识的体现 知识的固化 客观世界 不断发展 不断发生变化 软件系统 不可能一成不变 新需求、新技术不断出现 软件系统要不断升级

5、软件的发展趋势 软件运行平台正在 从 单机环境 发展到 网络环境 这 将导致软件在 反映对象 等 方面的重要发展 开发基础 关注内容 运行方式 提交形式 开销比重 等 方面的重要发展

软件反映对象的发展 从 以 个体计算过程 为反映对象 向 以 群体合作过程 为反映对象 的发展 人们的合作过程是丰富多样的、不断调整的 向 以 群体合作过程 为反映对象 的发展 例如: 电子商务 电子政务 电子服务 虚拟企业 …… 人们的合作过程是丰富多样的、不断调整的 因此,网络环境下的软件 更加 复杂、易变 构造性、演化性 更加突出

软件开发基础的发展 从 以单个软件开发为主 向 以集成式开发为主 的发展 例如:业务流程重组 从 以单个软件开发为主 向 以集成式开发为主 的发展 例如:业务流程重组 (BPR:Business Process Reengineering) 企业应用集成 (EAI:Enterprise Application Integration) 等 都需要开发组织具有 “继往开来” 的能力 在这样的背景下 符合标准规范的软件将更加受欢迎

软件关注重点的发展 从 以正面功能为核心 向 兼顾侧面约束 的发展 近期出现的 面向 侧面 的编程 (AOP: Aspect Oriented Programming) 特征交互(FI: Feature Interaction) 等 与经典的 问题分离(SOC: Separation Of Concerns ) 等相呼应 有效地处理 交叉(cross cutting)特征 例如: 安全性、可靠性、 同步性 等 这一发展 将使 软件工程师容易地开发、维护应用系统

软件运行方式的发展 从 大型机 集中方式 经 PC机的 分散方式 为主 向 “云”的集中模式 + 嵌入式的“端”分散模式 为主 发展 大型机 时代 计算机是少数人员的“计算”工具 软件运行在大型机上 PC机 时代 计算机是许多人的“信息处理”工具 PC 机上的软件是主流 “云”时代 计算资源有集中有分布,互相合作 软件运行在更多类型的计算资源上 提供服务

软件提交形式的发展 从 以 产品 为中心 向 以 服务 为中心 的发展 例如:应用服务提供商 (ASP: Application Service Provider) “Web服务”(Web Services) 等 皆体现了软件向服务发展的趋势 SAAS, Cloud Computing 这一发展 将使 软件在 方便使用、安全可靠 等方面 更加人性化

软件开销比重的发展 从 开发为主要开销 向 开发、演化开销并重 的发展 最近一段时间 延长软件生命 维护、演化软件 等问题 从 开发为主要开销 向 开发、演化开销并重 的发展 最近一段时间 延长软件生命 维护、演化软件 等问题 同时受到了 学术界与产业界的双重关注 诸如 ASP模式、自适应技术 等 将得到重视

二、软件开发 1、软件开发特点 2、软件开发模型 3、开发过程新进展 4、如何理解软件开发的困难

1、软件开发特点 软件开发是典型的知识密集型活动 复杂度高 开发周期长 可靠性保证难 随着 软件应用范围的快速扩大 随着 软件应用范围的快速扩大 以及软件运行平台从单机向网络的转变 软件的 规模 越来越大 复杂度 越来越高 软件开发的 高、 长、 难 愈益突出

软件开发目标:好、快、省 最终用户认为“好” 编程人员开发“快” 开发运行成本“省” 怎么叫“好”?正确、健壮、快速、安全、…… 怎么才能好? 编程人员开发“快” “好”前提下的“快”,二者是一对对立体 怎么才能快? 复用? 开发运行成本“省” 时间成本、人力成本、硬件资源成本、能耗、……

2、软件开发模型 瀑布模型 (waterfall model) 螺旋模型 (spiral model) 喷泉模型 (fountain model) 演化模型 (evolutionary model) 各自特点回顾:画图说明!

3、开发方法进展 RUP 敏捷开发方法(XP) 基于构件的软件开发 基于侧面的软件开发 测试驱动的软件开发 用例驱动的软件开发 从 CMM 到 CMMI 基于构件的软件开发 基于侧面的软件开发 测试驱动的软件开发 用例驱动的软件开发

3.2 计算机科学与技术 3.2.1 艾级高性能计算机技术 针对普惠、绿色、两化融合的战略需求,研究高效易用的高性能计算机(尤其是数据中心计算机)的新原理和核心技术,并研制原理样机。支持科学工程计算与互联网服务(云计算服务)两类应用负载,科学工程计算性能达到艾级(即每秒10**18次运算),系统功耗控制在10 MW之内,系统软件复杂度控制在1000万行源码,原理样机实际速度达到每秒百万亿次(1014次)运算。 3.2.2 面向网络计算的软件方法与技术 针对新型网络化基础平台、新型泛在化与网络化应用模式,以及大规模和融合化的应用系统对软件方法与技术,研究软件模型、编程语言、系统软件、使用模式、开发方法、支撑工具等,实现核心模型基本属性的高可信与适应性、使用模式的服务化与自然化、基础方法的主体化与协同化、开发模型的自治性与成长式、开发方式的复用化与自动化,建立一套新型的面向网络计算的软件方法与技术体系,发展面向网络的中文信息处理和中文数据资源建设技术。 3.2.3 未来互联网与安全 研究:(1)可信可管可扩展的泛在未来网络原理、协议、体系结构;(2)试验平台、基准服务、测试数据,用于研究和检验功能、质量、安全隐私保障、能耗指标;(3)能够为数亿用户服务的统一的通用计算账号,独立于任何客户端设备、任何网络、任何资源、任何地点、任何厂商;(4)支持上亿用户,平均用户实际上网速度超过100 Mbps;(5)发展智能网络与语义网络技术,提升网络服务的效率与易用性。

不同方法的量化评估困难 1)实验数据获取困难 “测试”到“代码分析”:获取数据相对容易 2)涉及人的因素太多 评估的客观性(尤其是开发过程) 1)实验数据获取困难 “测试”到“代码分析”:获取数据相对容易 “过程”、“设计”与“需求获取”:量化难 2)涉及人的因素太多 评估的客观性(尤其是开发过程) 3)应用领域过于广泛 不同的方法适用于不同的领域(对比困难) 4)软件开发 的特殊性 软件开发 相当于 传统行业(例如 制造) 的设计?

4、如何理解软件开发的困难 软件开发就象…… 写小说? 生产PC?搭积木? 演节目? 拍电影/电视?!

拍电影 开发软件 分析:需求、用户 设计实现:结构、编码 测试:减少缺陷 前期:剧本创作、投资 拍摄:场地、演员、道具 后期:剪接、音效 其他共性:拷贝、版本、版权;美国、印度 不同:维护、交互 工程???

三、网络环境带来的影响 网络环境的特点: 共享性 开放性 并发性 可伸缩性 容错性 透明性

(1) 共享性 一旦授权,可以访问环境中的任何资源: 硬件、软件、数据 资源管理器控制资源的访问 提供命名机制 并 控制并发访问 使得: 资源管理器控制资源的访问 提供命名机制 并 控制并发访问 使得: 不同组织之间的软件可以灵活的交互 SOA

(2) 开放性 环境扩展与改进的需要 导致: 软件开发社区 社区开发方法 开放源代码 开源软件的开发

(3) 可伸缩性 利用网络环境可以: 为更多的用户服务 响应更快 通常通过增加 更多/更快的处理机 更可靠、更完善的服务实现 典型例子: 通常通过增加 更多/更快的处理机 更可靠、更完善的服务实现 典型例子: GOOGLE:4-5 万台 PC QQ:上万台 PC

(4) 容错性 硬件、软件、网络发生错误的不可避免性 网络环境必须维护可用性 容错的实现途径: 恢复(recovery) 冗余(redundancy) “911”的启示

(5) 海量数据 大量 页面 大量 代码 大量 业务数据 大量 视频 大量 …… 推动了: 搜索、挖掘、收集等技术的发展 以量促质!

面临的挑战性问题: 通信问题 异构问题 定位问题 可靠性问题 安全问题 管理问题 维护问题 …… 质量? 可信? 云!!!

总结:硬件环境、基础软件、应用软件与用户(环境) …… Application 硬件环境

问 题 软件作为逻辑制品的劣势与优势是什么? 从单机环境到网络环境,软件发生了什么变化? 网络环境出现后,软件开发发生了什么变化?