目录:
一.软件开发方法与开发模型1.软件开发方法2.软件开发模型3.软件开发方法4.逆向工程5.净室工程二.需求工程1.需求工程(1) 需求获取(2) 需求分析(3) 需求定义(4) 需求验证2.需求管理3.软件系统建模三.系统设计1.人机界面设计2.结构化设计3.面向对象设计(1) 设计原则(2) 架构模式,设计模式和惯用法:(3) 设计模式四.软件测试1.软件测试方法2.软件调试3.系统运行与软件维护一.软件开发方法与开发模型
1.软件开发方法
2.软件开发模型
瀑布模型是一种典型的结构化开发方法的体现,该模型适合
需求非常明确
的项目。
项目的
需求不明确
适合选用原型模型。
所谓的原型就是通过原型图给用户描述相关功能,在实际项目开发中常常就是一些静态html网页进行描述,或者通过相关软件(Axure)画的原型图:
下面就是原型的html:
增量模型和螺旋模型都是在原型模型的基础上进行演化的,其中螺旋模型适合比较大的项目,并且该模型最大的一点就是引入
风险分析
,而增量模型是在一个基础版本上不断的增加。
V模型是一个
测试
贯穿于始终的模型,在每一个阶段都会进行相关测试,这里的测试不仅仅是代码测试还有测试计划的编写,喷泉模型是一种面向对象
的模型,RAD快速应用开发模型是一种快速开发
的模型,由SDLC瀑布模型和CBSD基于构件的开发组合,其中CBSD基于构件的开发是能够快速开发的核心。
下图为构建开发模型,其中的构建库的建立是CBSD的核心是RAD能够快速应用开发的原因,使用构件库不仅仅保证了速度快还能提高可靠性和节约成本,前提是建构件库不是新构建的,而是已经存在,已经经过多次验证后的构件库。
3.软件开发方法
软件开发模型统一过程三大核心特点,
用例驱动
,以架构为中心
和迭代和增量
,统一过程分为四个阶段,初始(确定项目范围和边界
),细化(建立软件架构基础
),构建(构件组装与测试
)和交付(制作发布版本
)。
敏捷方法适合小型项目的开发,作用是为了减轻开发人员的负担,去掉一些没有必要的开发文档,敏捷方法包含多种开发方法如自适应开发,水晶方法,特性驱动开发和极限编程。
相关方法的介绍:
4.逆向工程
逆向过程的考点在于下图中的四个层级,实现级,结构级,功能级和领域级。
5.净室工程
二.需求工程
考点如下:
1.需求工程
需求工程是指应用已证实有效的原理 、方法 , 通过合适的工具和记号 ,系统地描述待开发系统及其行为特征和相关约束 。需求工程划分为二个板块即需求开发和需求管理模块,需求管理模块为需求开发提供支持,需求开发模块的过程划分为需求获取,需求分析,需求定义和需求验证。
(1) 需求获取
软件需求按技术划分可以划分为业务需求,用户需求和系统需求(功能需求,性能需求和设计约束),按项目管理划分为基本需求,期望需求和兴奋需求。
(2) 需求分析
结构化
需求分析-SA:
SA分析结构如下所示,三个模型功能模型,数据模型和行为模型,三个模型的相关详细信息通过数据字典获得和解析。
数据流图(DFD):
E-R图:
状态转换图:
面向对象
需求分析:
UML统一建模语言:
UML图划分为静态图和动态图,详细如下表所示:
UML4+1视图:
面向对象需求分析需求需要完成二个模型用例模型和分析模型:
用例图:
用例数据字典:
三种关系(包含,扩展和泛化):
例题:
答案:D(包含和扩展关系都可以叫做依赖关系),B(包含关系,老版本使用uses即使用关系)
类图和对象图:
相关关系:
练习题:
答案:D,C
顺序图:
活动图(类似于流程图):
状态图:
通信图(协作图):
(3) 需求定义
(4) 需求验证
2.需求管理
3.软件系统建模
三.系统设计
1.人机界面设计
置于用户控制之下减少用户的记忆负担保持界面的一致性这部分只需要了解以下三个规则即可:
置于用户控制之下:
减少用户的记忆负担:
保持界面的一致性
2.结构化设计
3.面向对象设计
(1) 设计原则
(2) 架构模式,设计模式和惯用法:
(3) 设计模式
简单方便的复用成功的设计和体系结构
设计模式考点:
设计模式分类:
类或对象可参照下图:
创建型模式:
创建型模式主要用于 创建对象
工厂方法:
抽象工厂方法:
构建器模式:
结构型模式:
结构型模式主要用于 处理类或对象的组合 。
适配器模式:
桥接模式:
组合模式:
代理模式
不直接处理而是交给代理进行处理,房屋出租人将房子代理给房屋中介,帮忙出租房屋 。
中介模式
将网状结构转换为星型,中介是1对多处理,租房族不直接通过房屋出租人租房子(网状),而是通过房屋中介商租房(星型)。
行为型:
行为型模式主要用于 描述对类或对象怎样交互和怎样分配职责 。
职责链模式:
练习题:
答案:A(基本设计决策–高层次),B,B
四.软件测试
1.软件测试方法
黑盒测试和白盒测试:
测试阶段:
面向对象的测试:
2.软件调试
3.系统运行与软件维护
遗留系统演化策略:
修旧系统的转换策略:
数据转换和迁移:
系统运行与维护:
例子:
答案:A(新增功能…–>扩充功能),B(诊断和更正这些错误…–>改正),C(改进软件未来的可维护性或可靠性…—>预防性)