【系统分析师之路】第五章 软件工程记忆敲出

【系统分析师之路】第五章 软件工程记忆敲出

1. 信息系统生命周期

  • 信息系统生命周期由四个阶段组成:简称为"花开云散"。
  • 立项规划阶段,开发阶段,运维阶段,消亡阶段。而信息系统开发生命周期包括在了开发阶段。
  • 信息系统开发生命周期又分为五个阶段:总体规划,系统分析,系统设计,系统实施,系统验收。简称为"划分即实验"。
  • 在总体规划阶段的主要输出为:系统设计任务书,它包括了系统建设方案和实施计划。
  • 初步的用户手册,系统测试计划,需求规格说明书等主要是系统分析阶段的产出物。

2. 统一开发过程的概念

  • 它的简称为RUP,Rational Unified Process,它是统一软件开发的过程,一般使用在面向对象或者面向服务的系统开发过程当中。
  • 它有三个基本的特征:以用例驱动,以架构为中心,增量与迭代。
  • 它有四个过程所组成:初始过程,细化过程,构建过程和交付过程。
  • 在初始阶段,我们需要明确项目范围和边界,估算大体的工作量和安排工作进度计划,对项目的风险进行有效的评估,因为是用例驱动的开发,在初始阶段还要选出系统的关键用例
    该阶段的主要输出是:项目计划和用例模型
  • 在细化阶段,主要的工作就是分析系统的问题域,基于需求分析的结果,对系统进行架构的设计,对于高风险的元素,进行规避处理
    该阶段的主要输出是:项目架构设计资料
  • 在构建阶段,主要的工作就是对系统进行建设,做成项目可交付成果,并对其进行测试
    该阶段的主要输出是:UML模型(设计模型),测试用例。这里特别需要留意的是设计模型的做成不在细化阶段而在此阶段
  • 在最后的交付阶段,对可交付成果实施验收与测试,制作相应的用户文档,对用户操作实施培训活动
    该阶段的主要输出是:可运行的软件产品,用户手册,用户支持计划。

3. 净室软件工程的概念

  • 净室软件工程是一种基于应用数学与统计学理论的一种软件工程技术,它主要的思想就是通过严格的工程化来达到零缺陷或者接近零缺陷;它要求在软件的规约和设计过程中消除错误,这样就以净的方式推进项目,降低开发风险,并以合理的成本开发出高质量的软件。
  • 净室软件的特征就是太理想化,基于复杂的数据模型所以一般也比较难以实现。
  • 净室软件工程象形式化方法技术一样,净室过程强调在规约和设计上的严格性。
  • 在传统的思维模式中,测试是发现Bug的最主要的方法,其实不然如果在上流工程最好健壮性可靠性设计,加强各个阶段评审的作用,比如CodeReview也可以发现错误,根据Bug分布与实际代码修正行数的关系,也就是采用品质会计的方式,分析并改善品质,这样哪怕不用测试就可以保证质量了。

4. 逆向工程的概念

  • 逆向工程也叫反向工程。在面向对象的开发领域,一般是先UML设计,然后用工具生成代码,这个叫正向工程;相应的,从代码生成UML设计图叫做逆向工程。
  • 软件的逆向工程是一个恢复设计的过程,它的特点是从已有的系统功能中抽取数据结构,体系结构和程序设计信息,进而得到有用设计的过程。在文档缺乏的遗留系统中,采用逆向工程特别的有用处。因为通过逆向工程之后可以得到遗留系统的功能需求,这样就可以获取遗留系统既有的功能需求了。从这个角度来讲,逆向工程的思想和需求跟踪矩阵中的逆向跟踪的思想比较接近。

5. CBSD基于构件的软件开发模型

  • CBSD的全称为Component-Based Software Development。构件组装模型是在螺旋模型的基础上,得到了相应的改进。它主要可以用于面向对象的开发方法中。构件组件模型最大的特征就是软件的复用,通过复用可以为项目带来的好处有:开发周期的缩短,开发成本的下降;当然构件组装模型中构件库的健壮性直接决定了软件的复用程序和开发成本。
  • 基于构件的开发模型中需要对构件库进行有效的管理,构件库包括了构件获取和构件管理。
  • 标识出候选类,如果已经存在的话,就从库中直接提取出来复用;如果标识出来的候选类不在构件库中,就采用面向对象方法开发;完成了这个开发工作以后,就回到螺旋模型。

