包括:演化模型、螺旋模型、喷泉模型、智能模型、增量模型、迭代模型、构件组装模型。
3)V模型
以测试为中心的开发模型。
需求分析 验收测试 概要设计 系统测试 详细设计 集成测试 编码 单元测试
4)快速应用开发
快速应用开发(Rapid Application Development,RAD)模型是一个增量型的软件开发过程模型,强调极短的开发周期。RAD模型是瀑布模型的一个高速变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。
5)敏捷方法
敏捷方法的发展过程中出现了不同的流派,如:极限编程(Extreme Programming,XP)、自适应软件开发、水晶方法、特性驱动开发等。
从开发者的角度,主要关注点:短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、合作为重(Collaborative Focus)、客户直接参与(Customer Engagement)、自动化测试(Automated Testing)、适应性计划调整(Adaptive Planning)和结对编程(Pair Programming)。
从管理者的角度,主要关注点:测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。
6)统一过程
统一过程(Unified Process,UP)是一个通用过程框架,在为软件系统建
5
模时,UP使用的是UML。UP的三个特点:用例驱动、以基本架构为中心、迭代和增量。
UP中的软件过程在时间上被分解为4个顺序的阶段:初始阶段、细化阶段、构建阶段和交付阶段。
2.3 需求工程
需求工程是包括创建和维护系统需求文档所必须的一切活动的过程,可分为需求开发和需求管理两大工作。
? 需求开发包括: 需求获取、需求分析、编写规格说明书(需求定义)、
需求验证。
? 需求管理包括:定义需求基线、处理需求变更及需求跟踪等方面的
工作。
1)需求开发概述
需求开发的工作可以分成:问题识别、分析与综合、编制需求分析的文档、需求分析与评审。
需求的分类:软件需求包括功能需求、非功能需求、设计约束3个方面。 需求的另一分类:业务需求、用户需求、系统需求。 2)需求获取
需求获取技术:用户访谈、用户调查、现场观摩、阅读历史文档、联合讨论会。
需求获取、需求分析、需求定义、需求验证4个需求过程阶段不是瀑布式的发展,而应该是迭代式的演化过程。
3)需求分析
需求分析方法种类:结构化分析方法、面向对象分析方法、面向问题域的分析方法(Problem Domain Oriented Analysis,PDOA)。PDOA方法现在还在研究阶段,并未广泛应用。
数据流程图(DFD)和数据字典共同构成系统的逻辑模型。 4)需求定义
需求定义的过程就是形成需求规格说明书的过程,有两种需求定义方法:严
6
格需求定义方法和原型方法。
5)需求管理
2.4 软件设计
从工程管理角度,软件设计可分为概要设计和详细设计两个阶段。概要设计也称为高层设计,即将软件需求转化为数据结构和软件的系统结构。详细设计为低层设计,即对结构图进行细化,得到详细的数据结构与算法。
1)软件设计活动
软件设计包括4个独立又相互联系的活动,即数据设计、体系结构设计、接口设计(界面设计)和过程设计。这4个活动完成以后就得到了全面的软件设计模型。
2)结构化设计
结构化设计是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶向下、逐步求精和模块化的过程。
2.5 软件测试
软件测试的目的是在软件投入生产性运行之前,尽可能多地发现软件产品中的错误和缺陷。软件测试只是软件质量保证的手段之一。
1)测试的类型
分为动态测试和静态测试两大类。 动态测试: 通过运行程序发现错误。 黑盒测试法 白盒测试法 灰盒测试法 静态测试: 桌前检查(Desk Checking) 不运行程序,采用人工检测和计算机辅代码审查 助静态分析的手段进行测试。 2)测试的阶段
可以分为:单元测试、集成测试、确认测试(包括内部确认测试、Alpha测
7
代码走查 试、Beta测试、验收测试)和系统测试等。
3)性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,统一称为负载压力测试。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或不能接受的性能点,来获得系统能提供的最大服务级别的测试。
4)验收测试
验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
5)第三方测试
第三方测试是指独立于软件开发方和用户方的测试,也称为“独立测试”。
2.6 软件维护
软件维护占整个软件生命周期的60%~80%,维护的类型主要有3种:改正性维护、适应性维护、完善性维护。
还有一类叫预防性维护,可以定义为“把今天的方法学用于昨天的系统以满足明天的需要”。
2.7 软件质量管理
软件质量是指软件特性的综合,即软件满足规定或潜在用户需求的能力。软件质量保证是指为保证软件系统或软件产品充分满足要求的质量而进行的有计划、有组织的活动,这些活动贯穿与软件生产的各个阶段即整个生命周期。
软件质量特性度量有两类:预测型和验收型。
常用的国际通用软件质量模型ISO/IEC9126和Mc Call模型。ISO/IEC9126软件质量模型已被我国的国家标准《GB/T 16260——2002 信息技术 软件产品
8
评价 质量特性及其使用指南》。
2.8 软件过程改进
软件过程能力成熟度模型(Capability Maturity Model,CMM)和能力成熟度模型集成(Capability Maturity Model Integration,CMMI)
1)CMM
分为:初始级、可重复级、已定义级、已管理级、优化级。 2)CMMI
与CMM相比CMMI涉及面不限于软件,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。
CMMI可以看作把各种CMM集成到一个系列的模型中,CMMI的基础源模型包括软件CMM、系统工程CMM、集成化产品和过程开发CMM等。
每一种CMMI模型都有两种表示法,即阶段式和连续式。
2.9 面向对象方法
主要考查面向对象的基本概念、数据隐藏、UML和构件。 1)基本概念
面向对象方法包括面向对象的分析、面向对象的设计、面向对象的程序设计。 对象:对象是指一组属性及这组属性上的专用操作的封装体。一个对象通常可由三部分组成:对象名、属性和操作(方法)。
类:类是一组具有相同属性和相同操作的对象的集合。每个类一般都有实例,没有实例的类是抽象类。
继承:继承是指某个类的层次关联中不同的类共享属性和操作的一种机制。对于两个类A和B,如果A类是B类的子类,则B类是A类的泛化。继承是面向对象方法区别与其他方法的一个核心思想。
封装:面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流。
消息:消息是对象间通信的手段、一个对象通过向另一个对象发送消息来请
9
《信息系统项目管理师考试全程指导》笔记
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)