This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Knowledge-Based Software Architectures: Acquisition, Specification, and Verification
January/February 1999 (vol. 11 no. 1)
pp. 187-201

Abstract—The concept of knowledge-based software architecture has recently emerged as a new way to improve our ability to effectively construct and maintain complex large-scale software systems. Under this new paradigm, software engineers are able to do evolutionary design of complex systems through architecture specification, design rationale capture, architecture validation and verification, and architecture transformation. This paper surveys some of the important techniques that have been developed to support these activities. In particular, we are interested in knowledge/requirement acquisition and analysis. We survey some tools that use the knowledge-based approach to solve these problems. We also discuss various software architecture styles, architecture description languages (ADLs), and features of ADLs that help build better software systems. We then compare various ADLs based on these features. The efficient methods that were developed for verification, validation, and high assurance of architectures are also discussed. Based on our survey results, we give a basis for comparing the various knowledge-based systems and list these comparisons in the form of a table.

[1] W.W. Royce, "Managing the Development of Large Software Systems: Concepts and Techniques," Proc. Wescon, 1970.
[2] B.W. Boehm, "Software Engineering," IEEE Trans. Computer, pp. 1,226-1,241, vol. 25, no. 12, 1976.
[3] R. Jensen and C. Tonies, Software Eng., Prentice Hall, Englewood Cliffs, N.J., 1979.
[4] C.V. Ramamoorthy et al., "Software Engineering: Problems and Perspectives," Computer, pp. 191-209, 1984.
[5] J.J.P. Tsai and T. Weigert, Knowledge-Based Software Development for Real-Time Distributed Systems, World Scientific Publishing, Singapore, 1993.
[6] J.J.P. Tsai, Y. Bi, S.Y.H. Yang, and R.S. Smith, Distributed Real-Time Systems, Wiley and Sons, New York, 1996.
[7] W.L. Johnson, M.S. Feather, and D.R. Harris, "Representation and Presentation of Requirements Knowledge," IEEE Trans. Software Eng., pp. 853-869, vol. 18, Oct. 1992.
[8] W.L. Johnson and M. Feather, "Building An Evolution Transformation Library," Proc. 12th Int'l Conf. Software Eng., pp. 238-248, Nice, France, IEEE CS Press, Mar. 1990.
[9] W.L. Johnson, K.M. Benner, and D.R. Harris, "Developing Formal Specifications from Informal Requirements," IEEE Expert, pp. 82-90, vol. 8, Aug. 1993.
[10] K.M. Benner, "The ARIES Simulation Component (ASC)," Proc. Eighth Knowledge-Based Software Eng. Conf., pp. 40-49,Chicago, Sept. 1993.
[11] N.E. Fuchs and R. Schwitter, "Attempto Controlled English ACE," Proc. First Int'l Workshop on Controlled Language Applications, Katholieke Universiteit Leuven, Belgium, Mar. 1996.
[12] S. Fickas and R. Helm, "Knowledge Representation and Reasoning in the Design of Composite Systems," IEEE Trans. Software Eng., pp. 470-482, vol. 18, June 1992.
[13] S. Fickas and P. Nagarajan, "Critiquing Software Specifications," IEEE Software, pp. 37-47, vol. 5, Nov. 1988.
[14] J.S. Anderson and B. Durney, "Using Scenarios in Deficiency-Driven Requirements Engineering," Proc. IEEE Int'l Symp. Requirements Eng., pp. 134-141,San Diego, Jan. 1992.
[15] G. Fischer, "Domain-Oriented Design Environments," Proc. Seventh Knowledge-Based Software Eng. Conf., pp. 204-213,McLean, Va., Sept. 1992.
[16] G. Fischer, A. Girgensohn, K. Nakakoji, and D. Redmiles, "Supporting Software Designers with Integrated Domain-Oriented Design Environments," IEEE Trans. Software Eng., pp. 511-522, vol. 18, June 1992.
[17] A. Liu and J.J.P. Tsai, "A Method for Requirements Analysis and Knowledge Elicitation," Int'l J. Artificial Intelligence Tools, pp. 167-183, vol. 5, nos. 1/2, 1996.
[18] J.J.P. Tsai, T. Weigert, and H. Jang, "A Hybrid Knowledge Representation as a Basis of Requirements Specification and Specification Analysis," IEEE Trans. Software Eng., pp. 1,076-1,100, vol. 18, no. 12, Dec. 1992.
[19] A. Dardenne, A. van Lamsweerde, and S. Fickas, "Goal-Directed Requirements Acquisition," Science of Computer Programming, pp. 3-50, vol. 20, Apr. 1993.
[20] K. Zeroual and P.-N. Robillard, "KBMS: A Knowledge-Based System for Modeling Software System Specifications," IEEE Trans. Knowledge and Data Eng., pp. 238-252, vol. 4, June 1992.
[21] H. Graves, "Lockheed Environment for Automatic Programming," IEEE Expert, pp. 15-25, vol. 7, Dec. 1992.
[22] H. Graves, J. Louie, and T. Mullen, "A Code Synthesis Experiment," Proc. Seventh Knowledge-Based Software Eng. Conf., pp. 6-17,McLean, Va., Sept. 1992.
[23] G.T. Heineman, G.E. Kaiser, N.S. Barghouti, and I.Z. Ben-Shaul, "Rule Chaining in Marvel," IEEE Expert, pp. 26-33, vol. 7, Dec. 1992.
[24] N.S. Barghouti and G.E. Kaiser, "Scaling Up Rule-Based Software Development Environments," Int'l J. Software Eng. and Knowledge Eng., pp. 59-78, vol. 2, Mar. 1992.
[25] M. Jarke, J. Bubenko, C. Rolland, A. Sutcliffe, and Y. Vassiliou, "Theories Underlying Requirements Engineering: An Overview of NATURE at Genesis," Proc. IEEE Int'l Symp. Requirements Eng., pp. 19-31,San Diego, Jan. 1992.
[26] J. Mylopoulos, A. Borgida, M. Jarke, and M. Koubarakis, "Telos: Representing Knowledge About Information Systems," ACM Trans. Information Systems, pp. 325-362, vol. 8, Oct. 1990.
[27] M. Jarke, J. Mylopoulos, J.W. Schmidt, and Y. Vassiliou, "DAIDA: An Environment for Evolving Information Systems," ACM Trans. Information Systems, pp. 1-50, vol. 10, Jan. 1992.
[28] J. Mylopoulos, L. Chung, and B. Nixon, "Representing and Using Nonfunctional Requirements: A Process-Oriented Approach," IEEE Trans. Software Eng., pp. 483-497, vol. 18, June 1992.
[29] B.A. Nixon, "Dealing with Performance Requirements During the Development of Information Systems," Proc. IEEE Int'l Symp. Requirements Eng., pp. 42-49,San Diego, Jan. 1992.
[30] C. Rich and R.C. Waters, "Knowledge Intensive Software Engineering," IEEE Trans. Knowledge and Data Eng., pp. 424-430, vol. 4, Oct. 1992.
[31] C. Rich and Y.A. Feldman, "Seven Layers of Knowledge Representation and Reasoning in Support of Software Development," IEEE Trans. Software Eng., pp. 451-469, vol. 18, June 1992.
[32] B. Ramesh and V. Dhar, "Supporting Systems Development by Capturing Deliberations During Requirements Engineering," IEEE Trans. Software Eng., pp. 498-510, vol. 18, June 1992.
[33] B. Ramesh and Luqi, "Process Knowledge Based Rapid Proto- typing for Requirements Engineering," Proc. IEEE Int'l Symp. Requirements Eng., pp. 248-255,San Diego, Jan. 1992.
[34] M.P. Heimdahl and N.G. Leveson, "Completeness and Consistency in Hierarchical State-Based Requirements," IEEE Trans. Software Eng., pp. 363-377, vol. 22, June 1996.
[35] L.E. Moser et al., "A Graphical Environment for the Design of Concurrent Real-Time Systems," ACM Trans. Software Eng. and Methodology, pp. 31-79, vol. 6, Jan. 1997.
[36] C.L. Heitmeyer, R.D. Jeffords, and B.G. Labaw, "Automated Consistency Checking of Requirements Specifications," ACM Trans. Software Eng. and Methodology, pp. 231-261, vol. 5, July 1996.
[37] K. Miriyala and M.T. Harandi, "Automatic Derivation of Formal Software Specifications from Informal Descriptions," IEEE Trans. Software Eng., pp. 1,126-1,142, vol. 17, Oct. 1991.
[38] M.T. Harandi and H.-Y. Lee, "Acquiring Design Schemas for Software Reuse," Proc. Fifth Int'l Conf. Software Eng. and Knowledge Eng., pp. 491-498, Knowledge Systems Institute, 1993.
[39] R.E. Bryant, "Graph-Based Algorithms for Boolean Function Manipulation," IEEE Trans. Computers, Vol. C-35, No. 8, Aug. 1986, pp. 667-690.
[40] J. Burch, E. Clarke, K. McMillan, D. Dill, and L. Hwang, "Symbolic Model Checking: 1020States and Beyond," Proc. IEEE Symp. Logic in Computer Science, pp. 428-439, 1990.
[41] R. Alur, C. Courcoubetis, and D. Dill, "Model-Checking in Dense Real-Time," Information and Computation, pp. 2-34, vol. 104, 1993.
[42] R. Alur, R.K. Brayton, T.A. Henzinger, S. Qadeer, and S.K. Rajamani, "Partial-Order Reduction in Symbolic State Space Exploration," Proc. Ninth Int'l Computer-Aided Verification Conf., pp. 340-351,Haifa, Israel, June 1997.
[43] T.A. Henzinger, X. Nicollin, J. Sifakis, and S. Yovine, "Symbolic Model Checking for Real-Time Systems," Information and Computation, vol. 111, no. 2, 1994.
[44] E.A. Emerson and A.P. Sistla, "Symmetry and Modelchecking," Proc. Fifth Int'l Computer-Aided Verification Conf., Lecture Notes in Computer Science 697, pp. 463-478, Springer-Verlag, 1993.
[45] P. Godefroid and P. Wolper, "Using Partial Orders for the Efficient Verification of Deadlock Freedom and Safety Properties," Formal Methods in System Design, pp. 149-164, Apr. 1993.
[46] G.J. Holzmann, Design and Validation of Computer Protocols, Prentice Hall, 1991.
[47] A. Valmari, "Stubborn Sets for Reduced State Space Generation," Advances in Petri Nets, pp. 463-478, Lecture Notes in Computer Science 483, Springer-Verlag, 1991.
[48] R. Milner, "A Calculus of Communicating Systems," Lecture Notes in Computer Science 92, 1980.
[49] C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, Englewood Cliffs, N.J., 1985.
[50] J.A. Bergstra and J.W. Klop, "Algebra of Communicating Processes With Abstraction," Theoretical Computer Science, pp. 77-121, vol. 37, no. 1, 1985.
[51] G. Berthelot, "Checking Properties of Nets Using Transformations," Lecture Notes in Computer Science 222, pp. 19-40, 1986.
[52] M. Zhou, K. McDermott, and P.A. Patel, "Petri Net Synthesis and Analysis of a Flexible Manufacturing System Cell," IEEE Trans. Systems, Man, and Cybernetics, pp. 523-531, vol. 23, no. 2, Mar. 1993.
[53] R. Milner, "Operational and Algebraic Semantics of Concurrent Processes," Handbook of Theoretical Computer Science, J. van Leeuwen, ed., Elsevier, 1990.
[54] G. Boudol, G. Rucairol, and R. DeSimone, "Petri Nets and Algebraic Calculi of Processes," Advances in Petri Nets, Lecture Notes in Computer Science 188, 1985.
[55] G. Winskel, "Petri Nets, Algebras, Morphisms, and Compositionality," Information and Computation, pp. 197-238, vol. 72, 1987.
[56] K.K. Sabnani, A.M. Lapone, and M.U. Uyar, "An Algorithm Procedure for Checking Safety Properties of Protocols," IEEE Trans. Comm., pp. 940-948, vol. 37, no. 9, 1989.
[57] S.M. Shatz, S. Tu, T. Murata, and S. Duri, "An Application of Petri Net Reduction for Ada Tasking Deadlock Analysis," IEEE Trans. Parallel and Distributed Systems, pp. 1,307-1,322, vol. 7, no. 12, Dec. 1996.
[58] A. Valmari, "Compositional State Space Generation," Proc. 11th Int'l Conf. Application and Theory of Petri Nets, pp. 43-62, 1990.
[59] E. Juan, J.J.P. Tsai, and T. Murata, "A New Compositional Method for Condensed State Space Verification," Proc. First IEEE High-Assurance Systems Eng. Workshop, pp. 104-111,Ontario, Canada, Oct. 1996.
[60] J.J.P. Tsai and E. Juan, "Efficient Compositional State-Space Verification for Communicating Processes in Distributed Systems," Proc. Second IEEE High-Assurance Systems Eng. Workshop, pp. 188-193,Washington, D.C., Aug. 1997.
[61] E. Juan, J.J.P. Tsai, and T. Murata, "Compositional Verification of Concurrent Systems Using Petri-Net-Based Condensation Rules," ACM Trans. Programming Languages and Systems, vol. 20, no. 5, Sept. 1998.
[62] L. Aceto and M. Hennessy, "Termination, Deadlock, and Divergence," J. ACM, pp. 147-187, vol. 39, no. 1, Jan. 1992.
[63] P.C. Kanellakis and S.A. Smolka, "CCS Expressions, Finite State Processes, and Three Problems of Equivalence," Information and Computation, pp. 43-68, vol. 86, 1990.
[64] A. Valmari, "Compositional Analysis With Place-Bordered Subnets," Proc. 15th Int'l Conf. Application and Theory of Petri Nets, pp. 531-547, 1994.
[65] A. Valmari, "The Weakest Deadlock-Preserving Congruence," Information Processing Letters, pp. 341-346, vol. 53, 1995.
[66] M. Notomi and T. Murata, "Hierarchical Reachability Graph of Bounded Petri Nets for Concurrent-Software Analysis," IEEE Trans. Software Eng., vol. 20, no. 5, May 1994.
[67] S. Duri, U. Buy, R. Devarapalli, and S.M. Shatz, "Application and Experimental Evaluation of State Space Reduction Methods for Deadlock Analysis in Ada," ACM Trans. Software Eng. and Methodology, pp. 340-380, vol. 3, no. 4, Oct. 1994.
[68] N.A. Lynch and M.R. Tuttle, "Hierarchical Correctness Proofs for Distributed Algorithms," Proc. Sixth Symp. Principles of Distributed Computing, pp. 137-151, ACM, New York, 1987.
[69] F.S. de Boer, J.N. Kok, C. Palamidessi, and J.J. M.M. Rutten, "On Blocks: Locality and Asynchronous Comm.," Proc. Rex Workshop on Semantics: Foundations and Applications, pp. 73-91, Lecture Notes in Computer Science 666, Springer-Verlag, 1993.
[70] T. Basten and M. Voorhoeve, "An Algebraic Semantics for Hierarchical P/T Nets," Proc. 16th Int'l Conf. Application and Theory of Petri Nets, pp. 45-65, Lecture Notes in Computer Science 935, 1995.
[71] M. Shaw, R. DeLine, D.V. Klein, T.L. Ross, D.M. Young, and G. Zelesnik, "Abstractions for Software Architecture and Tools to Support Them," IEEE Trans. Software Eng., Apr. 1995.
[72] D. Garlan, R. Allen, and J. Okerbloom, "Exploiting Style in Architectural Design Environments," Proc. SIGSOFT: Foundations of Software Eng., ACM, Dec. 1994.
[73] N. Medvidovic, "A Classification and Comparison Framework for Software Architecture Description Languages," Technical Report No. UCI-ICS-97-02, Univ. of California, Irvine, Feb. 1997.
[74] J. Mostow, "Automating Program Speedup by Deciding What to Cache," Proc. Ninth Int. Joint Conf. Artificial Intelligence, vols. I-II, pp. 165-172,Los Altos, Calif., Morgan Kaufmann, 1985.
[75] O.V. Sokolsky and S.A. Smolka, "Incremental Model Checking in Modal mu-Calculus," Proc. Sixth Int'l Computer-Aided Verification Conf., 1994.
[76] J.J.P. Tsai, A.P. Sistla, A. Sahay, and R. Paul, "Incremental Verification of Architecture Specification Language for Real-Time Systems," Int'l J. Software Eng. and Knowledge Eng., vol. 8, no. 3, 1998.
[77] J.J.P. Tsai and K. Xu, "Specification of Multimedia Systems Using An Object-Oriented Architecture Description Language," Proc. Sixth IEEE Int'l Conf. Multimedia Computing and Systems,Florence, Italy, June 1999.
[78] J.J.P. Tsai and E. Juan, Compositional Verification of High-Assurance Systems, Kluwer, Boston, 1999.
[79] N. Medvidovic, P. Oreizy, J. E. Robbins, and R.N. Taylor, "Using Object-Oriented Typing to Support Architectural Design in the C2 Style," Proc. SIGSOFT, ACM, Oct. 1996.
[80] J. Magee and J. Kramer, "Dynamic Structure in Software Architectures," Proc. SIGSOFT, ACM, Oct. 1996.
[81] R. Allen and D. Garlan, Formalizing Architectural Connection Proc. 16th Int'l Conf. Software Eng., pp. 71-80, May 1994.
[82] D.C. Luckham and J. Vera, "An Event-Based Architecture Definition Language," IEEE Trans. Software Eng., pp. 717-734, Sept. 1995.
[83] S. Vestal, "MetaH Programmer's Manual," Version 1.09, technical report, Honeywell Technology Center, Apr. 1996.
[84] D. Garlan, R. Monroe, and D. Wile, "ACME: An Architecture Interchange Language," technical report, Carnegie Mellon Univ., Nov. 1995.
[85] P.C. Clements, "A Survey of Architecture Description Languages," Proc. Eighth Int'l Workshop Software Specification and Design,Germany, Mar. 1996.
[86] A. Abd-Alah and B. Boehm, "Models for Composing Heterogeneous Software Architectures," technical report, Univ. of Southern California, Los Angeles, 1996.
[87] M. Shaw and D. Garlan, "Characteristics for Higher-Level Languages for Software Architecture," technical report, Carnegie Mellon Univ., Dec. 1994.
[88] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[89] J.J.P. Tsai, "Dependability of A.I. Systems," IEEE Trans. Knowledge and Data Eng., pp. 57-63, vol. 6, no. 1, Feb. 1995.
[90] J.J.P. Tsai, D. Zhang, A. Sahay, and E. Juan, "Knowledge Verification," Encyclopedia of Electrical and Electronics Eng., John Wiley and Sons, 1999.
[91] J.J.P. Tsai, B. Li, and E. Juan, "Parallel Evaluation of Software Architecture Specification," Comm. ACM, pp. 83-86, vol. 40, no. 1, Jan. 1997.
[92] J.J.P. Tsai, B. Li, and T. Weigert, "A Logic-Based Transformation Systems," IEEE Trans. Knowledge and Data Eng., pp. 91-107, vol. 10, no. 1, Jan. 1998.
[93] J.J.P. Tsai and B. Li, Knowledge-Based Software Architecture, World Scientific Publisher, Singapore, 1999.

Index Terms:
Knowledge-based system, software architecture, knowledge acquisition, architecture specification language, architecture style, formal verification, compositional verification.
Citation:
Jeffrey J.P. Tsai, Alan Liu, Eric Juan, Avinash Sahay, "Knowledge-Based Software Architectures: Acquisition, Specification, and Verification," IEEE Transactions on Knowledge and Data Engineering, vol. 11, no. 1, pp. 187-201, Jan.-Feb. 1999, doi:10.1109/69.755628
Usage of this product signifies your acceptance of the Terms of Use.