6. 瀑布模型,V模型,W模型的概念与区别

  • 结构化开发方法对应V模型和瀑布模型。瀑布模型也是最早出现的开发模型。它最大的缺陷就是需求分析或系统设计阶段隐藏的问题一直到后期验收测试才被发现。
  • V模型是瀑布模型的一种变种,是从瀑布模型中发展而来的,它在瀑布模型的基础上加强了测试。在V模型中需要提前作测试计划和做测试用例。让测试工作贯穿于始终。
  • W模型是在V模型的基础上进行的一个变种,V模型强调的是测试贯穿始终,而W模型则强调开发和测试并行同步的实行。
  • V模型的缺点就是和瀑布模型一样,对于需求变更的响应能力不高,会忽视测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。

7. 螺旋模型的概念

  • 螺旋模型综合了三个模型的特点:原型模型,迭代模型,瀑布模型。简称:原型迭代的瀑布。除了引入了以上三个模型,还在螺旋模型中加入了风险分析过程。
  • 螺旋模型由四个过程组成:制定计划,风险评估,实施工程,客户评估
  • 对于需求不是十分明确的项目,可以使用螺旋模型,方便需求变更和风险控制。
  • 螺旋模型的特点:以小的分段来构建大型系统,更加适合应用于大型项目开发中。
  • 螺旋模型的缺点就是很难让用户觉得这种演化的方式是可以控制的,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。我的系统分析师备考计划也是按照螺旋模型,分多轮进行,每轮设定一个目标,针对目标实施风险分析,分析完成之后实施,实施完了后再总体进行回顾与评价。唯一美中不足的就是目前还不知道还需要实施多少轮迭代才可以。

8. 原型模型的概念

  • 原型模型适合于需求不够明确的项目。原型可以分为两种类别:抛弃式和演化式。
  • 比如做成几张静态网页,然后和客户确认是不是他们想要的,这就是原型模型。
  • 抛弃式原型法是在静态网页确认完毕后,记录下用户的需求并抛弃静态的图。
  • 演化式原型法是在静态网页确认完毕后,记录下需求,并在原来的静态网页基础之上再增加一些页面,然后再去和客户确认。
  • 在收集需求的工具与技术中。情节串联版就是和原型模型是相互有关系的。

9. 测试工程的五种模型:

  • V模型:瀑布模型的一种变种。
  • W模型:V模型的一种变种,它强调开发与测试相互独立且并行执行。
  • X模型:也是V模型的改进版,它强调对专门的代码片段实施编码与测试,它还加入了探索型测试。
  • H模型:将测试从开发中完全独立出来,形成一个单独独立的流程。软件测试是一个独立的过程,它需要和其他流程并发的执行。测试代码完全独立于开发代码。
  • 前置测试模型:将测试与开发紧密的结合起来整合在一起,它以编码测试编码这种反复迭代的方式推进测试。敏捷开发中的TDD就是前置测试模型的一个应用把。

10. 喷泉模型(fountain model)的概念

  • 是一种以用户需求为动力,以对象为驱动,适用于面向对象开发的一种模型。 它的形状就像喷泉一样因此而得名。
  • 各个阶段没有明显的边界也就是没有间隙,它的特点为自下而上各项活动之间相互的迭代。
  • 喷泉模型不同于瀑布模型,需要一个阶段所有的活动都结束并且评审通过以后才进入下一个阶段,所以瀑布模型更加的灵活,可以比瀑布模型有更高的效率。
  • 喷泉模型的缺点也十分的明显,喷泉模型中各个阶段无明显间隔,还包含有面向对象复用的概念在里面,而且在开发过程中需要大量的开发人员,如何管理好项目进度与成本就变得比较困难了。

11. RAD-快速应用开发-(Rapid Application Development)

  • 它叫做快速应用开发,顾名思义,它和原型开发类似,对开发的速度:“快速”有特别的要求。
  • 它综合了瀑布模型,基于构件的模型的特点,所以它一般使用专门的可视化开发环境,进行面向对象的开发。
  • 它包括:业务建模,数据建模,过程建模,应用生成和测试与交付这五个过程。业务建模(数据流图),数据建模(数据模型,ER图),过程建模(细化数据流图),应用程序生成,测试与交付(只做总体测试,因为大量的复用)
  • RAD只能用于信息系统开发,不适合技术风险很高的情况。

12. 增量模型的概念

强调先做一块 找客户确认,再做一块,再做一块。它最大的好处就是风险比瀑布模型小很多,像搭积木一样。每一个增量都是一个可操作的产品。它是原型+瀑布的思想。

相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页