ʹÓÃRational Rose ½øÐÐUML¿ÉÊÓ»¯½¨Ä£
±¾¿Î³ÌÒÔijËù´óѧµÄ¡¶ÔÚÏßÑ¡Ð޿γ̹ÜÀíϵͳ¡·ÎªÀýÀ´½éÉÜÔõÑùʹÓÃRational Rose ½øÐÐUML¿ÉÊÓ»¯½¨Ä£¡£
×îÖյݽ»Èý¸öÎļþ£ºregist.mdl, regist.sql, VBµÄ´úÂë»òJavaµÄ´úÂë¡£ ÄÚÈÝ£º
Ò»¡¢ ϵͳÃèÊö ................................................................................................................... 2 ¶þ¡¢ ÓÃÀýͼ(Use Case View) ............................................................................................ 2 Èý¡¢ »î¶¯Í¼(Activity Diagram)(½¨Á¢Ñ¡Ð޿γÌĿ¼±í) .................................................. 5 ËÄ¡¢ Ïà¹ØµÄ°üºÍÀàÒÔ¼°¼òµ¥Ààͼ ................................................................................. 11 Îå¡¢ ÓÃÀýʵÏÖͼ(Use Case Realization Diagram) ......................................................... 13 Áù¡¢ ˳Ðòͼ(Sequence Diagram)ÓëºÏ×÷ͼ(Collaboration Diagram) ............................. 15 Æß¡¢ ÀàͼÖеĹØϵ(Relationships) ................................................................................. 18 °Ë¡¢ ÀàͼÖеIJÙ×÷ÓëÊôÐÔ ............................................................................................. 20 ¾Å¡¢ ÀàͼÖеķº»¯ ......................................................................................................... 22 Ê®¡¢ ״̬ͼ(Statechart Diagram) .................................................................................... 26 ʮһ¡¢ ¹¹¼þͼ(Component Diagram) .......................................................................... 31 Ê®¶þ¡¢ ²¿Êðͼ(Deployment Diagram) ......................................................................... 34 Ê®Èý¡¢ Éú³É³ÌÐò´úÂë .................................................................................................. 35 Ê®ËÄ¡¢ ´´½¨Êý¾Ý¿âÉè¼Æ .............................................................................................. 40 Ê®Îå¡¢ ¸½¼þ1£º×ª»»ºóµÄVisual Basic³ÌÐò ............................................................. 44 Ê®Áù¡¢ ¸½¼þ2£º×ª»»ºóµÄJava³ÌÐò .......................................................................... 45 Ê®Æß¡¢ ¸½¼þ3£ºÉú³ÉµÄSQLÓï¾ä .............................................................................. 46
1
Ò»¡¢ ϵͳÃèÊö
1£®´óѧ½ÌʦѡÔñ±¾Ñ§ÆÚÒª½ÌÊڵĿγ̣¬Ã¿Î»½Ìʦ×î¶àÖ»ÄÜÉϱ¨4Ãſγ̡£
2£®½Ìʦѡ¿Î½áÊøºó£¬½ÌÎñ¹ÜÀíÈËÔ±½øÐÐе÷ºÍÈ·ÈϽÌʦµÄ¿Î³Ì£¬²¢´´½¨±¾Ñ§ÆڵĿγÌĿ¼±í£¬ÏòѧÉú¹«²¼¡£
2£®Ñ§ÉúÌîд¿Î³ÌÑ¡ÐÞ±í£¬Ã¿¸öѧÉú×î¶àÑ¡ÐÞ4Ãſγ̣»Ã¿ÃÅÑ¡Ð޿γ̵ÄѧÉúÊý×î¶àΪ10ÈË£¬×îÉÙΪ3ÈË¡£ÈËÊý´ïµ½10ÈËʱ£¬Í£Ö¹Ñ§ÉúµÇ¼Ç×¢²á´ËÃſγ̣» 3£®Ñ§ÉúÑ¡¿Î½áÊøºó£¬ÏµÍ³×Ô¶¯È¡ÏûÈËÊýÉÙÓÚÈýÈ˵Ŀγ̡£
4£®Ñ§Éú°´×îÖÕµÄ¿Î³Ì±íµ½²ÆÎñ´¦°ìÀíÊÕ·ÑÊÖÐø£¨billing system£©¡£ 5£®½Ìʦ¿É²éѯËù½Ì¿Î³ÌµÄѧÉú»¨Ãû²á(roster)¡£ 6£®½ÌÎñ¹ÜÀíÈËԱά»¤Ñ§Éú¡¢½ÌʦºÍ¿Î³ÌµÄÐÅÏ¢¡£
¶þ¡¢ ÓÃÀýͼ(Use Case View)
1£®¡¶ÔÚÏßÑ¡Ð޿γ̹ÜÀíϵͳ¡·ÖеÄÖ´ÐÐÕß(Actors)
? ×¢²áÑ¡Ð޿γ̵ÄѧÉú£» ? ½ÌÊÚÑ¡Ð޿γ̵ĽÌʦ£»
? ½ÌÎñ¹ÜÀíÈËÔ±±ØÐë»ã×ÜÑ¡Ð޿γÌÇé¿ö£¬ÖÆ×÷¿Î³Ì±í£»
? ½ÌÎñ¹ÜÀíÈËÔ±±ØÐëά»¤¹ØÓڿγ̡¢½ÌʦºÍѧÉúµÄËùÓÐÐÅÏ¢£» ? ²ÆÎñ¹ÜÀíϵͳ´Ó±¾ÏµÍ³ÖÐÈ¡³öÊÕ·ÑÐÅÏ¢¡£ 2£®Ê¹ÓÃRational Rose ´´½¨Ö´ÐÐÕß(Actors)
ͼ1
2
1) ÓÒ»÷browser¿òÖеÄUse Case View°ü£¬µ¯³ö¿ì½Ý²Ëµ¥£» 2) Ñ¡ÔñNew¡ª¡ªActorÏ
3) ÊäÈëÖ´ÐÐÕßµÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä)
4) Èç¹ûÎĵµ´°¿Ú²»¿É¼û£¬Ñ¡ÔñÆÁÄ»ÉÏ·½µÄView¡ª¡ªDocumentation²Ëµ¥£» 5) ÔÚbrowser¿òÖÐÑ¡ÖÐËùÐèÖ´ÐÐÕߣ»
6) ½«¹â±êÖÃÓÚÎĵµ¿òÖУ¬ÊäÈëÏàÓ¦Îĵµ¡£ 3£®¡¶ÔÚÏßÑ¡Ð޿γ̹ÜÀíϵͳ¡·ÖеÄÓÃÀý(Use Case)
? ×¢²áÑ¡Ð޿γÌ(ѧÉú)£»
? Ñ¡Ôñ½ÌÊÚµÄÑ¡Ð޿γÌ(½Ìʦ)£» ? Ë÷È¡¿Î³Ì»¨Ãû²á(Roster)(½Ìʦ)£» ? ά»¤¿Î³ÌÐÅÏ¢(½ÌÎñ¹ÜÀíÈËÔ±)£» ? ά»¤½ÌʦÐÅÏ¢(½ÌÎñ¹ÜÀíÈËÔ±)£» ? ά»¤Ñ§ÉúÐÅÏ¢(½ÌÎñ¹ÜÀíÈËÔ±)£» ? ´´½¨¿Î³ÌĿ¼(½ÌÎñ¹ÜÀíÈËÔ±)£» 4£®Ê¹ÓÃRational Rose ´´½¨ÓÃÀý(Use Case)
ͼ2
1) 2) 3) 4) 5) 6)
ÓÒ»÷browser¿òÖеÄUse Case View°ü£¬µ¯³ö¿ì½Ý²Ëµ¥£» Ñ¡ÔñNew¡ª¡ªUse CaseÏ
ÊäÈëÓÃÀýµÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä)
Èç¹ûÎĵµ´°¿Ú²»¿É¼û£¬Ñ¡ÔñÆÁÄ»ÉÏ·½µÄView¡ª¡ª Documentation²Ëµ¥£» ÔÚbrowser¿òÖÐÑ¡ÖÐËùÐèÓÃÀý£»
½«¹â±êÖÃÓÚÎĵµ¿òÖУ¬ÊäÈëÏàÓ¦Îĵµ¡£
5£®Ê¹ÓÃRational Rose ´´½¨Ö÷ÓÃÀýͼ(Main Use Case Diagram)
1) Ë«»÷browser¿òÖеÄUse Case View°üÖеÄMainÌõÄ¿£¬´ò¿ªÖ÷ÓÃÀýͼ£» 2) µ¥»÷Ñ¡ÖÐbrowser¿òÖеÄÖ´ÐÐÕߣ¬²¢½«ÆäÍϵ½Ö÷ÓÃÀýͼÖУ» 3) Öظ´µÚ2)²½£¬Ö±µ½Íê³ÉËùÐèµÄ¹¤×÷Ϊֹ£»
3
4) 5) 6) 7)
µ¥»÷Ñ¡ÖÐbrowser¿òÖеÄÓÃÀý£¬²¢½«ÆäÍϵ½Ö÷ÓÃÀýͼÖУ» Öظ´µÚ4)²½£¬Ö±µ½Íê³ÉËùÐèµÄ¹¤×÷Ϊֹ£»
ÔÚ¹¤¾ßÌõÖÐÑ¡Ôñµ¥Ïò¹ØÁª(Unidirectional Association)ͼ±ê£»
µ¥»÷Ò»¸öÖ´ÐÐÕߣ¬²¢Íϵ½ÏàÓ¦µÄÓÃÀýÉÏ£»»òµ¥»÷Ò»¸öÓÃÀý£¬²¢Íϵ½ÏàÓ¦µÄÖ´ÐÐÕßÉÏ¡£
Select courses to teachStudentProfessorRegister for coursesRequest course rosterBilling SystemMaintain student informationMaintain course informationMaintain professor informationRegistrarCreate course catalogue
ͼ3
4
Èý¡¢ »î¶¯Í¼(Activity Diagram)(½¨Á¢Ñ¡Ð޿γÌĿ¼±í)
ͼ4
1£®Ê¹ÓÃRational Rose ´´½¨»î¶¯Í¼(Activity Diagram)
1) ÓÒ»÷browser¿òÖеÄUse Case View°ü£¬µ¯³ö¿ì½Ý²Ëµ¥£» 2) Ñ¡ÔñNew¡ª¡ªActivity DiagramÏ
3) ÊäÈë»î¶¯Í¼µÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 4) Ë«»÷browser¿òÖеÄActivity DiagramÃû³Æ£¬´ò¿ª¸Ãͼ¡£ 2£®Ê¹ÓÃRational Rose ´´½¨»î¶¯(Activity)
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñActivityͼ±ê£»
2) Ôڻͼ(Activity Diagram)Öе¥»÷Òª·ÅÖû(Activity)µÄλÖã» 3) ÊäÈë»î¶¯Ãû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 4) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionͼ±ê£»
5) µ¥»÷Ò»¸ö»î¶¯£¬²¢½«ÆäÍϵ½ÏàÓ¦µÄ»î¶¯ÉÏ¡£
5
ͼ5
3£®Ê¹ÓÃRational Rose ´´½¨¾ö²ßµã(Decision Points)
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñDecisionͼ±ê£»
2) Ôڻͼ(Activity Diagram)Öе¥»÷Òª·ÅÖþö²ßµãµÄλÖã» 3) ÊäÈë¾ö²ßµÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 4) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionͼ±ê£»
5) µ¥»÷Ò»¸ö»î¶¯£¬²¢½«ÆäÍϵ½ÏàÓ¦µÄ¾ö²ßµãÉÏ£» 6) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionͼ±ê£»
7) µ¥»÷Ò»¸ö¾ö²ßµã£¬ÍÏÖÁ¹Õ½Ç´¦µ¥»÷×ó¼ü£¬ÔÙ½«ÆäÍϵ½ÏàÓ¦µÄ»î¶¯ÉÏ£» 8) Ë«»÷´ËÌõת»»Ïߣ¬´ò¿ª¹æ¸ñÉ趨¿ò£» 9) Ñ¡ÔñDetail ±êÇ©Ò³£»
10) ÔÚGuard Condition¿òÖÐÊäÈëÌõ¼þNo; 11) µã°´OK°´Å¤£¬¹Ø±Õ¹æ¸ñÉ趨¿ò£»
12) ÔÚ´ËÌõת»»ÏßÉϵ¥»÷×ó¼ü£¬Ñ¡ÖдËÌõת»»Ïߣ»
13) µã°´ÆÁÄ»ÉÏ·½µÄFormat:Line Style:Rectilinear²Ëµ¥£» 14) µ÷ÕûÕâÌõÏߣ¬Ê¹ÆäÃÀ¹Û¡£
6
ͼ6
4£®Ê¹ÓÃRational Rose ´´½¨Í¬²½Ìõ(Synchronization Bar)
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñHorizontal Synchronizationͼ±ê£»
2) Ôڻͼ(Activity Diagram)Öе¥»÷Òª·ÅÖÃͬ²½ÌõµÄλÖã» 3) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionͼ±ê£» 4) Íê³ÉÏÂͼ¡£
7
ͼ7
5£®Ê¹ÓÃRational Rose ´´½¨Ó¾µÀ( Swim lanes)
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñSwim lanesͼ±ê£»
2) Ôڻͼ(Activity Diagram)Öе¥»÷Òª·ÅÖÃÓ¾µÀµÄλÖã» 3) Ë«»÷Ó¾µÀ£¬´ò¿ª¹æ¸ñ˵Ã÷¿ò£» 4) ÔÚName¿òÖÐÊäÈëÓ¾µÀµÄÃû×Ö£» 5) µã°´OK°´Å¤£¬¹Ø±Õ¹æ¸ñÉ趨¿ò£» 6) ¶ÔÓ¾µÀµÄ´óСλÖýøÐе÷Õû£»
7) ½«ËùÐèµÄ»î¶¯ºÍ±ä»»ÏßÍÏÖÁÐÂÓ¾µÀÖС£
8
ͼ8
6£®Ê¹ÓÃRational Rose ´´½¨Æðʼ»î¶¯ºÍÖÕÖ¹»î¶¯
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñÆðʼ»î¶¯»òÖÕÖ¹»î¶¯Í¼±ê£»
2) Ôڻͼ(Activity Diagram)Öе¥»÷Òª·ÅÖÃÆðʼ»î¶¯»òÖÕÖ¹»î¶¯µÄλÖã» 3) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionͼ±ê£»
4) µ¥»÷Æðʼ»î¶¯£¬Íϵ½ÏàÓ¦µÄ»î¶¯ÉÏ£¬»òÕßµ¥»÷Ò»¸ö»î¶¯£¬ÍÏÖÁÖÕÖ¹»î¶¯ÉÏ¡£
9
ͼ9
10
ËÄ¡¢ Ïà¹ØµÄ°üºÍÀàÒÔ¼°¼òµ¥Ààͼ
1£®ÔÚRational RoseµÄBrowser¿òÖд´½¨Àà(Class)
ͼ10
1) ÓÒ»÷browser¿òÖеÄLogica View£¬µ¯³ö¿ì½Ý²Ëµ¥£»
2) Ñ¡ÔñNew¡ª¡ªClassÏ
3) ÊäÈëÀàµÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 4) ÔÚËù½¨ÀàÉϵ¥»÷ÓÒ¼ü£¬µ¯³ö¿ì½Ý²Ëµ¥£»
5) Ñ¡ÔñOpen SpecificationÏѡÔñGeneral±êÇ©Ò³£» 6) ÔÚStereotype¿òÖÐÑ¡ÔñentityÀࣻ 7) µ¥»÷OK°´Å¤¹Ø±Õ¹æ¸ñ˵Ã÷¿ò¡£ ±ß½çÀà¡´Boundary Classes¡µ£º
? ¿ÉÓÃÀ´ËÜÔì²Ù×÷ÕßÓëϵͳ֮¼äµÄ½»»¥£» ? ¿ÉÓÃÀ´ÀíÇåÓû§ÔÚϵͳ±ß½çÉϵÄÐèÇó£» ? ¿ÉÉè¼Æ³éÏóµÄÓû§½çÃæ¶ÔÏó¡£ ¿ØÖÆÀà¡´Control Classes¡µ£º ? ¿Éе÷¶ÔÏóÖ®¼äµÄ½»Ò×£»
? ¿É½«Ê¹Óð¸ÀýµÄϸ½Ú²¿·Ö·â×°ÆðÀ´£» ? ¿É½«¸´ÔӵļÆËã»òÉÌÎñÂß¼·â×°ÆðÀ´¡£ ʵÌåÀà¡´Entity Classes¡µ£º ? ´ú±íÓÀ¾Ã±£´æµÄÐÅÏ¢£»
? ´ú±íE-RÄ£ÐÍÖ®ÖÐÈË¡¢Ê¡¢Ê±¡¢µØ¡¢Îï»ò¸ÅÄîµÄÐÅÏ¢¼°ÐÐΪ¡£
2£®ÔÚRational RoseµÄBrowser¿òÖд´½¨°ü(Packages)
1) ÓÒ»÷browser¿òÖеÄLogica View£¬µ¯³ö¿ì½Ý²Ëµ¥£» 2) Ñ¡ÔñNew¡ª¡ª PackageÏ
3) ÊäÈë°üµÄÃû×Ö£»(PeopleInfo°üÓÃÀ´´æ·ÅÓëÈËÔ±ÓйصÄÄÚÈÝ£»Interfaces°üÓÃÀ´
´æ·ÅÓë½çÃæÓйصÄÄÚÈÝ£»UniversityArtifactsÓÃÀ´´æ·ÅÓëѧУ¹¤¼þÓйصÄÄÚÈÝ¡£)
4) н¨Í¼ÖеÄÏà¹ØÀ࣬²¢ÉèÖÃÆäÏàÓ¦µÄÀà±ð£» 5) µ¥»÷Browser¿òÖеÄÀ࣬½«ÆäÍÏÖÁÏàÓ¦µÄ°üÖС£
11
ͼ11
3£®Rational RoseÖеÄÖ÷Ààͼ(Main Class Diagram)
1) Ë«»÷browser¿òLogica ViewÖеÄMainÀàͼÒÔ´ò¿ªÖ®£» 2) µ¥»÷Browser¿òÖеİü£¬½«ÆäÍϵ½MainÀàͼÉÏ£» 3) Öظ´µÚ2)²½£¬Íê³ÉÏÂͼ¡£
ͼ12
4£®ÔÚRational RoseÖд´½¨°üÖеÄÖ÷Ààͼ(Package Main Class Diagram)
1) Ë«»÷MainÀàͼÖеÄUniversity Artifacts°ü£¬rose½«´ò¿ªÕâ¸ö°ü£¬²¢´´½¨Õâ¸ö
°üµÄÖ÷Ààͼ(Package Main Class Diagram)£»
12
2) µ¥»÷Browser¿òÖеÄÀ࣬½«ÆäÍϵ½ÀàͼÉÏ£» 3) Öظ´µÚ2)²½£¬Íê³ÉÏÂͼ¡£
ͼ13
Îå¡¢ ÓÃÀýʵÏÖͼ(Use Case Realization Diagram)
1£®Ê¹ÓÃRational Rose ´´½¨Âß¼ÊÓͼÖеÄÓÃÀýͼ(Use Case Diagram)
ͼ14
1) ÓÒ»÷browser¿òÖеÄLogica View£¬µ¯³ö¿ì½Ý²Ëµ¥£» 2) Ñ¡ÔñNew¡ª¡ªUse Case DiagramÏ 3) ÊäÈëÓÃÀýͼµÄÃû×Ö¡°Realizations¡±£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä)
13
4) ÓÒ»÷browser¿òÖеÄLogica View£¬µ¯³ö¿ì½Ý²Ëµ¥£» 5) Ñ¡ÔñNew¡ª¡ª Use CaseÏ
6) ÊäÈëÓÃÀýµÄÃû×Ö£»(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 7) Ë«»÷н¨µÄÓÃÀý£¬´ò¿ªÓÃÀýµÄ¹æ¸ñÉ趨¿ò£»
8) µ¥»÷Stereotype¿ò£¬Ñ¡Ôñuse case realizationÑ¡Ï 9) ¹Ø±ÕÓÃÀýµÄ¹æ¸ñÉ趨¿ò£»
10) Öظ´4¡ª¡ª9²½£¬Ë«»÷¡°Realizations¡±£¬´ò¿ªÊµÏÖÓÃÀýͼ£» 11) ½«Ð½¨µÄʵÏÖÓÃÀýÍÏÈëͼÖУ¬ÈçÏÂͼ¡£
ͼ15
14
Áù¡¢ ˳Ðòͼ(Sequence Diagram)ÓëºÏ×÷ͼ(Collaboration Diagram)
1£®Ê¹ÓÃRational Rose ´´½¨Ë³Ðòͼ(Sequence Diagram)
ͼ16
1) ÓÒ»÷browser¿òÖеÄLogica ViewÖеġ°Maintain course information¡±ÊµÏÖÓÃ
Àý£¬µ¯³ö¿ì½Ý²Ëµ¥£»
2) Ñ¡ÔñNew¡ª¡ª Sequence DiagramÏ 3) ÊäÈë˳ÐòͼµÄÃû×Ö¡°Creat a course¡±£» 2£®ÔÚ˳ÐòͼÖд´½¨¶ÔÏóºÍÐÅÏ¢
1) Ë«»÷˳ÐòͼÃû³Æ£¬´ò¿ªË³Ðòͼ£»
2) ½«browser¿òUse CaseView°üÖеÄÖ´ÐÐÕß¡°Registrar¡±ÍÏÈëͼÖУ» 3) Ñ¡Ôñ¹¤¾ßÌõÖеġ°Object¡±Í¼±ê£»
4) µ¥»÷ͼÖзÅÖöÔÏóµÄλÖ㬲¢ÊäÈëÏàÓ¦µÄÃû×Ö£» 5) Öظ´3¡ª¡ª4²½£»
6) Ñ¡Ôñ¹¤¾ßÌõÖеġ°Object Message¡±Í¼±ê£» 7) ´ÓÐÅÏ¢·¢³öÕßÍÏÖÁÐÅÏ¢½ÓÊÕÕߣ» 8) ÊäÈëÐÅÏ¢µÄÃû×Ö£» 9) Öظ´6¡ª¡ª8²½¡£
15
ͼ17
3£®¸ø˳ÐòͼÖеĶÔÏó·ÖÅäÀà
1) µ¥»÷Ñ¡ÖÐBrowser¿òÖÐËùÐèµÄÀࣻ 2) ½«´ËÀàÍÏÖÁ˳ÐòͼÏàÓ¦µÄ¶ÔÏóÉÏ¡£
ͼ18
16
3£®½«Ë³Ðòͼת»»ÎªºÏ×÷ͼ
ͼ19
1) Ë«»÷˳ÐòͼÃû³Æ£¬´ò¿ªË³Ðòͼ£»
2) Ñ¡ÔñÆÁÄ»ÉÏ·½µÄ²Ëµ¥Browser¡ª¡ªCreate Collaboration Diagram£¬»òÕߵ㰴F5
¼ü£»
3) µ÷ÕûͼÖеĶÔÏóºÍÐÅÏ¢£¬Ê¹ÆäÃÀ¹Û¡£
17
Æß¡¢ ÀàͼÖеĹØϵ(Relationships)
1£®Ê¹ÓÃRational Rose ´´½¨¹Øϵ(Relationship)
ͼ20
1) ´ò¿ªUniversity Artifacts°üÖеÄMainÀàͼ£»
2) Ñ¡Ôñ¹¤¾ßÌõÖеġ°Association¡±Í¼±ê(Èô´Ëͼ±ê²»´æÔÚ£¬ÔòÓÒ»÷¹¤¾ßÌõ£¬Ñ¡Ôñ
CustomizeÏÆä¼ÓÈë)£»
3) µã°´ÀàͼÖеÄÒ»¸öÀ࣬ÍÏÖÁÁíÒ»¸öÀ࣬ÊäÈë¹ØϵµÄÃû³Æ£»
4) Ñ¡Ôñ¹¤¾ßÌõÖеġ°Aggregation¡±Í¼±ê(Èô´Ëͼ±ê²»´æÔÚ£¬ÔòÓÒ»÷¹¤¾ßÌõ£¬Ñ¡Ôñ
CustomizeÏÆä¼ÓÈë)£»
5) µã°´ÀàͼÖеÄÒ»¸öÕûÌåÀ࣬ÍÏÖÁÁíÒ»¸ö²¿·ÖÀ࣬ÊäÈë¹ØϵµÄÃû³Æ¡£
2£®Ê¹ÓÃRational Rose ´´½¨½ÇÉ«(Role)
18
ͼ21
1) н¨Ò»¸öPeople Info°üµÄMainÀàͼ£»
2) ÓÒ»÷¹ØϵÏß(¿¿½üÐèÒª´´½¨½ÇÉ«µÄÀàµÄÒ»¶Ë)£¬µ¯³ö¿ì½Ý²Ëµ¥£» 3) Ñ¡ÔñRole NameÏÊäÈë½ÇÉ«µÄÃû×Ö¡£
3£®Ôö¼Ó¶àÖضÈ
ͼ22
1) Ë«»÷¹ØϵÏߣ¬Ê¹Æ䵯³ö¹æ¸ñÉ趨¿ò£»
2) Ñ¡ÔñDetail±êÇ©Ò³(Role A Detail »òÕß Role B Detail)£» 3) ÔÚMultiplicity¿òÖÐÊäÈë»òÑ¡ÔñÏàÓ¦µÄ¶àÖضȣ» 4) µã°´OK°´Å¤£¬¹Ø±Õ¹æ¸ñÉ趨¿ò¡£ 4£®´´½¨°üÖ®¼äµÄ¹Øϵ
19
ͼ23
1) ´ò¿ªLogica ViewÖеÄMainÀàͼ£» 2) Ñ¡Ôñ¹¤¾ßÌõÖеġ°dependency¡±Í¼±ê£»
3) µã°´ÀàͼÖеÄÒ»¸ö¿Í»§°ü£¬ÍÏÖÁÁíÒ»¸ö¹©Ó¦°ü¡£
°Ë¡¢ ÀàͼÖеIJÙ×÷ÓëÊôÐÔ
ͼ24
20
1£®Ê¹ÓÃRational Rose ´´½¨ÊôÐԺͷ½·¨
1) ÓÒ»÷browser¿òLogica ViewÖÐUniversityArtifacts°üÖеÄÀ࣬µ¯³ö¿ì½Ý²Ëµ¥£» 2) Ñ¡ÔñNew¡ª¡ªAttributeÏÊäÈëÏàÓ¦µÄÃû×Ö£» 3) Öظ´1¡ª¡ª2²½£¬Íê³ÉÌí¼ÓÊôÐÔ£»
4) ÓÒ»÷browser¿òLogica ViewÖÐUniversityArtifacts°üÖеÄÀ࣬µ¯³ö¿ì½Ý²Ëµ¥£» 5) Ñ¡ÔñNew¡ª¡ªOperationÏÊäÈëÏàÓ¦µÄÃû×Ö£» 6) Öظ´4¡ª¡ª5²½£¬Íê³ÉÌí¼Ó²Ù×÷£» 2£®ÔÚÀàÖÐÔö¼ÓÁËÊôÐԺͲÙ×÷ºó¶ÔÀàͼµÄÓ°Ïì
1) ´ò¿ªUniversity Artifacts°üÖеÄMainÀàͼ£»
2) ½«Í¼ÖÐÏà¹ØÀàµÄÏÔʾ¸ÄΪlabel(ÓÒ»÷ÿһ¸öÀ࣬ѡÔñOptions: Stereotype
Display: Label²Ëµ¥);
3) ÀàͼÖÐÏàÓ¦µÄÊôÐÔÓë²Ù×÷×Ô¶¯±ä»¯ÎªÏÂͼ¡£
ͼ25
21
¾Å¡¢ ÀàͼÖеķº»¯
1£®Ê¹ÓÃRational Rose ´´½¨Ò»¸öÓзº»¯¹ØϵµÄÀàͼ
1) ÔÚPeople Info°üÖд´½¨Ò»¸ö¿ÕÀàͼGeneralization; 2) ´´½¨ÀàͼÖÐÏà¹ØµÄÀ࣬²¢½«Ïà¹ØµÄÀàÍÏÈëͼÖУ» 3) Ñ¡Ôñ¹¤¾ßÌõÖеġ°Generalization¡±Í¼±ê£» 4) µã°´ÀàͼÖеÄÒ»¸ö×ÓÀ࣬ÍÏÖÁÒ»¸ö¸¸Àࣻ 5) Öظ´µÚ4²½Íê³ÉÏÂͼ£»
ͼ26
6) ½«×ó±ßµÄ·º»¯¼ýÍ·ÍÏÖÁÓұߵķº»¯ÏßÉÏ£» 7) µ÷ÕûͼÐΡ£
22
ͼ27
2£®½«Óзº»¯¹ØϵµÄÀàͼ½øÐÐÀ©Õ¹
1) ½«Course OfferingÀàÍÏÈëͼÖУ¬²¢´´½¨¶ÔÓ¦µÄ¹ØÁªÏß¡¢½ÇÉ«¡¢¶àÖضÈ; 2) ΪÏà¹ØµÄÀà´´½¨ÊôÐÔ¡£
ͼ28
23
3£®½«Óзº»¯¹ØϵµÄÀàͼ½øÐÐÓÅ»¯
1) ÔÚBrowser¿òÖн«×ÓÀàÖеĹ«¹²ÊôÐÔÍÏÈ븸ÀàÖУ» 2) ½«×ÓÀàÖжàÓàµÄÊôÐÔɾȥ¡£
ͼ29
4£®½«Óзº»¯¹ØϵµÄÀàͼ½øÐжà²ã·º»¯
1) ÔÚPeople Info°üÖд´½¨Ïà¹ØµÄÀ࣬²¢ÍÏÈëͼÖУ» 2) ´´½¨¹ØϵÏß¡¢·º»¯ÏߺͶàÖضȡ£
24
ͼ30
25
Ê®¡¢ ״̬ͼ(Statechart Diagram)
1£®Ê¹ÓÃRational Rose ´´½¨×´Ì¬Í¼(Statechart Diagrams)
ͼ31
1) ÓÒ»÷browser¿òÖеÄCourseOfferingÀ࣬µ¯³ö¿ì½Ý²Ëµ¥£»
2) Ñ¡ÔñNew¡ª¡ªStatechart DiagramsÏ
3) ÊäÈë״̬ͼµÄÃû×Ö¡°CourseOffering States¡±¡£ 2£®Ê¹ÓÃRational Rose ´´½¨×´Ì¬(States)
ͼ32
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñStateͼ±ê£»
2) ÔÚ״̬ͼÖе¥»÷Òª·ÅÖÃ״̬µÄλÖã»
3) ÊäÈë״̬µÄÃû×Ö¡£(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä)
26
3£®Ê¹ÓÃRational Rose ´´½¨×´Ì¬×ª»»(State Transitions)
ͼ33
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñState Transitionsͼ±ê£» 2) µ¥»÷Æðʼ״̬£¬²¢ÍÏÖÁÏÂÒ»¸ö״̬£»
3) ÊäÈë״̬ת»»µÄÃû×Ö¡£(Èç³ö´í£¬¿ÉÓÃRenameÃüÁî¸ü¸Ä) 4£®Ê¹ÓÃRational Rose ´´½¨Æðʼ״̬
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñStartͼ±ê£»
2) ÔÚ״̬ͼÖе¥»÷Òª·ÅÖÃÆðʼ״̬µÄλÖã» 3) ÓÃ״̬ת»»Ïß½øÐÐÁ¬½Ó¡£
ͼ34
27
5£®Ê¹ÓÃRational Rose ´´½¨½áÊø״̬
ͼ35
1) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñStopͼ±ê£»
2) ÔÚ״̬ͼÖе¥»÷Òª·ÅÖýáÊø״̬µÄλÖã» 3) ÓÃ״̬ת»»Ïß½øÐÐÁ¬½Ó¡£
6£®Ê¹ÓÃRational Rose Ôö¼Ó״̬ת»»µÄϸ½Ú²¿·Ö
1) Ë«»÷ijÌõת»»Ïߣ¬´ò¿ª¹æ¸ñÉ趨¿ò£» 2) Ñ¡ÔñDetail ±êÇ©Ò³£»
3) ÔÚÏàÓ¦µÄ¿òÖÐÊäÈëaction(/ºóµÄÄÚÈÝ)¡¢guard condition([ ]ÀïµÄÄÚÈÝ)ÒÔ¼°·¢³ö
µÄsend(^ºóµÄÄÚÈÝ);
4) µã°´OK°´Å¤£¬¹Ø±Õ¹æ¸ñÉ趨¿ò¡£
28
ͼ36
7£®Ê¹ÓÃRational Rose Ôö¼Ó״̬µÄActions²¿·Ö
1) Ë«»÷ij¸ö״̬£¬´ò¿ª¹æ¸ñÉ趨¿ò£» 2) Ñ¡ÔñActions±êÇ©Ò³£»
3) ÓÒ»÷Actions¿òÖеÄÈÎһλÖ㬵¯³ö¿ì½Ý²Ëµ¥£» 4) Ñ¡ÔñInsertÏ½«´´½¨Ò»¸öÀàÐÍΪentryµÄaction£» 5) Ë«»÷Õâ¸öaction£¬µ¯³öactionµÄ¹æ¸ñÉ趨¿ò£»
29
ͼ37
6) ÔÚwhen¿òÖÐÉ趨ÏàÓ¦µÄÀàÐÍ£»
7) ÔÚtype¿òÖÐÉ趨£ºaction»òÕßsend event(ÓÃ^±íʾ); 8) ÊäÈëactionµÄÃû×Ö£¬»òeventµÄÐÅÏ¢£» 9) µã°´OK°´Å¤£¬¹Ø±ÕAction¹æ¸ñÉ趨¿ò¡£ 10) µã°´OK°´Å¤£¬¹Ø±Õ״̬¹æ¸ñÉ趨¿ò¡£
30
ͼ38
ʮһ¡¢ ¹¹¼þͼ(Component Diagram)
1£® ʹÓÃRational Rose ´´½¨Main¹¹¼þͼ(Component Diagram)
1) ÔÚBrowser¿òÖеÄComponent ViewÖд´½¨Í¼Öеĸ÷¸ö¹¹¼þ°ü£» 2) Ë«»÷Browser¿òÖеÄComponent ViewÖеÄMain¹¹¼þͼ£» 3) ½«Browser¿òÖеÄComponent ViewÖеĹ¹¼þ°üÍÏÈëͼÖУ» 4) ´´½¨°üÖ®¼äµÄÒÀÀµÏß¡£
31
ͼ39
2£®´´½¨University¹¹¼þ°üÖеĹ¹¼þ
1) Ë«»÷Main¹¹¼þͼÖеÄUniversity°ü£¬´ò¿ªÍ¼ÐΣ» 2) ÔÚ¹¤¾ßÌõÖÐÑ¡ÔñComponentͼ±ê£» 3) µ¥»÷ͼÖÐijһλÖ㬷ÅÖù¹¼þ£» 4) ÊäÈë¹¹¼þÃû³Æ¡£
ͼ40
3£®½«ÀàÓ³Éäµ½¹¹¼þÉÏ
32
ͼ41
1) 2) 3) 4) 5) 6)
ÓÒ»÷Browser¿òÖеÄCourseOffering¹¹¼þ£¬µ¯³ö¿ì½Ý²Ëµ¥£» Ñ¡ÔñOpen SpecificationÏ Ñ¡ÔñRealizes±êÇ©£»
ÓÒ»÷ËùÐèµÄÀ࣬µ¯³ö¿ì½Ý²Ëµ¥£» Ñ¡ÔñAssignÏ£¨·ÖÅ䣩
µã°´OK°´Å¤£¬¹Ø±Õ¹æ¸ñÉ趨¿ò¡£
33
Ê®¶þ¡¢ ²¿Êðͼ(Deployment Diagram)
1£®Ê¹ÓÃRational Rose ´´½¨²¿Êðͼ(Deployment Diagram)
1) Ë«»÷Browser¿òÖеIJ¿Êðͼ(Deployment Diagram)£»
2) Ñ¡Ôñ¹¤¾ßÌõÖеÄProcessorͼ±ê£¬²¢µ¥»÷ͼÖÐijһλÖã» 3) ÊäÈë½áµãµÄÃû×Ö£»
4) Ñ¡Ôñ¹¤¾ßÌõÖеÄConnectionͼ±ê£» 5) µã»÷ijһ½áµã£¬ÍÏÖÁÁíÒ»½áµã£» 6) Ñ¡Ôñ¹¤¾ßÌõÖеÄTextͼ±ê£» 7) ÔÚÏàÓ¦½áµãÏÂдÉÏÎÄ×Ö¡£
ͼ42
34
Ê®Èý¡¢ Éú³É³ÌÐò´úÂë
1£®Ê¹ÓÃRational RoseΪ¹¹¼þÉ趨³ÌÐòÉè¼ÆÓïÑÔ
ͼ43
1) ÓÒ»÷Browser¿òComponent ViewÖÐUniversity°üÖеÄCourseOffering¹¹¼þ£¬
µ¯³ö¿ì½Ý²Ëµ¥£»
2) Ñ¡ÔñOpen SpecificationÏ´ò¿ª¹¹¼þCourse OfferingµÄ¹æ¸ñÉ趨¿ò£» 3) ÔÚLanguage¿òÖÐÑ¡ÔñÏàÓ¦µÄÓïÑÔ£» 4) µã°´OK°´Å¤¹Ø±Õ¶Ô»°¿ò¡£
2£®½¨Ä£¸¨Öú¹¤¾ß£¨ÈçÐèÒªÉ趨£¬Ôò¿É½øÈ룬һ°ãÇé¿öÏ¿ÉÊ¡ÂÔ£©
1) ÓÒ»÷Browser¿òLogica ViewÖÐUniversity°üÖеÄCourse OfferingÀ࣬µ¯³ö¿ì
½Ý²Ëµ¥£¬Ñ¡ÔñModel AssistantÏ
2) ÈçÐèÒªÉ趨£¬Ôò¿É¸ü¸ÄÑ¡Ïһ°ãÇé¿öÏ¿ÉÊ¡ÂԴ˲½²Ù×÷£»
3) ±à³ÌÓïÑÔΪVisual Basicʱ£¬¼ûͼ44,Ç°ÌáÊÇϵͳ±ØÐë°²×°ÁËVB£»±à³ÌÓï
ÑÔΪJavaʱ£¬¼ûͼ45,Ç°ÌáÊÇϵͳ±ØÐë°²×°ÁËJDK¡£
35
ͼ44£º±à³ÌÓïÑÔΪVisual Basicʱ
36
ͼ45£º±à³ÌÓïÑÔΪJavaʱ
3£®Éú³É´úÂë
1) ÓÒ»÷Browser¿òComponent ViewÖÐUniversity°üÖеÄCourseOffering¹¹¼þ£¬
µ¯³ö¿ì½Ý²Ëµ¥£»
2) Ñ¡ÔñUpdate CodeÏ
37
ͼ46
3) Ñ¡ÖÐÏàÓ¦µÄcheck¿ò£¬µã»÷Next°´Å¤£»
ͼ47
38
4) µã»÷Finish°´Å¤£»
ͼ48
5) ÈçÓдíÎó£¬ÔòÏÔʾÏàÓ¦´íÎó£» 6) µã°´Close°´Å¤£¬¹Ø±Õ´°¿Ú¡£
39
Ê®ËÄ¡¢ ´´½¨Êý¾Ý¿âÉè¼Æ
1£®½«ÊµÌåÀàµÄpersistenceÊôÐÔÉèΪpersistent
±¾ÏµÍ³ÓÐËĸöʵÌåÀࣺStudent¡¢Professor¡¢Course¡¢CourseOffering£¬·Ö±ð½«ËüÃǵÄpersistenceÊôÐÔÉèΪpersistent¡£
ÒÔCourseΪÀý£¬Ë«»÷Browser¿òLogical ViewÖÐUniversityArtifactsÖÐCourseÀ࣬µ¯³öclass specification¶Ô»°¿ò£¬Ñ¡Ôñdetail tab£¬½«persistenceÊôÐÔÉèΪpersistent¡£
ͼ49
40
2£®Éú³ÉÊý¾ÝÄ£ÐÍ
½«UniversityArtifacts°üºÍPeopleInfo°üת³ÉÊý¾Ý¿âµÄÊý¾ÝÄ£ÐÍ¡£
ÒÔUniversityArtifactsΪÀý¡£ÓÒ»÷Browser¿òLogical ViewÖÐUniversityArtifacts°ü£¬µ¯³ö¿ì½Ý²Ëµ¥£¬Ñ¡ÔñData Modeler/ Transform to Data Model¡£µ¯³ö¶Ô»°¿ò£¬ÔÚDestination SchemaÖмüÈ롱db¡±£¬µã»÷¡±OK¡±¡£ÔÚBrowser¿òLogical ViewÖн«Éú³É¡±Schemas¡±°üºÍ¡°
¶ÔPeopleInfo°ü½øÐÐÏàͬ²Ù×÷£¬Éú³ÉT_Student, T_Professor, T_RegistrationUserÈý¸ötable.
ͼ50
41
3£®´´½¨Data Model Diagram
ÓÒ»÷Browser¿òÖÐLogical View/¡±Schemas¡±/¡°
ͼ51
Ë«»÷Main£¬´ò¿ª½øÐб༣¬½«Îå¸ötableÍϽødiagram£¬Éú³ÉERͼ¡£
ͼ52
42
4£®Éú³ÉSQLÓï¾ä
ÓÒ»÷Browser¿òÖÐLogical View/¡±Schemas¡±/¡°
Äã¿ÉÒÔÑ¡ÔñÉú³É±í¸ñcreate»òdropµÄSQLÓï¾ä¡£
ͼ53
43
Ê®Îå¡¢ ¸½¼þ1£º×ª»»ºóµÄVisual Basic³ÌÐò
Option Explicit
'##ModelId=3E2A1E9D0148 Implements Course
'##ModelId=3E2E13980177
Private mCourseObject As New UniversityArtifacts.Course /*ÓÉCourse ·º»¯¶øÀ´*/ '##ModelId=3E2A980002EE
Public Teacher As Professor /*ÓÉÉèÖýÇÉ«¶øÀ´*/ '##ModelId=3E2A9DAE0261
Public NewProperty2(3 To 10) As Student /*ÓÉÏÞ¶¨Ìõ¼þ¶øÀ´*/ '##ModelId=3E2A7BEB035D Public NewProperty As Course '##ModelId=3E2A826C0109
Public Sub getOffering()/*ÓÉgetOffering²Ù×÷¶øÀ´*/ End Sub
'##ModelId=3E2A827B0280
Public Sub addProfessor()/*ÓÉaddProfessor²Ù×÷¶øÀ´*/ End Sub
'##ModelId=3E2E139801F4
Private Sub Course_getOfferings()/*ÓÉ·º»¯¼Ì³Ð¶øÀ´*/ End Sub
'##ModelId=3E2E13980203
Private Sub Course_setProfessor()/*ÓÉ·º»¯¼Ì³Ð¶øÀ´*/ End Sub
'##ModelId=3E2E13980213
Private Property Set Course_(ByVal RHS As CourseOffering) End Property
'##ModelId=3E2E13980261
Private Property Get Course_() As CourseOffering End Property
'##ModelId=3E2E1F55030D Public Sub CourseOffering() End Sub
'##ModelId=3E2E3247038A
Private Property Set Course_theProfessorCourseManager(ByVal RHS As ProfessorCourseManager) End Property
'##ModelId=3E2E32480000
Private Property Get Course_theProfessorCourseManager() As ProfessorCourseManager End Property
'##ModelId=3E2E3248003E
44
Private Property Set Course_theCourseOffering(ByVal RHS As CourseOffering) End Property
'##ModelId=3E2E3248009C
Private Property Get Course_theCourseOffering() As CourseOffering End Property
Ê®Áù¡¢ ¸½¼þ2£º×ª»»ºóµÄJava³ÌÐò
//Source file: C:\\\\Program Files\\\\Rational\\\\RUPBuilder\\\\University\\\\CourseOffering.java package University;
public class CourseOffering extends Course /*ÓÉCourse ·º»¯¶øÀ´*/ {
private Course mCourseObject;
public Professor Teacher; /*ÓÉÉèÖýÇÉ«¶øÀ´*/ public Student NewProperty2[]; public Course NewProperty; /** @roseuid 3E2E1F55030D */ public CourseOffering() { } /**
* @roseuid 3E2A826C0109 */
public void getOffering()/*ÓÉgetOffering²Ù×÷¶øÀ´*/ { } /**
* @roseuid 3E2A827B0280 */
public void addProfessor()/*ÓÉaddProfessor²Ù×÷¶øÀ´*/ { } /**
* @roseuid 3E2E139801F4 */
private void Course_getOfferings()/*ÓÉ·º»¯¼Ì³Ð¶øÀ´*/ { } /**
* @roseuid 3E2E13980203 */
private void Course_setProfessor()/*ÓÉ·º»¯¼Ì³Ð¶øÀ´*/ {
45
} /**
* @param RHS
* @roseuid 3E2E13980213 */
private void Course_(CourseOffering RHS) { } /**
* @return CourseOffering * @roseuid 3E2E13980261 */
private CourseOffering Course_() {
return null; } }
Ê®Æß¡¢ ¸½¼þ3£ºÉú³ÉµÄSQLÓï¾ä
CREATE TABLE T_Course ( name SMALLINT NOT NULL, description SMALLINT NOT NULL, creditHours SMALLINT NOT NULL, T_Course_ID INTEGER NOT NULL, CONSTRAINT PK_T_Course7 PRIMARY KEY (T_Course_ID) );
CREATE TABLE T_CourseOffering ( T_CourseOffering_ID INTEGER NOT NULL, T_Course_ID INTEGER, T_RegistrationUser_ID INTEGER NOT NULL, COL_2 INTEGER NOT NULL, CONSTRAINT PK_T_CourseOffering8 PRIMARY KEY (T_CourseOffering_ID) );
CREATE TABLE T_RegistrationUser ( realname VARCHAR ( 255 ) NOT NULL, username VARCHAR ( 255 ) NOT NULL, password VARCHAR ( 255 ) NOT NULL, birthday DATE NOT NULL, gender SMALLINT NOT NULL, T_RegistrationUser_ID INTEGER NOT NULL, department INTEGER NOT NULL, CONSTRAINT PK_T_RegistrationUser11 PRIMARY KEY (T_RegistrationUser_ID)
46
);
CREATE TABLE T_Professor ( T_RegistrationUser_ID INTEGER NOT NULL, CONSTRAINT PK_T_Professor12 PRIMARY KEY (T_RegistrationUser_ID) );
CREATE TABLE T_Student ( T_RegistrationUser_ID INTEGER NOT NULL, CONSTRAINT PK_T_Student13 PRIMARY KEY (T_RegistrationUser_ID) );
CREATE INDEX TC_T_CourseOffering35 ON T_CourseOffering (COL_2);
CREATE INDEX TC_T_CourseOffering28 ON T_CourseOffering (T_Course_ID);
ALTER TABLE T_CourseOffering ADD CONSTRAINT FK_T_CourseOffering13 FOREIGN KEY (COL_2) REFERENCES T_Professor (T_RegistrationUser_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE T_CourseOffering ADD CONSTRAINT FK_T_CourseOffering8 FOREIGN KEY (T_Course_ID) REFERENCES T_Course (T_Course_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE T_CourseOffering ADD CONSTRAINT FK_T_CourseOffering10 FOREIGN KEY (T_RegistrationUser_ID) REFERENCES T_Professor (T_RegistrationUser_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE T_Professor ADD CONSTRAINT FK_T_Professor11 FOREIGN KEY (T_RegistrationUser_ID) REFERENCES T_RegistrationUser (T_RegistrationUser_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE T_Student ADD CONSTRAINT FK_T_Student12 FOREIGN KEY (T_RegistrationUser_ID) REFERENCES T_RegistrationUser (T_RegistrationUser_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
47