海大计算机专业软件工程课程资料lge第一章软件工程学
第1章 概述

1.3 软件工程方法学
软件工程包括技术和管理两方面的内容,是技 术与管理紧密结合所形成的工程学科。 通常把在软件生命周期全过程中使用的一整套 技术方法的集合称为方法学(methodology),也 称为范型(paradigm)。在软件工程领域中,这两 个术语的含义基本相同。
软件工程方法学包含3个要素:方法、工具和过 程。
1.2 软件工程定义
软件工程的基本原理
➢ 用分阶段的生命周期计划严格管理 ➢ 坚持进行阶段评审 ➢ 实行严格的产品控制 ➢ 采用现代程序设计技术 ➢ 结果应能清楚地审查 ➢ 开发小组的人员应该少而精 ➢ 承认不断改进软件工程实践的必要性
软件工程项目的基本目标
付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用
维护带来的问题
1.1 软件工程产生的背景
c. 软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品
第三阶段 •分布式系统 •嵌入“智能” •低成本硬件 •消费者的影响
第四阶段 •强大的桌面系统 •面向对象技术 •专家系统 •人工神经网络 •并行计算 •网路计算机
第1章 软件工程概述
➢ 软件工程产生的背景(软件危机) ➢ 软件工程定义 ➢ 软件工程方法学 ➢ 软件过程模型 ➢ 小结
1.1 软件工程产生的背景
1) 软 件
a. 软件的定义
软件( Software)是计算机系统中与硬件相 互依存的另一部分,它是包括程序(Program) , 数据(Data)及其相关文档( Document)的完 整集合。
b、产生软件危机的原因
《软件工程》第一章

计算机应用范围及规模的迅速扩大
– 软件的复杂性随规模呈指数级上升
• 开发一个具有一定规模和复杂性的软件系统及 编写一个简单的程序不一样
– 正如建设狗窝和高楼大厦
软件危机的原因(2)
软件的“实质性”困难:复杂性,一致性、 易变性、不可见性。
– 包括开发和管理,技术及非技术的,等方方面面 – 软件是逻辑产品,系统中的错误难以消除;质量问
徐
《软件工程》
州
SoftwareEngineering
工
程
学
院
2021/3/6 2021/3/6
在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但是为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。
– 软件的发展还跟不上硬件的步伐。 – {软件生产率提高4%-7%/每年}
Software Crisis:主要表现(4)
软件质量极其低劣
– 例如,60年代IBM的OS/360操作系统。它共有4000 多个模块、100万行指令,共投入5000人年,耗资5 亿美元,但在交付使用的系统中仍找出2000个以上 的错误。
– 据研究结果统计: – 只有15%的项目是按计划完成的。 – 仅有10%的项目是按费用计划完成的。 – 平均超出50%
造成用户不满,开发者丧失信心
Software Crisis:主要表现(2)
软件费用急剧上涨
– 年增长率达12%。原因:硬件性能价格比迅 速下降(在30年内提高了6个数量级,或每 二年翻一翻),扩大了计算机的应用,而 软件的开发成本却十分昂贵。
中国海洋大学考研期末软件工程复习资料

