| ²é¿´: 255 | »Ø¸´: 3 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
p1801321½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
[ÖØ½ðÇóÖú]ÒÔÏÂÁ½´ó¶ÎµÄ·Òë
|
||
|
л¾øÈí¼þ·Ò룬²»¸ø½ð±Ò£¬·Ö¸ôÏßÉÏϸ÷15±Ò By and large, the approach worked well on the case study. Although we have not yet been able to assess the efficacy of design rules in ongoing development, we found the tool very helpful in extracting the architecture, identifying problems and checking the results of refactoring. Our experience confirmed the value of the two key features of DSM's: the hierarchical structure, and the partitioning algorithm. Without these features, we would not have been able to handle a code base even of this size; a boxand- line diagram extracted directly from the code is unintelligible. We had two kinds of problems. First, matrices, such as the DSM, while inherently more scalable a representation of relations than graphs, are not always easy to read. In particular, finding the cell that corresponds to a relationship between two elements has a greater cognitive overhead, and following the edges of a relation transitively requires going back and forth between row and column indices rather than simply following arrows along a path. With time, however, our proficiency at reading DSM's increased. Second, there were limitations of the underlying dependency model. Haystack's design involves two orthogonal classifications; while we could have constructed two separate DSM's, we would have liked to have been able to use the tool to understand the interplay of dependencies between the two views. Also, we occasionally wanted a more refined notion of dependency, which maps a client class to the class it uses at runtime rather than to the class it declares as a use in its code. There seems to be no fundamental reason why a richer dependency model (such as [6]) could not be incorporated into the tool. ------------------------------------------------------------------------- The importance of understanding dependencies between modules has also been understood and emphasized by other researchers. Our work is perhaps most similar to the work on the Reflexion Model Tool (RMT)[3]. Our design rules combine the reflexion map and the idealized model. When there are multiple, orthogonal views of the architecture this will make our design rules less succinct than the idealized model of RMT; on the other hand, when a single hierarchy is dominant, our design rules are likely to be simpler to express than the model and map of RMT together. We believe that our hierarchical matrix representation scales better than the graphical representation of RMT. The use of DSM algorithms for architectural discovery is a major benefit of our approach; it would be interesting to see how it might be incorporated into RMT. Hierarchical representations are, of course, not new. Tran et al. [4] examines systems in terms of their hierarchical decomposition, using Harel¡¯s higraphs. Heuristic algorithms for organizing a system into layers have been investigated in the context of the reverse engineering tool Rigi [16]. Rigi seems to be less flexible than LDM in allowing a mixture of manual and automatic organization, and in terms of its ability to scale. We have not been able to evaluate the effectiveness of Rigi¡¯s algorithms in comparison to the DSM algorithms, but such a study would be worthwhile. A number of tools are available for extracting dependencies from code, such as sa4j from IBM, OptimalJ from Compuware and JDepend from Clarkware Consulting. These do much the same as the frontend of LDM. Jackson [6] has proposed a more elaborate notion of dependence, in which interfaces are not treated as modules in their own right, but rather mediate dependencies. We plan to explore whether this notion might be useful in our context. A dependence-based view of software is, of course, only one of several useful views. In Kruchten¡¯s ¡°4+1¡± model of software architecture [8], our representation of the system corresponds roughly to the ¡®development view¡¯. |
» ²ÂÄãϲ»¶
ר˶310Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
081700»¯Ñ§¹¤³ÌÓë¼¼Êõ Ò»Ö¾Ô¸Öк£Ñó 323 Çóµ÷¼ÁѧУ
ÒѾÓÐ14È˻ظ´
085600£¬321·ÖÇóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Ò»Ö¾Ô¸¶«±±´óѧ085901ÍÁľר˶345Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
Ò»Ö¾Ô¸¹þ¶û±õ¹¤Òµ´óѧ085600Ó¢Ò»Êý¶þ337·ÖÇóµ÷¼Á
ÒѾÓÐ9È˻ظ´
¹¤¿Æ11408£¬314Çóµ÷¼Á£¬ÓÐÏîÄ¿¾Ñ飬Á˽âtransformer£¬ÄÜѵÁ·Ä£ÐÍ¡£
ÒѾÓÐ3È˻ظ´
348·Ö»·¾³¹¤³Ì¡¤µ÷¼Á
ÒѾÓÐ11È˻ظ´
359Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
0703Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
Ò»Ö¾Ô¸0817»¯Ñ§¹¤³ÌÓë¼¼Êõ£¬Çóµ÷¼Á
ÒѾÓÐ26È˻ظ´
¡ï ¡ï ¡ï
p1801321(½ð±Ò+3,VIP+0):лл 12-9 14:16
p1801321(½ð±Ò+3,VIP+0):лл 12-9 14:16
|
»ù±¾ÉÏ£¬Õâ¸ö·½·¨ÔÚ¸ö°¸Ñо¿ÉϺÜÓÐÓ᣾¡¹ÜÎÒÃÇ»¹²»ÄÜÔÚÏÖ½ñµÄ·¢Õ¹ÖÐÆÀ¹ÀÉè¼Æ±ê×¼µÄ¹¦Ð§£¬µ«ÊÇÎÒÃÇ·¢ÏÖÕâ¸ö¹¤¾ßÔڵõ½Ìåϵ½á¹¹£¬·¢ÏÖÎÊÌâºÍ¼ì²éÖØ¹¹½á¹ûÖеÄÓÐÓÃÐÔ¡£ÎÒÃǵľÑé֤ʵÁËÉè¼Æ±ê×¼µÄÁ½¸öÖØÒªÌØÐԵļÛÖµ£º²ã´Î½á¹¹ºÍ»®·ÖËã·¨¡£Ã»ÓÐÕâÐ©ÌØÐÔ£¬ÎÒÃÇÉõÖÁ²»Äܹ»´¦ÀíÕâÑù´óСµÄ´úÂë»ùÊý£»´ÓÕâ¸ö´úÂëÖеõ½µÄÏß·ͼҲÊDz»Ã÷Á˵ġ£ÎÒÃÇÓÐÁ½ÀàÎÊÌâ¡£Ò»£¬¾ØÕ󣬱ÈÈçÉè¼Æ±ê×¼Êֲᣬ±ÈÇúÏßͼÖеĹØÏµ¸üΪ¸´ÔÓ£¬²»ÈÝÒ×¶Á¶®¡£ ²»ºÃÒâ˼£¬ÊµÔÚÊÇÌ«Ïë˯¾õÁË |
2Â¥2009-12-09 04:43:12
syh9288
¾èÖú¹ó±ö (ÖøÃûдÊÖ)
º£¾üÉϽ«
- ·ÒëEPI: 6
- Ó¦Öú: 2 (Ó×¶ùÔ°)
- ½ð±Ò: 1605.6
- É¢½ð: 543
- ºì»¨: 1
- Ìû×Ó: 1070
- ÔÚÏß: 480Сʱ
- ³æºÅ: 735351
- ×¢²á: 2009-03-30
- ÐÔ±ð: GG
- רҵ: ÓлúºÏ³É
¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
p1801321(½ð±Ò+15,VIP+0):ллÐֵܣ¡ 12-9 14:16
p1801321(½ð±Ò+15,VIP+0):ллÐֵܣ¡ 12-9 14:16
|
×ܵÄÀ´Ëµ,Õâ¸ö·½·¨ÔÚÑо¿ÕâÖÖÇé¿öÉÏÓÐןܺõÄ×÷Óá£ËäÈ»ÎÒÃÇ»¹²»ÄÜÈ¥ÆÀ¹ÀÔÚ½ñºóµÄ·¢Õ¹ÖÐÕâÖÖÉè¼Æ¹æÔòµÄÓÐЧÐÔ,ÎÒÃÇ·¢ÏÖ£ºÕâ¸ö¹¤¾ßÓÐÖúÓÚ¼ò»¯½á¹¹¡¢Ê¶±ðÎÊÌâºÍ¼ì²éÖØ¹¹µÄ½á¹û¡£ÎÒÃǵľÑéÈ·¶¨ÁËDSMÁ½¸ö¹Ø¼üÌØÕ÷µÄÖØÒªÐÔÊÇ:²ã´Î½á¹¹¾ØÕóÒÔ¼°»®·ÖËã·¨¡£Èç¹ûûÓÐÕâÐ©ÌØµã,ÎÒÃǽ«²»ÄÜÕÆÎÕÉõÖÁÊÇÕâ¸ö³ß´çµÄ´úÂë»ù£»Ö±½Ó´Ó´úÂëÖеõ½box-and-lineͼÊDz»Ã÷ÖǵÄÑ¡Ôñ¡£ ¡¡¡¡ÎÒÃÇÏÖÔÚÅöµ½ÁËÁ½ÖÖÀàÐ͵ÄÎÊÌâ¡£Ê×ÏÈ,¾ØÕó,ÈçDSM£¬±ÈÇúÏß»¹ÄÜÀ©Õ¹ÉìËõµÄÒ»ÖÖÄÚÔÚµÄÁªÏµ±íʾÐÎʽ×ÜÊǺÜÈÃÈ˷ѽ⡣ÔÚÌØ¶¨µÄÇé¿öÏ£¬ÓëÁ½¸öÔªËØÖ®¼ä¹ØÏµÏàºôÓ¦µÄÒ»¸öСµÄ»º´æÇøÓÐןü´óµÄÈÏÖª³¬Ô½ÄÜÁ¦¡£¹ØÏµÁ´µÄ´«µÝ²»ÊÇÔÚÐÐÓëÁеÄ×Ö·û´®Ö®¼äǰºóÒÆ¶¯¶øÊǼòµ¥ÑØ×ÅÒ»¸ö·¾¶°´ÕÕ¼ýÍ·µÄ·½Ïò´«µÝÏÂÈ¥¡£È»¶ø,Ëæ×Åʱ¼äµÄÍÆÒÆ,ÎÒÃÇÔĶÁDSMµÄЧÂÊ»áÌá¸ß¡£ µÚ¶þ,¶ÔÓÚÕâÖÖDZÔÚµÄÁ´½ÓÄ£ÐÍÓÐÖî¶àÏÞÖÆ¡£ HaystackµÄÉè¼Æ°üÀ¨Á½¸öÕý½»·ÖÀà¡£ ¡¡¡¡Èç¹ûÎÒÃÇÄܹ¹½¨Á½¸ö¶ÀÁ¢µÄDSM£¬ÎÒÃǽ«¼«ÓпÉÄÜͨ¹ýÀûÓÃÕâÖÖ¹¤¾ßÀ´Àí½âÕâÁ½ÖÖÊÓͼ֮¼äµÄÁ´½ÓµÄÏ໥ӰÏì¡£ÎÒÃÇÓÐʱҲÏë¸øÁ´½ÓÒ»¸ö¸ü¼Ó¾«Á¶µÄ¸ÅÄÕâÑù¾Í¿ÉÒÔΪÄÇЩÔÚʱ¼äÔËÐвãÃæÉ϶ø²»ÊÇÐèÒªÔÚ´úÂëÖÐʹÓõÄÒ»ÀàÁ´½ÓÌṩƥÅäµÄ¿Í»§¶Ë¡£ ¡¡¡¡ËƺõûÓÐÀíÓÉÀ´½âÊÍΪʲôһÖÖ¾ßÓиü¶àÁ´½ÓµÄÄ£ÐÍ(Èç[6])²»Äܱ»ÄÉÈëµ½ÕâÖÖ¹¤¾ßÖС£ |

