﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&#xE; oDiBo  “开封菜”WWW.KFC.IM-随笔分类-软件工程</title><link>http://www.blogjava.net/chenjiajin/category/40310.html</link><description>KFC.im记录学习、工作、生活中的点点滴滴…</description><language>zh-cn</language><lastBuildDate>Mon, 29 Jun 2009 18:09:18 GMT</lastBuildDate><pubDate>Mon, 29 Jun 2009 18:09:18 GMT</pubDate><ttl>60</ttl><item><title>软件工程 工具之二—— PowerDesigner v12（九）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284526.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284526.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284526.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284526.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284526.html</trackback:ping><description><![CDATA[<p>第九章 用PowerDesigner进行数据库设计<br />
1、数据库逻辑设计的任务是全面理解、准确描述用户的数据，物理设计的目的则是提高数据库在时间、空间、维护代价等几个方面的综合性能。<br />
在数据库设计过程中，要对设计的多种性能和用户需求进行全面考虑。<br />
关键点：时间、空间和维护代价。<br />
2、数据库应用设计最主要的特点在于它是针对某一特定数据库来进行的应用设计。<br />
与传统的程序设计的区别：<br />
传统的程序设计是应用程序设计在先，数据结构设计在后；<br />
而数据库应用设计是数据结构设计在先，应用程序设计在后。<br />
3、数据库应用设计应遵循的原则：<br />
（1）指导和评价设计的先决条件是用户需求；<br />
（2）注意掌握应用程序在客户和服务器之间工作量分配的平衡及其对系统性能的影响。<br />
（3）设计方案尽量减少网络通信，避免重复编程。<br />
（4）要保证系统的每个组件都能单独运行，并通过合理的设计提高应用软件的可移植性。<br />
（5）充分利用数据结构设计所提供的条件，包括数据及其之间的联系。<br />
（6）充分利用数据库管理系统提供的各种功能，如数据的完整性、一致性检验等，数据库管理系统能够实现的则不再考虑编程。<br />
4、应用设计的任务主要包括：<br />
（1）功能设计<br />
主要依据是需求分析阶段得到的&#8220;事务流程&#8221;及其分析结果。<br />
过程：<br />
（1.1）根据系统的目标确定实现目标所需的功能模块；<br />
（1.2）将各功能模块分解为子功能模块，<br />
（1.3）一层一层直到最底层的功能模块只执行一个单个具体任务为止。<br />
（2）开发工具及其平台的选取<br />
（3）个功能模块基于所选择平台的输入、输出、文件、代码等具体设计<br />
（3.1）输入设计要做好：原始数据格式设计、输入数据校验功能设计。<br />
（3.2）输出设计要做好：确定输出方式、输出设备的选择、代码设计、文件设计。<br />
5、代码指的是用来替代实体属性值的符号或记号。<br />
代码种类：<br />
（1）序码：用自然数编码；<br />
（2）分组码：将代码分成若干组，每一组表示一个特定的含义；<br />
（3）助记码：一般采用文字、字符、数字或三者的结合；<br />
（4）尾数码：用末尾的数字代替编码；<br />
（5）缩写码：如用km代表kilometer等。<br />
6、代码设计的原则：<br />
（1）既满足客观需要，又满足系统功能的需要；<br />
（2）用意单纯，代码代表的对象要具有唯一性；<br />
（3）编码要有系统性，尽量使代码中的每一位都具有一定的实际意义；<br />
（4）易于扩充，为扩展留出余地；<br />
（5）编码要等长，尽量采用已经公布的同类标准代码。<br />
7、代码设计的步骤：<br />
（1）确定代码化的对象；<br />
（2）确定代码的使用范围与时限；<br />
（3）编码及校验方法的设计；<br />
（4）编制代码并生成代码表，编写相关的代码格式描述书和说明书。</p>
<p>&nbsp;</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/24/1412909.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:34 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（八）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284525.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:33:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284525.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284525.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284525.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284525.html</trackback:ping><description><![CDATA[<p>第八章 物理数据模型（Physical Data Model）</p>
<p><br />
4、定义表检查约束的名称<br />
表检查约束是保证表级数据完整性的一种重要手段。建立表的检查约束后，在数据库中将生成相应的表的约束，DBMS会根据建立的约束检查数据的完整性。<br />
表的强制约束设置方法：双击视图中的表格，弹出Table Properties窗口，点击左下角的More&gt;&gt;，出现更多的选项卡，选择Check选项卡，在里面定义约束的名称。<br />
列的强制约束的设置方法：表的特性窗口，找到Columns，单击Porperties，出现Column Properties弹出窗口，再选择Standard Checks选项卡，选择定义你要的约束。<br />
5、创建计算列<br />
计算列的值是由其它列的值通过一定的表达式计算产生的，<br />
步骤：<br />
（1）打开表特性窗口；<br />
（2）单击Columns选项卡，单击空行或Add a Row工具；<br />
（3）在Name和Code列中键入名称，单击应用按钮；<br />
（4）双击新增列的行首箭头，打开列的特性窗口；<br />
（5）选择Computed复选框，标记该列为计算列，单击Detail选项卡；<br />
（6）在Computed expression内，直接键入简单的计算表达式。<br />
注意：不是所有的DBMS都支持计算列。<br />
6、键的约束名<br />
可以帮助我们识别和定义键约束，为数据库生成过程中修改键约束提供了很多方便。<br />
主键约束名可以使用变量%TABLE%，定义方法如下：<br />
（1）在模型中双击一个表，在打开的表特性窗口，单击keys选项卡；<br />
（2）选择一个主键，单击Properties工具，打开主键特性窗口；<br />
（3）在Constraint name框键入名称，单击&#8220;确定&#8221;。<br />
外键约束名可以使用4个变量：%REFRNAME%（参照的名称）、%REFRCODE%（参照的代码）、%PARENT%（父表的代码）和%CHILD%（子表的代码）。<br />
候选键约束名可以使用3个变量：%AK%（候选键的代码）、%AKNAME%（候选键的名称）、%TABLE%（表的代码）。<br />
7、域<br />
列的数据类型可从列表中直接选择，也可以把列附加到域上。<br />
在PDM中，使用域有助于识别信息的类型，易于使不同表中列的数据特征标准化。<br />
域为列定义了一组有效的值。<br />
域可关联到Data Type、Check、Rule和Mandatory等信息。<br />
7.1）域特性：包括Name、Code、Comment、Data Type、Length、Precision、Mandatory、Identity、With default、Profile等基本特性。<br />
其中：<br />
Mandatory：表示使用该域的所有列的值是强制的；<br />
Identity：表示使用该域的列值自动增益（仅用于Sybase10/11和SQL Server）；<br />
With default：表示当使用该域的列被插入空值时，列的值被赋予默认值；（仅用于Ingres、DB2、SQLBase、Xdb、Datacom和OpenIngres）；<br />
Profile：表示为使用该域的列分配测试数据定义文件。<br />
7.2）创建域<br />
方法：Model－－&gt;Domains，填入数据。<br />
1）指定域的数据类型、长度和精度；<br />
2）修改域特性；<br />
3）使用抽象数据类型<br />
抽象数据类型Abstract Data Type（ADT）是用户定义的数据类型。<br />
ADT中既可以包含数据类型，还可以包含特定的功能。<br />
逆向工程一个包含抽象数据类型的数据库后，抽象数据类型会自动增加到抽象数据类型列表中。<br />
在PDM中，只有抽象数据类型存在于抽象数据类型列表中，才能成为域和列的有效数据类型。<br />
在PDM中不能建立java类，只能指定一个抽象数据类型作为java类，然后把它连接到OOM模型中的java类。建立连接后，就可以在PDM中存取java类特性。<br />
建立连接时，需要在抽象数据类型表中指定OOM中要连接的java类的名称和代码，并且在当前工作空间中打开OOM。<br />
抽象数据类型的特性：Name、Code、Comment、Owner、Type等。<br />
Type：定义抽象数据类型包含的组。<br />
根据抽象数据类型的不同，还包括：Data type、Length、Precision、Size（对array有效）、连接的类名（对于java类型有效）、包含类声明的文件名和路径。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/16/1388106.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:33 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（七）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284523.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284523.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284523.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284523.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284523.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284523.html</trackback:ping><description><![CDATA[<p>第八章 物理数据模型（Physical Data Model）</p>
<p><br />
1、PDM与DBMS的关系<br />
建立物理数据模型的主要目的是要将CDM（概念数据模型）生成特定数据库管理系统下的SQL脚本，PDM是SQL脚本的图形化表示。<br />
PDM能在特定的DBMS中建立用于存放信息的数据结构，数据库SQL脚本根据DBMS的不同而不同。<br />
其中包括三类数据库语言：<br />
（1）数据定义语言（Data Definition Language）DDL<br />
（2）数据操纵语言（Data Manipulate Language）DML<br />
（3）数据控制语言（Data Control Language）DCL<br />
PowerDesigner的PDM以42种以上的DBMS为基础，为每一种DBMS均建立了扩展名为xdb的定义文件，用户也可生成新的定义文件。<br />
当建立新的PDM时，必须选择一种DBMS的定义文件，它是PDM生成数据库SQL脚本的语法模板与语言规范。<br />
DBMS：对数据进行存储、管理、处理和维护的数据库系统软件。<br />
2、表、列及键<br />
2.1、表Table：数据库中用来保存信息的一种数据结构。<br />
表分为长期保存信息的表和临时表。<br />
长期保存信息的表：是PDM设计的主要对象。<br />
临时表：是在DBMS运行时在内存中建立的表，主要用来存放中间交换数据，DBMS停止时，它自动消失。<br />
PDM的表可以由CDM中的实体通过模型的内部生成而产生。<br />
列Column：是组成表的基本单元，一个表由多个列组成，每个列都有一个数据类型。<br />
PDM中的列相当于数据库表中的列。CDM中的实体属性通过模型内部生成可以转换成PDM表中的列。<br />
键Key：表中可以独立地唯一标识每一条记录的一个或多个列的集合。<br />
每个键都可以在目标数据库中生成唯一索引或唯一约束。<br />
PDM支持三种键：<br />
（1）主键（Primary Key）：用来唯一表示表中一条记录的一个或多个列的集合，它由CDM中的主标识符转换产生。<br />
（2）候选键（Alternate Key）：用来唯一表示表中一条记录的一个或多个列的集合，它由CDM中的次标识符转换产生。<br />
（3）外键（Foreign Key）：是与其它表连接的公共列，这个列通常是其它表的主键。<br />
3、表、列的特性<br />
3.1、表的特性有：Name、Code、Comment、Owner、Number、Generate、Type等基本特性。<br />
Name：表的名称；<br />
Code：表达代码；<br />
Comment：说明；<br />
Owner：表的所有者；<br />
Number：表将要存放的记录数；<br />
Generate：表示是否在应用系统数据库中生成一个真正的表；<br />
Type：包括Dimension和Fact两种类型。<br />
还有其它的特性：<br />
Check：表检查约束；<br />
Script：表的SQL脚本；<br />
Preview：预览表的SQL脚本；<br />
Options：表的物理选项；<br />
Version Info：表的版本信息；<br />
Notes：表的注释。<br />
3.2、列的特性<br />
每个列包含Name、Code、Comment、Table、Data type、Displayed、Length、Precision、Identity、Domain、Computed、Primary key、Foreign key、Mandatory、With default等基本特性。<br />
Table：表示列所属的表；<br />
Displayed：表示该列在图形窗口中显示；<br />
Identity：表示列中的数据自动增益；<br />
Domain：表示列所关联的域名；<br />
Computed：表示该列是有其它列的值通过一定的表达式计算出来的；<br />
Mandatory：表示该列必须被赋值，不能为空；<br />
With default：表示当增加一行新数据时该列将自动被赋予一个默认值。<br />
其它特性：<br />
选项卡Detail：表示通用数据约束；<br />
（1）Null Values：表示允许空值列个数的百分比；<br />
（2）Distinct Values：表示允许不同值的列的个数的百分比；<br />
（3）Average Length：表示列值的平均长度；<br />
（4）Test data parameters：中的<br />
&nbsp; （4.1）Profile允许使用字符型、数字型或日期/时间型；<br />
&nbsp; （4.2）Computed expression：表示计算表达式；</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/15/1385423.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:32 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（五）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284521.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284521.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284521.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284521.html</trackback:ping><description><![CDATA[<p>第十章 面向对象模型</p>
<p><br />
7、设计组件图<br />
1）组件图（Component Diagram）：描述了软件组件以及它们之间的依赖关系。<br />
组件图市组件的视图，通过组件图可以使软件的开发、维护、分类、发现组件变得更加容易。<br />
软件组件可以是源代码组件、二进制组件或可执行组件，它主要反映了软件系统的静态作用。<br />
1.1）源代码组件可以是一个源代码文件或者是一个包对应的若干个源代码文件。<br />
1.2）二进制组件可以是一个目标码文件、静态的或动态的库文件。<br />
1.3）可执行组件可以是处理器上运行的一个可执行的程序单位，即可执行程序。<br />
2）定义组件<br />
设计组件时，要定义它的接口和实现类。<br />
而利用组件构造新组件时，新应用系统的开发者则仅能使用已有组件的接口。<br />
组件可以用任何一种开发语言实现，如：java中，可以执行EJB、servlets和JSP组件。<br />
组件的默认版型（Stereotype）有五种：<br />
《Document》表示组件是一般的文档文件；<br />
《Executable》表示组件是可执行的文件；<br />
《File》表示组件是一般的文件；<br />
《Library》表示组件是静态或动态库文件；<br />
《Table》表示组件是数据库中的表。<br />
可创建新的版型Stereotype。<br />
组件的操作实在组件的接口Interface中声明的。<br />
3）定义组件的接口和类<br />
组件暴露于外界的界面称为接口，组件通过接口对外提供服务。<br />
每个组件都包括一个或多个接口，组件也可能使用其它组件提供的接口。<br />
接口是外界对象访问组件的入口点，其它组件和类都可使用组件。<br />
如果组件之间通过接口发生依赖，那么这些组件之间可以相互替代。<br />
组件的接口可与组件在同一模型中，也可在不同的模型中。<br />
通常，组件包含一个或多个类，以及一个或多个接口，组件的类中通常包含一个主类，并通过类来实现组件的功能，其它组件可通过接口来使用这个组件。<br />
一个典型的组件包含若干内部类和一些包中的类，也可包含一些小组件。<br />
4）为组件创建类图<br />
一个组件只能包含一个类图，为组件创建类图可使该组件中相关联的类和接口有一个完整的视图。<br />
组件修改后，相应的类图也应该修改。<br />
为组件创建类图的方法：右键单击组件符号，从弹出的快捷菜单中选择Create/Update Class Diagram，出现专为该组件创建的类图。<br />
5）将组件配置成节点<br />
节点（Node）使部署图（Deployment Diagram）中的重要概念，它代表软件系统中的一个物理位置，在这个物理位置上包含了多个组件来共同完成相关的任务，所以把一个或多个组件配置成节点，对于建立部署图具有重要的意义。<br />
把一个或多个组件配置成节点，实际上就是在节点内部创建一个或多个组件的实例。<br />
菜单Tools－－&gt;Deploy Component to Node上可以把组件配置成节点。<br />
6）定义概化<br />
概化关系表达了一般元素（父元素）与特殊元素（子元素）之间的关系，子元素继承了父元素的特性，还拥有自己的特性。<br />
定义组件间的概化关系同定义用例或类间的概化关系。<br />
7）定义依赖<br />
当两个组件之间存在相互依赖的关系时，改变被依赖的组件将影响到依赖的组件。<br />
组件和接口之间不能创建依赖。<br />
用工具板上的Dependency工具创建。<br />
组件的依赖同用例图、类图的依赖。 </p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/13/1381837.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:32 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（六）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284522.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284522.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284522.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284522.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284522.html</trackback:ping><description><![CDATA[<p>&nbsp;第十章 面向对象模型</p>
<p><br />
8、定义部署图<br />
1）部署图（Deployment Diagram）可用来描述系统硬件的物理拓扑结构，以及在此结构上运行的软件。<br />
部署图可以显示节点的拓扑结构、通信路径、节点上运行的组件实例。<br />
相比其它视图，部署图可以给出更清晰的系统视图。<br />
2）定义节点<br />
节点（Node）是部署图中的一个重要的物理元素，它代表一个处理源、真实的物理单元或配置（计算机、打印机等）的物理位置。<br />
节点的符号是一个立方体。<br />
节点中不能包含其它节点，但可以包含组件和文件对象。<br />
2.1）节点的特性<br />
Network address特性表示了节点的地址或机器名。<br />
Component Instances上可以定义组件实例。<br />
2.2）定义节点图<br />
节点图可用来详细描述节点包含的对象间的相互关系，是对节点内容更详细的描述。<br />
它包含：组件实例、文件对象等。<br />
在配置图中，按下Ctrl同时双击节点符号，在图形窗口中打开一个默认的部署图，则在浏览器窗口的Node节点下的这个节点前面出现一个加号。具有节点图的节点称为父节点。<br />
3）定义组件实例<br />
组件实例是在节点上运行的组件的一个实例，它在节点中起着非常重要的作用，它与组件之间存在着密切的关系，而文件对象与组件之间又存在说明性的关系。<br />
组件实例与组件的符号、特性基本相同。<br />
如果把组件附加到一个节点上，则在节点中产生一个组件实例。<br />
从浏览器窗口把组件拖到部署图中，系统将自动产生一个与该组件关联的组件实例。<br />
4）定义文件对象<br />
文件对象可以是一个位图文件、文本文件或其它任何类型的文件。<br />
5）定义节点间的关联<br />
节点间的关联表示节点间的相互通信。<br />
6）定义依赖<br />
节点间的依赖表达了两个节点之间的依存关系，改变被依赖节点的特性将影响到依赖节点的特性。<br />
此处的依赖同用例图、类图、组件图中的依赖。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/14/1383517.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:32 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（四）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284520.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:31:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284520.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284520.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284520.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284520.html</trackback:ping><description><![CDATA[<p>&nbsp;第十章 面向对象模型（二）</p>
<p>4、设计协作图<br />
1）OOM中的协作图非常有用，它说明了角色、对象之间的通信连接，以及它们之间的消息发送。<br />
协作图可以用来说明一个操作的执行，一个用例的执行，或仅仅是系统中某一环节的接口。它设计了对象之间交互的一个实例。<br />
2）协作图与时序图传达的信息是相同的，它们之间的主要区别是协作图机制在活动着的对象上，它表现的是相互协作的对象之间的消息传递，而时序图则侧重于在某种特定的情形下对象之间传递消息的时序性。<br />
协作图中的对象与对象图、时序图中的对象相同。<br />
协作图中的角色的定义、特性与用例图、时序图中的角色完全一致，并且角色还可以在协作图、用例图和时序图中共享。<br />
3）协作图转换为时序图<br />
有两种方法：<br />
（1）在同一个包中创建一个与已存在的协作图同一级别的时序图，右键单击时序图图形窗口的空白处，从弹出菜单中选择diagram－&gt;Show Symbols，从打开的窗口选择协作图对象。<br />
（2）在协作图中选择菜单Tools－&gt;Execute Commands－&gt;Edit/Run scripts，在打开的窗口，单击open，再次打开一个窗口，选择\POWERDESIGNER12\VBScript文件夹的CollaborationToSequence.vbs文件，执行它。</p>
<p>5、设计状态图<br />
1）状态图描述了一个特定的对象在其生命周期内所有可能的状态，以及由于各种事件发生而引起的状态之间的转移。<br />
子状态图描述了一个状态的分解情况，它详细描述了父状态的复合行为。<br />
系统对子状态图中的每个元素都要进行完整性检查。<br />
子状态图中不允许创建包。<br />
2）状态图转变为符合状态<br />
用于描述处于复杂状态的相互联系。<br />
3）定义起始状态：符号是一个实心圆点。<br />
4）定义状态的动作：在状态属性中设置。<br />
预先定义的动作事件有：entry、do、exit。<br />
动作既可以与状态State关联，也可以与转移Transition关联。<br />
（1）在状态State上创建动作<br />
（2）在转移Transition上创建动作：即在属性Trigger Action中，键入动作的名称。<br />
5）定义转移Transition<br />
6）定义事件<br />
预先定义的动作事件有：entry、do、exit。<br />
7）定义连接点<br />
连接点Junction Point可用来合并和分离几个转移的路径。<br />
连接点的图形符号是一个空心的圆圈。<br />
8）定义结束状态：状态的终节点，用一个圆圈中间一个实心圆点来表示。<br />
一个状态图允许有多个结束状态，可用来分别表示不同情况的分支节点。</p>
<p>6、设计活动图<br />
1）活动图Activity Diagram 主要用于系统分析，它描述系统的行为，显示系统中动作之间的转移。<br />
活动图一般从开始节点开始，经过若干动作后，最后到达结束节点。<br />
活动图是简化的状态图，重点说明了活动间经过的操作和过程。<br />
活动Activity只有一个动作Action，活动的转移有一个相应的触发事件。<br />
活动图可用来描述用例、包和类的行为，它把活动描述成正在执行的操作，活动代表了一个完整的动作，即它代表了一个类或用例内部的行为。<br />
2）活动图可在模型或包中创建，也可在复合活动中创建子活动图。<br />
在模型或包中创建的多个活动图之间是相互独立的。<br />
活动图可以转换成复合活动。<br />
3）子活动图描述一个复合活动的分解，并详细描述父活动的合成情况。<br />
子活动图中不允许创建包。<br />
4）活动图中的起点和终点与状态图中的起始状态和结束状态的定义、特性完全相同。<br />
5）定义活动Activity和定义复合活动：复合活动选中（Composite）<br />
6）定义对象状态Object State<br />
7）对象状态的对象属性<br />
8）定义判断<br />
判断Decision是一种特殊的活动，可用于表示流程中的判断后各种可能的不同的活动分支。<br />
8.1）定义条件分支<br />
可连接多个转移。<br />
8.2）定义归并<br />
用归并可表示几个转移分支进入同一条路径的情况。<br />
9）定义同步<br />
同步表示两个或多个病发活动之间的同步。<br />
同步用一条水平的粗实线裱糊四，且可以旋转成水平或垂直方向。<br />
同步分：<br />
（1）分叉同步：一个源活动被几个目标活动取代的过程。<br />
（2）汇合同步：几个源活动被一个目标活动取代的过程。<br />
10）定义组织单元<br />
组织单元Organization Unit可以代表一个公司、系统、组织、用户或角色等。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/10/1377519.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:31 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（三）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284519.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:30:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284519.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284519.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284519.html</trackback:ping><description><![CDATA[<p>第十章 面向对象模型<br />
1、模型元素之间的连接关系有：关联Association、概化Generalization、依赖Dependency、实现Realization、聚合Aggregation、组合Combination。其中，聚合和组合是关联的一种特殊形式。<br />
（1）关联Association：用于描述模型元素之间的连接，只要两个模型元素之间存在相互通信的关系，它们之间就存在关联关系。<br />
关联关系可以是单向的，但一般为双向的。<br />
（2）概化Generalization：又称继承，指一个模型元素的所有信息能被另一个模型元素继承。<br />
继承了其它模型元素的模型元素中不仅可以拥有属于自己的信息，而且还拥有了被继承模型元素中的信息。<br />
（3）依赖Dependency：描述两个模型元素之间语义上的连接关系，其中一个模型元素是独立的。另一个是非独立的。<br />
在这种联系中，改变独立元素将影响到非独立元素的语义。<br />
（4）如果模型元素之间的关系具有&#8220;整体与部分&#8221;的特点，则这种关联称为聚合或组合。<br />
聚合关系用Has a句型表示，组合关系用Be a part of句型表示。<br />
（5）实现Realization：用于表示同一事务的两种描述之间的关系。<br />
如：对同一事务的描述有精确描述和简单描述，就可以用实现关系对这两种描述进行协调。<br />
2、用例图Use Case Diagram<br />
用例图仅从角色使用系统的角度描述系统中的信息，即站在系统的外部观察系统的功能，它定义了系统的需求。<br />
用例图的目标是使参与到，每一个用例中的角色，都能看到系统的功能。<br />
系统是用例图的一部分，系统的边界说明用例图的应用范围。<br />
用例代表一个完整的功能。UML中的用例是动作方法的集合。<br />
3、设计时序图<br />
1）时序图描述了在特定周期内UML对象的消息传递情况，同时还描述了UML对象之间的相互作用的行为，并详细说明了类、接口，以及它们可能使用的操作行为。<br />
时序图可描述一次典型涉及到类图中的类的交互，也可在需求分析期间规范用例的行为，简化用例的描述。<br />
时序图基于时间，并按时序流阐明UML对象的作用。<br />
一个或多个时序图可用来阐明UML对象间的相互作用，一个相互作用即代表一个用例。<br />
一个典型的时序图分为一个主时序图和多个独立的子时序图。<br />
2）在时序图中定义角色<br />
时序图中的角色定义与用例图中的角色定义完全相同，而且角色在用例图和时序图中起着相同的作用，它们之间可以共享。<br />
在时序图中，角色带有生命线，并且角色本身和它的生命线不能分离出来。<br />
3）定义消息<br />
消息是对象之间的通信，它携带着保证活动正常进行的信息，以及收到的消息后产生的结果。<br />
消息有一个发送者、一个接收者和一个动作。<br />
消息显示为从一个对象生命线到另一个对象生命线之间的一条带箭头的直线，消息带有名称。<br />
消息产生时，需要首先产生一个激活期（Activation）。</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/09/1374899.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:30 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（二）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284518.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:30:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284518.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284518.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284518.html</trackback:ping><description><![CDATA[<p>《PowerDesigner软件工程技术》笔记（一）<br />
1、UML2.0规范定义了5类9种图形和3种模型管理图<br />
（1）功能模型：从用户的角度描述系统的功能，通常在描述需求时使用，在系统分析过程中随着对系统认识的加深而不断改进。Use Case Diagram<br />
（2）静态模型：描述系统的静态特征和结构。Class Diagram, Object Diagram<br />
（3）行为模型：描述系统的动态行为和组成对象之间的交互关系。Activity Diagram，State Diagram<br />
（4）动态模型：描述对象或类之间的交互关系。Sequence Diagram，Collaboration Diagram<br />
（5）实现模型：描述系统的实现。Component Diagram，Deployment Diagram<br />
（6）模型管理图：UML2.0规范中，针对整个系统设置的3种图形，这些图形表达了整个或部分系统的情况。Package Diagram，Subsystems Diagram，Models Diagram<br />
2、软件的分析设计有三条路径：<br />
第一条，从面向对象的分析开始，依次建立用例图、时序图、类图、组件图、活动图、对象图、协作图、部署图及状态图，再由类图转化为CDM、PDM。<br />
第二条，从结构化分析开始，依次产生BPM、CDM、PDM，再把CDM或PDM转化为类图，再补充其它UML图。<br />
第三条，前两者的结合。<br />
BPM 业务流程模型 Business Process Model<br />
CDM 概念数据模型 Conceptual Data Model<br />
PDM 物理数据模型 Physical Data Model<br />
FEM 自由模型 Free Model<br />
OOM 面向对象模型 Oriented Object Model<br />
BPM、FRM、CDM、PDM、OOM之间可以相互传递模型数据，称为内部模型生成。<br />
PDM可以生成数据库SQL脚本及用户数据库结构；<br />
类图可以生成应用程序代码；<br />
上述也可反向进行，称为逆向工程Reverse Engineering。<br />
3、快捷方式的概念<br />
同类模型或同一个模型的不同包之间需要共享一个对象时，可以采用复制的方法，但是用快捷方式更好，因为在修改共享对象定义的同时，修改所有的快捷方式。<br />
快捷方式关联的对象称为目标，目标对象所在的模型称为目标模型。<br />
快捷方式分为内部快捷方式和外部快捷方式，内部快捷方式存在于一个不同包中，外部快捷方式存在于同类的不同模型中。<br />
BPM、FRM、CDM、PDM、OOM中具有图形符号的模型对象都能产生内部或外部快捷方式，也能产生快捷方式的快捷方式。只有在模型的内部才能重复使用数据项快捷方式。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/11/07/1371069.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:30 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工程 工具之二—— PowerDesigner v12（一）</title><link>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284517.html</link><dc:creator>London2012</dc:creator><author>London2012</author><pubDate>Sun, 28 Jun 2009 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284517.html</guid><wfw:comment>http://www.blogjava.net/chenjiajin/comments/284517.html</wfw:comment><comments>http://www.blogjava.net/chenjiajin/archive/2009/06/28/284517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenjiajin/comments/commentRss/284517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenjiajin/services/trackbacks/284517.html</trackback:ping><description><![CDATA[<p>PowerDesigner v12</p>
<p><br />
1、特性:<br />
（1）业务过程建模：用图示模型实现设计或建模；<br />
（2）数据建模：利用基于可靠方法、两级（概念上和物理上）关系数据库建模，设计并生成数据库模型；还支持数据仓库建模；<br />
（3）对象建模：用UML完成设计和分析，利用定制的生成器，自动地生成源代码；<br />
（4）企业版本库：可查询共享工作组里所有成员的模型和信息。<br />
2、业务处理模型Business Process Model：主要用在需求分析阶段，任务是理清系统的功能，得出系统的逻辑模型。<br />
3、概念数据模型Conceptual Data Model：主要用在系统开发的数据库设计阶段，按用户的观点来对数据和信息进行建模，并用E-R图（实体－联系 图）来体现。<br />
其主要功能有：<br />
（1）以E-R图的形式组织数据；<br />
（2）检验数据设计的有效性和合理性；<br />
（3）生成物理数据模型（PDM）；<br />
（4）生成面向对象模型（OOM）；<br />
（5）生成可定制的模型报告。<br />
4、物理数据模型Physical Data Model：提供了系统初始设计所需的基础元素及关系。<br />
其主要功能有：<br />
（1）可将数据库的物理设计结果从一种数据库移植到另一种数据库；<br />
（2）可利用逆向工程把已存在的数据库物理结构更新生成物理模型或概念模型；<br />
（3）可以生成可定制的模型报告；<br />
（4）可以转换为OOM；<br />
（5）完成多种数据库的详细物理设计。<br />
5、面向对象模型Object-oriented Model:利用UML的图形来描述系统结构的模型，从不同角度表现系统的工作状态。<br />
其主要功能有：<br />
（1）利用UML的用例图Use Case Diagram、时序图Sequence Diagram、类图Class Diagram、构件图Component Diagram、活动图Activity Diagram等来建立面向对象模型OOM，从而完成系统的分析和设计；<br />
（2）利用类图生成不同语言的源文件，或利用逆向工程将不同类型的源文件转换成相应的类图；<br />
（3）利用逆向工程将面向对象模型OOM生成概念数据模型CDM和物理数据模型PDM。<br />
6、业务处理模型BPM<br />
BPM与PowerDesigner其它模块之间的关系：<br />
（1层）系统分析&nbsp; ——————业务处理模型BPM<br />
（2层）系统设计&nbsp; ——————概念数据模型CDM和面向对象模型OOM<br />
（3层）数据库实现——————物理数据模型PDM<br />
7、一些概念<br />
域：是某个或某些属性的取值范围，域在定义之后，可以被多个实体的属性共享使用。<br />
业务规则：反映了信息系统所描述对象的特殊的数据完整性约束。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/chszs/archive/2006/10/25/1350994.aspx</p>
<img src ="http://www.blogjava.net/chenjiajin/aggbug/284517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenjiajin/" target="_blank">London2012</a> 2009-06-28 22:29 <a href="http://www.blogjava.net/chenjiajin/archive/2009/06/28/284517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>