Mô hình phát triển framework cho các sản phẩm phần mềm

Hiện nay trong nước, các sản phẩm phần mềm thường được viết theo dạng các lời gọi hàm, hướng cấu trúc và hướng đối tượng. Khi có sự thay đổi về nghiệp vụ hoặc bổ sung thêm các dịch vụ, tính năng mới, các hệ thống này thường phải sửa đổi lại phần lớn mã nguồn. Điều này gây nhiều khó khăn cho việc quản lý, bảo hành, bảo trì và rất dễ gây lỗi (lỗi dây chuyền). Các sản phẩm phần mềm khi áp dụng mô hình framework sẽ khắc phục được các nhược điểm này. Nó làm tăng tính linh hoạt, tái sử dụng và khả năng ghép nối của hệ thống. Bài viết bày giới thiệu tóm tắt khả năng áp dụng mô hình phát triển theo framework cho các sản phẩm phần mềm.

doc4 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2072 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Mô hình phát triển framework cho các sản phẩm phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
M¤ H×NH PH¸T TRIÓN THEO FRAMEWORK CHO C¸C S¶N PHÈM PHÇN MÒM KS. §Æng Xu©n ThÞnh Trung t©m C«ng nghÖ th«ng tin 1. §Æt vÊn ®Ò HiÖn nay trong n­íc, c¸c s¶n phÈm phÇn mÒm th­êng ®­îc viÕt theo d¹ng c¸c lêi gäi hµm, h­íng cÊu tróc vµ h­íng ®èi t­îng. Khi cã sù thay ®æi vÒ nghiÖp vô hoÆc bæ sung thªm c¸c dÞch vô, tÝnh n¨ng míi, c¸c hÖ thèng nµy th­êng ph¶i söa ®æi l¹i phÇn lín m· nguån. §iÒu nµy g©y nhiÒu khã kh¨n cho viÖc qu¶n lý, b¶o hµnh, b¶o tr× vµ rÊt dÔ g©y lçi (lçi d©y chuyÒn). C¸c s¶n phÈm phÇn mÒm khi ¸p dông m« h×nh framework sÏ kh¾c phôc ®­îc c¸c nh­îc ®iÓm nµy. Nã lµm t¨ng tÝnh linh ho¹t, t¸i sö dông vµ kh¶ n¨ng ghÐp nèi cña hÖ thèng. Bµi viÕt bµy giíi thiÖu tãm t¾t kh¶ n¨ng ¸p dông m« h×nh ph¸t triÓn theo framework cho c¸c s¶n phÈm phÇn mÒm. 2. §Þnh nghÜa framework Framework lµ mét ph­¬ng ph¸p kü thuËt t¸i sö dông h­íng ®èi t­îng. §Þnh nghÜa vÒ framework còng cã nhiÒu c¸ch kh¸c nhau. §Þnh nghÜa th­êng sö dông lµ “ framework lµ mét thiÕt kÕ t¸i sö dông cña toµn bé hay mét phÇn hÖ thèng ®­îc ®¹i diÖn bëi c¸c líp trõu t­îng vµ c¸ch c¸c tr­êng hîp cña chóng t­¬ng t¸c víi nhau”. Mét ®Þnh nghÜa phæ biÕn kh¸c lµ “ framework lµ bé khung cña tr×nh øng dông mµ cã thÓ ®­îc tuú biÕn bëi c¸c nhµ ph¸t triÓn phÇn mÒm øng dông”. §©y kh«ng ph¶i lµ nh÷ng ®Þnh nghÜa m©u thuÉn nhau; ®Þnh nghÜa thø nhÊt miªu t¶ cÊu tróc cña framework trong khi ®Þnh nghÜa hai miªu t¶ môc ®Ých cña nã 3. C¸c ­u ®iÓm sö dông framework TÝnh t¸i sö dông cña framework cã thÓ ®­îc thóc ®Èy bëi nhiÒu nh©n tè. Mét lµ ®Ó tiÕt kiÖm thêi gian vµ tiÒn b¹c cña trong suèt qua tr×nh ph¸t triÓn. Môc ®Ých chÝnh cho nhiÒu c«ng ty lµ ®Ó gi¶m thêi gian ®Õn thÞ tr­êng. Nh­ng hä nhËn thÊy r»ng tÝnh chÊt gièng nhau do c¸c framework mang tíi còng quan träng. C¸c framework giao diÖn ng­êi dïng ®å ho¹ ®­a ra mét bé c¸c tr×nh øng dông cã c¸ch nh×n vµ c¶m nhËn t­¬ng tù nhau, vµ mét giao diÖn m¹ng t¸i sö dông cã nghÜa lµ tÊt c¶ c¸c tr×nh øng dông sö dông nã theo c¸c giao thøc gièng nhau. Hai lµ tÝnh gièng nhau lµm gi¶m chi phÝ b¶o tr×, tõ ®ã nh÷ng ng­êi lËp ch­¬ng tr×nh b¶o tr× cã thÓ chuyÓn tõ tr×nh øng dông nµy sang tr×nh øng dông tiÕp theo mµ kh«ng ph¶i häc thiÕt kÕ míi. Lý do cuèi cïng cho c¸c framework lµ lµm cho c¸c kh¸ch hµng cã kh¶ n¨ng x©y dùng hÖ thèng më , v× thÕ hä cã thÓ trén lÉn vµ lµm phï hîp c¸c thµnh phÇn tõ c¸c nguån cung cÊp kh¸c nhau. C¸c ­u ®iÓm chÝnh cña framework øng dông h­íng ®èi t­îng xuÊt ph¸t tõ kh¶ n¨ng m« ®un phÇn mÒm, kh¶ n¨ng t¸i sö dông, kh¶ n¨ng më réng, vµ sù ®¶o ng­îc ®iÒu khiÓn chóng cung cÊp cho nhµ ph¸t triÓn nh­ miªu t¶ d­íi ®©y: Kh¶ n¨ng m« ®un: Framework t¨ng c­êng kh¶ n¨ng m« ®un phÇn mÒm b»ng c¸ch gãi gän c¸c chi tiÕt thùc thi linh ®éng ®»ng sau c¸c giao diÖn æn ®Þnh. Kh¶ n¨ng m« ®un cña framework gióp c¶i thiÖn chÊt l­îng phÇn mÒm nhê viÖc khoanh vïng ¶nh h­ëng cña m« h×nh vµ nh÷ng thay ®æi vÒ thùc thi. Kh¶ n¨ng t¸i sö dông: C¸c giao diÖn æn ®Þnh cung cÊp qua c¸c framework t¨ng c­êng kh¶ n¨ng t¸i sö dông theo ®Þnh nghÜa c¸c thµnh phÇn chung cã thÓ ®­îc ¸p dông l¹i ®Ó t¹o ra c¸c tr×nh øng dông míi. Kh¶ n¨ng t¸i sö dông framework tËn dông ®­îc sù ®Çu t­ trÝ tuÖ vµ nç lùc tr­íc ®ã cña c¸c nhµ ph¸t triÓn giµu kinh nghiÖm. Sö dông l¹i c¸c thµnh phÇn framework cã thÓ mang l¹i sù c¶i tiÕn ®¸ng kÓ hiÖu suÊt cña lËp tr×nh viªn, còng nh­ lµ t¨ng c­êng chÊt l­îng, sù thùc thi, tÝnh tin cËy, vµ thao t¸c gi÷a c¸c phÇn cña phÇn mÒm. Kh¶ n¨ng më réng: Framework t¨ng c­êng kh¶ n¨ng më réng nhê viÖc cung cÊp c¸c ph­¬ng ph¸p mãc nèi râ rµng cho phÐp c¸c tr×nh øng dông më réng c¸c giao diÖn æn ®Þnh cña nã. C¸c ph­¬ng ph¸p mãc nèi cã tÝnh hÖ thèng t¸ch riªng ra c¸c giao diÖn vµ c¸c ®¸p øng æn ®Þnh cña mét lÜnh vùc øng dông. Kh¶ n¨ng më réng framework lµ thiÕt thùc ®Ó ®¶m b¶o sù tuú biÕn hîp thêi cña c¸c dÞch vô vµ tÝnh n¨ng øng dông míi. Sù ®¶o ng­îc ®iÒu khiÓn: KiÕn tróc runtime cña framework lµ ®Æc tr­ng cña sù ®¶o ng­îc ®iÒu khiÓn. KiÕn tróc nµy lµm cho c¸c b­íc xö lý tr×nh øng dông cã thÓ hîp qui ®­îc tuú biÕn qua c¸c ®èi t­îng bé ®iÒu khiÓn sù kiÖn mµ ®­îc kÝch ho¹t qua c¬ chÕ göi ®i t¸c ®éng trë l¹i cña framework. Khi c¸c sù kiÖn x¶y ra, bé göi ®i cña framework t¸c ®éng trë l¹i qua viÖc kÝch ho¹t c¸c ph­¬ng ph¸p mãc nèi trªn c¸c ®èi t­îng ®iÒu khiÓn ®¨ng kÝ tr­íc, bé ®iÒu khiÓn nµy thùc hiÖn qu¸ tr×nh xö lý tr×nh øng dông ®Æc tr­ng dùa trªn c¸c sù kiÖn. §¶o ng­îc sù ®iÒu khiÓn cho phÐp framework ®Þnh râ bé c¸c ph­¬ng ph¸p tr×nh øng dông ®Æc tr­ng nµo kÝch ho¹t ®¸p øng ®Õn c¸c sù kiÖn bªn ngoµi (vÝ dô nh­ c¸c tin nh¾n window ®Õn tíi ng­êi sö dông cuèi cïng hay c¸c gãi tin ®Õn tõ c¸c cæng th«ng tin). 4. C«ng cô ph¸t triÓn framework Tr­íc ®©y ®Ó ph¸t triÓn m« h×nh framework cho c¸c bµi to¸n øng dông th«ng th­êng, ta cã thÓ kÓ ra mét sè ng«n ng÷ chÝnh Smalltalk, MFC, Java. Ngµy nay cïng víi sù ph¸t triÓn cña Internet, c¸c øng dông ph¸t triÓn trªn m¹ng ngµy cµng nhiÒu. Hai tËp ®oµn ph¸t triÓn hÖ thèng lín lµ Microsoft vµ Sun Microsystems ®· ®­a 2 gi¶i ph¸p c«ng nghÖ chÝnh ®Ó ph¸t triÓn c¸c bµi to¸n framework lµ Microsoft .NET framework vµ J2EE Framework. Microsoft .NET framework cña Microsoft cã ­u ®iÓm lµ dÔ sö dông, th©n thiÖn víi c¸c øng dông truyÒn thèng trªn flatform Window nh­ Visual Basic, Visual C++,... Tuy nhiªn ®Êy còng lµ nh­îc ®iÓm cña Microsoft .NET framework. C«ng nghÖ nµy bÞ trãi buéc trªn nÒn Window vµ ®Õn nay chØ cã Microsoft ph¸t triÓn. §iÒu nµy dÉn ®Õn c«ng nghÖ kÐm tÝnh c¹nh tranh vµ s¶n phÈm hoµn toµn lÖ thuéc vµo mét nhµ s¶n xuÊt. Tr¸i l¹i J2EE Framework cña Sun Microsystems lµ chuÈn chung ®­îc nhiÒu tËp ®oµn phÇn mÒm lín ph¸t triÓn, kh«ng phô thuéc flatform vµ ®· ®­îc kiÓm chøng lµ ho¹t ®éng æn ®Þnh vµ hiÖu qu¶ qua nhiÒu n¨m. Trªn thÕ giíi hiÖn nay, nhiÒu nhµ s¶n xuÊt phÇn mÒm øng dông ®Òu ¸p dông c«ng nghÖ J2EE Framework. Trªn thÕ giíi, ta cã thÓ kÓ ra mét sè tªn tuæi lín nh­ Bea, IBM, Oracle, Sun One, Fujitsu, Inprise, Macromedia, Sysbase, IONA Technologies, SPSS, Isocra, MultiTEL,... V× vËy khi ph¸t triÓn c¸c bµi to¸n phÇn mÒm øng dông theo m« h×nh framework, chóng ta nªn sö dông c«ng nghÖ J2EE Framework vµ c¸c c«ng cô ph¸t triÓn theo dßng Java nh­ JavaBean, JSP, Java Script. 5. Chu kú sèng vµ c¸c b­íc thiÕt kÕ mét framework 5.1. Chu kú sèng cña framework Qu¸ tr×nh x©y dùng vµ ph¸t triÓn framework lµ mét qu¸ tr×nh lÆp ®i, lÆp l¹i cña ph¸t triÓn vµ øng dùng framework. Mét phÇn mÒm øng dông bao giê còng xuÊt ph¸t tõ mét yªu cÇu thùc tÕ. C¸c s¶n phÈm ban ®Çu (s¶n phÈm mÉu) th­êng lµ ®¬n gi¶n. Sau qu¸ tr×nh øng dông thùc tÕ, nhiÒu yªu cÇu míi n¶y sinh nh­ yªu cÇu vÒ tÝnh dÔ sö dông, linh ho¹t, yªu cÇu ®¸p øng c¸c dÞch vô míi,... V× vËy m« h×nh cò cÇn ®­îc ®­a vµo ph¸t triÓn tiÕp ®Ó ngµy cµng hoµn thiÖn h¬n. H×nh 1 lµ m« h×nh chu kú sèng cña framework. øng dông Ph¸t triÓn S¶n phÈm S¶n phÈm mÉu Framework H×nh 1: Chu kú sèng cña framework: øng dông vµ ph¸t triÓn 5.2. C¸c b­íc thiÕt kÕ framework Nh­ ®· tr×nh bµy ë trªn, khi ph¸t triÓn mét bµi to¸n ¸p dông m« h×nh framework, ta th­êng ®i tõ c¸c bµi to¸n ®¬n gi¶n, cô thÓ råi tõ ®ã míi ph¸t triÓn thµnh c¸c bµi to¸n phøc t¹p, ®a d¹ng vµ trõu t­îng. Qu¸ tr×nh x©y dùng mét framework (h×nh 4) gåm 4 b­íc sau: T¹o c¸c m« h×nh øng dông cè ®Þnh. Ph©n tÝch vµ m« t¶ hot-spot gåm ph©n tÝch møc cao hot-spot, vµ ph©n tÝch vµ m« t¶ chi tiÕt hot-spot. ThiÕt kÕ møc cao hot-spot. T¹o c¸c m« h×nh øng dông cè ®Þnh Ph©n tÝch møc cao hot-spot n ... 2 BiÕn ®æi m« h×nh líp víi sù tæng qu¸t ho¸ hÖ thèng con hot-spot 1 n ... 2 Ph©n tÝch vµ m« t¶ chi tiÕt hot-spot 1 n ... 2 ThiÕt kÕ møc cao hot-spot 1 Tæng hîp ho¸ sù chuyÓn ®æi. H×nh 2: C¸c b­íc thiÕt kÕ framework 6. KÕt luËn Bµi viÕt nµy chØ nh»m giíi thiÖu vÒ kh¸i niÖm framework vµ c¸c ­u ®iÓm cña mét bµi to¸n phÇn mÒm øng dông khi ¸p dông m« h×nh framework. Trong bµi viÕt chóng t«i còng ®Ò cËp ®Õn h­íng lùa chän c«ng cô ph¸t triÓn còng nh­ quy tr×nh tæng qu¸t ®Ó ph¸t triÓn mét framework. M« h×nh nµy ®· ®­îc chóng t«i ¸p dông thµnh c«ng cho bµi to¸n b¸o c¸o thèng kª vµ in ho¸ ®¬n t¹i c¸c b­u ®iÖn tØnh thµnh phè. Vµ víi nh÷ng kÕt qu¶ mµ chóng t«i ®· ®¹t ®­îc cho thÊy chóng ta hoµn toµn cã thÓ ¸p dông réng r·i m« h×nh framework vµo c¸c s¶n phÈm phÇn mÒm øng dông phôc vô c«ng t¸c qu¶n lý, s¶n xuÊt, kinh doanh cña c¸c c¬ quan, xÝ nghiÖp. Tµi liÖu tham kh¶o B¸o c¸o nghiÖm thu ®Ò tµi: X©y dùng m« h×nh ph¸t triÓn theo framework cho c¸c bµi to¸n b¸o c¸o thèng kª vµ in ho¸ ®¬n. Building Application Framework. Wiley. Domain-Specific Application Framework. Wiley. Implementing Application Framework. Wiley. Design Patterns Elements of Reusable Object-Oriented Software. Object-Oriented Frameworks. Michael Mattsson A Software Architecture For Structuring Complex Web Applications. Rinton

Các file đính kèm theo tài liệu này:

  • docMô hình phát triển framework cho các sản phẩm phần mềm.doc
Tài liệu liên quan