任务1 软件工程概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务1
7-编码和单元测试
也称为软件的实现,也是程序员的主要工作。 (1)选择程序设计语言 (2)养成程序设计风格
(3)遵循编码规范
(4)进行单元测试
8-综合测试
通过各种类型的测试及相应
的调试,保证软件达到预定的的 要求。最基本的测试是集成测 试和验收测试。
9-软件维护
(1)改正性维护
(2)适应性维护
操作提示
(1)通过学习小组讨论和上网查询资料形式完成。 (2)找到一些常用的软件工程相关的网站,方便自己的学习。
软件工程与Rose建模
任务1
软件生存周期
1、什么是软件生存周期(软件开发生命周期)
描述了软件孕育、诞生、成长、成熟、衰亡的生存过程。
软件工程与Rose建模
任务1
定 义 时 期
软 件 生 存 周 期
的检索算法和索引技术有关。 或多种特定关系的数据元素的集合。通常情况下,精心选择的数
软件和程序的区别
程序用程序设计语言描述的,适合于计算机处理的语句序列(是代 码的集合,没有其它任何文档)。 软件是程序和开发,使用,维护所需的所有文档的集合。
软件工程与Rose建模
任务1
软件的评价因素
(1)易用性:指软件产品对用户来说有效、易学、高效、好记、少错 和令人满意的程度 。 (2)可靠性:指在给定的时间内,计算机软件系统能实施应有功能的 能力。 (3)可维护性:指软件维护人员对该软件进行维护的难易程度。 (4)安全性:确保软件系统不会被内部或外部因素危及的能力。
软件危机的特征(表现)
① 对软件开发成本和进度的估计常常很不准确(难以控制)(丹佛新国际 机场 )。 ② 用户对“已完成的”软件系统不满意的现象经常发生。 ③ 软件产品的质量常常靠不住(“阿丽阿娜”运载火箭) 。 ④ 软件常常是不可维护的(典型例子--IBM360的操作系统 )。 ⑤ 软件通常没有适当的文档资料。 ⑥ 软件开发生产率的提高速度远远跟不上计算机应用迅速普及深入的趋势。
软件工程与 Rose建模
任务1 软件工程概述 主讲教师:侯云霞
本章学习要点
软件的定义与分类
软件工程的定义与基本思想 软件危机的出现 软件工程定义和基本准则 软件工程思想方法与设计原则
教学课时:2课时
软件工程与Rose建模
软件人才成长链
1 2 3 4 5 6 程序员 SA系统分析师 SD系统设计师 项目经理 产品经理 Architect(架构设计师)
软件工程与Rose建模
任务1
分布式软件系统是支持分布式处理 所谓批处理 (batch processing )就 一个实时系统是指计算的正确性 软件的发展 的软件系统,是在由通信网络互联 是将作业按照它们的性质分组 不仅取决于程序的逻辑正确性, 的多处理机体系结构上执行任务的 (或分批),然后再成组(或成 1.程序设计阶段(20世纪50至60年代) 也取决于结果产生的时间,如果 系统。它包括分布式操作系统、分 批)地提交给计算机系统,由计 2.程序系统阶段(20世纪60至70年代) 系统的时间约束条件得不到满足, 布式程序设计语言及其编译(解释) 算机自动完成后再输出结果,从 3.软件工程阶段(20世纪70年代中后期) 将会发生系统出错。 系统、分布式文件系统和分布式数 而减少作业建立和结束过程中的 4.第四阶段(约20世纪90年代以来) 据库系统等。 时间浪费。
(4)局部化
新的设计原则
(1)确定性 (2)一致性 (3)完备性 (4)可验证性
软件工程与Rose建模
课堂实践 1
操作要求
(1)根据您的理解,您认为怎样才能解决软件危机。 (2)你所了解的目前我国的软件开发是一种什么样的状态,您认为哪 些地方可以改进。 (3)了解了软件工程的概念以后,你是怎样理解软件开发和编程的?
软件工程与Rose建模
任务1
产生软件危机的原因(微观)
(1)软件的规模比较庞大,其开发和维护相当困难;
(2)开发人员虽然有经验,但还存在着不少错误观点,没有实行工 程化的方法; (3)不能与用户及时沟通,不能了解用户的实际需要; (4)没有统一的软件质量管理规范; (5)不能根据环境的变化而随时对产品进行改正。
软件工程与Rose建模
任务1
软件危机的特征(表现)
⑦软件成本在计算机系统总成本中所占比例逐年上升。
软件工程与Rose建模
任务1
产生软件危机的原因
软件工程面临两大问题: 如何开发软件才能满足对软件快速增长的需求 如何维护数量和规模不断增长和扩大的已有软件 (1)与软件本身的特点有关 (2)与软件开发人员本身的弱点有关
6.开发费用高
随着社会的发展和信息化进程的推进,在计算机系统中,软件费用占有的比例越 来越大。
软件工程与Rose建模
任务1
软 件 的 分 类
软件工程与Rose建模
任务1
什么是软件危机
指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而 导致软件开发与维护过程中出现一系列严重问题的现象 (始于20 世纪 60年代 )。
软件工程的7条基本原理
(1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术
软件工程与Rose建模
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
任务1
新的思想方法 (1)抽象 (2)信息隐蔽 (3)模块化
操作提示
(1)通过学习小组讨论和上网查询资料形式完成。 (2)结合自己的软件开发实践,进一步理解软件生命周期及各阶段的任务。
软件工程与Rose建模
课外拓展
操作要求
(1)在网上搜索《人月神话》的电子书,并进行阅读。 (2)使用Word或Visio工具,绘制如图1-3所示的图书管理系统系统流程图。 (3)使用Word或Visio工具,绘制如图1-5所示的图书管理系统系统中借还书 操作的数据流图。 (4)使用Word或Visio工具,绘制如图1-6所示的图书管理系统的功能模块图。
软件工程与Rose建模
任务1
3-需求分析
3.需求的层次 4.需求的标准
(1)明确性
(2)完整性 (3)一致性 (4)可测试性
(5)可跟踪性和可修改性
软件工程与Rose建模
任务1
3-需求分析
需求分析阶段通常借助于数据流图描述对现有系统的认识或对目标系统的设想。
软件工程与Rose建模
任务1
4-总体设计
(3)完善性维护 (4)预防性维护
软件工程与Rose建模
课堂实践 2
操作要求
(1)怎样理解软件生存周期模型? (2)软件生存周期模型中各阶段的主要描述工具有哪些? (3)需求分析在软件生存周期过程中处于怎样的地位? (4)查找一份需求规格说明书,通过阅读该说明书准确的获取系统的需求。 (5)查找一份总体设计说明书,参照模板编写“B-C电子商务系统”的总体设 计说明书。 (6)查找一份详细设计说明书,参照模板编写“B-C电子商务系统”的详细设 计说明书。
开 发 时 期 维 护 时 期
软件工程与Rose建模
任务1
1-问题定义
“要解决的问题是什么?” 系统分析员应该提出关于问题性质、工程目标和规模的书面报告。 并组织认真讨论这份 书面报告。问题定义阶段是软件生存周期中最简 短的阶段,一般只需要一天甚至更少的时间。
2-可行性研究
“对于上一个阶段所确定的问题有行得通的解决办法吗?” 系统分析员需要在较抽象的高层次上进行的分析和设计的过程,可 以通过系统流程图、数据流图和数据字典进行描述。 (1)技术可行性:使用现有的技术能实现这个系统吗? (2)经济可行性:这个系统的经济效益能超过它的开发成本吗? (3)操作可行性:系统的操作方式在这个用户组织内部行得通吗?
用户需求不明确 缺乏正确的理论指导 软件开发规模越来越大
wk.baidu.com
软件开发复杂度越来越高
软件工程与Rose建模
任务1
产生软件危机的原因(宏观)
(1)缺乏总体考虑,没有软件工程学概念或系统工程思想。--软件 (2)对业务了解支离破碎,需求分析不准。--软件 (3)企业依赖激情指挥,企业管理标准化、规范化、科学化程度不高,导致 不能成功地应用“死板”的软件,它依赖于业务的“科学化”、“条理化”、 “程序化”--企业 (4)企业信息化程度和计算机应用水平低,导致无法准确描述需求。--企业 (5)一把手对信息管理的重视程度不够。--企业 (6)缺乏相互沟通,业务描述的详尽程度不能达到具备生活常识的人能够轻 易理解。--企业、软件
软件工程与Rose建模
任务1
2-可行性研究(系统流程图)
软件工程与Rose建模
任务1
3-需求分析
1.什么是软件需求 IEEE软件工程标准中关于需求的定义 用户解决问题或达到目标所需的条件或权能。
系统或系统部件要满足合同、标准、规范或其它正式规定文档
所需具有的条件或权能。
2.需求的特点 (1)需求是根本的 (2)需求是变化的 (3)需求是多层次的
软件发展的四个阶段出现的典型技术和主要特点
计算机系统阶段
软件工程与Rose建模
任务1
软件的特点
1.抽象性
指软件生产无明显制造过程,软件是一种逻辑实体,而不是具体的物理实体 。
2.可复制性
指软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、 开发中被创造出来的,它可以很简单的制作副本。
操作提示
(1)通过一次完整的借还书过程体验应用图书管理系统借书和还书的基本流程。 (2)参考已有图书管理系统说明书进行图形的绘制。 (3)本次实践的目的在于培养使用辅助工具绘制图形的能力,而不在于设计。
软件工程与Rose建模
3.不会磨损
在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,而只有版本更 新和升级的问题。
4.依赖性
软件的开发和运行经常受到计算机系统的限制,对计算机系统和用户需求有着不 同程度的依赖性。
5.开发效率低
软件的开发至今尚未完全摆脱手工的开发方式,软件也很难象其它工业产品一样 实现标准化、自动化生产。
“概括地说,应该如何解决这个问题?”通常用层次图或结构图描 绘软件的结构。 (1)低成本的解决方案。
(2)中等成本的解决方案。
(3)高成本的完美的解决方案。
软件工程与Rose建模
任务1
5-详细设计
“应该怎样具体地实现这个系统
呢?” 通常用HIPO图或PDL语言 或程序流程图描述详细设计的结果 。
软件工程与Rose建模
软件工程与Rose建模
任务 1 数据结构是计算机存储、组织数据的方式。是相互之间存在一种
软件的定义 据结构可以带来更高的运行或者存储效率。数据结构往往同高效
软件是人们写给计算机的一系列指令以及相关文档的集合。 软件由以下三部分组成: (1)在运行中能提供所希望的功能和性能的指令集(即程序)。 (2)使程序能够正确运行的数据结构。 (3)描述程序研制过程、方法所用的文挡。
软件工程与Rose建模
任务1
软件工程的定义
1968年的NATO 、IEEE【IEEE83】 、IEEE【IEEE93】 软件工程的理解: 软件工程学科是一门指导计算机软件开发和维护的工程学科; 软件工程不是科学,其目的是创造而不是发现; 软件工程不是传统意义的工程:没有成熟的系统化方法。