Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
UML-Èí¼þÉè¼ÆÄ£Ê½¼°Ó¦ÓÃ
 
×÷Õߣº¿ìÀÖµÄСС³ÌÐòÔ³
  2616  次浏览      30
 2021-5-28 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÉè¼ÆÄ£Ê½µÄ»ù±¾¸ÅÄî¡¢Éè¼ÆÄ£Ê½×ñÑ­µÄÔ­Ôò¡¢¾­µäÉè¼ÆÄ£Ê½¼°Ó¦ÓÃ
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Ò»¡¢Äܲ¥·Å¸÷ÖÖÉùÒôµÄÈí¼þ²úÆ·(Àí½â¿ª-±ÕÔ­Ôò(Open-Closed Principle,OCP¨C¶ÔÀ©Õ¹¿ª·Å-¶ø¶ÔÐ޸ĹرÕ)¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

Ààͼ£º

Sound.java£º

public interface Sound {
public abstract void playSound();
}

Simulator.java:

public class Simulator {
Sound sound;
public void setSound(Sound sound) {
this.sound=sound;
}
public void play() {
if(sound!=null) {
sound.playSound();
} else {
System.out.println("ûÓпɲ¥·ÅµÄÉùÒô");
}
}
}

Dog.java:

public class Dog implements Sound {
public void playSound() {
System.out.println("ÍôÍô...ÍôÍô");
}
}

Violin.java:

public class Violin implements Sound {
public void playSound() {
System.out.println("СÌáÇÙ.Áº×£");
}
}

Application.java

public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.setSound(new Dog());
simulator.play();
simulator.setSound(new Violin());
simulator.play();
}
}

¶þ¡¢¼òµ¥¹¤³§Ä£Ê½¨CÅ®æ´ÔìÈË¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

Å®æ´¼ÜÆðÁË°ËØÔ¯£¨¼¼ÊõÊõÓ½¨Á¢¹¤³§£©£¬¿ªÊ¼ÔìÈË¡£

¹ý³ÌÈçÏ£ºÏÈÄóÄà°Í³ÉÈËÐΣ¬ÔÙ·ÅÈë°ËØÔ¯À￾£¬×îºóÈÓµ½µØÉϳɳ¤¡£Ê±¼ä¿¾¶ÌÁË£¬Ôì³öÁË¡°°×ÖÖÈË¡±£»Ê±¼ä¿¾³¤ÁË£¬Ôì³öÁË¡°ºÚÖÖÈË¡±£»Ê±¼ä¿¾µÃ²»³¤²»¶Ì£¬Ôì³öÁË¡°»ÆÖÖÈË¡±¡£

Ààͼ£º

Human.java:

public interface Human {
public void talk();
}

HumanFactory.java:

public class HumanFactory {
public static Human createHuman(String s) {
Human human=null;
if(s.equals(new String("whiteHuman")))
human=new WhiteHuman();
if(s.equals(new String("yellowHuman")))
human=new YellowHuman();
return human;
}
}

YellowHuman.java:

public class YellowHuman implements Human {

public void talk() {
System.out.println("ÄúºÃ£¡");
}
}

BlackHuman.java:

public class BlackHuman implements Human {

public void talk() {
System.out.println("ºÚºð£¡");
}
}
 

WhiteHuman.java:

public class WhiteHuman implements Human {

public void talk() {
System.out.println("Hello!");
}
}
 

NvWa.java:

public class NvWa {
public static void main(String [] args) {
Human human=HumanFactory.createHuman("yellowHuman");
human.talk();
}
}

 

Èý¡¢¹¤³§·½·¨Ä£Ê½¨CÅ®æ´ÔìÈË¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

Ààͼ£º

Human.java:

public interface Human {
public void talk();
}

HumanFactory.java:

public interface HumanFactory {
public Human createHuman();
}

YellowHuman.java:

public class YellowHuman implements Human {

public void talk() {
System.out.println("ÄúºÃ£¡");
}
}

WhiteHuman.java:

public class WhiteHuman implements Human {

public void talk() {
System.out.println("Hello!");
}
}

BlackHuman.java:

public class BlackHuman implements Human {

public void talk() {
System.out.println("ºÙºÙ");
}
}

YellowHumanF.java:

public class YellowHumanF implements HumanFactory {

public Human createHuman() {
return new YellowHuman();
}
}

BlackHumanF.java:

public class BlackHumanF implements HumanFactory {

public Human createHuman() {
return new BlackHuman();
}
}

WhiteHumanF.java:

