【系统分析师之路】第五章 软件工程(视频笔记)
【系统分析师之路】第五章 软件工程(视频笔记)
信息系统生命周期(★)
软件开发模型(★★★★)
****(★★)
净室软件工程(★)
年份 | 案例论文&&真题考点 |
2014年上半年 | 软件的****及重构 |
2016年上半年 | 论软件开发模型及应用(论文) |
2012年上半年 | 论敏捷开发在企业软件开发中的应用(论文) |
2010年上半年 | 论快速应用开发在系统建模中的应用(论文) |
- 信息系统生命周期 (★)
立项阶段 | 企业全局,形成概念,需求分析 |
开发阶段 | 信息系统开发生命周期,包括总体规划,系统分析,系统设计,系统实施,系统验收 |
运维阶段 | 通过验收,移交以后 |
消亡阶段 | 更新改造,功能扩展,报废重建 |
以上的生命周期的划分偏向项目管理,而以下的划分偏向技术开发。
阶段 | 内容 | Output成果物 |
系统规划 | 初步调查,分析系统目标,子系统组成,拟实施方案,可行性研究,制定系统建设方案 | 系统设计任务书(系统建设方案,实施计划) |
系统分析 | 业务流程分析,数据与数据流程分析,软件需求分析,网络需求分析 | 系统需求规格说明书,软件需求规格说明书,确认测试计划,系统测试计划,初步的用户手册 |
系统设计 | 软件架构设计,软件概要设计,详细设计,网络设计 | 架构设计文档,概要设计说明书,详细设计说明书,程序规格说明书,概要测试计划,详细测试计划,各类设计图 |
系统实施 | 软件编码,软件单元集成系统测试,综合布线。 | 源码,单元测试报告,集成测试报告,操作手册 |
系统验收 | 确认测试,试运行 | 确认测试报告,项目验收报告 |
- 软件开发模型(★★★★)
开发方法比开发模型要来得大一号。结构化开发方法对应V模型和瀑布模型;面向对象开发方法对应喷泉模型,统一方法模型,敏捷模型,面向服务的模型。
所有面向服务的模型都是以面向对象为基础的。
螺旋模型既有原型,又有瀑布和迭代。它的特点就是把各个模型综合在一起,还有引入了风险分析。 需求在项目刚开始的时候往往会比较模糊,而随着项目的进行会慢慢的明确下来,也就是需求有渐进明细的特点。 升级的项目或者案例题中清晰告诉我们需求明确,这样的项目合适使用瀑布模型。
原型模型比较适合需求不够明确的项目。原型又可以分为快速原型(抛弃式原型),还有一种是演化式模型。
V模型是瀑布模型的一种变种,是从瀑布模型中发展而来的,它在瀑布模型的基础上加强了测试。在V模型中需要提前作测试计划和做测试用例。让测试工作贯穿于始终。
喷泉模型最大特点就是面向对象,正因为如此,所以喷泉模型有迭代和无间隙的特点。
RAD:称为快速应用开发。瀑布模型和CBSD(Component-Based Software Development基于构建的软件开发模型)的综合开发模型。它包括业务建模,数据建模,过程建模,应用生成,测试与交付。
构件模型:构件具有可复用的价值。需要建立构件库并反复使用构件库中的构件。构件也可以称作组件。
构件标准有三个:CORBA,COM/DCOM,EJB。
构件组装模型:需求分析和定义,软件架构设计,构件库建立,应用软件构建,测试和发布。其中构件库包括了构件获取和构件管理。
- 软件开发模型--统一开发过程
统一开发过程的四个阶段 | 初始 | 确定项目范围和边界 |
识别系统的关键用例 | ||
展示系统的候选架构 | ||
估计项目费用和时间 | ||
评估项目风险 | ||
细化 | 分析系统问题领域 | |
建立系统框架基础 | ||
淘汰最高风险元素 | ||
构建 | 开发剩余的构件 | |
构建的组装与测试 | ||
交付 | 进行beta测试,制作发布版本 | |
用户文档定稿,确认新系统 | ||
培训调整产品 | ||
统一开发过程的三个核心 | 用例驱动 | |
以架构为中心 | ||
迭代与增量 |
用例驱动:整个开发的过程是由用例来驱动的。用例贯穿于整个开发流程之中。用例是需求层面的东西,其实也可以理解为功能需求。用例不能决定架构,因为架构往往取决于非功能需求。
- 软件开发模型--敏捷开发
敏捷开发的基本原则与常见的分类 | |
基本原则 | 短平快的会议,小型版本发布,较少的文档,合作为重,客户直接参与,自动化测试 |
适应性计划调整,结对编程,测试驱动开发,持续集成,重构。 | |
四大分类 | 自适应开发,极限编程,特征驱动开发,水晶方法 |
在所有的敏捷型方法中,XP是最引人注目的,他源于SmallTalk圈子,特别是在Kent Beck、Ward Cunninggham、Ron Jeffrey20世纪80年代末的密切合作,XP在一些对费用控制严格的公司中使用。
四大价值观:沟通,简单,反馈,勇气
5大原则:快速反馈,简单性假设,逐步修改,提倡修改,优质工作。
12个最佳实践:简单设计,测试先行,重构,计划游戏,小型发布,隐喻,结对编程,集体代码所有制,持续集成,每周工作40小时,现场客户,编码标准。
- 净室软件工程(★)
净室即无尘室,洁净室,也就是一个受控污染级别的环境。
使用盒结构规约(或形式化方法)进行分析和设计建模,并且强调将正确性验证而不是测试,作为发现和消除错误的主要机制。
使用统计的测试来获取认证被交付的软件的可靠性所必须的出错率信息。它是一种强调正确性的数学验证和软件可靠性的认证的软件工程模型,其目标和结果具有非常低的出错率。
- 软件开发方法—****(★★)
****的特点是从已有的程序中抽取数据结构,体系结构和程序设计信息。它的流程为:
现有系统—>****—>考虑新需求—>正向工程—>新系统
实现级 | 包括程序的抽象语法树,符号表,过程的设计表示 |
结构级 | 包括反映程序分量之间相互依赖关系的信息,例如调用图,结构图,程序和数据结构 |
功能级 | 包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型 |
领域级 | 包括反映程序分量或程序诸实体与应用领域概念之间对应的关系信息,例如实体关系模型 |