需求分析与系统设计阅读笔记

发布时间 2023-12-24 17:10:35作者: Weebles

软件过程

一个过程模型:

  • 声明了所执行活动的次序
  • 详细说明要交付哪些开发的人工制品,以及什么时候交付
  • 将活动和人工制品分配给开发者
  • 提供用来监控项目进展、评估结果和规划未来项目的标准

软件过程不易被标准化。

现代软件开发过程总是迭代和增量的。

迭代:在连续的迭代中增加细节,必要时还引入了变更和改进。迭代是短期的,在数周中而非数月。

增量:软件模块的增量版本保持了用户的满意度,并且为尚在开发中的模块提供重要的反馈。

螺旋模型:一种迭代和增量过程的变体。

 

软件工程团队接活儿的时候需要明确用户需要什么,专业一点的说法就是需求确定。虽然这个部分从技术角度上来讲在整个需求处理过程中最低,但一旦没有完成好带来的后果是最糟的。为了完成业务需求,需要克服业务过程设计和过程实现之间的困难,前者是由业务人员完成,而后者则是IT专家的活儿了,两个不同领域的交互沟通是必要的,因此专家们提出了很多方便沟通的语言和表示法。主要应用的是业务过程建模表示法(BPMN)。BPMN是专门用于对由活动定义的业务过程建模,而形式上它不支持过程的结构建模。BPMN提供了4种基本的类型的建模元素:流对象;连接对象;泳池(泳道);人工制品。其中流对象是BPMN的核心元素。这些是BPMN的基础构造和概要。

  第二阶段是需求引导,业务分析员通过咨询发现系统需求,该咨询过程涉及客户和问题领域的专家。在一些情况下,业务分析员拥有足够的领域经验,领域专家可能不需要。这时书中引出了需求引导的理念。需求可以分成两类:系统需求和非功能性需求,前者为组织定义了策略方向,而后者本质上不是行为的,是系统开发和实现过程中的约束。需求引导的传统方法有:面谈,调查表,观察和研究业务文档。这些方法符合成本效益,但取得的效果与项目的风险程度是成反比的,因此在使用的时候需要斟酌情况。因此,需求引导又出现了一些现代方法:原型法,头脑风暴,联合应用开发和快速应用开发。原型法是构建一个软件模型给用户进行演示,获取反馈;头脑风暴则是打破思维边界,无视规则拓展自己的想法,这种方法一般用于产生新思想或者可能的解决方案,但不负责之后的分析和决定;联合应用开发类似头脑风暴,它将所有利益相关者聚在一起进行讨论;快速应用开发就像它的名字一样,主要目的是快速交付系统解决方案。