教学课件 软件工程与Rose建模案例教程第二版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务2
4-总体设计
“概括地说,应该如何解决这个问题?”通常用层次图或结构图描 绘软件的结构。 (1)低成本的解决方案。 (2)中等成本的解决方案。 (3)高成本的完美的解决方案。
任务2
5-详细设计
“应该怎样具体地实现这个系统 呢?” 通常用HIPO图或PDL语言wk.baidu.com 程序流程图描述详细设计的结果 。
一种反映上面两条所描述的条件或权能的文档说明。
2.需求的特点 (1)需求是根本的
(2)需求是变化的 (3)需求是多层次的
3-需求分析
3.需求的层次
任务2
4.需求的标准 (1)明确性
(2)完整性 (3)一致性 (4)可测试性 (5)可跟踪性和可修 改性
任务2
3-需求分析
需求分析阶段通常借助于数据流图描述对现有系统的认识或对目标系统的设想。
第1章 软件工程概述
本章学习导航
本章学习要点
软件的定义与分类 软件工程的定义与基本思想 软件危机的出现 软件生存周期思想 软件生存周期各阶段任务
教学课时:4课时
任务1
任务目标 了解软件、软件工程和软件危机的基本概 念,理解软件开发的工程化思想
学习方法
小组讨论法 资料查询法
任务1
操作提示
(1)通过学习小组讨论和上网查询资料形式完成。 (2)找到一些常用的软件工程相关的网站,方便自己的学习。
任务2
任务目标 了解软件生存周期模型及软件生存周期的 阶段划分及各阶段的主要任务
学习方法
小组讨论法 资料查询法 类比学习法
定 义 时 期
软
件
生
存 周 期
开 发 时 期
维 护 时 期
任务1
软件的发展
1.程序设计阶段(20世纪50至60年代) 2.程序系统阶段(20世纪60至70年代) 3.软件工程阶段(20世纪70年代中后期) 4.第四阶段(约20世纪90年代以来)
软件发展的四个阶段出现的典型技术和主要特点
任务1
软件的特点
1.抽象性
指软件生产无明显制造过程,软件是一种逻辑实体,而不是具体的物理实体 。
(5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性
新的思想方法
(1)抽象 (2)信息隐蔽 (3)模块化
(4)局部化
任务1
新的设计原则
(1)确定性 (2)一致性 (3)完备性 (4)可验证性
课堂实践 1
操作要求
(1)根据您的理解,您认为怎样才能解决软件危机。 (2)你所了解的目前我国的软件开发是一种什么样的状态,您认为哪 些地方可以改进。 (3)了解了软件工程的概念以后,你是怎样理解软件开发和编程的?
以通过系统流程图、数据流图和数据字典进行描述。 (1)技术可行性:使用现有的技术能实现这个系统吗? (2)经济可行性:这个系统的经济效益能超过它的开发成本吗? (3)操作可行性:系统的操作方式在这个用户组织内部行得通吗?
任务2
2-可行性研究(系统流程图)
任务2
3-需求分析
1.什么是软件需求 IEEE软件工程标准中关于需求的定义 用户解决问题或达到目标所需的条件或权能。 系统或系统部件要满足合同、标准、规范或其它正式规定文档 所需具有的条件或权能。
任务2
任务2
1-问题定义
“要解决的问题是什么?” 系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
并组织认真讨论这份 书面报告。问题定义阶段是软件生存周期中最简 短的阶段,一般只需要一天甚至更少的时间。
2-可行性研究
“对于上一个阶段所确定的问题有行得通的解决办法吗?” 系统分析员需要在较抽象的高层次上进行的分析和设计的过程,可
任务2
7-编码和单元测试
也称为软件的实现,也是程序员的主要工作。 (1)选择程序设计语言 (2)养成程序设计风格 (3)遵循编码规范 (4)进行单元测试
8-综合测试
通过各种类型的测试及相应 的调试,保证软件达到预定的的 要求。最基本的测试是集成测 试和验收测试。
2.可复制性
指软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在 研制、开发中被创造出来的,它可以很简单的制作副本。
3.不会磨损
在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,而只有版 本更新和升级的问题。
4.依赖性
软件的开发和运行经常受到计算机系统的限制,对计算机系统和用户需求有 着不同程度的依赖性。
软件的定义
软件是人们写给计算机的一系列指令以及相关文档的集合。 软件由以下三部分组成: (1)在运行中能提供所希望的功能和性能的指令集(即程序)。 (2)使程序能够正确运行的数据结构。 (3)描述程序研制过程、方法所用的文挡。
软件的评价因素
(1)易用性:指软件产品对用户来说有效、易学、高效、好记、少错 和令人满意的程度 。 (2)可靠性:指在给定的时间内,计算机软件系统能实施应有功能 的能力。 (3)可维护性:指软件维护人员对该软件进行维护的难易程度。 (4)安全性:确保软件系统不会被内部或外部因素危及的能力。
5.开发效率低
软件的开发至今尚未完全摆脱手工的开发方式,软件也很难象其它工业产品 一样实现标准化、自动化生产。
6.开发费用高
随着社会的发展和信息化进程的推进,在计算机系统中,软件费用占有的比 例越来越大。
任务1
软 件 的 分 类
任务1
什么是软件危机
指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而 导致软件开发与维护过程中出现一系列严重问题的现象 (始于20 世纪 60年代 )。
任务1
软件工程的定义
1968年的NATO 、IEEE【IEEE83】 、IEEE【IEEE93】 软件工程的理解: 软件工程学科是一门指导计算机软件开发和维护的工程学科; 软件工程不是科学,其目的是创造而不是发现; 软件工程不是传统意义的工程:没有成熟的系统化方法。
软件工程的7条基本原理
(1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术
软件危机的特征
(1)软件开发费用和进度失控 丹佛新国际机场 。
(2)软件的可靠性差 “阿丽阿娜”运载火箭
(3)生产出来的软件难以维护
典型例子--IBM360的操作系统
软件危机的原因
(1)与软件本身的特点有关 (2)与软件开发人员本身的弱点有关
✓用户需求不明确 ✓缺乏正确的理论指导 ✓软件开发规模越来越大 ✓软件开发复杂度越来越高