中国海洋⼤学考研期末软件⼯程复习资料软件⼯程复习提纲第⼀章1.软件危机包含两⽅⾯的问题:1)如何开发软件,以满⾜对软件⽇益增长的需求2)如何维护数量不断膨胀的已有软件。
2.软件⽣命周期由软件定义、软件开发和运⾏维护三个时期组成,每个时期⼜可进⼀步划分成若⼲个阶段。
软件定义划分为:问题定义、可⾏性研究、需求分析软件开发划分为:总体设计、详细设计、编码和单元测试、综合测试。
运⾏维护:不再分;这8个阶段每个阶段的基本任务是什么?1、问题定义:明确要解决的问题是什么。
2、可⾏性研究:这个阶段的任务不是具体解决问题,⽽是研究问题的范围,探索这个问题是否值得去解,是否有可⾏的解决办法。
3、需求分析:准确的确定“为了解决这个问题,⽬标系统必须做什么”,主要是确定⽬标系统必须具备哪些功能。
这个阶段的⼀项重要任务,是⽤正式⽂档准确记录对⽬标系统的需求,这份⽂档通常称为规格说明书。
4、总体设计:必须回答的关键问题是“概括的说,应该怎样实现⽬标系统?”总体设计⼜称为概要设计。
⾸先,应该设计出实现⽬标系统的⼏种可能的⽅案。
另⼀个就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。
5、详细设计:关键问题是“应该怎样具体的实现这个系统呢?”这个阶段将详细的设计每个模块,确定实现模块功能所需要的算法和数据结构。
6、编码和单元测试:写出正确的容易理解、容易维护的程序模块。
选择⼀种⾼级语⾔,将详细设计的结果翻译成⽤选定的语⾔书写的程序,并且⾃习测试编写出的每⼀个模块。
7、综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。
最基本的测试:集成测试、验收测试;8、软件维护:通过各种必要的维护活动是系统持久的满⾜⽤户的需要。
通常有四类维护活动:改正性维护,适应性维护,完善性维护,预防性维护。
3.软件过程的各种模型:瀑布模型(⽂档驱动模型),快速原型模型,增量模型,螺旋模型(风险驱动的模型),喷泉模型(适⽤于⾯向对象软件开发),Rational 统⼀过程,敏捷过程和极限编程,微软过程。
中国海洋大学软件工程课程大纲

中国海洋大学软件工程课程大纲(理论课程)Software Engineering【开课单位】计算机科学与技术系【课程模块】专业知识【课程编号】 080503211245 【课程类别】选修【学时数】 32 (理论 32 实践 0 )【学分数】 2备注:课程模块为公共基础、通识教育、学科基础、专业知识或工作技能;课程类别为必修或选修。
一、课程描述本课程大纲根据2011年本科人才培养方案进行修订或制定。
(一)教学对象计算机科学与技术系本科生大三学生。
(二)教学目标及修读要求1、教学目标(课程结束后学生在知识、技能和态度三个层面达到的目标)知识:掌握软件工程学中的基础知识,包括传统方法学、面向对象方法学和项目管理。
技能:学生熟练掌握软件生命周期中可行性研究、需求分析、设计与实现各阶段的任务、过程、结构化方法和工具;掌握面向对象方法学以及面向对象的分析、设计与实现过程;能够进行简单的软件项目管理。
态度:建立科学的软件开发观念。
以用户为中心,尊重规律,务实高效。
2、修读要求(简要说明课程的性质,与其他专业课程群的关系,学生应具备的基本专业素质和技能等)本课程是本科生限选课程。
是程序设计语言、数据库原理、数据结构、算法等后续的综合性专业课程。
学生应具备的基本专业素质和技能:掌握一门编程语言,熟悉数据库原理。
(三)先修课程(参照2011版人才培养方案中的课程名称,课程名称要准确)先修课程包括:数据库原理、面向对象的程序设计。
二、教学内容(一)第一章概述1、主要内容:介绍软件危机的原因,解决的办法。
软件工程的定义,基本原理。
软件生命周期。
软件过程。
小结。
2、教学要求:软件危机的概念、原因以及消除途径;软件工程的概念、基本原理、方法学;软件生命周期以及四种软件过程。
3、重点、难点:软件工程的原理,软件生命周期,瀑布模型。
4、其它教学环节(如实验、习题课、讨论课、其它实践活动):介绍本课程实践项目的情况。
(二)第二章可行性研究1、主要内容:可行性研究的任务;可行性研究过程;系统流程图;数据流图;数据字典;成本/效益分析。
计算机软件技术基础第1章 软件工程

