第一章绪论—系统设计与集成概述资料重点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工具及环境:软件工具为软件工程方法提供了支持,研 究计算机辅助软件工程CASE,建立软件工程环境;
管理技术:软件工程管理是指对软件工程全过程的控制 和管理,包括计划安排、成本估算、项目管理和软件质 量管理;
标准与规范:软件工程标准化与规范化,使得各层工作 有章可循,以保证软件生产率和软件质量的提高。
–磨损的硬件部件可用备用部件替换,软件的错误暗示了设 计的缺陷或者从设计转化到可执行代码的过程中产生的错误
软件规模分类表
/
低 技 分类 程序规模 术 极小 500行以下
方 小 1K~2K行 法 中 5K~50K行
工 大 50K~100K行 具 甚大 1M行
管 极大 1M~10M行 理
子程序数 10~20
事实:为赶进度而增加人手,只能使进度更加延误 “如果我将一个软件外包给另一家公司则我可以完全放手不 管”
事实:如果一个组织对软件项目的内部组织和控制毫无了 解,那无一例外地在外包项目中失败
客户的谣传
“有了对项目目标的大概了解,便足以开始编写程序,我们 可以在之后的项目中逐步了解细节….”
事实
–虽然很难得到综合全面且固定不变的需求描述,但是对项 目目标模糊不清的描述将为项目实施带来灾难
软件的分类2
通用软件(Generic Software) –通用软件是由软件开发组织开发,面向市场用户公开销
售的独立运行系统,有时也被称为套装软件。 –举例:操作系统、数据库系统、字处理软件等 •
定制软件 (Customized Software) – 定制软件是由某个特定客户委托,软件开发组织在合
直到程序开始运行,才能评估其质量 –事实:检查与正式技术评审,从项目启动就开始实行
系统分析设计与集成 概述
软件工程
软件工程是计算机学科中一个年轻并且充满活力的研究领域。 自20世纪60年代末期,人们为克服“软件危机”在这一领域做了大 量工作,逐渐形成了系统的软件开发理论、技术和方法,它们在软 件开发实践中发挥了重要作用。今天,现代科学技术将人类带入了 信息社会,计算机软件扮演着十分重要的角色,软件工程已成为信 息社会高技术竞争的关键领域之一。
软件工程是指导计算机软件开发与维护的工程学科,它采用工 程的概念、原理、技术和方法来开发与维护软件,把经过时间考验 而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 ,以便经济地开发出高质量的软件并有效地维护它。
软件Baidu Nhomakorabea程的主要内容
方法与技术:软件开发方法主要讨论软件开发的各种方 法及其工作模型。同时讨论具体实现的技术;
16
软件神话
管理者的谣传 客户的谣传 实践者的谣传
管理者的谣传
“ 我们已经有了一本写满软件开发标准和规程的宝典,它无 所不包,囊括了我们能问到的任何问题 …”
事实:宝典也许存在,但它是否在实际中采用? 艺术状态下把工具作为解决方案 “使用工具的傻瓜仍旧是傻瓜 ”
“如果我们未能按时完成计划,我们可以通过增加程序员人 数,而赶上进度”
软件的定义
软件的发展
体系结构
主机结构文件服务器结构 客户/服务器系统服务器/浏览器结构
编码语言
机器代码汇编代码 高级程序语言人工智能语言
开发工具
分离的开发工具集成的可视化开发系统 简单的命令行调试器方便的多功能的调试器
软件的发展阶段
程序 程序+文档 软件工程
独唱小合唱合唱万人大合唱
开发时间 1~4周
25~50
1~6月
250~1000 1~2年
2~3年
4~5年
5~10年
开发人数 1人 1人 2~5人 5~20人 100~1000人 2000~5000人
/
/
小程序设计与大程序设计的关系
小程序设计是大程序设计的基础,二者都 需要软件工程的指导。
“Why-What-How”开发过程。
–清晰的描述,要求客户和开发人员之间不断保持有效的沟 通
“虽然项目需求不断变更,但是因为软件是弹性的,因此可以 很容易适应变更……”
事实
–发生变更是无法更改的 –变更越迟,变更代价越昂贵
实践者的谣传
当我们完成程序并将其交付使用后,我们的任务就完成了 –事实:50-70%的工作耗费在软件首次交付客户使用之后
同的约束下开发的软件。 – 举例:企业 ERP 系统、卫星控制系统、空中交通指挥
系统
磨损与失效
磨损与失效
软件变更
为什么必须变更? 软件必须修补以消除错误 软件必须改进以实现新的功能或非功能性需求 从而可以满足新的计算环境或者技 , 软件需要修改其适应 性术的需求 软件必须根据新的业务需求进行升级 软件必须扩展以具有与更多现代系统和数据库的协作能力 软件架构必须进行改建以适应多样化的网络环景
|
|
|
单程序 较复杂程序 软件
软件定义
软件=程序+数据+文档
程序:为了解决某个特定问题而用程序设计语言描述 的适合计算机处理的语句序列
数据:使程序正常执行所需、能正常操纵信息的数据 结构
文档:与程序开发、维护和使用有关的图文材料,即 软件开发活动的记录
什么是软件
软件是一个产品 –信息转换 - 显示 , 修改 , 查询 , 管理 , 产生或
软件的特殊性
– No silver bullet: essence and accidents of software engineering
– Fred Brooks,IBM OS360项目经理 – 1999 年图灵奖获得者 “没有一种单纯的技术或管理上的进步,能 够独立地承诺在十年内大幅度地提高软件的生 产率”
软件的特殊性
不可见性:一次不能观察到所有方面 复杂性:由于组件的交互,一些可能的状态增长飞快 一致性:必须与现有系统接口 可变性: 必须模型化不断变更的真实世界(增加功能性, 新硬件上运行)
磨损性:
–软件退化, 软件每次变更会引入新的错误 ,失效率陡然上升 ,新的变更会引起曲线又一次上升 ,不断的变更导致软件退 化
传递信息 –显示由计算机硬件体现的能力 –由可被本地硬件设备访问的计算机网络体现的
计算潜力
软件是产品生产载体 –操作系统 ( 控制其它的程序) –网络软件 ( 信息通信) –环境 & 软件工具 ( 帮助构造其它软件)
软件的分类1
系统软件 应用软件 科学软件 / 工程 嵌入式软件 产品线软件 应用 web AI软件
管理技术:软件工程管理是指对软件工程全过程的控制 和管理,包括计划安排、成本估算、项目管理和软件质 量管理;
标准与规范:软件工程标准化与规范化,使得各层工作 有章可循,以保证软件生产率和软件质量的提高。
–磨损的硬件部件可用备用部件替换,软件的错误暗示了设 计的缺陷或者从设计转化到可执行代码的过程中产生的错误
软件规模分类表
/
低 技 分类 程序规模 术 极小 500行以下
方 小 1K~2K行 法 中 5K~50K行
工 大 50K~100K行 具 甚大 1M行
管 极大 1M~10M行 理
子程序数 10~20
事实:为赶进度而增加人手,只能使进度更加延误 “如果我将一个软件外包给另一家公司则我可以完全放手不 管”
事实:如果一个组织对软件项目的内部组织和控制毫无了 解,那无一例外地在外包项目中失败
客户的谣传
“有了对项目目标的大概了解,便足以开始编写程序,我们 可以在之后的项目中逐步了解细节….”
事实
–虽然很难得到综合全面且固定不变的需求描述,但是对项 目目标模糊不清的描述将为项目实施带来灾难
软件的分类2
通用软件(Generic Software) –通用软件是由软件开发组织开发,面向市场用户公开销
售的独立运行系统,有时也被称为套装软件。 –举例:操作系统、数据库系统、字处理软件等 •
定制软件 (Customized Software) – 定制软件是由某个特定客户委托,软件开发组织在合
直到程序开始运行,才能评估其质量 –事实:检查与正式技术评审,从项目启动就开始实行
系统分析设计与集成 概述
软件工程
软件工程是计算机学科中一个年轻并且充满活力的研究领域。 自20世纪60年代末期,人们为克服“软件危机”在这一领域做了大 量工作,逐渐形成了系统的软件开发理论、技术和方法,它们在软 件开发实践中发挥了重要作用。今天,现代科学技术将人类带入了 信息社会,计算机软件扮演着十分重要的角色,软件工程已成为信 息社会高技术竞争的关键领域之一。
软件工程是指导计算机软件开发与维护的工程学科,它采用工 程的概念、原理、技术和方法来开发与维护软件,把经过时间考验 而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 ,以便经济地开发出高质量的软件并有效地维护它。
软件Baidu Nhomakorabea程的主要内容
方法与技术:软件开发方法主要讨论软件开发的各种方 法及其工作模型。同时讨论具体实现的技术;
16
软件神话
管理者的谣传 客户的谣传 实践者的谣传
管理者的谣传
“ 我们已经有了一本写满软件开发标准和规程的宝典,它无 所不包,囊括了我们能问到的任何问题 …”
事实:宝典也许存在,但它是否在实际中采用? 艺术状态下把工具作为解决方案 “使用工具的傻瓜仍旧是傻瓜 ”
“如果我们未能按时完成计划,我们可以通过增加程序员人 数,而赶上进度”
软件的定义
软件的发展
体系结构
主机结构文件服务器结构 客户/服务器系统服务器/浏览器结构
编码语言
机器代码汇编代码 高级程序语言人工智能语言
开发工具
分离的开发工具集成的可视化开发系统 简单的命令行调试器方便的多功能的调试器
软件的发展阶段
程序 程序+文档 软件工程
独唱小合唱合唱万人大合唱
开发时间 1~4周
25~50
1~6月
250~1000 1~2年
2~3年
4~5年
5~10年
开发人数 1人 1人 2~5人 5~20人 100~1000人 2000~5000人
/
/
小程序设计与大程序设计的关系
小程序设计是大程序设计的基础,二者都 需要软件工程的指导。
“Why-What-How”开发过程。
–清晰的描述,要求客户和开发人员之间不断保持有效的沟 通
“虽然项目需求不断变更,但是因为软件是弹性的,因此可以 很容易适应变更……”
事实
–发生变更是无法更改的 –变更越迟,变更代价越昂贵
实践者的谣传
当我们完成程序并将其交付使用后,我们的任务就完成了 –事实:50-70%的工作耗费在软件首次交付客户使用之后
同的约束下开发的软件。 – 举例:企业 ERP 系统、卫星控制系统、空中交通指挥
系统
磨损与失效
磨损与失效
软件变更
为什么必须变更? 软件必须修补以消除错误 软件必须改进以实现新的功能或非功能性需求 从而可以满足新的计算环境或者技 , 软件需要修改其适应 性术的需求 软件必须根据新的业务需求进行升级 软件必须扩展以具有与更多现代系统和数据库的协作能力 软件架构必须进行改建以适应多样化的网络环景
|
|
|
单程序 较复杂程序 软件
软件定义
软件=程序+数据+文档
程序:为了解决某个特定问题而用程序设计语言描述 的适合计算机处理的语句序列
数据:使程序正常执行所需、能正常操纵信息的数据 结构
文档:与程序开发、维护和使用有关的图文材料,即 软件开发活动的记录
什么是软件
软件是一个产品 –信息转换 - 显示 , 修改 , 查询 , 管理 , 产生或
软件的特殊性
– No silver bullet: essence and accidents of software engineering
– Fred Brooks,IBM OS360项目经理 – 1999 年图灵奖获得者 “没有一种单纯的技术或管理上的进步,能 够独立地承诺在十年内大幅度地提高软件的生 产率”
软件的特殊性
不可见性:一次不能观察到所有方面 复杂性:由于组件的交互,一些可能的状态增长飞快 一致性:必须与现有系统接口 可变性: 必须模型化不断变更的真实世界(增加功能性, 新硬件上运行)
磨损性:
–软件退化, 软件每次变更会引入新的错误 ,失效率陡然上升 ,新的变更会引起曲线又一次上升 ,不断的变更导致软件退 化
传递信息 –显示由计算机硬件体现的能力 –由可被本地硬件设备访问的计算机网络体现的
计算潜力
软件是产品生产载体 –操作系统 ( 控制其它的程序) –网络软件 ( 信息通信) –环境 & 软件工具 ( 帮助构造其它软件)
软件的分类1
系统软件 应用软件 科学软件 / 工程 嵌入式软件 产品线软件 应用 web AI软件