3Â¥2009-12-09 11:25:12
syh9288
¾èÖú¹ó±ö (ÖøÃûдÊÖ)
º£¾üÉϽ«
- ·ÒëEPI: 6
- Ó¦Öú: 2 (Ó×¶ùÔ°)
- ½ð±Ò: 1605.6
- É¢½ð: 543
- ºì»¨: 1
- Ìû×Ó: 1070
- ÔÚÏß: 480Сʱ
- ³æºÅ: 735351
- ×¢²á: 2009-03-30
- ÐÔ±ð: GG
- רҵ: ÓлúºÏ³É
¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
p1801321(½ð±Ò+12,VIP+0):ллÐֵܣ¡ 12-9 14:17
p1801321(½ð±Ò+12,VIP+0):ллÐֵܣ¡ 12-9 14:17
|
Àí½âÄ£¿éÖ®¼äÁ´½Ó¹ØÏµµÄÖØÒªÐÔÒ²±»ÆäËûÑо¿ÕßÈÏʶºÍÇ¿µ÷¡£ÎÒÃǵŤ×÷»òÐíÓ뿪·¢Reflexion Model Tool(RMT)[3]µÄ¹¤×÷ÓкܴóµÄÏàËÆÐÔ¡£ÎÒÃǵÄÉè¼Æ×¼Ôò½áºÏÁË·´ÉäͼºÍÀíÏ뻯ģÐÍ¡£µ±¼Ü¹¹ÊÓͼÊǶàÑùµÄºÍÕý½»µÄ£¬Õ⽫ʹÎÒÃǵÄÉè¼Æ¹æÔò±ÈRMTµÄÀíÏëÄ£Ð͸ü¼Ó¸´ÔÓ;ÁíÒ»·½Ãæ,µ±Ò»¸ö²ã´ÎÕ¼ÓÅÊÆµÄʱºò,Ïà±ÈRTMµÄģʽºÍÓ³É䣬ÎÒÃǵÄÉè¼Æ¹æÔò¿ÉÄÜÒª¸ü¼òµ¥Ð©¡£ÎÒÃÇÈÏΪÎÒÃÇµÄ·Ö²ã¾ØÕó±íʾ³ß¶È±ÈRMTµÄÇúÏß±íʾ·¨ÒªºÃ¡£ ¡¡ ¶ÔÓÚ·¢Ïּܹ¹µÄDSMË㷨ʽµÄʹÓÃÊÇÎÒÃÇ·½·¨µÄÒ»¸öºÜÖ÷ÒªµÄÓŵã;È¥¼ì²éËüÊÇÔõôÑù±»ÄÉÈë½øRTMÊÇÒ»¼þÓÐȤµÄÊÂÇé¡£µ±È»£¬Ä¿Ç°¶à²ã´Î±íʾÐÎʽÊǺÜеġ£¸ù¾ÝËûÃǵIJã´Î½á¹¹·Ö½â£¬TranµÈ[4]ÀûÓÃHarelµÄHigraphÓïÑÔ¼ì²éϵͳµÄ²ã´Î·Ö½â¡£ÔÚÄæÏò¹¤³Ì¹¤¾ßRigi[16]µÄ±³¾°Ï£¬ÓÃÓÚ½«ÏµÍ³²ã×´»¯µÄÆô·¢Ê½Ëã·¨Ò²±»Ñо¿,¡£ÔÚÈÝÐíÊÖ¹¤ºÍ×Ô¶¯×éÖ¯·½Ã棬¸ù¾ÝËûÃǵÄËõ·ÅÄÜÁ¦£¬RigiËÆºõûÓÐLDMÄÇôÁé»î¡£ÓëDSMË㷨ʽÏà±È½Ï£¬ÎÒÃÇûÄÜÆÀ¹ÀRigiË㷨ʽµÄÓÐЧÐÔ¡£µ«ÕâÑùµÄÑо¿ÊǺÜÓмÛÖµµÄ¡£ ¡¡¡¡´óÁ¿µÄ±»Ó¦ÓÃÓÚ´Ó´úÂëÖÐÌáÈ¡µ½Á´½ÓµÄ¹¤¾ßÄܱ»µÃµ½,ÈçIBM¹«Ë¾µÄsa4jºÍCompuwareµÄOptimalJÒÔ¼°´ÓClarkware ConsultingµÄJDepen¡£ÕâЩ¹¤¾ßÓÐ×ÅÓëLDMÒ»ÑùµÄǰ¶Ë¡£ ¡¡¡¡½Ü¿ËÑ·[6]Ìá³öÁËÒ»ÖÖ¸ü¾«Ï¸µÄÁ´½Ó,ÔÚÕâÀï½çÃæ²»±»ÊÓΪ×ÔÖ÷Ä£¿é£¬¶øÊÇÆðµ÷½Ú×÷ÓõÄÁ´½Ó¡£ÎÒÃǼƻ®È¥Ì½Ë÷ÕâÖÖ¹ÛµãÊÇ·ñÄÜÓ¦ÓÃÓÚÎÒÃǵÄÑо¿Ö®ÖС£ ¡¡¡¡µ±È»Ò»¸öÒÔÁ¬½ÓΪ»ù´¡µÄÈí¼þÊÓͼ½ö½öÊǶàÖÖÓÐÓÃÈí¼þµÄÊÓͼ֮һ¡£ÔÚKruchten¡°4 + 1¡±Èí¼þ¼Ü¹¹Ä£Ê½ÖÐ[8],ÎÒÃÇϵͳµÄ±íʾ·¨´óÖÂÓ뿪·¢ÊÓͼÏàÊÊÓ¦ |

4Â¥2009-12-09 12:52:12














»Ø¸´´ËÂ¥