信息管理与信息系统
17
计算机软件技术基础
2.文档
计算机软件技术基础
计算机软件技术基础
总体设计说明书: 主要规定软件结构, 详细设计说明书:着重描述程序的过程。 设计表达工具
图形表达工具:流程图 N-S图(由Nassi和Shneidermen开发) PAD图(Problem Analysis Diagram) 文字表达工具:如伪代码,PDL(Program Design Language)等。 表格表达工具:判定表等。
程序设计时代、 软件时代 软件工程时代
信息管理与信息系统 2
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
– 软件工程学定义: 是指导计算机软件开发和维护的一门工程学科。它采用 工程的概念、原理、技术和方法来开发与维护软件,把 先进的管理技术和先进的计算机科学技术方法结合起来, 经济地开发出高质量的软件并有效地维护它。
信息管理与信息系统
23
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
(2)事务型结构 这类系统的特征是,具有在多种事务中选择执行某类事务的能 力。 事务型结构由至少一条接受路径,一个事务中心(加工)与 若干条动作路径组成,当外部信息沿着接受路径进入系统后, 事务中心分析每一事务,确定其类型,根据事务类型选择一 个事务路径继续进行处理。
信息管理与信息系统
26
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
3.详细设计的描述方法 详细设计的描述方法也称为详细设计工具,可 用流程图、PDA图和伪代码等工具表示。 (1)程序流程图 (2)N-S图 (3)PAD图 PAD图又称问题分析图 (4)伪码和PDL语言
软件工程学教程PPT课件