public class WhiteHumanF implements HumanFactory {

public Human createHuman() {
return new WhiteHuman();
}
}

NvWa.java:

public class NvWa {
public static void main(String[] args) {
HumanFactory humanFactory=null;
humanFactory=new WhiteHumanF();
Human human=humanFactory.createHuman();
human.talk();
}
}

ËÄ¡¢ÊÊÅäÆ÷ģʽ¨C½»Á÷µçתֱÁ÷µç¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

Óû§¼ÒÀïÏÖÓÐһ̨ϴÒ»ú£¬Ï´Ò»úʹÓý»Á÷µç£¬ÏÖÔÚÓû§ÐÂÂòÁËһ̨¼Òô»ú£¬Â¼Òô»úÖ»ÄÜʹÓÃÖ±Á÷µç¡£ÓÉÓÚ¹©µçϵͳ¹©¸øÓû§¼ÒÀïµÄÊǽ»Á÷µç£¬Òò´ËÓû§ÐèÒªÓÃÊÊÅäÆ÷½«½»Á÷µçת»¯Ö±Á÷µç¹©Â¼Òô»úʹÓá£

Ààͼ£º

DirectCurrent.java:

public interface DirectCurrent {
public String giveDirectCurrent();
}

AlternateCurrent.java:

public interface AlternateCurrent {
public String giveAlternateCurrent();
}

ElectricAdapter.java:

public class ElectricAdapter implements DirectCurrent {
AlternateCurrent out;
ElectricAdapter(AlternateCurrent out) {
this.out=out;
}
public String giveDirectCurrent() {
String m=out.giveAlternateCurrent(); //ÏÈÓÉoutµÃµ½½»Á÷µç
StringBuffer str=new StringBuffer(m);
for (int i=0; i<str.length(); i++) //½«½»Á÷µçתΪֱÁ÷µç
if(str.charAt(i)=='0') str.setCharAt(i,'1');
m=new String(str);
return m; //·µ»ØÖ±Á÷µç
}
}

PowerCompany.java:

public class PowerCompany implements AlternateCurrent {
public String giveAlternateCurrent() {
return "10101010101010101010";
}
}

Application.java

public class Application {
public static void main(String[] args) {
AlternateCurrent aElectric = new PowerCompany(); //½»Á÷µçaElectric
Wash wash=new Wash();
wash.turnOn(aElectric); //Ï´Ò»úʹÓý»Á÷µçaElectric
DirectCurrent dElectric=new ElectricAdapter(aElectric); //½«½»Á÷µçÊÊÅä³ÉÖ±Á÷µç
Recorder recorder=new Recorder();
recorder.turnOn(dElectric); //¼Òô»úʹÓÃÖ±Á÷µçdElectric
}
}
class Wash {
String name;
Wash() { name = "Ï´Ò»ú"; }
public void turnOn(AlternateCurrent a) {
String s = a.giveAlternateCurrent();
System.out.println(name+"ʹÓý»Á÷µç£º\n"+s);
System.out.println("¿ªÊ¼Ï´ÒÂÎï¡£");
}
}
class Recorder { //¼Òô»úʹÓÃÖ±Á÷µç
String name;
Recorder() { name = "¼Òô»ú"; }
public void turnOn(DirectCurrent a) {
String s=a.giveDirectCurrent();
System.out.println(name+"ʹÓÃÖ±Á÷µç£º\n"+s);
System.out.println("¿ªÊ¼Â¼Òô¡£");
}
}

Îå¡¢²ßÂÔģʽ¨CÆÀ·Ö·½°¸¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

ÔÚ¶à¸ö²ÃÅиºÔð´ò·ÖµÄ±ÈÈüÖÐ,ÿλ²ÃÅиøÑ¡ÊÖÒ»¸öµÃ·Ö,Ñ¡ÊÖµÄ×îºóµÃ·ÖÊǸù¾ÝÈ«Ìå²ÃÅеĵ÷ּÆËã³öÀ´µÄ¡£Çë¸ø³ö¼¸ÖÖ¼ÆËãÑ¡ÊÖµÃ·ÖµÄÆÀ·Ö·½°¸£¨²ßÂÔ£©,¶ÔÓÚij´Î±ÈÈü,¿ÉÒÔ´ÓÄãµÄ·½°¸ÖÐÑ¡ÔñÒ»ÖÖ·½°¸×÷Ϊ±¾´Î±ÈÈüµÄÆÀ·Ö·½°¸¡£

Ààͼ£º

