二、软件开发过程
UML(Unified Modeling Language,统一的建模语言)
在一个OOAD软件开发过程,我们要完成二个不同的工作:
1) OOA 分析阶段我们主要: (要做什么?what to do? 分析阶段考察如何解决现实问题)
. 建立一个清晰的商业问题的视图;
. 概述系统必须执行的任务;
. 建立商业问题描述的通用词汇;
. 概述商业问题的最佳方案。
2) OOD 设计阶段我们主要:(怎么做?how to do? 设计阶段考察如何用计算机解决问题)
. 解决商业问题;
. 定义“how”代替“what”;
. 介绍将使系统工作的支撑元素;
. 定义系统的实现策略。
开发过程,软件开发过程的控制。
1) 传统开发过程:
. 瀑布式开发:需求->分析->设计->实现->测试。每个步骤完成和文档化后才进入下一个阶段。使用于小项目
. 假设在后期阶段出现问题,很难返回到先前阶段。
. 项目组成员花费大量时间和精力于每个阶段确保它是正确的.
. 各阶段所用符号和术语均是变化的。完成的软件虽然正确,但与它所表现的商业逻辑相关甚少。
2) OOAD开发过程 --- 统一开发过程
. 典型的处理方式是将一个项目作为一系列的小项目;
. UML(Unified Modeling Language)是一种符号,不是一个处理过程;
. USDP(Unified Software Development Process)是迭代增量式的;
初启->细化->构建->移交,每个阶段都有特定的目标
统一软件开发过程是一个跌代、递增的开发过程。
. USDP和RUP(Rational Unified Process)都是流行的OOAD过程。
迭代增量式项目生命周期
1) “迭代”指生命周期中每一个步骤;
2) 迭代的结果便是整个项目功能完成的一步步增长;
3) 在每个迭代的构建阶段,你应该:
. 选择并分析相关的用例;
. 使用选择的体系结构创建一个设计;
. 用组件实现设计;
. 检验组件满足用例。
迭代增量生命周期的主要阶段
1) Inception(初始)阶段:
. 这个阶段的增长集中在:
a. 开始项目;
b. 为这个项目建立起商业原则;
c. 定义一个商业问题;
d. 识别潜在的风险;
e. 定义对问题更好理解的范围;
f. 创建对商业问题的解释文档。
. 每个循环包括一至多个反复,每个阶段的完成结果都是里程碑式的。
2) Elaboration(细节化阶段:
. 这个阶段的增长集中在:
a. 高水平的分析和设计;
b. 为项目建立一个架构体系的基线;
c. 监测潜在的风险;
d. 创建一个实现项目目标的构建计划;
3) The Construction(构建)阶段:
. 这个阶段的增长集中在软件项目日益成型;
4) The Transition(提交)阶段:
. 这个阶段的增长集中在:
a. 发布产品给客户;
b. 完成beta测试;
c. 实现性能调整、用户培训以及接受度测试。
过程图:
业务建模,需求,设计分析,实现,测试,部署,配置管理,项目管理,环境搭建
阶段期间的工作步骤
1) 每次跌代由以下五个工作步骤组成:
. 需求
. 分析
. 设计
. 实现
. 测试
2) 不同的反复对每个工作步骤完成的程度不同;
3) 早期的反复在深度上覆盖了第一个工作步骤,以后的反复在深度上覆盖了最后的工作步骤。
4) 8/2原则:在工作量大的地方投入80%的精力,并且假如完成了80%, 即可进入下一个反复。
反复和工作步骤
1) 在每个反复过程,根据需求你可以包括五个工作步骤中的任何一个。
2) 早期的反复过程集中在靠前的工作步骤,后期的反复过程集中在靠后的工作步骤。
3) 当你发现应该修改早先工作步骤中的某些错误,你可以:
. 继续并在下一个反复过程中修正;
. 继续并增加一个新的反复过程修正问题;
. 假如时间允许,返回到当前的反复并修正这个问题。
4) 不同的反复执行每个工作步骤于不同的程度。
迭代增量生命周期的好处
1) 错误提早发现,降低成本;
2) 对项目进度的更好保证;
3) 对于开发团队而言开发速度更快;
4) 便于适应用户需求的动态改变;
分享到:
相关推荐
本书的第二版深入探讨了如何运用统一建模语言(UML)进行面向对象设计,提供了丰富的实例和课后习题以巩固理论知识。课后题答案是学习过程中的重要参考资料,它能帮助读者检验自己的理解和应用能力。 UML,全称为...
封装是面向对象设计的核心概念之一。它指的是将对象的状态(属性)和行为(方法)捆绑在一起,并对外隐藏对象的实现细节。封装可以通过访问修饰符来实现,比如public、protected和private,它们控制类成员的可见性和...
面向对象设计(Object-Oriented Design,OOD)是一种软件开发方法,它基于“对象”的概念,将现实世界的问题域转化为计算机程序。UML(Unified Modeling Language)是面向对象设计的一种标准化建模语言,用于可视化...
UML面向对象建模与设计(第二版)pdf
《面向对象程序设计:C++语言描述(原书第2版)》内容丰富,结构合理,写作风格严谨,深刻地论述了c++语言的面向对象编程的各种技术,主要内容包括:面向对象编程方法、c++语言的各种特性、stl、c++输入/输出流、mfc等。...
《C++面向对象程序设计(第2版)》是一本深度探讨C++编程技术的教材,尤其专注于面向对象的设计和实现。此资源包含了全面的课件,旨在帮助学习者掌握C++的核心概念以及面向对象编程的基本原则。面向对象编程(Object...
第二版的《Java面向对象程序设计》课件旨在深入浅出地介绍这一关键概念,帮助学习者掌握Java语言的基础以及面向对象编程的核心思想。下面将详细阐述Java面向对象编程的基本概念、特性及其在实际开发中的应用。 1. ...
C++语言和面向对象程序设计(第二版)
《C++面向对象程序设计》是C++编程领域的一本经典教材,由清华大学出版社出版,龚晓庆、付丽娜等多位专家共同编著。这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一...
### UML面向对象设计基础 #### 基本概念与符号表示 《UML面向对象设计基础》一书详细介绍了面向对象软件设计的基础知识,包括基本概念、符号表示、术语、准则和原理。面向对象设计是一种软件设计范式,强调通过对象...
详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...
本资源集合是"李爱华"和"程磊"编写的《面向对象程序设计》一书第二章的C++语言基础案例源程序,涵盖了C++的基本要素,旨在帮助学习者通过实践理解C++的基础知识。 在第二章中,主要讨论了C++语言的基础,包括以下几...
面向对象程序设计-Java(第二版)是一本深入讲解Java编程的教材,旨在教授如何使用面向对象的思想来构建软件系统。在Java编程中,面向对象是核心概念,它包括类、对象、继承、封装和多态等核心概念。以下是根据标题...
Java面向对象程序设计第二版,对于Java学习有很大的帮助
《UML面向对象建模与设计答案》是一个包含详尽解答的资源,旨在帮助学习者理解和掌握UML(Unified Modeling Language)在面向对象设计中的应用。面向对象建模是软件开发过程中至关重要的一环,它通过可视化的方式...
这本书是针对中国高等院校计算机基础教育课程体系规划的一部教材,旨在帮助学生理解和掌握C++语言的精髓,培养他们的编程能力和面向对象设计思维。 C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在C语言的...
"C++面向对象程序设计第三版谭浩强教学大纲.pdf" 本资源摘要信息涵盖了C++面向对象程序设计的基本概念、数据存储、程序设计初步、函数、数组、指针、用户自定义数据类型、类和对象的程序设计等方面的知识点。 第一...