Natural language processing systems pose a unique
challenge for software architectural design as system complexity has
increased continually and systems cannot be easily constructed from
loosely coupled modules. Lexical, syntactic, semantic, and pragmatic
aspects of linguistic information are tightly coupled in a manner that
requires separation of concerns in a special way in design,
implementation and maintenance. An aspect oriented software
architecture is proposed in this paper after critically reviewing
relevant architectural issues. For the purpose of this paper, the
syntactic aspect is characterized by an augmented context-free
grammar. The semantic aspect is composed of multiple perspectives
including denotational, operational, axiomatic and case frame
approaches. Case frame semantics matured in India from deep
thematic analysis. It is argued that lexical, syntactic, semantic and
pragmatic aspects work together in a mutually dependent way and
their synergy is best represented in the aspect oriented approach. The
software architecture is presented with an augmented Unified
Modeling Language.
[1] R. S. Pressman, Software Engineering: A Practitioner-s Approach. (7th
ed.), McGraw-Hill, 2010.
[2] Y. Wang, Software Engineering Foundations: A Software Science
Perspective, Auerbach Publications, 2008.
[3] M. Shaw, and D. Garlan, "Formulations and Formalisms in Software
Architectures", Computer Science Today: Recent Trends and
Developments, Springer-Verlag LNCS, 1000, 307-323, 1995.
[4] E. Braude, and M. Bernstein, Software Engineering: Modern
Approaches, (2nd Edition), John Wiley & Sons, 2011.
[5] C. Chavez, A. Garcia, U. Kulesza, C. Sant-Anna, C. Lucena. Taming
Heterogeneous Aspects with Crosscutting Interfaces. Journal of the
Brazilian Computer Society, 2006.
[6] E. Baniassad, P. Clements, J. Araujo, A. Moreira, A. Rashid, and B.
Tekinerdogan, Discovering Early Aspects, IEEE Software, 2006.
[7] I. Krechetov, B. Tekinerdogan, and A. Garcia. Towards an integrated
aspect-oriented modeling approach for software architecture design. In .
In 8th Aspect-Oriented Modeling Workshop, Aspect-Oriented Software
Development (AOSD) 2006.
[8] A. Navasa , M. A. Pérez , J. M. Murillo , J. Hern├índez. Aspect Oriented
Software Architecture: A Structural Perspective, Proceedings of the
Aspect-Oriented Software Development (AOSD), 2002.
[9] J. Hong, "Why is Great Design so Hard?", Communications of the
ACM, July 2010.
[10] J. L. Azevedo, B. Cunha, and L. Almeida, "Hierarchical Distributed
Architectures for Autonomous Mobile Robots: A case study", in
Proceedings of the IEEE Conference on Emerging Technologies and
Factory Automation, 2007.
[11] D. E. Knuth, Seminumerical Algorithms: The Art of Computer
Programming 2. Addison-Wesley, Reading, Mass., 1969
[12] D. Gries, The Science of Programming. Springer, 1981.
[13] W. Humphrey, Managing the Software Process, Reading, MA.
Addison-Wesley.
[14] I. Sommerville, Software Engineering, 9th Edition, Addison Wesley,
2010.
[15] S. Pfleeger, and J. Atlee, Software Engineering, Prentice-Hall, 2010.
[16] B. Agarwal, S. Tayal and M. Gupta, Software Engineering and Testing,
Jones and Bartlet, 2010.
[17] F. Tsui, and O. Karam, Essentials of Software Engineering, 2nd Ed.,
Jones and Bartlet, 2011.
[18] L. Bass, P. Clements, and R. Kazman, Software Architecture in
Practice, 2nd Edition Addison-Wesley, 2003.
[19] J. Miller, and J. Mujerki, Editors, MDA Guide, Version 1, OMG
Technical Report. Document OMG/200-05-01,
http://www.omg.com/mda, 2003.
[20] N. Chomsky, New Horizons in the Study of Language and Mind,
Cambridge University Press., 2000.
[21] R. Hausser, Foundations of Computational Linguistics: Humancomputer
Communication in Natural Language. (2nd ed.), Springer,
New York, 2001.
[22] A. Abeille, and O. Rambow, Tree Adjoining Grammars. Univ. of
Chicago Press., 2001.
[23] J. Allen, Natural Language Understanding. 2nd ed. Addison-Wesley,
New York, 1995.
[24] P. Culicover, Natural Language Syntax, Oxford University Press., 2008.
[25] H. Alshawi, The Core Language Engine. MA: MIT Press., 1992.
[26] L. Iwanska, and S. Shapiro, (Eds.), Natural Language Processing and
Knowledge Representation: Language for Knowledge and Knowledge
for Language. AAAI Press. 2000.
[27] D. Jurafsky, Speech and Language Processing: An Introduction to
Natural Language Processing, computational linguistics and speech
recognition. Prentice Hall., 2000.
[28] A. Cruse, Meaning in Language: An introduction to Semantics and
Pragmatics. (2nd ed.). Oxford Univ. Press., 2004.
[29] R. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling
Language Reference Manual. (2nd Edition), Addison Wesley, 2005.
[30] G.M. Green, Semantics and Syntactic regularity. Fitzhenry & Whiteside
Limited, Don Mills, Ontario, 1974.
[31] P. P. Dey, Y. Hayashi, and E. Battistella, (1989). A combination of
strategies for parsing grammatical agreement in Hindi. International
Journal of Pattern Recognition and Artificial Intelligence, 3, 1989,
261-273.
[32] R. D. Van Valin, Exploring the Syntax-Semantics Interface. Cambridge
University Press, 2005.
[33] P. P. Dey, B. Bryant, and T. Takaoka, Lexical Ambiguity in Tree
Adjoining Grammars, Information Processing Letters, 34, 1990, 65-69.
[34] D. Cohen, Introduction to Computer Theory , 2nd Edition, John Wiley
& Sons, 1997.
[35] C. Fillmore, The case for case. In E. Bach & R. T. Harms (Eds.).
Universals in Linguistic Theory. New York: Holt, Rinehart and
Winston, 1968.
[36] C. Fillmore, Frames and the semantics of understanding. Quaderni di
Semantica 6.2, 222-254, 1985.
[37] R. Schank, and R. P. Abelson, Scripts, Plans, Goals, and Understanding,
Lawrence Erlbaum. 1977.
[38] B. Tekeinerdogan, and M. Aksit, "Classifying and Evaluating
Architecture Design Methods", in M. Aksit (editor), Software
Architectures and Component Technology, Kluwer Academic
Publishers, 2002.
[39] P. Clements, R. Kazman, and M. Klein. Evaluating Software
Architectures. Addison-Wesley, 2005.
[1] R. S. Pressman, Software Engineering: A Practitioner-s Approach. (7th
ed.), McGraw-Hill, 2010.
[2] Y. Wang, Software Engineering Foundations: A Software Science
Perspective, Auerbach Publications, 2008.
[3] M. Shaw, and D. Garlan, "Formulations and Formalisms in Software
Architectures", Computer Science Today: Recent Trends and
Developments, Springer-Verlag LNCS, 1000, 307-323, 1995.
[4] E. Braude, and M. Bernstein, Software Engineering: Modern
Approaches, (2nd Edition), John Wiley & Sons, 2011.
[5] C. Chavez, A. Garcia, U. Kulesza, C. Sant-Anna, C. Lucena. Taming
Heterogeneous Aspects with Crosscutting Interfaces. Journal of the
Brazilian Computer Society, 2006.
[6] E. Baniassad, P. Clements, J. Araujo, A. Moreira, A. Rashid, and B.
Tekinerdogan, Discovering Early Aspects, IEEE Software, 2006.
[7] I. Krechetov, B. Tekinerdogan, and A. Garcia. Towards an integrated
aspect-oriented modeling approach for software architecture design. In .
In 8th Aspect-Oriented Modeling Workshop, Aspect-Oriented Software
Development (AOSD) 2006.
[8] A. Navasa , M. A. Pérez , J. M. Murillo , J. Hern├índez. Aspect Oriented
Software Architecture: A Structural Perspective, Proceedings of the
Aspect-Oriented Software Development (AOSD), 2002.
[9] J. Hong, "Why is Great Design so Hard?", Communications of the
ACM, July 2010.
[10] J. L. Azevedo, B. Cunha, and L. Almeida, "Hierarchical Distributed
Architectures for Autonomous Mobile Robots: A case study", in
Proceedings of the IEEE Conference on Emerging Technologies and
Factory Automation, 2007.
[11] D. E. Knuth, Seminumerical Algorithms: The Art of Computer
Programming 2. Addison-Wesley, Reading, Mass., 1969
[12] D. Gries, The Science of Programming. Springer, 1981.
[13] W. Humphrey, Managing the Software Process, Reading, MA.
Addison-Wesley.
[14] I. Sommerville, Software Engineering, 9th Edition, Addison Wesley,
2010.
[15] S. Pfleeger, and J. Atlee, Software Engineering, Prentice-Hall, 2010.
[16] B. Agarwal, S. Tayal and M. Gupta, Software Engineering and Testing,
Jones and Bartlet, 2010.
[17] F. Tsui, and O. Karam, Essentials of Software Engineering, 2nd Ed.,
Jones and Bartlet, 2011.
[18] L. Bass, P. Clements, and R. Kazman, Software Architecture in
Practice, 2nd Edition Addison-Wesley, 2003.
[19] J. Miller, and J. Mujerki, Editors, MDA Guide, Version 1, OMG
Technical Report. Document OMG/200-05-01,
http://www.omg.com/mda, 2003.
[20] N. Chomsky, New Horizons in the Study of Language and Mind,
Cambridge University Press., 2000.
[21] R. Hausser, Foundations of Computational Linguistics: Humancomputer
Communication in Natural Language. (2nd ed.), Springer,
New York, 2001.
[22] A. Abeille, and O. Rambow, Tree Adjoining Grammars. Univ. of
Chicago Press., 2001.
[23] J. Allen, Natural Language Understanding. 2nd ed. Addison-Wesley,
New York, 1995.
[24] P. Culicover, Natural Language Syntax, Oxford University Press., 2008.
[25] H. Alshawi, The Core Language Engine. MA: MIT Press., 1992.
[26] L. Iwanska, and S. Shapiro, (Eds.), Natural Language Processing and
Knowledge Representation: Language for Knowledge and Knowledge
for Language. AAAI Press. 2000.
[27] D. Jurafsky, Speech and Language Processing: An Introduction to
Natural Language Processing, computational linguistics and speech
recognition. Prentice Hall., 2000.
[28] A. Cruse, Meaning in Language: An introduction to Semantics and
Pragmatics. (2nd ed.). Oxford Univ. Press., 2004.
[29] R. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling
Language Reference Manual. (2nd Edition), Addison Wesley, 2005.
[30] G.M. Green, Semantics and Syntactic regularity. Fitzhenry & Whiteside
Limited, Don Mills, Ontario, 1974.
[31] P. P. Dey, Y. Hayashi, and E. Battistella, (1989). A combination of
strategies for parsing grammatical agreement in Hindi. International
Journal of Pattern Recognition and Artificial Intelligence, 3, 1989,
261-273.
[32] R. D. Van Valin, Exploring the Syntax-Semantics Interface. Cambridge
University Press, 2005.
[33] P. P. Dey, B. Bryant, and T. Takaoka, Lexical Ambiguity in Tree
Adjoining Grammars, Information Processing Letters, 34, 1990, 65-69.
[34] D. Cohen, Introduction to Computer Theory , 2nd Edition, John Wiley
& Sons, 1997.
[35] C. Fillmore, The case for case. In E. Bach & R. T. Harms (Eds.).
Universals in Linguistic Theory. New York: Holt, Rinehart and
Winston, 1968.
[36] C. Fillmore, Frames and the semantics of understanding. Quaderni di
Semantica 6.2, 222-254, 1985.
[37] R. Schank, and R. P. Abelson, Scripts, Plans, Goals, and Understanding,
Lawrence Erlbaum. 1977.
[38] B. Tekeinerdogan, and M. Aksit, "Classifying and Evaluating
Architecture Design Methods", in M. Aksit (editor), Software
Architectures and Component Technology, Kluwer Academic
Publishers, 2002.
[39] P. Clements, R. Kazman, and M. Klein. Evaluating Software
Architectures. Addison-Wesley, 2005.
@article{"International Journal of Information, Control and Computer Sciences:64451", author = "Pradip Peter Dey and Ronald F. Gonzales and Gordon W. Romney and Mohammad Amin and Bhaskar Raj Sinha", title = "Aspect Oriented Software Architecture", abstract = "Natural language processing systems pose a unique
challenge for software architectural design as system complexity has
increased continually and systems cannot be easily constructed from
loosely coupled modules. Lexical, syntactic, semantic, and pragmatic
aspects of linguistic information are tightly coupled in a manner that
requires separation of concerns in a special way in design,
implementation and maintenance. An aspect oriented software
architecture is proposed in this paper after critically reviewing
relevant architectural issues. For the purpose of this paper, the
syntactic aspect is characterized by an augmented context-free
grammar. The semantic aspect is composed of multiple perspectives
including denotational, operational, axiomatic and case frame
approaches. Case frame semantics matured in India from deep
thematic analysis. It is argued that lexical, syntactic, semantic and
pragmatic aspects work together in a mutually dependent way and
their synergy is best represented in the aspect oriented approach. The
software architecture is presented with an augmented Unified
Modeling Language.", keywords = "Language engineering, parsing, software design, user
experience.", volume = "6", number = "7", pages = "909-5", }