已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1.1、软件的定义:是能够完成预定功能和性能的可执行的计算机程序。包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。即:软件 = 程序 + 文档1.1.2、软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。1.1.3、软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是加剧软件危机的重要原因。1.2.1、软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。1.2.2、软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。1.3.1、3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型1.3.2、软件工程自身的进化 (3代)传统软件工程-面向对象软件工程-基于构件的软件工程2.1 软件生存周期基于软件生命周期开发的主要活动:需求分析-软件分析-软件设计-编码测试-软件测试-运行维护2.2 传统软件过程瀑布模型 特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。2.3 软件演化模型常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付客户)螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、用户评审 4种活动。(高风险的大型软件采用此方法)构件集成模型:适应于面向对象的软件开发。利用预先封装好的构件来构造应用软件系统。2.5 统一过程和敏捷过程统一过程:统一过程RUP 包括 4 个阶段:初始、细化、构造、迁移。以用例为驱动, 以系统架构为中心的迭代与增量过程。每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,有5 个活动(需求、分析、设计、实现、测试)。敏捷过程:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。敏捷开发的价值观:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划。极限编程:价值观:交流、简单、反馈、勇气核心实践:1,完整团队 2,计划对策 3,测试 4,简单设计 5, 结对编程 6,小软件版本7,设计改进 8,持续集成 9,代码集体共有 10,编码标准 11系统比喻 12可持续的速度2.6 软件可行性分析可行性研究的内容:经济可行性、技术可行性、运行可行性、法律可行性。步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。软件风险分析包括:风险识别(项目风险、技术风险、商业风险)、风险预测、风险的驾驭和监控。3.1 概述结构化分析与设计:最初是由结构化程序设计扩展而来的。分析=需求分析,设计=系统设计瀑布模型的生命周期:需求定义与分析-总体设计-详细设计-编码-测试-维护SA模型 和SD模型:结构化分析(SA)的基本步骤:自顶向下,功能分解(分层DFD)、由后向前,定义数据和加工(DD, PSPEC)、根据需要,分析复杂数据和动态模型(E-R图,CFD,CSPEC,STD)、编写软件需求规格说明书SRS。SA模型组成:功能模型、数据模型、行为模型 3种。SD模型是由SA模型映射而来的。SA模型的数据字典可转换为待开发系统的数据设计数据流图可转换为体系结构设计(SC图)与接口设计加工规格说明可转换为模块内部的详细过程设计SD模型的组成:从上到下依次是:过程设计、接口设计、体系结构设计、数据设计。3.2 结构化系统分析3.3 结构化系统设计3.4 模块设计4 用例图,状态图,时序图,协作图5.1 软件需求工程软件需求的定义及特性.定义:指一个软件系统必须遵循的条件或具备的能力。软件需求的6个特性:功能性、可用性、可靠性、性能、可支持性、设计约束。软件需求的3个层次:业务需求、用户需求、功能需求。软件需求工程:是一门应用有效的技术和方法,合适的工具和符号来确定、管理和描述目标系统及其外部行为特征的学科5.3 需求获取的常用方法常规的:1,建立联合分析小组 2,用户访谈 3,问题分析与确认快速原型:1, 利用各种分析技术和方法,生成一个简化的规格说明书2, 对需求规格说明书进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等3, 在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试和改进4, 将原型提交给用户评估并征求用户的修改意见5, 重复上述过程,直到得到用户的认可5.5 软件需求描述需求规格说明书内容:引言、信息描述、功能描述、行为描述、质量保证、接口描述、其他描述。5.6 需求管理需求管理的流程:需求确认、需求跟踪、需求变更。需求跟踪有两种方式,正向跟踪与逆向跟踪。需求变更的流程:变更申请、审批、更改、更新确认。需求管理的5个特定实践:1,获得对需求的理解 2,获取需求承诺 3,管理需求变更 4,在需求变更后维护对需求的双向可追溯性。 5,标识项目工作(包括计划和产品)与需求 的不一致性。6.1 软件分析概述1. 面向对象分析OOA的建模步骤:需求理解、定义类和对象、标识对象的属性和操作、标识类的结构和层次、建立对象-关系模型、建立对象-行为模型、评审OOA模型。2. 面向对象分析OOA的优点:同时加强了对问题空间和软件系统的理解;改进包括用户在内的软件分析有关的各类人员之间的交流;对需求的变化具有较强的适应性;很好的支持软件复用;确保从需求模型到设计模型的一致性。3. 分析模型(是一种概念模型)的特点:全面覆盖软件的功能需求;分析模型与软件的实现无关;分析模型的表述方法与所采用的分析技术有关。6.2 面向对象分析建模1,分析类的类型:边界类、控制类、实体类。2, 边界类包括:用户界面类、系统接口类、设备接口类。如事务管理器、资源协调器、错误处理器都可为控制类。3, 对象-关系模型的内容:分析类的属性、分析类的关联、分析类图、分析类的合并。4, 时序图中的元素有:对象、对象生命线、消息。协作图中的元素有:对象、链接、消息流。5, 面向对象分析的任务是:将需求阶段产生的需求模型 转换为 软件分析模型。面向对象设计的任务是:将分析阶段建立的分析模型 转换为 软件设计模型。7.1 软件设计概述1. 软件设计的基本概念:模块(定义输入、输出和特性的程序实体)与构件、抽象与细化、信息隐藏、软件复用。2. 软件设计的基础:分析阶段对目标系统的数据、功能、行为建模。3. 软件设计包括:数据设计、体系结构设计、接口设计、过程设计。4. 分解和模块独立性是实现模块设计的重要指导思想。5.内聚分类:低内聚(偶然性内聚、逻辑性内聚、时间性内聚)、中内聚(过程性内聚、通讯性内聚)、高内聚(顺序性内聚、功能性内聚)6. 耦合分类:弱耦合(非直接耦合、数据耦合、特征耦合)、中耦合(控制耦合)、较强耦合(外部耦合、公共耦合)、强耦合(内容耦合)。7.2 面向对象设计建模1,系统架构设计的内容:系统高层结构设计、确定设计元素、确定任务管理策略、实现分布式机制、设计数据存储方案、人机界面设计。系统元素设计的内容:子系统设计、分包设计、类/对象设计。2,软件模式分类(按抽象级别):架构模式、设计模式、习惯用法。3, 常用的架构模式有:层次架构、模型-视图-控制架构、管道-过滤器架构、黑板架构。4, 层次架构的基本原则:将系统划分不同的层次。确定设计元素的主要工作是:确定设计类、子系统、子系统接口。7.3 系统架构设计1, 系统架构设计的内容:系统高层结构设计、确定设计元素、确定任务管理策略、实现分布式机制、设计数据存储方案、人机界面设计。系统元素设计的内容:子系统设计、分包设计、类/对象设计。2, 软件模式分类(按抽象级别):架构模式、设计模式、习惯用法。3, 常用的架构模式有:层次架构、模型-视图-控制架构、管道-过滤器架构、黑板架构。4, 层次架构的基本原则:将系统划分不同的层次。确定设计元素的主要工作是:确定设计类、子系统、子系统接口。5, 面向并行需求的技术:引进任务管理部件、基于进程和线程的控制。6, 任务管理策略:多处理机方案、操作系统方案、应用程序方案。7, 设计管理并发任务对象的策略:确定任务的特征、定义一个协调者任务和与之关联的对象、集成其它任务和协调者。8, 任务管理部件的设计步骤:识别由事件驱动和时间驱动的任务、识别关键性任务,任务优先级和任务管理类、定义任务、必要时扩充有关任务的类和对象。8.1编码概述编码风格选择编码语言的标准:应用领域、算法与设计复杂性、数据结构的复杂性、效率的考虑。8.4 测试的基本概念目的,特性,种类1, 测试(testing)的目的与任务:目的:发现程序的错误;任务:通过执行程序,暴露潜在的错误。2, 纠错(debugging)的目的与任务:目的:定位和纠正错误;任务:消除软件故障,保证程序的可靠运行。3, 测试的特性:挑剔型、复杂性、不彻底性、经济型。4, 测试分类:静态分析(静态分析器分析、代码评审(代码会审、走查、办公桌检查); 动态测试(黑盒测试(功能测试)、白盒测试(结构测试)。5, 测试文档内容:测试计划、测试报告。测试计划的主体是测试内容说明:测试项目名称、测试目的、步骤和进度、测试用例设计。测试报告的主题是测试结果:测试项目名称、实测结果和期望结果的比较、发现问题、测试效果。8.4 黑盒测试与白盒测试概念与区别黑盒测试: 根据被测试程序功能来进行测试,所以也称功能测试.黑盒测试常用技术: 1, 等价类法、2, 边界值法、3, 错误猜测法。 白盒测试:以程序的结构为依据,所以又称为结构测试.1. 白盒测试分类:路经测试(点覆盖、边覆盖、路径覆盖)、逻辑覆盖测试(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)。2. 路经测试的特征:满足结构测试的最低要求、有利于安排循环测试。8.6 多模块程序的测试策略单元测试、集成测试、确认测试、系统测试多模块测试的层次所处时段解决的问题涉及测试方法成果单元测试/模块测试编码阶段1. 对模块代码进行编译,发现并纠正其语法错误;2. 进行静态分析,验证模块结构及其内部调用序列是否正确;3. 确定模块的测试策略,并据此设计一组测试用例和必要的测试软件;4. 用选定的测试用例对模块进行测试,直至满足测试终止标准为止;5. 注重执行路径、出错处理路径、局部数据结构、模块的对外接口的测试6. 编制单元测试报告。黑盒测试程序外部测试、功能性测试测试报告白盒测试程序内部测试、覆盖测试集成测试集成测试阶段1. 制订集成测试实施策略 2. 确定集成测试的实施步骤,设计测试用例 3. 逐一地添加模块,进行测试模块(子系统或小系统)集成测试;训练驱动与桩的设计、组合及集成测试。已组装软件高级测试确认测试集成测试阶段1. 进一步验证软件的有效性,即验证软件的功能和性能是否与用户的要求一致已确认软件系统测试验收阶段1. 测试是否与硬件协调运行2. 测试是否和原来就有的其它软件协调运行 3. 测试是否完成SRS对它的要求 系统的性能检验和软件系统实时运行状况的测试可运行的系统9.1 软件维护的种类三类(要求) + 一类(扩展)软件维护有哪些种类?他们的目标分别是什么?解答:软件维护的种类以及对应目标依次是:a) 完善性维护在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。b) 适应性维护让软件适应运行环境的改变而进行的一种维护。c) 纠错性维护纠正在开发期间未能发现的遗留错误。d) 预防性维护为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。9.2 软件可维护性9.3 软件配置管理整个软件生命周期中软件配置管理能够系统的处理变更从而使得软件系统可以随时保持其完整性。主要内容包括:配置管理数据库、版本控制、变动控制。10.1 软件复用的基本概念软件模块的独立性软件模块独立性的两个定性度量标准是内聚性和耦合性。共同需求12.3 软件可靠性定义: 就在给定的时间内,程序按照规定的条件成功地运行的概率.分级: 甚低, 低, 正常, 高, 甚高容错技术: 是软件可靠性的子属性之一.1, 容错软件(1, 屏蔽错误 2,修复错误 3, 减少影响)2, 冗余技术(1,结构冗余 2, 时间冗余 3, 信息冗余 )12.5 CMM软件能力成熟度模型CMM1, CMM2, CMM3, CMM4, CMM5成熟度等级1:初始级(Initial)。处于这个最低级的组织,基本上没有健全的软件工程管理制度。成熟度等级2:可重复级(Repeatable)。在这一级,有些基本的软件项目的管理行为、设计和管理技术是基于相似产品中的经验,故称为“可重复”。成熟度等级3:已定义级(Defined)。在第3级,已为软件生产的过程编制了完整的文档。软件过程的管理方面和技术方面都明确地做了定义,并按需要不断地改进过程,而且采用评审的办法来保证软件的质量。成熟度等级4:已管理级(Managed)。一个处于第4级的公司对每个项目都设定质量和生产目标。这两个量将被不断地测量,当偏离目标太多时,就采取行动来修正。成熟度等级5:优化级(Optimizing)。个 第5级组织的目标是连续地改进软件过程。这样的组织使用统计质量和过程控制技术作为指导。一、数据流程图二、软件危机出现的原因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年济宁市泗水县五下数学期末综合测试试题含答案含解析
- 武汉商贸职业学院《化学课程标准和教材研究》2026-2027学年第一学期期末试卷含解析
- 宝石琢磨工安全强化知识考核试卷含答案
- 综掘机司机操作评估评优考核试卷含答案
- 2026四川南充市属国有企业联合招聘37人笔试题库附参考答案详解【培优】
- 2026广西罗城仫佬族自治县审计局招聘工作人员1人参考题库及答案详解(各地真题)
- 2026年西安高新东区初级中学教师招聘备考题库含完整答案详解(易错题)
- 2026湖南张家界市桑植县引进急需紧缺人才11人笔试题库附参考答案详解【培优】
- 2026中冶焦耐招聘笔试历年备考题库附带答案详解
- 2025陕能榆林清洁能源开发有限公司招聘考试历年常考点+创新题答案详解
- 宠物美容师职业技能等级认定考试复习题库(附答案)
- 输血科质控小组工作制度
- 医学生求职简历模板
- 医护人员个人防护培训
- 浙江省杭州市2026年中考模拟英语试题八套附答案
- 机加工车间绩效考核制度
- 2025年国家开放大学电大本科《园艺植物育种学》期末试题及答案
- 输变电工程质量监督检查大纲
- GB 3608-2025高处作业分级
- 机电安全生产许可证办理流程
- 消防维保基础知识培训课件
评论
0/150
提交评论