04
DevOps实践案例
分享一些成功实施DevOps的案例 ,并分析其成功因素和经验教训
。
THANKS
感谢观看
持续集成与持续交付的实践
自动化构建、自动化测试、自动化部署等。
06
软件工程实践与方法论
软件开发团队组建与管理
团队角色与职责
明确项目经理、开发人员、测试 人员、文档编写人员等角色及其
职责。
团队沟通与协作
建立有效的沟通机制和协作流程, 确保团队成员之间的信息交流畅通。
团队培训与成长
提供必要的培训和发展机会,促进 团队成员的技能提升和职业发展。
编写详细的测试报告,包括测试覆盖 率、缺陷统计、性能分析等,为软件 质量评估提供依据。
05
软件维护与演化
软件维护概述
1 2
软件维护的定义
在软件已经交付使用之后,为了改正错误、改进 性能或其他属性、适应新的环境等而进行的修改 活动。
软件维护的分类
改正性维护、适应性维护、完善性维护和预防性 维护。
3
利用自动化测试工具编写和执行测试用例, 提高测试效率和准确性。
测试用例设计与执行
用例设计
根据需求文档和设计文档设计测试用 例,包括正常场景和异常场景的测试。
用例执行
按照测试用例的步骤执行测试,记录 测试结果并与预期结果进行对比。
缺陷管理
发现缺陷后提交缺陷报告,并跟踪缺 陷的修复过程和结果验证。
测试报告
软件工程学教程ppt课件
• 软件工程学概述 • 软件开发过程与模型 • 需求分析与设计 • 编码与测试 • 软件维护与演化 • 软件工程实践与方法论
01
软件工程学概述
中国海洋大学本科生课程大纲
-1-
最佳实践和企业案例,力求使学生在理解和实践的基础上掌握当前软件工程的方法、 技术和工具。
本课程注重培养学生理论应用于实践的能力,通过课程设计,培养学生对整个软 件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工 程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管 理能力有重要的现实意义。
一、 课程介绍
1.课程描述: 《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体
系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工 程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开 发、维护和管理的科学。《软件工程》已成为高等学校计算机软件教学体系中的一门 核心课程。
[2]《软件工程实践者的研究方法》(原书第 7 版),Roger S.Pressman,机械工业出版社,
2011.5
[3]《软件工程》,张海藩,吕云翔,人民邮电出版社,2013.9.
六、成绩评定 (一)考核方式 C:A.闭卷考试 B.开卷考试 C.论文 D.考查 E.其他
(二)成绩综合评分体系:
随堂测试;出勤率
教学课件第1章软件工程基础
软件定义: 确定软件开发总目标;确定工程的可行性; 导出实现策略及系统功能;估计资源和成本,并且制定 工程进度表。 问题定义、可行性研究、需求分析
软件开发: 具体设计和实现在前一个时期定义的软件 总体设计、详细设计、编码和单元测试、综合测试
7. 综合测试
▪ 集成测试和验收测试,现场测试或平行运行
8. 软件维护
▪ 使系统持久地满足用户的需要。 ▪ 改正性维护,适应性维护,完善性维护,预防性维护。
1.3软件生存期模型
软件生存期模型反映软件生存周期内各种工作应如 何组织及,以及各个阶段应如何衔接。
软件生存期模型是跨越整个软件生存周期的系统开 发、运作、维护所实施的全部工作和任务的结构框 架。
• 推迟实现的观点
清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。
• 质量保证的观点(文档驱动)
每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审
瀑布模型的缺点
➢ 模型缺乏灵活性。 ➢ 开发过程一般不能逆转,否则代价太大 ➢ 规格说明很难理解:“我知道这是按我
的要求做的,但不是我想要的样子。” ➢ 软件的实际情况必须到项目开发的后期
▪ 错误出现的时间:在编代码之前(63%:37%) ▪ 改正错误的代价:发现得月晚,开发代价越高
• 实行严格的产品控制
基线配置、变动控制
• 采用现代程序设计技术 • 结果应能清楚地审查 • 开发小组的人员应该少而精 1. 承认不断改进软件工程实践的必要性
6.软件工程研究的基本内容
软件工程学分为:理论与结构、方法、工具与环境、 管理和规范等。
人类工程
关键是处理软件与人的交互问题。 现在“人机界面友好”的要求,已成为基于计算机系
[建筑工程管控]中国海洋大学软件工程考研资料
(建筑工程管理)中国海洋大学软件工程考研资料软件工程复习提纲第一章软件工程基本概念1、软件危机的概念:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件危机包含两方面的问题:1)如何开发软件以满足对软件日益增长的需求;2)如何维护数量不断膨胀的已有软件。
3、软件危机的原因:1)与软件本身的特点有关;2)和软件开发与维护的方法不正确有关。
4、软件危机的消除途径:解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
5、软件工程的概念:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
6、软件工程的基本原理:1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程度设计技术5)结果应能清楚地审查6)开发小组的人员应该少而精7)承认不断改进软件实践的必要性7、软件工程方法学(3个要素):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。
三要素:方法、工具和过程。
8、软件生命周期:从软件定义、软件开发和运行维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
1)软件定义:问题定义、可行性研究和需求分析;2)软件开发:总体设计、详细设计、编码和单元测试、综合测试;(前两个称系统设计,后两个称系统实现)3)运行维护:软件维护;9、软件过程及其特点:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
1)瀑布模型:a.阶段间具有顺序性和依赖性;①前一阶段的工作完成后,才能开始后一阶段的工作;②前一阶段的输出文档是后一阶段的输入文档,前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。
b.推迟实现的观点;对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。
c.质量保证的观点;①每个阶段都必须完成规定的文档。
01-第一章-软件工程绪论-软件工程教案-海南大学(共15章)
5. 项目经理岗位能力规定
年龄范围: 28岁以上 学历要求:本科以上或专科并有 计算机相关技术证书 专业要求: 计算机及相关专业 工作经历要求:1.有项目经理经历两年以上 2.同时有日本工作经验一年以上 3.通过公司内部试用期 日语水平:1.日语一级 2.熟悉各种计算机开发语言
录 用 员 工 条 件
中国向印度学习——发展软件外包业务
中国目前外包业务与市场分析
中国目前80%的外包业务来自日、韩等亚洲国家 印度的外包业务主要来自于美国 中国和印度的不同(文化、语言、软件工程意识)
软件工程教育的定位
我国软件工程的专业教育与软件人才的链之 间的关系可描述为如下图:
架构设计师 产品经理 研究生教育 项目管理者 系统分析师 系统设计师 软件开发工程师 程序员 本科教育 大专教育 中专教育
工作经历要求:1.有从事软件编程一年以上的相关工作经历 2.通过公司内部试用期 录 用 员 工 条 件 日语水平:1.相当三级 2.或者有4级证书 3.能理解日语仕样书,熟悉日语开发环境达一年 技术水平:1.熟悉运用SQL server、Oracle数据库 2.熟悉运用VC、C++或Java编程 3.能带一个实习生 能力要求:1.具备较强的学习能力 2.工作积极主动,有责任心,有良好的品质意识 3.具有团队协作精神及沟通能力 岗 位 工 作 描 述 1.能按时按质完成软件项目中的编码工作 2.能完成详细设计的任务 3.能完成综合测试任务 4.能协助公司独立担当带好新手的任务
ቤተ መጻሕፍቲ ባይዱ
实验8:编码与调试
16
课程简介及教学目标
“软件工程”是计算机科学与技术、计算机 软件与理论、信息与计算科学及其相关专业的 一门专业基础课,它是软件设计与开发以及各 种计算机应用系统开发的重要基础。是本科培 养目标——软件系统设计师和软件开发工程师 的必备知识。主要内容包括软件工程概述、可 行性分析、需求分析、概要设计、详细设计、 面向对象分析与设计、编码、软件质量与质量 保证、项目计划与管理等。课程的学习对提升 同学们的能力、素质、道德修养、团队精神等 都具有非常重要的意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程的本质特征: 1. 软件工程关注大型程序的构造 2. 软件工程的中心课题是控制复杂性 3. 软件经常变化 4. 开发软件的效率非常重要 5. 和谐的合作是开发软件的关键 6. 软件必须有效地支持它的用户 7. 在软件工程领域中是由具有一种文化背景的人 替具有另一种文化背景的人创造产品
1.2.3 软件工程方法学
通常把在软件生命周期全过程中使用的一整套技 术方法的集合称为方法学(methodology),也 称为范型(paradigm)。
软件工程方法学包含3个要素:方法、工具和过 程。其中,方法是完成软件开发的各项任务的技术 方法,回答“怎样做”的问题;工具是为运用方法 而提供的自动的或半自动的软件工程支撑环境;过 程是为了获得高质量的软件所需要完成的一系列任 务的框架。
海大计算机专业软件工程课程资料 lge第一章软件工程学
软件危机主要有以下一些表现:
v 对软件开发成本和进度的估计常常很不准确;
v 用户对“已完成的”软件系统不满意的现象经常发 生;
v 软件产品的质量往往靠不住;
v 软件常常是不可维护的;
v 软件通常没有适当的文档资料;
v 软件成本在计算机系统总成本中所占的比例逐年上 升;
软件工程典型的定义: “软件工程就是为了经济地获得可靠的且能在实际
机器上有效地运行的软件 ,而建立和使用完善的工 程原理。”该定义不仅指出了软件工程的目标是经济 地开发出高质量的软件,而且强调了软件工程是一门 工程学科,它应该建立并使用完善的工程原理。
1993年IEEE进一步给出了一个更全面更具体的定 义:“软件工程是:(1) 把系统的、规范的、可度量 的途径应用于软件开发、运行和维护过程,也就是把 工程应用于软件;(2)研究(1) 中提到的途径。
面向对象方法学具有下述4个要点:
(1)把对象(object )作为融合了数据及在数据上的 操作行为的统一的软件构件。面向对象程序是由对 象组成的,程序中任何元素都是对象,复杂对象由 比较简单的对象组合而成,也就是说,用对象分解 取代了传统方法的功能分解。
(2)把所有对象都划分成类(class)。每个类都定 义了一组数据和一组操作,类是对具有相同数据和 相同操作的一组相似对象的定义。数据用于表示对 象的静态属性,是对象的状态信息,而施加于数据 之上的操作用于实现对象的动态行为。
需求分析 验证
规格说明 验证
设计 验证
变化的需求 验证
编码 测试
综合测试
维护
图1.3 实际的瀑布模型
海大计算机专业软件工程课程资料 lge第一章软件工程学
1.4.2 快速原型模型 所谓快速原型是快速建立起来的可以在计算机上运
行的程序,它所能完成的功能一般是最终产品能完成 的功能的一个子集。如图1.4所示。
(1)原型系统已经通过与用户交互而得到验证,据 此产生的规格说明文档正确地描述了用户需求,因此, 在开发过程的后续阶段不会因为发现了规格说明文档 的错误而进行较大的返工。
(2)开发人员通过建立原型已经掌握很多东西。因 此,在设计和编码阶段发生错误的可能性也较小,这 自然减少后续阶段修改前面错误的可能性。
目前使用的最广泛的软件工程方法学,分别是传 统方法学和面向对象方法学。
海大计算机专业软件工程课程资料 lge第一章软件工程学
1、传统方法学 传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术(结构化分析、结构化设计和结构 化实现)来完成软件开发的各项任务,并使用适当的 软件工具或软件工程环境来支持结构化技术的运用。
海大计算机专业软件工程课程资料
lge第一章软件工程学
按照传统的瀑布模型开发软件,有如下几个特点: 1.阶段间具有顺序性和依赖性
这个特点由两重含义: (1)必须等前一阶段的工 作完成之后,才能开始后一阶段的工作;(2)前一 阶段的输出文档就是后一阶段的输入文档,因此只 有前一阶段的输出文档正确,后一阶段的工作才能 获得正确的结果。 2.推迟实现地观点
准确的确定“为了解决这个问题,目标系统必须 做什么”,主要是确定目标系统必须具备那些功能。
海大计算机专业软件工程课程资料 lge第一章软件工程学
4. 总体设计 必须回答的关键问题是:“概括地说,应该如何解
决这个问题?”。 有两个任务:
(1)考虑几种可能的解决方案。 低成本解决方案;中等成本解决方案;高成本“十
海大计算机专业软件工 程课程资料lge第一章软
件工程学
2020/11/25
海大计算机专业软件工程课程资料 lge第一章软件工程学
问题一:
你编写过的最长的程序有多少行? A: 50行以内 B:50-100行
C: 100-500行 D: 500行以上
问题二:
你编写过的最长的程序类型: A: 课程实验 B:老师课题
软件生命周期的划分:
软件定义
问题定义 可行性研究 需求分析
软件开发
总体设计 详细设计 编码和单元测试 综合测试
软件维护
海大计算机专业软件工程课程资料 lge第一章软件工程学
各阶段的基本任务: 1. 问题定义
必须回答的关键问题是:“要解决的问题是什 么?” 2. 可行性研究
必须回答的关键问题是:“对于上一个阶段所确 定的问题有行得通的解决办法吗?” 3. 需求分析
关键任务是,通过各种必要的维护活动使系统持久 地满足用户的需要。
维护类型:改正性维护、适应性维护、完善性维护、 预防性维护。
海大计算机专业软件工程课程资料 lge第一章软件工程学
表1.1 结构分析设计过程小结
海大计算机专业软件工程课程资料 lge第一章软件工程学
表1.1 结构分析设计过程小结
海大计算机专业软件工程课程资料 lge第一章软件工程学
全十美”的系统; (2)设计软件结构,即确定程序由哪些模块组成以及
模块间的关系。
5.详细设计 关键问题是:“应该怎样具体地实现这个系统?”
海大计算机专业软件工程课程资料 lge第一章软件工程学
6.编码和单元测试 关键任务是写出正确的容易理解、容易维护的程序
模块。 7.综合测试
关键任务是通过各种类型的测试(及相应的调试) 使软件达到预定的要求。 8.软件维护
1.4 软件过程
软件过程是为了获得高质量软件所需要完成的一系 列任务的框架,它体现了完成各项任务的工作步骤。
概括地说,软件过程描述为了开发出客户需要的软 件,什么人(who)、在什么时候(when)、做什么 事(what)以及怎样做(how)这些事以实现某一 特定的具体目标。
海大计算机专业软件工程课程资料 lge第一章软件工程学
过程定义了运用方法的顺序、应该交付的文档资料、 为保证软件质量和协调变化所需要采取的管理措施, 以及标志软件开发各个阶段任务完成的里程碑。为了 获得高质量软件产品,软件过程必须科学、有效。
通常使用生命周期模型简洁的描述软件过程。生命 周期模型规定了把生命周期划分成哪些阶段以及各个 阶段的执行顺序,因此,也称为过程模型。
海大计算机专业软件工程课程资料 lge第一章软件工程学
(3)按照父类与子类的关系,把若干个相关类组成 一个层次结构的系统。在该层次中,派生类自动拥 有上层基类中定义的数据和操作,这种现象称为继 承。 (4)对象彼此间仅能通过发送消息互相联系。
海大计算机专业软件工程课程资料 lge第一章软件工程学
1.3 软件生命周期
海大计算机专业软件工程课程资料 lge第一章软件工程学
1.1.2 产生软件危机的原因
两方面的原因:
一是软件本身的特点:
v 软件不同于硬件,是计算机系统中的逻辑部件而不 是物理部件。(运行之前难以评价。)
v 软件不同于一般程序,它的一个显著特点是规模庞 大。(分工合作如何组织才能产生高质量软件?)
二是软件开发与维护的方法原因。(忽视需求分析, 轻视软件维护)
海大计算机专业软件工程课程资料 lge第一章软件工程学
快速原型 验证
规格说明 验证
设计 验证
变化的需求 验证
注:实线箭头表示开发过程 虚线箭头表示维护过程
编码 测试
综合测试
图1.4 快速原型模型
维护
海大计算机专业软件工程课程资料 lge第一章软件工程学
从图1.4可以看出,快速原型模型是不带反馈环的, 这正是这种过程模型的主要优点:软件产品的开发基 本上是线性顺序进行的。
海大计算机专业软件工程课程资料 lge第一章软件工程学
图1.5所示的增量模型表明,必须在开始实现各个 构件之前就全部完成需求分析、规格说明和概要设计 的工作。由于在开始构建第一个构件之前就已经有了 总体设计,因此风险较小。图1.6描绘一种风险更大 的增量模型:一旦确定了用户需求之后,就着手拟定 第一个构件的规格说明文档,完成后规格说明组将转 向第二个构件的规格说明,与此同时设计组开始设计 第一个构件…用这种方式开发软件,不同的构件将并 行的构建,因此有可能加快工程进度。但是,使用这 种方法将冒构件无法集成到一起的风险。
海大计算机专业软件工程课程资料 lge第一章软件工程学
3.质量保证的观点 在瀑布模型的每个阶段都应该坚持两个重要做法: (1)每个阶段都必须完成规定的文档,没有交出
合格的文档就是没有完成该阶段的任务。 (2)每个阶段结束前都要对所完成的文档进行评 审,以便及早发现问题,改正错误。
海大计算机专业软件工程课程资料 lge第一章软件工程学
海大计算机专业软件工程课程资料 lge第一章软件工程学
1.4.3 增量模型
增量模型也称为渐增模型,如图1.5所示。
需求分析 验证
规格说明 验证
概要设计 验证
针对每个构件,完成详细 设计、编码和集成,经测
试后交付给用户
维护
图1.5 增量模型
海大计算机专业软件工程课程资料 lge第一章软件工程学