【软件工程】第二章 软件生命周期模型

这章简单介绍了10个传统的模型和2个新型的模型

10个传统模型

一、瀑布模型

优点

  1. 第一次把生命周期模型过程结构化,透明化,便于管理
  2. 强调需求分析和设计的重要性,必须完成这两部分才能进行编码
  3. 以项目的阶段评审和文档严格的控制和指导了整个过程,能够及时发现问题,控制了质量

缺点

  1. 因为是串行的过程,所以如果一开始需求没法固化,甚至需求提不出来,无法进行下面的步骤
  2. 编码步骤太靠后,成品时间长,如果到了编码部分才发现问题,按照瀑布模型的原则需要推倒从头来,耗费时间
  3. 管理人员容易被蒙蔽,因为管理人员决定推进到下一步的依据是文档

二、V模型

相比瀑布模型更强调测试,把测试广义化了

单元测试-->组装测试-->系统测试-->验收测试

组装测试和系统测试区别:组装测试是简单的集成之后的测试,系统测试是看软件在客户的环境中有没有问题

问题:测试还是在代码写完之后进行

三、W模型

两个v模型,测试和瀑布模型这两个v并行    

 问题:还是没有解决需求不明确的问题

四、原型方法

就是为了解决上面这个问题,先做一个原型出来,让用户评价。这是一种思想,不是具体的模型

获得基本需求-->做个原型-->让用户使用-->用户评价-->改进-->新的原型-->周而复始

原型的种类

  1. 探索性:目的是弄清需求,弄清需求之后就可以按瀑布模型做了
  2. 实验性:目的是考察可行性
  3. 进化型:不丢弃原型,将原型开发到实现所有功能

原型方法可以用于瀑布模型的任一阶段

优点:

  1. 增进对需求的理解
  2. 对于用户来说是种学习使用软件的手段
  3. 容易确定系统的性能,服务的可应用性,设计的可行性,产品的结果
  4. 原型可以作为最终版本的一部分

缺点

  1. 文档容易被忽略
  2. 如果是探索或实验性原型,最后会被扔掉
  3. 难以规划和管理

五、演化模型

以原型方法这种思想得到的生命周期模型

分两次,第一次试验开发,然后给用户用,评价,(如果需求还是不明确,就再来一次,直到明确),第二次产品开发

