流行的软件工程过程--Rational统一过程!
RUP提供了一个给角色分配任务和责任的严格方法,在J2EE开发中使用RUP出于以下三个原因:
- RUP以架构为中心;在将资源分配给全面开发之前,它先开发一个可执行的架构原型。
- UP是迭代并基于构件的。
- RUP利用一门工业标准语言——UML,可视化建模系统的架构和构件。
RUP有四个不同的开发阶段:初始、细化、构造和移交。然而,本文从技术角度覆盖了J2EE开发的八个必要活动,主要集中在系统架构。
从8个方面来说明:
- 需求分析:需求分析描述系统应该做什么或不应该做什么使得开发者和客户可以签署一份原始的商业合同。可以使用业务概念、领域术语、用例和用户界面(UI)模型形成功能需求文档。
对于非功能需求,如性能和事务,可以在需求文档附件中详细说明。根据参与项目深度的不同,确定在纸上还是使用HTML建造高层UI模型。 - 面向对象分析:人员构造问题领域模型:类、对象和交互。
分析应该与技术和实现细节无关,并包含一个理想的模型。
因为业务过程的改变比信息技术的改变要慢得多,所以必须要维持一个不含技术细节的纯领域模型。
需求分析中得到主要概念,把这些概念建模为对象,并标识他们的关系,为开发架构,可以使用横向联合部分来设计对象,实现,测试来部署,横向联合部分,一个RUP概念,是指系统的一小部分,他的实现结果是包括前端UI,中间业务及后端数据的完整功能的小系统。 - 架构规格说明:经过需求分析以及面向对象后的领域问题后,
将工作集中在技术策略和架构上。架构是指所有构件组合定义系统的一个蓝图:结构、接口和通讯机制。
架构可以分为:企业级架构,应用级架构 - 企业级架构:包括硬件和软件基础设施,网络部局,开发,测试,生产环境等,反映企业的长期投资。
构件组成:Web浏览器客户端,一个HTTP服务器(Web服务器主表示层,业务逻辑构件),关系型数据库主数据与数据逻辑。你的系统架构类型依赖于:安全,性能和可靠性的需求,也依赖于客户的财务状况。
架构和设计完全不同,应用架构范围包括,系统主要结构,架构设计模式,可增加构件的框架,主要考滤非功能性方面。
设计主要考滤的是业务用例. 对象设计在架构规范下进行,设计从技术扩展跟修改分析阶段产生的领域对象模型,领域对象模型虽然与技术实现无关,
但依赖于技术因素,包括:平台,语言等等因素。理论上,为了维持业务对象的基本属性和行为,除非绝对必要,不应该破坏它们。在架构结果的指导下,详细设计工作应该说明所有类的规格,包括必须实现的属性、它们的详细接口和伪代码或操作的纯文本描述。
规格说明应该足够详细使得和模型图结合时,它可以提供所有必须的编码信息。
-------
对象设计模型:在完成对象设计的详细设计后,还需要完成领域对象的对象-关系映射,将领域对象转化为关系模型或对象的数据库表是非常重要的。 - 实现:设计一个规范的架构,跟编写一份详细的高设计是非常重要的事情,不在需求分析定义对象模型,关系模型,对应的数据库表,以后开发过程中的各种规范,极有可能使用开发后期经常的测试功能,甚至可能到最后才发现方向跟结构不合理。
- 验证:
- 装配跟布暑:构件装配和解决方案部署在J2EE开发中特别重要。
- 运行跟维护:用程序到了用户手中,你必须给他们提供培训和文档。
客户可能对不足提出更改,我们的更改应该尽量不影响系统的运行,添加一个新的构件或去掉一个老的构掉,尽量不以关闭运行为前提。
软件架构过程必须做许多架构决定,必须为架构开发描述一个开发过程,在我们开发的多个项目中可能存在一些可通用的需求,在我们的项目周期中应该尽量使用以前项目所生成的成熟的可扩展,可重用的架构,为一系列软件应用提供同属结构和行为的通用框架和可重用软件架构是非常需要的。
可以使用设计模式来扩展参考架构,提供一组J2EE模式目录的蓝图及提从“四人帮”模式都是不错的资源。一旦建立了一个基本的J2EE框架,必须实现一些用例来说明架构确实可以为你的领域服务。可以通过选用捕获系统关键功能的场景来实现,这些场景经常使用来展现关键的技术风险。
从领域分析模型入手,可以将领域对象映射成高层和低层设计模型。如果每件事都按计划运行,那么重新评估风险开始下一个迭代,扩展要考虑的场景并选择更多的场景扩展架构的覆盖范围。经过几次迭代后,原始的架构原型应该变得稳定。识别要购买的构件,要保留的遗留系统和怎样将它们对接。
流行的软件工程过程--Rational统一过程!的更多相关文章
- php 启动过程 - sapi MINIT 过程
php 启动过程 - sapi MINIT 过程 sapi 概念 sapi 是 php 的应用编程接口, server 端接收请求通过 sapi 接口层交给 php 处理 不同的 server 端底层 ...
- VScript 函数调用的两种分类:Sub过程和Function过程
来源:http://soft.zdnet.com.cn/software_zone/2007/0925/523318.shtml 在 VBScript 中,过程被分为两类:Sub 过程和 Functi ...
- php 启动过程 - reqeust RSHUTDOWN 过程
php 启动过程 - reqeust RSHUTDOWN 过程 概述 request RSHUTDOWN 过程在请求结束后调用 调用触发 同 request RINIT 过程一样, 先是用 apach ...
- php 启动过程 - reqeust RINIT 过程
php 启动过程 - reqeust RINIT 过程 概述 apache 接收到请求之后, 交给 php 处理 php 模块在接收到请求后, 会对请求进行初始化, 及 RINIT 过程 调用触发 a ...
- php 启动过程 - sapi MSHUTDOWN 过程
php 启动过程 - sapi MSHUTDOWN 过程 概述 当服务器关闭时, 会走到 sapi MSHUTDOWN 过程 注册过程 本次内容是在 php 启动过程 - sapi MINIT 过程 ...
- 第三次作业(1) Visual Studio程序安装过程和练习过程
Visual Studio程序安装过程和练习过程 第一步 首先要在网上找一个VS2013的安装包,之后我安装在D盘上,C盘上也需要有5.2G空间,勾选相应的选项,才能继续安装. 安装的过程很漫长,接近 ...
- Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...
- STM32CubeMX软件工程描述_USART配置过程
推荐 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前面 学习本文之前可以查 ...
- Linux引导过程和服务过程
目录 一.Linux操作系统引导过程 1.1.开机自检 1.2.MBR引导 1.3.GRUB菜单 1.4.加载Linux内核 1.5.init进程初始化 二.系统初始化进程 2.1.init进程 2. ...
随机推荐
- 1090. Highest Price in Supply Chain (25)-dfs求层数
给出一棵树,在树根出货物的价格为p,然后每往下一层,价格增加r%,求所有叶子节点中的最高价格,以及该层叶子结点个数. #include <iostream> #include <cs ...
- Java并发编程(详解wait(), notify(),sleep())
http://blog.csdn.net/luckyzhoustar/article/details/48179161
- Daily Scrum NO.2
工作概况 符美潇(PM) 昨日完成的工作 1.Daily Scrum.日常会议及日常工作的分配和查收. 2.为两名团队新成员制定了任务并录入TFS. 今日工作 1.Daily Scrum.日常会议及日 ...
- 《Linux内核分析》第三周:Linux系统启动过程
杨舒雯 原创作品转载请注明出处 Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验--使用gdb跟踪调试内 ...
- 5月29,48h,Geekathon,创业极客的梦想起点
http://mp.weixin.qq.com/s?__biz=MjM5ODQ3MDIwMg==&mid=213768178&idx=1&sn=0a607fac483f3eab ...
- 初学Hadoop之单机模式环境搭建
本文仅作为学习笔记,供大家初学Hadoop时学习参考.初学Hadoop,欢迎有经验的朋友进行指导与交流! 1.安装CentOS7 准备 CentOS系统镜像CentOS-7.0-1406-x86_64 ...
- ELK 性能(2) — 如何在大业务量下保持 Elasticsearch 集群的稳定
ELK 性能(2) - 如何在大业务量下保持 Elasticsearch 集群的稳定 介绍 如何在大业务量下保持 Elasticsearch 集群的稳定? 内容 当我们使用 Elasticsearch ...
- MySQL基础(二):视图、触发器、函数、事务、存储过程
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 视图和上一篇学到的临时表搜索类似. ...
- react & monaco editor & vs code
react & monaco editor & vs code monaco-editor https://microsoft.github.io/monaco-editor/inde ...
- MyBatis关联查询,一对多关联查询
实体关系图,一个国家对应多个城市 一对多关联查询可用三种方式实现: 单步查询,利用collection标签为级联属性赋值: 分步查询: 利用association标签进行分步查询: 利用collect ...