


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 软件工程学概论1、软件危机产生的原因软件本身的特点 :难于维护、逻辑复杂 软件开发与维护的方法不正确 :忽略需求分析重要性、轻视软件维护 课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序, 它的一个显著特点是规模庞大, 而且程序的复杂性将规模的 增加而呈现指数上升。3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、本钱高
2、:(2) 、软件质量得不到保证: 软件质量问题导致失败的软件工程非常多(3) 、进度难以控制:工程延期比比皆是 由于进度问题而取消的软件工程较常见 只有一小局部的工程能够按期完成(4) 、维护十分困难:软件维护的多样性软件维护的复杂性软件维护的副作用3、克服软件危机(1) 、管理的角度: 软件开发过程的研究、文档的标准化以及人员的交流方式等(2) 、软件开发方法的研究 结构化软件开发方法 , 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、 原理、技术和方法来开发和维护软件, 把经过时间考验而证明正确的管理技术和当前能够得这就是软件到
3、的最好的技术方法结合起来, 以经济地开发出高质量的软件并有效地维护它, 工程。( 1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、 可以在实际机器上高效运行的软件。(2) 、把系统的、标准的、可度量的方法应用于软件开发、运行和维护的过程,也就 是把工程应用于软件 .研究中提到的途径总之:软件工程是应用计算机科学、 数学及管理科学等原理开发软件的工程。 他借鉴传 统工程的原理、方法,以提高质量,降低本钱为目的。5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它
4、的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产 品6、软件工程的根本原理1、用分阶段的生命周期方案严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、成认不断改良软件工程实践的必要性软件工程学包含 3 个要素:方法、工具和过程7、软件生命周期(1)、概念 : 软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3 个时期组成。(2)、内容:厂:问题定义软件圭义1可行性研宪需求分析总体设il软件生命周期?软件开发彳黑役计冷元测试综合测试L 运行维护持久满足用户需求1、问题定义答复要解决的
5、问题是什么?,写出关于问题性质、工程目标和工程规模的书面报告2、可行性分析答复对于问题是否有行得通的解决方法 ?:即探索问题是否值得去解,是否有可行的方法3、需求分析确定为了解决这个问题,目标系统必须做什么 ,确定目标系统必须具备哪些功能,得到需求规格说明书。4、总体设计答复概括地说,应该怎样实现目标系统?,确定程序由哪些模块组成以及模间的关系5、详细设计答复应该怎样具体地实现这个系统呢 ?确定实现模块功能所需要的算法与数据结构6、编码和单元测试写出正确的容易理解、容易维护的程序模块,然后仔细测试每个模块7、综合测试通过各种类型的测试(及相应的调试)是软件到达预定要求8、软件维护通过各种必要活
6、动是系统持久地满足用户需求&生命周期模型(1)、瀑布模型传统瀑布模型特点:1、阶段间具有顺序性与依赖性2、推迟实现的观点3、质量保证的观点 瀑布模型优点:1、可强迫开发人员使用标准的方法(例如:结构化技术);2、严格规定每个阶段必须提交的文档;3、要求每个阶段交出的所有产品都必须通过验证。缺点:1、“瀑布模型是由文档驱动的 成为主要缺点适用范围:适合于 用户需求明确、完整、无重大变化 的软件工程开发。 (2)、快速原型模型适用范围:用户不能给出完整、 准确的需求说明, 或者开发者不能确定算法的有效性、 操 作系统的适应性或人机交互的形式等情况。(3)、增量模型特点:1、反复的应用瀑布模型的根本
7、成分和原型模型的迭代特征,每一个线型过程产生一个“增量的发布或提交,该增量均是一个可运行的产品。2、早期的版本实现用户的根本需求,并提供应用户评估的平台。 优点:1、在较短时间内向用户提交可完成局部工作的产品;2、逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击; 缺点:1、软件体系结构必须是开放的;2、开发人员既要把软件系统看作整体。又要看成可独立的构件,相互矛盾;3、多个构件并行开发,具有无法集成的风险。 (4)、螺旋模型根本思想:使用原型或其他方法来降低风险。适用范围:适用于内部开发大规模软件工程。优点:1、对可选方案和约束条件的强
8、调有利于已有软件的重用,也有助于把软件质 量作为软件发的一个重要目标2、减少了过多测试或测试缺乏3、维护和开发之间并没有本质区别缺点:1、风险驱动,需要相当丰富的风险评估经验和专门知识,否那么风险更大2、随着迭代次数的增加,工作量加大,软件开发本钱增加 (5)、喷泉模型 特点:喷泉模型是一种以用户需求为动力, 以对象为驱动的模型, 主要用于采用对象技术的软件开发工程。 该模型认为软件开发过程自下而上周期的各阶段是相互 迭代和无间隙的特性。6、 Rational 统一过程RUP重复一系列周期,每个周期由一个交付给用户的产品结束。每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心
9、工作流需求、分析、 设计、实现、测试分别迭代。第二章 可行性研究1、概念目的用最小的代价在尽可能短的时间内确定问题是否能够解决,不是解决问题, 而是确定问题是否值得去解决。2、可行性研究任务了解客户的要求及现实环境, 从技术、经济和社会因素等三方面研究并论证本软件 工程的可行性,编写可行性研究报告,制定初步工程开发方案。即对软件开发以后的行动方针提出建议。3、研究内容1 技术可行性2 经济可行性3 操作可行性4 法律可行性使用现有的技术能实现这个系统吗 ? 这个系统的经济效益能超过它的开发本钱吗 系统的操作方式在这个用户组织内行得通吗 新系统开发是否会侵犯法藤、集体或国家利益4、数据字典1、内
10、容1、数据流2、数据流分量即数据元素3、数据存储4、处理2、作用 对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定 义,使得每一个图形元素都有一个确切的定义。第三章需求分析1、需求分析的任务1确定对系统的综合要求2分析系统的数据要求3导出系统的逻辑模型4修正系统的开发步骤2、获取需求的方法(1)访谈(2)面向数据流自顶向下(3)简易的应用规模说明技术(4)快速建立软件模型3、实体-关系图卩阴、层次方框图氏8和IPO图卩砖 4、结构化分析模型根据结构化分析准那么,需求分析过程应该C数据模型实休-联系图 建也种模型功能模舉数据流图I行为模型状态转换图数据流图:描绘当数据在软件系统
11、中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的根底实体-联系图:描绘数据对象及数据对象之间的关系,用于建立数据模型。状态转换图:指明了作为外部事件结果的系统行为。描绘了系统的各种行为模式称为“状态和在不同状态间转换的方式。是行为建模的根底第四章总体设计1、模块独立性与耦合性P71模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能, 把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求模块化的优点:1. 使软件结构清晰,容易设计也容易阅读与理解2. 容易测试与调试,提高可靠性3. 提高软件的可修改性4. 有助于软件开发工程的组织管理2模块独
12、立的重要性O有效的模块化即具有独立的模块的软件比拟容易开发出来O独立的模块比拟容易测试和维护3耦合衡量不同模块彼此间互相依赖 连接的紧密程度,耦合要低,即每个模块和其 他模块之间的关系要简单1、数据耦合:两个模块之间通过参数交换信息,而且交换的信息仅仅是数据2、控制耦合:传递的信息中有控制信息3、特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其 中一局部数据元素4、公共环境耦合: 两个或多个模块通过一个公共环境相互作用5、内容耦合:出现一下情况之一,那么为内容耦合:1、一个模块访问另一个模块的内部数据2、一个模块不通过正常入口而转到另一个模块的内部3、两个模块有一局部代码重叠4
13、、一个模块有多个入口数据耦合 控制耦合 特征耦合 公共环境耦合 内容耦合内聚尸衡量一个模块内部各个元素彼此结合的紧密程度。内聚要高,每个模块完成一个相对独立的特定子功能信息隐藏应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的2、启发规那么1、改良软件结构提高模块独立性2、模块规模应该适中3、深度、宽度、扇入、扇出都应适中4、模块的作用域应该在控制域之内5、力争降低模块接口的复杂度6、设计单入口、单出口模块7、模块功能应该可以预测3、层次图和HIPO图Pl024、面向数据流的设计方法儿041概念面向数据流设计就是把信息流映射成软件结构,信息流的
14、类型决定了映射的方 法。信息流包括变换流、事物流。2变换分析与事务分析尸丄那5、小结i. 进行软件结构设计遵循的最主要的原理是模块独立原理ii. 抽象和求精是一对互补概念iii. 软件工程师在实践中总结经验得出一些很有参考价值的启发式规那么iv. 自顶向下逐步求精是进行软件结构设计的常用途径v. 用形式化的方法由数据流图映射出软件结构第五章实现1、选择程序设计语言为了使程序容易测试和维护以减少软件的总本钱,所选用的高级语言程序应该有 理想的模块化机制,以及可读性好的控制结构和数据结构:为了便于调试和提高软件 可靠性,语言特点应该是编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的
15、本钱,选用的高级语言应该有良好的独立编译机制。第六章软件测试2、测试的概念(1) 测试是为了发现程序中的错误而执行程序的过程(2) 好的测试方案是极可能发现了至今为止尚未发现的错误的测试方案。(3) 成功的测试是发现了至今为止尚未发现的错误的测试。3、测试的过程与步骤(P)大型软件的测试过程根本由下述几个步骤组成(1) 模块测试(单元测试)发现编码和详细设计的错误(2) 子系统测试(3) 系统测试(集成测试)(4) 验收测试(确认测试)(5) 平行运行4、单元测试(卩1阴)着重从下述5个模块进行测试(主要使用白盒测试技术)(1) 模块接口(2) 局部数据结构(3) 重要的执行通路(4) 出错处
16、理通路(5) 边界条件5、集成测试(儿九)集成测试就是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题。 有两种集成策咯(1) 自顶向下集成(2) 自底向上集成6、确认测试(P。)也称验收测试,它的目标是验证软件的有效性。通常使用黑盒测试法。7、白盒测试技术(P16Z)白盒方法测试软件时设计测试数据的典型技术 (1)逻辑覆盖1、语句覆盖2、判定覆盖3、条件覆盖4、判定/条件覆盖5、条件组合覆盖6、点覆盖 7、边覆盖 8路径覆盖(2) 控制结构测试1、根本路径测试2、条件测试3、循环测试& 黑盒测试技术(卩1九)黑盒测试力图发现下述类型的错误:(1) 功能不正确或遗漏了功能。(2) 界
17、面错误。(3) 数据结构错误或外部访问数据库错误(4) 性能错误(5) 初始化和终止错误 黑盒测试用到的技术(1) 等价划分(2) 边界值分析(3) 错误推测第七章维护1、维护的定义(Pl肿)所谓软件维护就是在软件已经交付使用周,为了改正错误或满足新的需要而修改软件的过程。根据交付使用之后可能进行的4项活动具体定义软件维护(1) 改正性维护纠正在使用过程中暴露出来的错误;诊断和改正错误的过程,(2) 适应性维护为了和变化了的环境适当地配合而进行的修改软件活动(3) 完善性维护在使用软件的过程中增加新的功能或修改已有功能,还可能提出一般性的改良意见的过程(4) 预防性维护为了改良未来的可维护性与
18、可靠性,或为了给未来的改良奠定更好的根底而修改软件的过程。2、维护的过程(卩旧2)(1) 维护组织(2) 维护报告(3) 维护的事件流(4) 保存维护记录(5) 评价维护活动3、小结1、软件生命周期每个阶段的工作都和软件可维护性有密切关系。2、再工程过程可以在完成任意一个活动之后中止第八章面向对象技术1、面向对象方法学要点P面向对象方法学的出发点和根本原那么,是尽可能模拟人类思维方法, 是开发软件尽可能接近人类认识世界解决问题的方法与过程。2、面向对象方法学优点1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好3、对象模型卩2“对象模型表示静态的, 结
19、构化的系统的 数据性质。它是对模拟客观世界实体的对 象以及对象彼此之间的关系的映射,描述了系统的静态结构。4、动态模型23动态模型表示瞬时的、 行为化的系统的控制 性质,它规定了对象模型中的对象的 合法序列。5、功能模型/224功能模型表示变化的系统的 功能 性质,他指明了系统应该做什么因此更直接 反映了用户对目标系统的需求。6、三种模型之间的关系功能模型指明了系统应该“做什么;动态模型明确规定了什么时候即在何种状 况下接受什么时间的触发做;对象模型那么定义了做事情的实体。在面向对象方法学中,对象模型是最根本的,它为其他两种模型奠定了根底,人们依靠对象模型完成了 3中模型的集成。下面扼要地表达3种模型之间的关系。三种模型描述了系统的不同方面:对象模型动态模型功能模型对象的静态结构 及相互关系与时间和顺序有关的系统性质与值的变化有关的系统性质描述系统的数据 结构控制结构系统的功能干事的主体什么时候干干什么功能模型与对象模型的关系-对象模型描述了功能模型中的动作对象,数据存储以及数据流结构-功能模型中的处理对应于对象模型中的操作动态模型与对象模型的关系-状态转换驱使行为发生,这些行为在DFD中被映射成处理,它们同时与对象模 型的操作相对应-针对每个建立的动态模型描述了类实例的生命周期或运行周期动态模型与功能模型的关系-功能模型中的处理可能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租冻库合同(标准版)
- 房产公正合同(标准版)
- (2025年标准)与人合股投资协议书
- 高级员工聘用协议书范本及注意事项
- 2025年新妇幼帮扶项目协议书
- (2025年标准)小红书运营合同协议书
- (2025年标准)股权合作协议合伙协议书
- 资产转让合同范文及注意事项
- XX诊断类器械有限公司2023可持续发展报告:员工多元企业创新
- 九芝堂企业简称2023环境、社会与公司治理报告-政策制定依据下的医疗行业可持续发展
- GBZ(卫生) 49-2014职业性噪声聋的诊断
- GB/T 9729-2007化学试剂氯化物测定通用方法
- GB/T 7588.2-2020电梯制造与安装安全规范第2部分:电梯部件的设计原则、计算和检验
- GB/T 13560-2017烧结钕铁硼永磁材料
- 三视图及尺寸标注课件
- 混凝土配合比验证检验委托书模板
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 小学教师量化考核表
- 《财务管理》课程教学实施方案
- 露天采矿设计技术规定
评论
0/150
提交评论