Strategy.java:

public interface Strategy {
public double computerAverage(double []a);
}

AverageScore.java:

public class AverageScore {
Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy=strategy;
}
public double getAverage(double []a) {
return strategy.computerAverage(a);
}
}

StrategyA.java:

public class StrategyA implements Strategy {
public double computerAverage(double []a) {
double score=0,sum=0;
for(int i=0;i<a.length;i++) {
sum=sum+a[i];
}
score=sum/a.length;
return score;
}
}

StrategyB.java:

public class StrategyB implements Strategy {
public double computerAverage(double []a) {
if(a.length<=2)
return 0;
double score=0,sum=0;
Arrays.sort(a); //ÅÅÐòÊý×é
for (int i=1; i<a.length-1; i++) {
sum=sum+a[i];
}
score=sum/(a.length-2);
return score;
}
}

Application:

public class Application {
public static void main(String[] args) {
AverageScore game=new AverageScore();
game.setStrategy(new StrategyA());
double []a={9.12,9.25,8.87,9.99,6.99,7.88};
double aver=game.getAverage(a);
System.out.println(aver);
}
}

Î塢״̬ģʽ¨C×Ô¶¯ÊÛ»õ»ú¡£Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

¿§·È×Ô¶¯ÊÛ»õ»ú¹²ÓÐ3ÖÖ״̬£¬·Ö±ðÊÇ¡°Óп§·È£¬ÎÞÈËͶ±Ò¡±¡¢¡°Óп§·È£¬ÓÐÈËͶ±Ò¡±ºÍ¡°ÎÞ¿§·È¡±¡£¿§·È×Ô¶¯ÊÛ»õ»úÓÐÁ½¸ö·½·¨£ºneedAnCoin( )ºÍsellCoffee( )¡£

¿§·È×Ô¶¯ÊÛ»õ»úµÄĬÈϳõʼ״̬ÊÇ¡°Óп§·È£¬ÎÞÈËͶ±Ò¡±¡£µ±¿§·È×Ô¶¯ÊÛ»õ»ú´¦ÓÚ¡°Óп§·È£¬ÎÞÈËͶ±Ò¡±×´Ì¬Ê±£¬µ÷ÓÃsellCoffee( )·½·¨½«ÏÔʾ¡°ÐèͶһԪӲ±Ò£¬²Å¿ÉÒԵõ½Ò»±­¿§·È¡±£¬²¢±£³Öµ±Ç°µÄ״̬£»µ÷ÓÃneedAnCoin( )·½·¨½«ÏÔʾ¡°¿§·È»úÀﱻͶÈëÁËÒ»ÔªÓ²±Ò¡±£¬È»ºó¿§·È×Ô¶¯ÊÛ»õ»ú½«´¦ÓÚ¡°Óп§·È£¬ÓÐÈËͶ±Ò¡±×´Ì¬£¬´Ëʱ£¬Èç¹ûµ÷ÓÃsellCoffee( )·½·¨½«ÏÔʾ¡°ËͳöÒ»±­¿§·È¡±£¬È»ºó¿§·È×Ô¶¯ÊÛ»õ»ú½«´¦ÓÚ¡°Óп§·È£¬ÎÞÈËͶ±Ò¡±×´Ì¬»ò¡°ÎÞ¿§·È¡±×´Ì¬£»µ±¿§·È°×¶¯ÊÛ»õ»ú´¦ÓÚ¡°ÎÞ¿§·È¡±×´Ì¬Ê±£¬µ÷ÓÃgiveAnCupCoffee( )·½·¨½«ÏÔʾ¡°Ã»Óп§·ÈÁË£¬Ç벦111111·þÎñµç»°¡±£¬µ÷ÓÃneedAnCoin( )·½·¨½«ÏÔʾ¡°Í¶±ÒÎÞЧ£¬Í˻أ¡¡±

ÇëʹÓÃ״̬ģʽģÄâ¿§·È×Ô¶¯ÊÛ»õ»ú¡£

Ààͼ

State.java:

public abstract class State{
int coffeeCount; //¼Ç¼һ¹²ÓжàÉÙ±­¿§·È
public abstract void giveAnCupCoffee();
public abstract void comeInCoin();
}

AutoCoffeeMachine.java:

