《软件工程导论》第六版_张海藩

软件⼯程导论》第六版_张海藩
⼤佬总结的⾮常好,原⽂链接:
第⼀章软件⼯程概论
1. *软件:是计算机程序、⽅法、规则、相关的⽂档以及运⾏计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+⽂档)
2. *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和软件质量难以稳定。
3. *软件的质量特性:功能性、可靠性、易⽤性、效率、维护性、可移植性。
4. 软件危机:指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。
5. 软件危机的主要表现:
对软件开发成本和进度估计常常很不准确
⽤户对"已完成"的系统不满意的现象经常发⽣
软件产品的质量往往靠不住
软件常常是不可维护的
软件成本在计算机系统总成本所占的⽐例逐年上升
1. 软件危机产⽣的主要原因:
软件⽇益复杂和庞⼤
软件开发管理困难和复杂
软件开发技术落后
⽣产⽅式落后
开发⼯具落后
软件开发费⽤不断增加
1. 软件危机如何解决:既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。
2. 软件⼯程:是指导计算机软件开发和维护的⼀门⼯程学科。采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验
⽽证明正确的管理技术和当前能够得到的最好的技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地维护它。
3. 软件⼯程以关注软件质量为⽬标,包括⽅法、过程、⼯具、范式四个要素。
4. 软件⼯程⽅法学:把软件⽣命周期全过程中使⽤的⼀整套技术⽅法的集合成为⽅法学(也称范型paradigm),包括三个要素:⽅法,⼯具和
过程.⽬前使⽤最⼴泛的是传统⽅法学和⾯向对象⽅法学
传统⽅法学(也称⽣命周期⽅法学或结构化范型):采⽤结构化技术(结构化分析,结构化技术,结构化实现)来完成软件开发的各项任务,并使⽤适当的软件⼯具或软件环境来⽀持结构化技术的运⽤...略太过了
⾯向对象⽅法学:有4个要点;它是⼀个多次反复迭代的演化的过程;特有的继承性和多态性进⼀步提⾼了⾯向对象软件的可重⽤性
1. 软件⽣命周期
软件⽣命周期
问题定义:确定要解决的问题是什么(通过客户的访问调查,系统分析员写出问题的性质,⼯程⽬标和⼯程规模的书⾯报告,并得到客户的确认)
可⾏性研究:不是具体解决问题,⽽是研究问题的范围,探索问题是否值得去解,是否有可⾏的解决⽅法
需求分析:准确确定"为了解决这个问题,⽬标系统必须做什么",主要是确定⽬标系统必须具备哪些功能
总体设计:设计出⽬标系统的多种⽅案;设计程序的体系结构
详细设计:详细的设计每个模块,确定要实现模块功能所需要的算法和数据结构
编码和单元测试:写出正确的容易理解,容易维护的程序模块
综合测试:通过各种类型的测试(及相应的的调试)使软件达到预定的要求
软件维护:通过各种必要的维护活动使系统持久地满⾜⽤户的需要
1. 软件过程:指为了获得⾼质量软件所需完成⼀系列任务框架,它规定了完成各项任务的⼯作步骤;通常使⽤⽣命周期模型简洁地描述软件过
2. ⽣命周期模型:也称过程模型规定了把⽣命周期划分成哪些阶段及各个阶段的执⾏顺序
3. 瀑布模型
①瀑布模型特点:
阶段间具有顺序性和依赖性:必须等前⼀阶段的⼯作完成后之后,才能开始后⼀段的⼯作;前⼀段的输出⽂档就是后⼀阶段的输⼊⽂档推迟实现的观点:在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑⽬标系统的逻辑模型,不涉及物理实现
质量保证的观点:每个阶段必须完成规定的⽂档;每个阶段结束前都要对完成的⽂档进⾏评审,以便尽早发现问题
②瀑布模型适⽤:在开发的早期阶段软件需求被完整确定
③瀑布模型的优点: 可强迫开发⼈员采⽤规范的⽅法;严格规定了每个阶段必须提交的⽂档;要求每个阶段交出的所有产品都必须经过质量保证⼩组的仔细验证
④瀑布模型缺点:瀑布模型是由⽂档驱动;最终产品不能真正满⾜客户的需求
1. 快速原型模型:⾸先建⽴⼀个反映⽤户主要需求的原型系统,让⽤户体验,之后提出意见,随之进⾏修改,再让⽤户体验...直⾄⽤户完全满
意,据此写出规格说明⽂档
2. 增量模型:也称渐增模型,融合了瀑布模型的基本成分(重复应⽤)和原型实现的迭代特征,该模型采⽤随着⽇程时间的进展⽽交错
的线性序列,每⼀个线性序列产⽣软件的⼀个可发布的“增量”。
增量模型优点:⼈员分配灵活,刚开始不⽤投⼊⼤量⼈⼒资源;可先发布部分功能给客户,对客户起到镇静剂的作⽤;增量能够有计划地管理技术风险。
增量模型缺点:需要软件具备开放式的体系结构;容易退化为边做边改模型,从⽽使软件过程的控制失去整体性;增加系统内部的耦合复杂性。
1. 螺旋模型:把它看作在每个阶段之前增加了风险分析的快速原型模型。
2. *螺旋模型与增量模型的区别:(1)两者迭代层级不同:增量模型在活动级迭代;螺旋模型在过程级迭代;(2)两者需求分析的时间
不同:增量模型常常是先做总体需求分析和设计,然后在编码和测试中逐个增量开发;螺旋模型在开发周期内采⽤简化瀑布模型或快速模型;(3)两者提交软件的⽅式不同:增量开发在上次增量的基础上提交新的⼀部分软件;螺旋模型每次迭代都提交⼀个新的完整的软件版本;(4)两者减少风险的⽅式不同:增量模型使⽤未成熟技术和经常的客户反馈等⽅法减少风险;螺旋模型中直接加进风险识别,风险分析、风险控制,计划性较强.
3. 喷泉模型:典型的具有⾯向对象软件开发过程迭代和⽆缝的特性
4. Rational 统⼀过程(Rational Unified Process Rational,RUP): RUP核⼼:RUP核⼼是解决可操作性问题,帮助开发⼈员尽可能少
地依赖那些“不可描述的经验”。RUP特点:⽤例驱动;以体系结构为中⼼(⾼内聚低耦合);增量和迭代开发。
5. RUP最佳实践
迭代式开发:允许每次迭代过程中需求都可以有变化;采⽤可验证的⽅法来减少风险
管理需求:RUP采⽤⽤例分析来捕获需求,并由它们驱动设计和实现
使⽤基于构件的体系架构:使⽤现有的或新开发的构件定义体系结构的系统化⽅法,从⽽降低软件开发的复杂性,提⾼软件重⽤率
可视化建模:建⽴软件系统的可视化模型,提⾼管理复杂软件的能⼒,如UML
验证软件质量:软件质量评估贯穿整个开发过程,由全体成员参与
控制软件的变更:RUP描述了如何控制,跟踪和监控修改,以确保迭代开发的成功
1. RUP软件开发⽣命周期
①核⼼⼯作流 (纵轴代表核⼼⼯作流,横轴代表时间) 前6个为核⼼过程⼯作流, 后3个为核⼼⽀持⼯作流
业务建模:深⼊了解使⽤⽬标系统的机构及商务运作评估⽬标系统对使⽤它的机构的影响
需求:捕获客户的需求并且使开发⼈员和⽤户达成对需求描述的共识
分析与设计:把需求分析的结果转化为分析模型和设计模型
实现:把设计模型转化为实现结果
测试:检查各⼦系统的交互与集成,验证所有需求是否都被正确实现,识别,确认缺陷并确保在软件部署之前消除缺陷
部署:成功⽣成⽬标系统的可运⾏版本,并将软件移交给⽤户
配置与变更管理:跟踪并维护在软件过程中产⽣的所有制品的完整性和⼀致性
项⽬管理:提供项⽬管理框架,为软件开发制定计划,⼈员配备,执⾏和监控等⽅⾯的使⽤准则,并为风险管理提供框架
环境:向软件开发机构提供软件开发环境,包括过程管理和⼯具⽀持
②⼯作阶段
初始阶段:建⽴业务模型,定义最终产品视图,并确定项⽬的范围
精化阶段:设计并确定系统的体系结构,制定项⽬计划确定资源需求
构建阶段:开发出所有构件和应⽤程序,把它们集成客户需要的产品,并且详细地测试所有功能
移交阶段:把开发出的产品提交给⽤户使⽤
③RUP迭代式开发
第⼆章可⾏性研究
1. 可⾏性研究的⽬的不是为了解决问题,⽽是确定问题是否值得去解决
2. 可⾏性:技术可⾏性、经济可⾏性、操作可⾏性、运⾏可⾏性、法律可⾏性。
3. 可⾏性研究过程:
复查系统规模和⽬标
研究正在使⽤的系统
导出新系统的⾼层逻辑模型
进⼀步定义问题
导出和评价供选择的解法
推荐⾏动⽅针
草拟开发计划
书写⽂档提交审查
1. *系统流程图:是概括地描绘物理系统的传统⼯具。⽤图形符号以⿊盒⼦形式描绘组成系统的每个部件(程序,⽂档,数据库,⼈⼯过
程等)。表达的是数据在系统各部件之间流动的情况
符号名称说明
矩形处理能改变数据值或数据位置的加⼯或部件。如程序 、处理机、⼈⼯加⼯等都是处理
平⾏四边形输⼊输出表⽰输⼊或输出,是⼀个⼴义的不指名具体设备的符号
圆形连接指出转到图的另⼀部分或从图的另⼀部分转来,通常在同⼀页上
矩形下⾯ 加个三⾓形换页连接指出转到另⼀页图上或另⼀页图转来
箭头数据流⽤来连接其他符号,指明数据流的⽅向
1. *数据流图表⽰⽅法:实线表⽰数据流;虚线表⽰控制流;圆框代表处理数据的过程;矩形框表⽰产⽣与接收数据的对象;平⾏线表⽰
数据存储区。
2. 数据字典定义组成:数据流;数据流分量(即数据元素);数据存储;处理
3. 数据字典定义数据的⽅法(对数据⾃顶向下分解):
符号含义
=等价于或定义为
+和(连接两个分量)
[]或,多个⽤|隔开
{}重复
()可选
标识符字母字符+字母数字串
字母数字串0{字母或数字}7
字母或数字[字母字符|数字字符]
1. 成本效益分析的⽅法及如何运算:
第⼀步估计开发成本、运⾏费⽤和新系统将带来的经济效益。需从货币时间价值,投资回收期,纯收⼊,投资回收率
⽅法有三种:
代码⾏技术:软件成本=每⾏代码的平均成本*估计的源代码总⾏数
任务分解技术:单本任务成本=任务所需⼈⼒估计值*每⼈每⽉平均⼯资;软件开发项⽬总成本=每个单独任务成本估计总和
⾃动估计成本技术:采⽤⾃动估计成本的软件
第三章需求分析
1. 需求分析的任务
确定对系统的综合要求
分析系统的数据要求
导出系统的逻辑模型
修正系统开发计划
1. 分析建模与规格说明
模型: 就是为了理解事物⽽对事物作出的⼀种抽象,是对事物的⼀种⽆歧义的书⾯描述。通常,模型由⼀组图形符号和组织这些符号的规则组成
需要建⽴的三种模型:数据模型、功能模型和⾏为模型
实体-联系图:描绘数据对象、数据对象的属性及数据对象之间的关系,⽤于建⽴数据模型
数据流图:描绘当数据在软件系统中流动和被处理的逻辑过程,是建⽴功能模型的基础
状态转换图:描绘了系统的状态及引起状态转换的事件,是建⽴⾏为模型的基础
1. 状态转换图符号含义及怎么画 P65,P67
2. 层次⽅框图:是⽤树形结构的⼀系列多层次的矩形框描绘数据的层次结构。最顶层矩形框:代表完整的数据结构;下⾯各层的矩形框
代表数据的⼦集;最底层的矩形框代表实际数据元素
第四章形式化说明技术
1. 按形式化程度分为三类:
⾮形式化,如⽤⾃然语⾔描述规格说明
半形式化,如⽤数据流图或实体-联系图建⽴模型
形式化,如描述系统性质是基于数学的技术
1. ⾮形式化的缺点
⽭盾性:在需求规格说明书中对同⼀问题前后存在不同的描述
⼆义性:读者可以⽤不同的⽅式理解的陈述
含糊性:需求规格说明书对某⼀问题描述不清晰,不可理解
不完整性:需求规格说明书对某⼀问题只说明了局部,没说明整体
抽象层次混乱:指在⾮常抽象的陈述中混⼊了关于低层次的细节陈述
1. 形式化的优点:
能够简洁准确的描述物理现象、对象或动作的结果
在不同的软件⼯程活动之间平滑过渡
提供了⾼层确认的⼿段
1. 应⽤形式化准则
选⽤适当的表⽰⽅法
应该形式化,但不要过分形式化
应该估算成本
应该有形式化顾问随时提供咨询
不应该放弃传统的开发⽅法
应该建⽴详尽的⽂档

本文发布于:2024-09-24 15:23:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/389029.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   模型   系统   数据   需求   开发
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议