软件工程课件(全)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-19
3、按软件开发划分
软 件 项 目 开 发 软 件 产 品 开 发
2013-8-19
1.2 软件工程的概念及范畴
1、“软件工程” ----Software Engineering
于1968年 NATO 组织在 德国召开的一次会议上提出
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。
2013-8-19
3、软件的演变(即从传统软件开发到现代软件开发)
程序
软件
软件产品 现代软件开发
传统软件开发
240 80 0.00016 1975
营业额 增长曲线
1989
2000
2013-8-19
1.3 软件生存周期 (SW life cycle)
软件工程是计算机科学与技术专业的一门专 业核心课程。通过本课程的学习,使学生掌握系 统的软件开发理论、技术和方法,使用正确的工 程方法开发出成本低、可靠性好并在机器上能高 效运行的软件,为今后从事软件开发和维护打下 坚实的基础。
2013-8-19
课程主要内容
本课程比较全面、系统地介绍软件工程的概念、技术 与方法。 主要内容包括:软件工程概述、软件生存周期及软件 需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开 发的整个过程。为了让学生真正得以实践,结合实际软件 开发项目,让学生从问题定义开始,经过可行性研究、需 求分析、概要设计、详细设计、编码直到最后要对自己开 发的软件还要进行测试,这样一个软件开发过程,从而使 学生掌握软件开发的基本技能。
修改点 失 效 率 磨合 调整 磨损 用坏 失 效 率 实际曲线
理想曲线
硬件失效率曲线
时间
软件失效率曲线
时间
2013-8-19
. 软件的成本相当昂贵
成本%
软 件 复 杂 性
软件需求 差距 软件技术 时间 1950 1970 硬件 软件 1995 年份
1985
软件技术的发展落后于需求
硬、软件成本比例的变化
2013-8-19
学习本课程的基本要求
本课程是继程序设计课程之后,对提高学生软件 开发能力有重要作用的一门课程。要求学生在学习本 课程前应掌握信息管理系统、数据结构、结构化程序 设计、面向对象程序设计以及程序设计方法论。
通过本课程的学习,为学生后期的毕业设计环节 奠定了良好的基础。
2013-8-19
2013-8-19
计划时期的工作流程图
开始 问题定义 可性行研究 可行否?
Y N
项目实施计划
终止项目的建议
结束
2013-8-19
有用的软件
Who What Why 为谁设计,用户是谁? 要解决哪些问题? 为什么要解决这些问题
3W
Win CE1.0
2013-8-19
2.1 现状调查和问题的定义
目的:弄清楚用户要求计算机解决什么问题 任务:编写系统目标与规范说明书
------- 传输线的分类系统
2013-8-19
外部实体
分配站 操作员
查 询 查询及 报告
条形码 阅读器
传输线
条形码
分路 命令
传输线 分类系统
线速 指示器 诊断 数据 格式化 报告数据
分类机构 主 机
处理与控 制功能区
分配站 操作员
------- 传输线分类系统的 ACD 图
2013-8-19
B A
把软件从产生、发展到成熟、直至衰亡为止
2013-8-19
软件生存周期模型(瀑布模型 Waterfall Model)
问题定义 计划 时期 可性行研究 需求分析 概要设计 开发 时期
特点: 上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。
详细设计 编 码 测 运 行 时 期 试 运行与维护
2013-8-19
2.2 可行性研究与论证
其论证的焦点是:围绕着对系统开发的价值进行论证
1、经济可行性: 进行成本效益分析,评估项目的开发成本。
1、购置软、硬件及有关设备费用
基于计算 机系统的 成本由四 部分组成
2、系统开发费用
3、系统安装和维护费用
4、人员培训费用费用
2013-8-19
举例:关于开发CAD系统的软件开发成本及效益分析
2013-8-19
原型模型(Prototype Model)
原型:是指模拟某种产品的原始模型
快速分析 和设计 加工 原型 原型 客户 评价原型 建造 原型
1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。 2、为了尽快向用户提供原型, 开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。
技术可行性分析方法--- 数学模型和优化技术、 概率和统计、排队论、控制论等方法。
2013-8-19
1、系统概述 2、可行性分析
可行性 论证报告
3、拟订开发计划 4、结论意见
2013-8-19
2.3 可行性分析所需工具 (系流程图与系统结构图)
1、系统流程图: 是用来描述系统物理模型的一种传统工具。
2013-8-19
2、按软件的规模进行划分
按开发软件所需的 人力、时间以及完成的 源代码行数。
类别
参加人数
研制期限
产品规模(源代码行数)
微型 小型 中型 大型 甚大型 极大型
1 1 2-5 5-20 100-1000 2000-5000
1-4周 1-6周 1-2年 2-3年 4-5年 5-10年
约500行 约2000行 5000-50000行 5万-10万行 100万行 1000万行
2013-8-19
2、系统结构图: 系统工程师用结构摸板开发的系统模型
用户界面处理
输 入 处 理 处理和控制功能 输 出 处 理
维护和自测试
---- 结构摸板 ---2013-8-19
3、系统结构环境图(ACD-Architecture Context Diagram)
: ACD 可用于描述实现系统与系统运行环境之间的信息边界。
C
ACD 的层次结构
2013-8-19
作 业
请画出学生成绩管理系统的 ACD 图
2013-8-19
第3 章 软件需求分析
软件需求分析是软件开发早期的一个重要阶段。它 在问题定义和可行性研究阶段之后进行。需求分析的基 本任务是软件人员和用户一起完全弄清用户对系统的确 切要求。这是关系到软件开发成败的关键步骤,也是整 个系统开发的基础。 软件需求分析阶段要求用 需求规格说明书(SRS) 来表达用户对系统的要求。规格说明书可用文字方式表 示,也可用图形表示。 本章将介绍需求分析的任务、步骤、需求分析方法 (面向数据流图分析方法、面向对象的分析方法)。
1
2
2013-8-19
练
习
请画出由下列文字描述的系统流程图
设某城市招干考试成绩统计系统。 考生分三个专业,不同专业考试科目不同: 法律专业---考政治、语文、法律 行政专业---考政治、语文、行政 财经专业---考政治、语文、财经学 每个考生在报名时登记姓名、地址、年龄和报考专业。报 名后招干办公室根据专业考生专业及地址在市区或郊区来编排 准考证号码和考场。考生参加考试后,输入每个考生的各门课 程的成绩,并统计出每个考生三门课程的总成绩。按准考证号 的顺序打印出考生考试成绩单,分发给每个考生。各专业分别 将考生按成绩总分从高到低的次序排序,以便决定录取名单。
各 章 学 时 安 排
章 1 2 2
学时 2 2 2
章 3 4 8
学时 4 2 4
章 9 10 12
学时 4 2 2
章 13 14
学时 2 4
总学时 48=40(讲授)+8(课程设计)
2013-8-19
第一章 软件工程概述
传统工程
水利工程
建筑工程
机械工程
… …
新兴工程
气象工程
生物工程 软件工程
本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念
流程符号 含 义 数据加工符号 输入/输出符号 连接点符号 人工操作 流程符号 含 义 换页连接 磁带符号 文档符号 多文档符号
2013-8-19
流程符号
含 义 显示器或终端机 磁盘机或数据库
流程符号
含 义 控制流符号 流程开始与结束
2013-8-19
举例
库存清单系统流程图
事务 库存清单程序 定货信息 零件库 报告生成程序 定货报告 结束
2013-8-19
3.1 需求分析的任务
一、确定目标系统的具体要求 1、确定系统的运行环境要求
硬件环境和软件环境
2、系统的性能要求
3、系统功能
2013-8-19
第二章 问题的定义与可性行研究
当我们在着手做任何一件工作以前,必须明确工 作的性质、任务,制定完成任务的计划,这是非常必 要的。同样对于软件产品的开发 ,显然也应该解决好 这样类似的问题,明确该软件产品开发的任务,以及 完成任务的价值从而制定出完成任务的计划。那么问 题的定义和可性行研究就是制定软件系统的计划的第 一步。 所以在软件工程中把这一步称为 计划时期
系统目标与规范说明书 1、项目:教材销售系统 2、问题:人工销售教材手续繁琐,容易出错 3、项目目标:建立一个高效率、无差错的计算机教材销售系统 4、项目范围:利用现有的计算机,软件开发费用不得超过2000元 5、初步想法:建议在系统中增加对缺书的统计与采购功能 6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元
微软凌小宁博士
2013-8-19
我最大的心得是,一个产品一定要找到能够 真正适用的场合,不能只是为了技术而从事技术 为了研究而进行研究,却不管用户对你所研究的 技术和产品有没有需求。否则,无论你的技术是 多么优秀,多么先进,恐怕你的产品在市场上都 无法获得成功。
微软张益肇博013-8-19
3、软件的分类
1、按软件的功能进行划分
系 统 软 件 应 用 软 件 支 撑 软 件
2013-8-19
支撑软件
一般类型: 文本编辑程序 文本格式化程序
支持需求分析: PSL/PSA问题描述语言 关系数据库管理系统
支持设计: 支持测试: 图形软件包 静态分析器 结构化流程图绘图程序 测试覆盖检验程序 支持实现: 编辑程序 连接编辑程序 支持管理: 标准检验程序 库管理程序
成本-效益(万元) 60 40 20 该系统成本 该系统节省经费 盈亏平衡点
0
1 2 3 4 5 年 投资回收期
---------成本及效益分析图
2013-8-19
2、技术可行性: 对系统的性能、可靠性、可维护性以及生产率
等方面的信息进行评价。
通过技术可行性的分析,将为新系统提交技术可 行性评估。以指明为完成系统的功能和性能需要什么 技术?需要哪些材料、方法、算法、或者过程等
2013-8-19
人工销售教材 流程图
学生 申请购 书 购书证明
结束
到书库 领书 购书单 购书发票
2013-8-19
检索教材 帐本是 否有该 教材
开购书发 票和购 书单
计算机售书系统流程图
学生 购书单 终端
1---学生各学期用书数据库 2---教材存量数据库
结束 购书发票 审查并 开发票 购书单 到书库 领书
哈 尔 滨 工 业 大 学
韩 静 萍
《软件工程》
Software Engineering
2013-8-19
在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。
2013-8-19
2、 软件工程学
软件开发方法学
软件开发技术 软件工程学
软件工具 软件工程环境
软件工程管理
软件工程管理学 软件经济学
---- 软件工程学的范畴
2013-8-19
微软企业文化宗旨部分内容
Wake up every day with a feeling of passion for the different technology will make in people’s Life.
2013-8-19
1.1 软件的概念与特点
1、软件
software
soft+ware
软制品 (软体)
软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2013-8-19
2、软件特点
. 软件是一种逻辑实体,而不是具体的物理实体 . 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题