public class AutoCoffeeMachine {
State haveCoffeeNoCoin,haveCoffeeAndCoin,haveNotCoffee;
State state;
AutoCoffeeMachine( ){
haveCoffeeNoCoin=new HaveCoffeeNoCoin(this);
haveCoffeeAndCoin=new HaveCoffeeAndCoin(this);
haveNotCoffee=new HaveNotCoffee(this);
haveCoffeeNoCoin.coffeeCount=3;
state=haveCoffeeNoCoin; //ÉèÖÃÊÛ»õ»ú³õʼ״̬
}
public void sellCoffee( ){ state.giveAnCupCoffee( ); }
public void needAnCoin( ){ state.comeInCoin( ); }
public void setState(State state){ this.state=state; }
}

HaveCoffeeAndCoin.java:

public class HaveCoffeeAndCoin extends State{
AutoCoffeeMachine machine;
HaveCoffeeAndCoin(AutoCoffeeMachine machine){
this.machine=machine; }
public void giveAnCupCoffee( ){
int n=machine.haveCoffeeNoCoin.coffeeCount;
if(n>1) { n--;
System.out.println("ËͳöÒ»±­¿§·È");
machine.haveCoffeeNoCoin.coffeeCount = n;
machine.setState(machine.haveCoffeeNoCoin);
} else if(n==1) { n--;
System.out.println("ËͳöÒ»±­¿§·È");
machine.setState(machine.haveNotCoffee); }
}
public void comeInCoin( ){
System.out.println("Ŀǰ²»ÔÊÐíͶ±Ò");
}
}

HaveCoffeeNoCoin.java

public class HaveCoffeeNoCoin extends State{
AutoCoffeeMachine machine;
HaveCoffeeNoCoin(AutoCoffeeMachine machine){
this.machine=machine;
}
public void giveAnCupCoffee(){
System.out.println("ÐèͶÈëÒ»Ôª,²Å¿ÉµÃÒ»±­");
}
public void comeInCoin(){
System.out.println("ͶÈëÁËÒ»ÔªÓ²±Ò");
machine.setState(machine.haveCoffeeAndCoin); }
}

HaveNotCoffee.java:

public class HaveNotCoffee extends State{
AutoCoffeeMachine machine;
HaveNotCoffee(AutoCoffeeMachine machine){
this.machine=machine;
}
public void giveAnCupCoffee( ){
System.out.println("û¿§·ÈÁË,Ç벦111111");
}
public void comeInCoin( ){
System.out.println("Ͷ±ÒÎÞЧ£¬Í˻أ¡");
}
}

Application.java:

public class Application{
public static void main(String args[ ]){
AutoCoffeeMachine machine = new AutoCoffeeMachine( );
machine.sellCoffee( ); machine.needAnCoin( );
machine.sellCoffee( ); machine.needAnCoin( );
machine.sellCoffee( ); machine.needAnCoin( );
machine.sellCoffee( ); machine.needAnCoin( );
machine.sellCoffee( );
}
}

Ìå»á£º²ßÂÔģʽÓë״̬ģʽ¼«ÆäÏàËÆ£¬µ«ÊǶþÕßÓÐÆäÄÚÔڵIJî±ð£¬²ßÂÔģʽ½«¾ßÌå²ßÂÔÀ౩¶³öÈ¥£¬µ÷ÓÃÕßÐèÒª¾ßÌåÃ÷°×ÿ¸ö²ßÂԵIJ»Í¬Ö®´¦ÒÔ±ãÕýȷʹÓ᣶ø×´Ì¬Ä£Ê½×´Ì¬µÄ¸Ä±äÊÇÓÉÆäÄÚ²¿Ìõ¼þÀ´¸Ä±äµÄ£¬ÓëÍâ½çÎ޹أ¬¶þÕßÔÚ˼ÏëÉÏÓб¾ÖÊÇø±ð¡£

Æß¡¢Ä³ÓÎÏ·¹«Ë¾ÏÖÓû¿ª·¢Ò»¿îÃæÏò¶ùͯµÄÄ£ÄâÓÎÏ·£¬¸ÃÓÎÏ·Ö÷ҪģÄâÏÖʵÊÀ½çÖи÷ÖÖѼ×ӵķ¢ÉùÌØÕ÷¡¢·ÉÐÐÌØÕ÷ºÍÍâ¹ÛÌØÕ÷¡£ÓÎÏ·ÐèҪģÄâµÄѼ×ÓÖÖÀ༰ÆäÌØÕ÷ÈçϱíËùʾ¡£

