第一章 系统开发基础知识(一)
本章是系统架构设计师考试的重点,无论综合知识,还是案例分析和论文,重点都将落在系统开发知识上。我们先梳理涉及的内容,在做知识点分析,本章主要介绍软件开发模型介绍.
软件生存周期过程
软件生存周期过程规定了在含有软件的系统、独立软件产品和软件服务的获取期间,以及在软件产品的供应、开发、运作和维护期间需应用的过程、活动和任务。过程指一系列活动\任务\和他们之间的关系,他们共同把一组输入转换成所需要的输出。活动是一个过程的组成元素,任务是构成活动的基本元素,由若干个任务构成一项活动。
软件开发模型介绍
若想了解一种软件开发模型,我们可以遵循这一准则.他是什么样的,为什么而产生的,适用于什么场景下,如何实现?
瀑布模型
瀑布模型可以说是最早使用的软件生存周期模型之一.
概念: 瀑布模型描述了软件生命的一些基本过程活动,所以它称为软件的生命周期模型.这些活动从一个阶段到另一个阶段逐次下降,它的工作流程形式上很想瀑布.
特点: 因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入.每一个阶段工作完成后,都要进行审查和确认.
缺点: (1)\软件需求分析的准确性很难确定,甚至是不可能和不现实.
(2)用户和软件项目负责人要相当长的时间才能得到初始版本.
原型模型
概念: 分成两个阶段(1) 原始开发阶段 软件开发人员根据用户提出的软件系统的定义,快速地开发一个原型,该原型应该包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能\性能等.
(2) 目标软件开发阶段
在征求用户对原型的意见后对原型进行修改完善,确认软件系统的需求并达到一致的理解,进一步开发实际系统.
螺旋模型
概念:是在快速原型的基础上扩展而成.实际上它是生命周期模型与原型模型的一个结合,这种模型把整个软件开发流程分成多个阶段,每个阶段都由4部分组成,它们是:
(1) 目标设定
(2) 风险分析
(3) 开发和有效性验证
(4) 评审
适用范围: 支持大型软件开发,适用于面向规格说明\面向过程和面向对象的软件开发方法,也适用于几种开发方法的组合.
基于可重用构件的模型
概念:在一个系统的开发过程中,一旦标识出候选构件,则可以在构件库中检索该构件,确认这些构件是否存在,存在,就直接从构件库中获取使用,若没有,一方面开发构件用于构造目标系统,一方面存入构件库供其他系统使用.
基于面向对象的模型
敏捷方法
特点: (1) 敏捷方法具有适应性而非预设性的.
(2) 敏捷方法是面向人的,而非面向过程的
核心思想:
(1) 敏捷方法是适应性
(2) 敏捷方法是以人为本
(3) 迭代增量式的开发过程,以原型开发思想为基础,采用迭代增量式开发,发行版本小型化.他根据客户需求的优先级和开发风险,制定版本发行计划,每一发行版都是在前一成功发行版的基础上进行功能需求扩充,最后满足客户的所有功能需求.
适用范围: 比较适合需求变化比较大或者开发前期对需求不是很清晰的项目,以它的灵活性来适应需求的变化,有效地控制项目进度和成本.另外,敏捷方法对设计者\开发者和客户之间的有效沟通和及时反馈要求比较高,所以不易在开发团队比较庞大的项目中实施,当然这也不是绝对的.
敏捷方法的主要内容: 包括4个核心价值观和12条过程实践规则.4个核心价值观分别为沟通\简单\反馈和勇气.
敏捷方法:
极限编程
水晶系列方法
开放式源码
SCRUM
RUP
生命周期: 把软件生命周期划分为多个循环,每个cycle生成产品的一个新的版本,每个cycle依次由4个连续的阶段组成,每个阶段完成确定的任务.分成初始\细化\构造\移交.
特点:用例驱动,