Download presentation
Presentation is loading. Please wait.
1
任务1 软件工程 任务2 软件生命周期与软件开发模型 任务3 建模工具
项目一 软件工程概述 任务1 软件工程 任务2 软件生命周期与软件开发模型 任务3 建模工具
2
最富哲理的软件工程
3
UML是“三人帮”“捣”出来的
4
迭代开发过程这样流转
5
软件工程水平是这样提高的
6
敏捷开发过程-Scrum
7
任务1 软件工程 软件的定义及其特点 软件危机 软件工程概念
8
软件的定义及其特点 软件的定义及其特点 软件=程序+数据+文档 软件的定义
软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。 软件=程序+数据+文档 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料
9
软件的定义及其特点 软件的定义及其特点 软件的特点 (1)抽象性 ; (2)无明显的制造过程 ; (3)无磨损、老化的问题
(4)对硬件系统的依懒性 ; (5)复杂性 ; (6)成本昂贵; (7)社会性 ;
10
软件危机 Tacoma Narrows大桥的崩溃
11
软件危机 软件危机 在软件开发和维护过程中所遇到的一系列严重问题 软件危机 软件危机的表现 对软件开发成本和进度的估算很不准确
用户很不满意 质量很不可靠 没有适当的文档 软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势
12
软件危机 软件危机 原因 客观:软件本身特点 主观:不正确的开发方法 逻辑部件 规模庞大 忽视需求分析 错误认为:软件开发=程序编写
轻视软件维护
13
软件危机 软件危机 产生的原因(软件开发人员的错误观点): “有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”
“所谓软件开发就是编写程序并设法使它运行” “用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动” “软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”
14
软件危机的解决 软件危机 解决途径 软件工程管理 组织管理 软件工程学 技术措施 软件开发技术 软件管理学 软件经济学 工程项目管理方法
软件开发技术与方法 软件工具 软件工程管理 软件管理学 软件经济学 软件度量学 软件工程学 指导计算机软件开发和维护的工程学科 工程管理+开发技术 软件开发技术 软件开发方法学 软件工具 软件工程环境
15
软件工程概念 软件工程概念 软件工程的概念 应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。 软件工程的原则
16
任务2 软件生命周期 与软件开发模型 软件生命周期 软件开发模型
17
软件生命周期 软件生命周期 软件定义 阶段 软件开发阶段 软件的使用和维护阶段 退役 Page 17 4
18
软件开发模型 软件开发模型 瀑布模型 强调阶段的划分及其顺序性、各阶段工作 及其文档的完备性,是一种严格线性的、
问题定义 可行性研究 需求分析 概要设计 详细设计 软件实现 软件测试 运行维护 计 划 时 期 开 发 运行维护时期 强调阶段的划分及其顺序性、各阶段工作 及其文档的完备性,是一种严格线性的、 按阶段顺序的、逐步细化的开发模式。 5
19
软件开发模型 演化模型 螺旋模型 喷泉模型
20
任务3 建模工具 两种典型的建模工具 : 1.IBM Rational Rose 2.Microsoft Office Visio
21
IBM Rational Rose IBM Rational Rose Page 21
22
Microsoft Office Visio
Visio是一个图表绘制程序,可以帮助用户描述复杂设想以及系统的业务和技术图表。使用Visio创建图表可以使信息形象化,能够以更为直观有效的方式进行信息交流,这是单纯的文字和数字无法比拟的。 Page 22
23
软件工程课程设计 考核方式: 课程设计(附设计说明文档,正文字数不少于1000字)(60%)+平时作业及实验(30%)+平时表现(10%),按优秀、良好、中、及格、不及格五级评定成绩 通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则课程设计不及格。 答辩部分: 40分(没有课程设计说明文档不予参加答辩) 设计部分: 60分 选题:创新性, 实用性, 界面美观友好(15分) 难度:设计包含的难度(15分) 设计的完整性(30分)
24
迭代和增量开发方式
25
迭代过程的优势 复杂系统-分解->多个简单系统 提高软件项目可控性 降低软件开发风险 有效地应对需求变更
在迭代过程中,功能的不确定性逐渐减小,我们对功能的描述越来越明确。
26
何时使用迭代开发? 只对希望成功的项目使用 2004年2月4日,马克·扎克伯格在大学的宿舍里鼓捣了一个约会网站
Similar presentations