缺点:

  1. 第一次不是瀑布式开发,所以瀑布模型的优点都没了,开发过程不透明
  2. 可能会导致系统结构发生变化(这是最大的缺点)(那只要需求会变,那不就有可能发生变化吗,对比敏捷,敏捷不也是这样吗
  3. 为了实现快速开发的目的,程序员可能会用到一些不符合主流、不符合要求、不程序的工具和技术

六、增量模型

也是原型方法的一种实践,结合了瀑布模型和演化模型的优点

确定需求-->设计系统体系结构-->增量开发-->给用户用,反馈-->…-->用户测试,提交

与演化模型最大的不同,是必须保证系统体系结构不能变

优点

  1. 增强了客户使用系统的信心,让用户更好的提出需求
  2. 失败的风险低
  3. 因为增量优先级的原因,最早做的是最核心的,每次增量都会被测试,所以最核心的功能会测试很多次
  4. 体系结构不变,稳定,可维护性高

缺点:

  1. 难以确定基本的功能
  2. 增量增多少不好确定,增量的粒度

七、螺旋模型

本质上也是原型方法的实践

 

制定计划-->风险评估-->实施工程-->客户评估-->……-->循环

每一圈都是瀑布模型的一个步骤,相当于就是在瀑布模型的每一个步骤上应用了原型,并且进行风险分析,风险分析是螺旋模型的最大特点

八、喷泉模型(迭代模型)

 喷泉模型认为软件开发是

  1. 迭代的
  2. 各阶段不是完全串行的,不是说例如需求分析没完成就不能进行编码,可以进行一部分分析,就去设计,是无间隙的;对于面向对象的开发来说,设计的结果可以复用,例如需求中的对象分析可以直接复用在设计中的对象,所以天然适配面向对象,不适配结构化编程

九、构建组装模型

适用于非常标准化的领域

这样软件开发阶段就可以用可复用的构件库中找组件组装软件。

十、RAD模型,基于构建组装模型,理想的开发模型

把大型软件拆成多个功能独立的小软件,每个小软件采取构建组装模型

新型模型

认为人是重要的,认为人要交流

一、统一软件开发过程(rational unified process)

也是原型方法的实践,不同的地方引入了三个核心支持工作流,核心过程工作流和瀑布模型是基本一致的

融合了喷泉模型(迭代)和增量模型

核心支持工作流

  1. 配置和变更管理:比如版本管理,工具git
  2. 项目管理:是管理人、财物,是管理学的内容;RUP有软件可以给算,给人、项目时间之类的输入,他可以给输出方案
  3. 环境:编辑器啥的

二、敏捷开发

是个思想

敏捷宣言

怎么能在响应变化的情况下保证开发的流畅性和系统体系结构的不变呢

极限编程,基于敏捷思想的一个开发方法

 

同一个工作环境,站立会议,不提倡加班,大白板(user story)

需求分析  用户故事

编程 结伴编程,团队代码所有制

测试 写程序之前先写测试,有了用户故事就出测试用例

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文名: 软件工程 作者: 曾强聪 资源格式: PDF 版本: 文字版 出版社: 高等教育出版社书号: 9787040157437发行时间: 2004年11月 地区: 大陆 语言: 简体中文 简介: 内容简介: 本书是普通高等教育“十五”国家级规划教材。具有结构严谨、概念清晰、内容紧凑,深入浅出、突出实用、便于自学等特点。 全书内容紧凑,深入浅出。全书共10章正文,以软件生命周期为主线,主要内容包括:软件工程概论、软件工程过程模型、项目分析与规划、软件需求分析、软件概要设计、面向对象分析与设计、用户界面设计、程序算法设计与编码、软件测试、软件维护。附录部分包括软件文档管理规范和软件文档格式。 本书适合于高等应用型本科院校、高等职业学校、高等专科学校、成人高校、本科院校举办的二级职业技术学院使用,也可供示范性软件职业技术学院、继续教育学院、民办高校、技能型紧缺人才培养使用,还可供本科院校、计算机专业人员和爱好者参考使用,并可用作软件技术人员资格(水平)考试的培训教材。 目录: 第1章 软件工程概述 1.1 软件 1.1.1 软件特点 1.1.2软件分类 1.1.3软件发展历程 1.2软件危机 1.2.1软件危机现象 1.2.2产生软件危机的原因 1.3软件工程 1.3.1软件工程概念 1.3.2软件工程技术 1.3.3软件工程管理 1.3.4软件工程基本原则 1.3.5软件工程目标 1.3.6软件工程文化 小结 习题 第2章软件工程过程模型 2.1软件生命周期 2.1.1软件定义期 2.1.2软件开发期 2.1.3软件运行与维护期 2.2瀑布模型 2.2.1瀑布模型的特点 2.2.2瀑布模型的作用 2.2.3带有信息反馈环的瀑布模型 2.2.4瀑布模型的局限 2.3原型模型 2.3.1快速原型方法 2.3.2原型进化模型 2.4增量模型 2.4.1 增量 2.4.2增量模型的作用 2.5螺旋模型 2.6喷泉模型 2.7组件复用模型 小结 习题 第3章项目分析与规划 3.1计算机系统分析 3.1.1计算机系统 3.1.2系统分析方法 3.1.3建立系统模型 3.2项目可行性分析 3.2.1 可行性分析意义 3.2.2可行性分析内容 3.2.3可行性分析过程 3.3项目成本效益分析 3.3.1项目成本估算 3.3.2项目效益分析 3.4项目规划 3.4.1项目开发计划 3.4.2项目进度表 小结 习题 第4章软件需求分析 4.1需求分析的任务 4.1.1用户需求 4.1.2系统需求 4.2需求分析过程 4.3用户需求获取 4.3.1研究用户 413.2从调查中获取用户需求 4.3.3通过原型完善用户需求 4.3.4用户需求陈述 4.4结构化分析建模 4.4.1功能层次模型 4.4.2数据流模型(DFD图) 4.4.3数据关系模型(ER图) 4.4.4系统状态模型 4.5需求有效性验证 4.5.1需求验证内容 4.5.2需求验证方法 4.6需求规格定义 小结 习题 第5章软件概要设计 5.1概要设计过程与任务 5.1.1 设计过程 5.1.2设计任务 5.2系统构架设计 5.2.1集中式结构 5.2.2客户机/服务器结构 5.2.3 多层客户机/月艮务器结构 5.2.4组件对象分布式结构 5.3软件结构设计 5.3.1模块概念 5.3.2模块的独立性 5.3.3结构化设计建模 5.3.4软件结构优化 5.4面向数据流的结构设计 5.4.1变换流分析与设计 5.4.2事务流分析与设计 5.4.3混合流分析与设计 5.4.4 设计举例 5.5数据库结构设计 5.5.1逻辑结构设计 5.5.2物理结构设计 小结 习题 第6章面向对象分析与设计 6.1 面向对象方法学 6.1.1面向对象方法的基本概念 6.1.2面向对象方法具有的优越性 6.1.3 UML建模方法 6.2 面向对象分析建模 6.2.1 用例图 6.2.2 活动图 6.2.3 分析类图 6.2.4序列图 6.3面向对象设计建模 6.3.1 设计类图 6.3.2协作图 6.3.3状态图 6.3.4构件图 6.3.5部署图 小结 习题 第7章用户界面设计 7.1用户界面设计过程 7.2界面设计中需要考虑的因素 7.3界面类型 7.3.1单窗体界面(SDI) 7.3.2多窗体界面(MDI) 7.3.3辅助窗体 7.3.4 Web页面 7.4 界面功能特征 7.4.1 用户交互 7.4.2 信息表示 7.4
软件工程黑书全书知识点详细汇总 考纲目录 第一章 基本概念 2 1、软件的概念和特点 2 2、软件危机的概念和产生的原因 3 3、软件工程的定义、三要素和发展过程 (重点,考过多次问答题) 4 第二章 过程模型 4 1、软件生命周期概念、软件过程概念、能力成熟度模型 CMM 概念 4 2、常见的软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺点 5 1、瀑布模型(经典生命周期模型) 6 2、增量过程模型(增量模型+RAD模型) 6 3、演化过程模型(原型模型+螺旋模型) 7 4、喷泉模型(Water Fountain Model) 9 5、基于构件的模型(Component-baseed Development Model) 10 6、敏捷开发过程(Agile Development) 10 第三章 需求分析 11 1、需求分析的概念 12 2、需求分析的过程:需求确认与需求变更 12 3、需求确认的步骤:需求获取→需求提炼→需求描述→需求验证 13 4、需求分析三类建模:功能模型、数据模型、行为模型。面向过程 和面向对象的需分析过程中,三类模型各包含哪些内容?--------------- 15 5、 掌握数据流图和用例图作法。 31 第四章系统设计 32 1、系统设计分为概要设计和详细设计 32 2、设计相关的8个概念(抽象、体系结构、设计模式、模块化、信息隐藏、功能独立、细化、重构),着重考察体系结构、模块化、信息隐藏、功能独立。 33 3、系统设计从数据、体系结构、接口和组件四方面进行设计。面向过程和面向对象的系统设计,各自包含哪些设计内容? 37 4、掌握流程图和顺序图作法 43 第五章 质量保证 48 1、质量保证的概念 48 2、测试策略 V 模型概念,测试与开发的各阶段对应关系。 48 3、单元测试的内容、集成测试的分类、系统测试的分类、验收测试的分类。 48 4、回归测试的概念 48 5、测试技术常见术语的概念:软件缺陷、验证和确认、测试与质量保证、质量与可靠性、调 试与测试、测试用例 48 6、白盒测试、黑盒测试、静态分析各有哪些方法? 48 7、掌握逻辑覆盖与等价类划分测试方法。 48 第六章 软件维护 49 1、软件维护的基本概念 49 2、理解软件维护的四个基本类型:纠错性、适应性、完善性、预防性维护。哪占比重最大? 哪最小? 49 3、可维护性的决定因素 49 4、软件维护过程模型软件再工程、逆向工程的概念 49 第七章 项目管理 49 1、项目管理四要素:人员、产品、项目、过程(概念) 49 2、软件度量有哪些方法:生产率估计(基于规模(KLOC)、基于功能点(FP))、工作量度 量(算法成本模型、COCOMO 模型)。掌握直接测量(基于规模)方法。 49 3、项目计划与风险管理的概念 49

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值