Thành phần Invoice_System làm nhiệm vụ kết nối tất cả các thành phần khác. Chúng tôi thêm một số chức năng để giúp trong việc xác định báo cáo lỗi tốt hơn. Sau đây là chi tiết các thuộc tính của Invoice_System:
Thành phần Invoice_System sử dụng đến các chức năng của 3 thành phần Client,
Product và Invoice.
Tập Dep=∅.
Md - Tập hợp các phương thức của thành phần Invoice_System
{ some_client_exists, clients_not_saturated, client_not_dubious(c), some_product_exists, products_not_saturated, product_avaliable(p), product_has_substitute(p), invoices_not_saturated, new_product_in_invoice(i,p)} Trong đó: b ← some_client_exists =ˆ … ; b ← clients_not_saturated =ˆ … ; b ← client_not_dubious(c) =ˆ … ; b ←some_product_exists =ˆ … ; b ← products_not_saturated =ˆ … ; b ←product_avaliable(p) =ˆ… ; b ← product_has_substitute(p) =ˆ… ; b ← invoices_not_saturated =ˆ… ; b ← new_product_in_invoice(i; p) =ˆ… ; 3.3 Nhận xét về ví dụ
Trong chương này đã minh họa một ví dụ là xây dựng hệ thống xuất hóa đơn bán hàng nhằm làm rõ các nội dung của lý luận cho mô hình phát triển hướng thành phần do chúng tôi đề xuất ở Chương 2. Tuy nhiên các minh họa và mô tả còn nhiều điểm phải dùng ngôn ngữ tự nhiên để mô tả do trong phạm vi của luận văn này chúng tôi chưa đưa ra được một ngôn ngữ cụ thể cho mô hình của chúng tôi. Công việc xây dựng và đề xuất một bộ ngôn ngữ cho mô hình do chúng tôi đề xuất sẽ được thực hiện trong các nghiên cứu tiếp theo của của chúng tôi.
KẾT LUẬN
Luận văn này cố gắng đóng góp một phần rất nhỏ vào việc hoàn chỉnh phương pháp luận cho kỹ thuật phát triển phần mềm hướng thành phần. Trong phần đầu của luận văn này đã tập trung vào xem xét nghiên cứu về phương pháp luận và kiến trúc của mô hình phát triển phần mềm hướng thành phần do rất nhiều tác giả đề xuất.
Trong phần tiếp theo của luận văn đã đưa ra một mô hình của các giao diện các thành phần cho các hệ thống hướng thành phần thời gian thực. Trong đó mở rộng đặc tả của phương thức với ràng buộc thời gian, đó là mối quan hệ giữa sự nguyên sẵn có và lượng thời gian dành để thực hiện phương thức. Mô hình này hỗ trợ các đặc tả và làm mịn của các thành phần và kiểm chứng các thuộc tính thời gian thực. Trong luận văn chúng tôi cũng đưa ra một minh họa là xây dựng hệ thống xuất hóa đơn cho khách hàng nhằm minh họa cho mô hình và phương pháp luận đề xuất.
Từ việc nghiên cứu các phương pháp luận về việc phát triển phần mềm hướng thành phần, luận văn này đã đưa ra được một số điểm thống nhất và khác biệt giữa các lý thuyết đồng thời rút ra các khái niệm chung được nhiều lý thuyết thừa nhận. Từ mở rộng đề xuất mô hình giao diện cho các thành phần của hệ thống thành phần hướng thời gian, hy vọng sẽ đóng góp một phần vào việc chuẩn hóa phương pháp luận phát triển cho các hệ thống thời gian thực.
Hiện vẫn còn rất nhiều việc để làm cho mô hình đề xuất được chi tiết hơn như: phần đề xuất ngôn ngữ tương ứng với mô hình chưa được đề cập đến; các kỹ thuật phân tích và xác minh cụ thể chưa được đề cập đến, hiện mới có một cách cho việc xác minh bằng cách chứng minh định lý như PVS. Trong các nghiên cứu tiếp theo sẽ tập trung đề xuất mô hình đầy đủ hơn và tập trung giải quyết các các vấn đề thiếu sót đề cập ở trên.
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Anh:
1.R. Allen (1997), A Formal Approach to Software Architecture, PhD thesis, Carnegie Mellon, School of Computer Science.
2.R. Allen and D Garlan (1997), “A formal basis for architectural connection”, ACM Transactions on Software Engineering and Methodology, 6(3), pp. 213 – 249.
3. F. Arbab (2004), “Reo: A channeled based coordination model for components composition”, Mathematical Structures in Computer Science, 14(3), pp. 329–366.
4. L. Bass, P. Clements, and R. Kazman (1999), Software Architecture in Practice, Addison-Wesley.
5. G. Beneken and U. Hammerschall et al (2003), “Componentware - Sate of the art 2003”, Background Paper for Understanding Components Workshop of the CUE Initiative.
6. M. Broy (2003), Multi-view modeling of software systems, Report No.284, UNU- IIST, P.O.Box 3058, Macau.
7. M. Broy and K. Stølen (2001), Specification and Development of Interactive Systems: FOCUS on Streams, Interfaces, and Refinement, Springer.
8. Zhou Chaochen, Anders P. Ravn, and Michael R.Hansen (1993), “An Extended Duration Calculus for Real-time Systems”, Hybrid Systems, LNCS 736.
9.M.R.V. Chaudron and E. de Jong (2000), “Components are from Mars”, Proc. 15
IPDPS 2000 Workshops on Parallel and Distributed Processing, LNCS 1800, pp. 727
– 733.
10. Xin Chen, He Jifeng, Zhiming Liu and Naijun Zhan (2006), A Model of
Component-Based Programming, Report No.350, UNU-IIST, P.O. Box 3058, Macau.
11. Zhenbang Chen, Abdel Hakim Hannousse, Dang Van Hung et al (2007),
Modelling with Relational Calculus of Object and Component Systems - rCOS, Report No.382, UNU-IIST, P.O. Box 3058, Macau.
12. Dino Distefano, Joost-Pierter Katoen, and Arend Rensink (2000), On a Temporal Logic for Object-based Systems, Faculty of Computer Science, University of Twente, P.O. Box 217, 7500 AE Enschede, The Netherlands.
13. Steve Dunne, Bill Stoddart (2006), Unifying Theories of Programming, First International Symposium, UTP 2006, Springer, UK
14. Hartmut Ehrig et al (2004), Integration of Software Specification Techniques for Applications in Engineering, Priority Program SoftSpez of the German Research Foundation (DFG), LNCS 3147, Springer.
15. Stephan Flake and Wolfgang Mueller (2002), “A UML Profile for Real-Time Constraints with OCL”. UML 2003, LNCS 2460, Springer-Verlag.
16.Dimitar P. Guelev, Dang Van Hung (2007), Reasoning about QoS Contracts in the Probabilistic Duration Calculus, Report No.384, UNU-IIST, P.O. Box 3058, Macau.
17. G. Go¨ ssler and J. Sifakis (2005), “Composition for component-based modeling”,
Science of Computer Programming, 55(1-3).
18. Dieter K. Hammer (2002), Software Architectures and Component Technology (Editor: Mehmet Aksit), chapter Component-based Architecting for Distributed Real- time Systems, Kluwer.
19. He Jifeng, Zhiming Liu, and Li Xiaoshan (2004), Contract-Oriented Development of Component Software, Report No.298, UNU-IIST, P.O.Box 3058, Macau.
20. He Jifeng, Xiaoshan Li, and Zhiming Liu (2005), Component-Based Software Engineering - the Need to Link Methods and their Theories, Report No.330, UNU- IIST, P.O.Box 3058, Macau.
21. J. He, Z. Liu, and X. Li (2005), rCOS: A refinement calculus for object systems,
Report No.322, UNU-IIST, P.O. Box 3058, Macau.
22. J. He, Z. Liu, and X. Li (2005), Reactive Components, Report No.327, UNU-IIST, P.O. Box 3058, Macau.
23. J. He, Z. Liu, X. Li, and S. Qin (2004), “A relational model of object oriented programs”, Proceedings of the Second ASIAN Symposium on Programming Languagesand Systems (APLAS04), LNCS 3302, pp. 415–436, Springer.
24.C.A.R. Hoare and He Jifeng (1998), Unifying Theories of Programming, Prentice Hall Series in Computer Science, Prentice Hall.
25. Tony Hoare (2003), “ The verifying compiler: A grand challenge for computing research”, Computer Science 2003, LNCS 2622, pp. 262–272, Springer-Verlag.
26.J.P. Holmegaard, J. Knudsen, P. Makowski, and A.P. Ravn (2006), “Formalization in component based development”, Mathematical Frameworks for Component Software: Models for Analysis and Synthesis, World Scientific, pp 271-295.
27. Dang Van Hung (2004), Toward a Formal Model for Component Interfaces for Realtime Systems, Report No.296, UNU-IIST, P.O.Box 3058, Macau.
28. Le Dang Hung, Dang Van Hung (2007), “Timing and Concurrency Specification in Component-based Real-Time Embedded Systems Development”, TASE '07 Proceedings of the First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering.
29. Dang Van Hung, Pham Hong Thai (2007), Towards a Template Language for Component-based Programming, Report No.354, UNU-IIST, P.O.Box 3058, Macau.
30. D. Hybertson (2001), “A uniform component modeling space”, Informatica, 25, pp. 475–482.
31. He Jifeng, Zhiming Liu, and Li Xiaoshan (2003), Contract-Oriented Component Software Development, Report No .276, UNU-IIST, P.O.Box 3058, Macau.
32. He Jifeng, Liu Zhiming, and Li Xiaoshan (2003), Modelling Object-oriented Programming with Reference Type and Dynamic Binding. Report No.280, UNU-IIST, P.O.Box 3058, Macau.
33. Z. Liu, J. He, and X. Li (2005), “rCOS: Refinement of component and object systems”, 3rd International Symposium on Formal Methods for Component and ObjectSystems, LNCS 3657, pp. 183-221.
34. Z. Liu and M. Joseph (1999), “Specification and verification of fault-tolerance, timing and scheduling”, ACM Transactions on Languages and Systems, 21(1), pp. 46–
89.
35. D.C. Luckham and J. Vera (1995), “An event-based architecture definition language”, IEEE Transactions on Software Engineering, 21(9), pp. 717–734.
36. J. Magee, N. Dulay, S. Eisenbach, and J. Kramer (1995), “Specifying distributed software architectures”, In Proc. of 5th European Software Engineering Conference (ESEC95), pp. 137–153, Springer-Verlag.
37. Z. Manna and A. Pnueli (1992), The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, New York.
38. N. Medvidovic and R.N. Taylor (2000), “A classification and comparison framework for software architecture description languages”, IEEE Transactions on Software Engineering, 26(1), pp. 70–93.
39. A. Pnueli (2005), “Looking ahead”, Workshop on The Verification Grand Challenge February 21–23, 2005 SRI International, Menlo Park, CA.
40. T. Rentsch (1982), Object-oriented programming, SIGPLAN Notices, 17(2), pp.
51.
41. R. Roshandel, B. Schmerl, N. Medvidovic, D. Garlan, and D. Zhang (2004), “Understanding tradeoffs among different architectural modeling approaches”,
Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA04).
42. E.E. Roubtsova, J. van Katwijk, W.J.Toetenel, and R.C.M.de Rooij (2001), “Real- Time Systems: Specification of Properties in UML”, In ASCI 2001 conference, pp. 188–195.
43. J.-G. Schneider and O. Nierstrasz (1999), “Components, scripts and glue”,
Software Architectures Advances and Applications, pp. 13 – 25, Springer.
44. Shane Sendall and Alfred Strohmeier (2001), “Specifying concurrent system behavior and timing constraints using OCL and UML”, UML 2001 - The Unified Modeling Language. Modeling Languages, Concepts, and Tools. 4th International Conference, Toronto, Canada, October 2001, Proceedings, LNCS 2185, pp. 391–405. Springer.
45. M. Shaw and D. Garlan (1996), Software Architectures: Perspectives on an Emerging Discipline, Prentice Hall.
46.Fran¸cois Siewe and Dang Van Hung (2001), “Deriving Real-Time Programs from Duration Calculus Specifications”, Published in the proceedings of the 11th Advanced Research Working Conference on Correct Hardware Design and Verification Methods (CHARME 2001), LNSC 2144, Springer-Verlag, pp. 92–97.
47. J. Sifakis, S. Tripakis, and S. Yovine (2003), “Building models of real-time systems from application software”, In Special issue on modeling and design of embedded systems of Proceedings of the IEEE, 91(1), pp. 100–111.
48. I. Sommerville (2001), Software Engineering (6th Edition), Addison- Wesley.
49. C. Szyperski (1997), Component Software: Beyond Object-Oriented Programming, Addison-Wesley.
50. R.N. Taylor, N. Medvidovic, K.M. Anderson et al (1996), “A component and message-based architectural style for gui software”, IEEE Transactions on Software Engineering, 22(6), pp. 390 – 406.
51. Hans Toetenel, Ella Roubtsova, and Jan van Katwijk (2001), “A Timed Automata Semantics for Real-Time UML Specifications”, In IEEE Symposia on Human-Centric Computing Languages and Environments (HCC’01), Visual Languages and Formal Methods (VLFM’01), pp. 88–95, IEEE Computer Society.
52. A. van de Hoek, M. Rakic, R. Roshandel, and N. Medvidovic (2001), “Taming architecture evolution”, In Proceedings of the 6th European Software Engineering Conference (ESEC) and the 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-9).
53. Wikipedia.org (2010), Component-based software engineering,
http://en.wikipedia.org/wiki/Component-based_software_engineering
54. M. Wirsing and M. Broy (2000), “Algebraic state machines”, Proc. 8th Internat.Conf. Algebraic Methodology and Software Technology, AMAST 2000, LNCS 1816, pp. 89–118, Springer.