ΪÁËÖ§³Ö½«À´Äܹ»Ä£Äâ¸ü¶àÖÖÀàѼ×ÓµÄÌØÕ÷£¬¾ö¶¨²ÉÓòßÂÔ(Strategy)ģʽ¡£ÊÔ»­³ö¶ÔÓ¦µÄÉè¼ÆÄ£Ê½µÄÀàͼ½á¹¹Í¼¡£²¢Ð´javaÎļþ¡¢±àÒëjavaÎļþ¡¢Ö´ÐÐclassÎļþ¡£

Ààͼ£º

FlyBehavior.java:

public interface FlyBehavior {
public void fly();
}

QuackBehavior.java:

public interface QuackBehavior {
public void quack();
}

Duck.java:

public abstract class Duck {
protected FlyBehavior flyBehavior;
protected QuackBehavior quackBehavior;
public void setFlyBehavior(FlyBehavior flyBehavior) {
this.flyBehavior = flyBehavior;
}
public void setQuackBehavior(QuackBehavior quackBehavior) {
this.quackBehavior = quackBehavior;
}
public void setAppearance(String appearance) {
this.appearance = appearance;
}
private String appearance;
public void fly() { flyBehavior.fly(); }
public void quack() { quackBehavior.quack(); }
public void display(){
System.out.println(appearance);
}
}

FlyWithWings.java:

public class FlyWithWings implements FlyBehavior {
public void fly() {
System.out.println("ʹÓóá°ò·ÉÐÐ");
}
}

FlyNoWay.java:

public class FlyNoWay implements FlyBehavior {
public void fly() {
System.out.println("²»ÄÜ·ÉÐÐ");
}
}

Quack.java:

public class Quack implements QuackBehavior {
public void quack() {
System.out.println("·¢³ö¡°¸Â¸Â¡±Éù");
}
}

QuackNoWay.java:

public class QuackNoWay implements QuackBehavior {
public void quack() {
System.out.println("²»ÄÜ·¢Éù");
}
}

Squeak.java:

public class Squeak implements QuackBehavior {
public void quack() {
System.out.println("·¢³öÏðƤÓë¿ÕÆøÄ¦²ÁÉù");
}
}

CottonDuck.java:

public class CottonDuck extends Duck{
CottonDuck() {
super();
super.setAppearance("°×É«");
super.setQuackBehavior(new QuackNoWay());
super.setFlyBehavior(new FlyNoWay());
}
}

MallardDuck.java:

public class MallardDuck extends Duck {
MallardDuck(){
super();
super.setAppearance("»Ò°×Óðë");
super.setQuackBehavior(new Quack());
super.setFlyBehavior(new FlyWithWings());
}
}

RedHeadDuck.java:

public class RedHeadDuck extends Duck{
RedHeadDuck() {
super();
super.setAppearance("»ÒÉ«ÖÆÃ«ºìÍ·");
super.setQuackBehavior(new Quack());
super.setFlyBehavior(new FlyWithWings());
}
}

RubherDuck.java:

public class RubherDuck extends Duck{
RubherDuck() {
super();
super.setAppearance("ºÚÏðÆ¤°×É«");
super.setQuackBehavior(new Squeak());
super.setFlyBehavior(new FlyNoWay());
}
}
   
2616 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
 
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
iPersonµÄ¹ý³Ì¹Û£ºÒª ¹ý³Ì or ½á¹û
¡°ÒÔÈËΪ±¾¡±µÄ¹¤³ÌÕÜѧ
ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
UML ͼ½â£ºË³Ðòͼ£¨ sequence diagram £©
UML ͼ½â£º¶ÔÏóͼ£¨ class diagram £©
×îпγÌ
»ùÓÚUMLºÍEA½øÐÐϵͳ·ÖÎöÉè¼Æ
UML+EA+ÃæÏò¶ÔÏó·ÖÎöÉè¼Æ
»ùÓÚSysMLºÍEA½øÐÐϵͳÉè¼ÆÓ뽨ģ
UML + ǶÈëʽϵͳ·ÖÎöÉè¼Æ
ÁìÓòÇý¶¯µÄ½¨Ä£ÓëÉè¼Æ
³É¹¦°¸Àý
ijµçÐÅÔËÓª¹©Ó¦ÉÌ Ó¦ÓÃUML½øÐÐÃæÏò¶ÔÏó·ÖÎö
·é»ðͨÐÅ UML½øÐÐÃæÏò¶ÔÏóµÄ·ÖÎöÉè¼Æ
Î÷ÃÅ×Ó UMLÓëǶÈëʽÈí¼þ·ÖÎöÉè¼Æ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ ´Óϵͳµ½Èí¼þµÄ·ÖÎö¡¢Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