? 迭代的增量化过程,用于产品开发或工作管理。可以集合各种开发实践的经
验化过程框架。
? 发布产品的重要性高过一切;
? 旨在寻求充分发挥面向对象和构建技术的开发方法,是对迭代式面向对象方
法的改进。
(3) Crystal Methods
20世纪90年代末提出,是个系列,因为创始人相信不同的项目需要不同的方法。
(4) FDD特性驱动开发 针对中小型项目。
模型驱动的快速迭代开发过程;
强调简化、实用、易于被开发团队接受、适用于需求经常变动的项目。
(5) ASD
强调开发方法的适应性
(6) DSDM动态系统开发
以业务为核心,快速而有效地进行系统开发。在英国称为应用最为广泛的快速应用开发方法。
DSDM不仅遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。
(7) RUP
RUP是个过程框架,它可以包容许多不同类型的过程,Craig Larman极力主张以敏捷型方式来使用RUP。
4.6. 软件维护
软件经过测试、交付用户后,在使用和运行过程中可能在软件运行/维护阶
段对软件进行的修改就是所谓的维护。
软件维护占整个软件生命周期的60%~80%,维护的类型主要有:
[1] 改正性维护:为了识别和纠正软件错误,改正软件性能上的缺陷,进行
诊断和改正错误的过程;
[2] 适应性维护:当外部环境发生改变时,为使软件适应这种变化而去修改
软件的过程;
[3] 完善性维护:在软件使用过程中,用户往往会对软件提出新的功能、性能要求,为了满足这些要求而进行的修改和新功能开发。 [4] 预防性维护:为以后进一步改进软件打下良好基础。
4.7. 用户界面
关键的用户界面设计原则:
? 用户控制:人机界面设计首先要确立用户类型。确定类型后要针对其特
点预测它们对不同界面的反应。一定要使用户感觉系统的运行在自己的控制之下。
? 信息量最小:界面设计要尽量减少用户记忆的负担,采用有助于记忆的
设计方案。
? 帮助和提示:要对用户的操作命令做出反应,帮助用户处理问题。在系
统内部处理工作要有提示,尽量把主动权让给用户。
? 媒体最佳组合。多媒体界面的成功并不在于仅向用户提供丰富的媒体,
而应在相关理论指导下,注意处理好各种媒体间的关系。
? 界面一致性。界面遵循标准和常规方式,让用户处于熟悉和可预见环境
中。主要体现在命名、编码、缩写、布局以及包括菜单、按钮和键盘功能在内的控制使用。
? 界面容错性。好的界面应该允许用户进行试验和出错。当出错时要能方
便的从错误中恢复。
? 界面美观性。平衡、对称、合适的色彩、元素间合理的对齐方式和间隔、
相关元素适当分组,使用户可以方便的找到目标元素。
? 界面可适应性。满足定制化和个性化要求。定制化是在程序中生命用户
的熟知程度,界面可以根据熟知程度改变外观和行为;个性化是指用户按照自己的习惯和爱好设置用户界面。
4.8. 综合
一般来说,文档编制与评审是软件开发进度的里程碑。
业务领域分析中:
? 实体关系图:把与业务相关的数据模型化; ? 过程层次图:业务活动的分解过程;
? 过程依赖图:两个业务过程之间的相互依赖关系; ? 过程活动图:说明整个业务过程的逻辑。
CORBA体系结构:
? ORB (object request broker 对象请求代理)负责处理底层网络细节,可以
运行在不同网络协议上。ORB实现了一组功能,包括对象定位、编组与解组、初始化服务和接口库等。它为客户端和服务器端提供标准API,使得客户不用考虑底层网络细节,通过对象引用实现对远程对象的请求调用。 ? IDL(interface definition language接口定义语言)定义了客户机和服务器之
间的静态接口,通过它实现对象接口与对象实现的分离,屏蔽语言和系统软件带来的异构性。通过标准的IDL编译器,可生成客户端的存根IDL Stubs和服务器端的骨架IDL Skeletons。
Prolog是逻辑型语言,可视化开发工具都是事件驱动程序语言。
DFD数据流图的4种符号:数据流、加工、数据存储、外部实体。外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数处理过程的数据来源及数据去向。
McCable环路复杂性公式:e-n+2 e是有向图边数,n是节点数。
为了提高构件复用率,通常要求构件具有较好的通用性和可变性。通用性越好,被复用的面越广;可变性越好,构件就越易于调整,以便适用于应用的具体环境。
异构平台的各构件间互操作问题。支持互操作的构件标准,分为OMG的CORBA, MS的COM/DCOM,Sun的EJB/J2EE三个主要流派。
以下情况不适合原型法: ? 缺乏适用的原型工具;
? 用户不参与、不积极配合开发过程; ? 用户的数据资源缺乏组织和管理; ? 用户的软件资源缺乏组织和管理。
软件分层式体系结构自顶向下分别是:应用软件、业务构件、中间件、系统软件。
现有系统的分析和研究过程: 1. 现有系统的物理模型 2. 现有系统的逻辑模型 3. 新系统的逻辑模型 4. 新系统的物理模型
基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化的,开发过程是迭代的。
螺旋模型是瀑布模型与快速原型模型的结合,加入两者所忽略的风险分析(强调)所建立的一种软件开发模型。螺旋模型中,软件开发是一系列的增量发布。螺旋模型的每次迭代都包括制定计划、风险分析、实施工程、客户评估四个方面的工作。
它有两个特点:
? 一是采用循环的方式逐步加深系统定义和实现的深度,同时降低风险; ? 二是确定一系列里程碑,确保项目开发过程中的相关利益者都支持可行
的和令人满意的系统解决方案。
Petri网是一种用图形方式对系统进行需求说明的技术。用来定义多线程、多任务系统的数学模型,易于描述系统的并发、竞争、同步等特征,可用于评价和改进系统。
模块一定要高内聚、低耦合:
? 按聚合程度从低到高排序:偶然聚合、逻辑聚合、过程聚合、时间聚合、
通信聚合、顺序聚合、功能聚合。其中,功能聚合的聚合程度最高。 ? 按耦合程度从低到高排序:数据耦合、控制耦合、公共耦合、内容耦合。