Especificação Formal de uma Ferramenta de Trabalho Colaborativo através da Composição de Objetos Náutilus
Resumo
A construção de programas concorrentes e distribuídos que sejam corretos e confiáveis consiste em uma importante meta atual da Engenharia de Software. A linguagem baseada em objetos concorrentes Náutilus é um formalismo voltado a construção de programas desta natureza. Para ilustrar as facilidades de Náutilus, esta linguagem foi usada para especificar um editor colaborativo síncrono (CoEdit) anteriormente implementado em Java. Com a utilização de Náutilus, a especificação se mostrou mais clara, pois foi possível expressar a sincronização de processos concorrentes facilmente através das construções existentes na linguagem. Além disso, uma importante extensão ao programa CoEdit original foi realizada a partir da utilização dos mecanismos de abstração da linguagem, reutilizando os componentes especificados anteriormente e adicionando nova funcionalidade à especificação.
Referências
BARR, Michael; WELLS, Charles. Category Theory for Computing Science. London: Prentice Hall International. 1990.
BISCHOFBERGER, W. et al. Computer Supported Cooperative Software Engineering with Beyond-Sniff. [link] 1995.
BORGES, M. et al. Suporte por Computador ao Trabalho Cooperativo. Canela-RS: Instituto de Informática da UFRGS, 1995. JAI, 14., 1994, Canela.
CARNEIRO, C.; REIS, R.; MENEZES, P.B. Processamento Concorrente em Náutilus e Java. Simpósio Brasileiro de Linguagens de Programação, 3. Anais... Porto Alegre: SBC, 1999.
CARNEIRO, C. et. al. Náutilus: its Concurrent and Distributed Characteristics and as an Academic Language. In: Parallel and Distributed Processing Techniques and Applications, 1999, Las Vegas. Proceedings... Athens: C.S.R.E.A., 1999.
CARNEIRO, C. Autômato Não Seqüencial Identificado como Suporte para Classes em Náutilus. Porto Alegre: UFRGS, II-PPGC, 1999. Dissertação de Mestrado.
ELLIS, C.; GIBBS, S.; REIN, G. Groupware: some issues and experiences. Communications of the ACM, v.34, n.1, p.28-36, May 1994.
ELLIS, C. A Framework and Mathematical Model for Collaboration Technology. Berlin: Springer-Verlag, 1998 (Lecture Notes in Computer Science 1364)
GOSLING, J.; JOY, Bill.; STEELE, Guy. The Java Language Specification. [link].
GUTWIN, C.; GREENBERG, S. Workspace Awareness. In: CHI'97 Workshop on Awareness in Collaborative Systems, Proceedings... 1997.
HOARE, C.A.R. Monitors - An Operating System Structuring Concept. Communications of the ACM, v.17, n.10. p.549-557. 1974.
ISO-Information Processing Systems-Open Systems Interconection. LOTOS - A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour. DIS 8807. [S.l.]. 1987.
KHOSHAFIAN, S.; BUCKIEWICZ, M. Introduction to Groupware, Workflow and Workgroup Computing. New York: John Wiley & Sons, 1995.
LI, D.; MUNTZ, R. COCA: Collaborative Objects Coordination Architecture. In: CSCW'98. ACM 1998 Conference on CSCW, Proceedings... p. 179-188, 1998.
MENEZES, P.B.; COSTA, J.F. Compositional Reification of Concurrent Systems. Journal of the Brazilian Computer Society. v.2, n.1, p.50-67. Jul. 1995.
MENEZES, P.B. et al. Refinement in a Concurrent Object-Based Language. In: Simpósio Brasileiro de Linguagens de Programação, 1. Anais... SBC: Belo Horizonte. 1996.
MENEZES, P.B. Reificação de Objetos Concorrentes. Tese de doutorado. Instituto Superior Técnico. Universidade Técnica de Lisboa. 148 p. 1997.
MENEZES, P.B. et al. Nonsequential Automata Semantics for a Concurrent Object-Based Language. In: US-Brazil Workshop on Formal Foundations of Software Systems, 1. Proceedings... Rio de Janeiro. Electronic Notes in Theoretical Computer Science 14. 29 p. (http://www.elsevier.nl/locate/entcs/volume1.html). 1998.
MENEZES, P.B. A Categorial Framework for Concurrent, Anticipatory Systems. In: INTERNATIONAL CONFERENCE ON COMPUTING ANTICIPATORY SYSTEMS, 2., 1998, Liege, BE. Abstract Book. Liege, BE: Chaos ASBL, 1998.
RATIONAL (http://www.rational.com)
REGLI, W.C.Internet-Enabled Computer-Aided Design. IEEE Internet Computing, New York, v. 1, n. 1, p. 39-50, Feb. 1997.
REINHARD, W. et al. CSCW Tools: Concepts and Architectures. IEEE Computer, v.27, n. 5, p.28-36, May 1994.
REIS, R.Q. Uma Proposta de Suporte ao Desenvolvimento Cooperativo de Software no Ambiente PROSOFT. Dissertação de mestrado, CPGCC-UFRGS, 1998. (http://www.inf.ufrgs.br/~prosoft)
REIS, R.Q. et al. CoEdit - Um editor colaborativo síncrono em Java. Relatório Técnico, PPGC-UFRGS, 1998.
REKERS, J.; SPRINKHUIKEN-KUYPER, I. A LOTOS Specification of a CSCW Tool. (ftp://ftp.wi.LeidenUniv.nl/pub/CS/TechnicalReports/1992/tr92-28.ps.gz), 1992.
SERNADAS, A.; RAMOS, J. A. Linguagem GNOME: Sintaxe, Semântica e Cálculo. Relatório técnico. Universidade Técnica de Lisboa. 1994.
SERNADAS, C.; GOUVEIA, P.; SERNADAS, A. OBLOG: Object-Oriented Logic-Based Conceptual Modelling. Research report. Section of Computer Science. Department of Mathematics. IST. 1096 Lisboa. Portugal. 1992.
SERNADAS, C.; CARMO, P.; PENEDO, P. The GNOME compiler. Research Report. Section of Computer Science. Department of Mathematics. Instituto Superior Técnico. 1096 Lisboa. Portugal. 1994.
STEFIK, M. et al. Beyond the Chalk Board: Computer Support for Collaboration and Problem Solving in Meetings. Communications of the ACM, v. 30, n. 1, 1987.
SUN. Java 1.2 Documentation. Disponível por www em (http://java.sun.com/products/jdk/1.2/download-docs.html). 1999.
TAKAHASHI, T. et al. Programação Orientada a Objetos. SP: IME-USP. 1990.
WEGNER, P. Concepts and Paradigms of Object-Oriented Programming. OOPS MESSENGER. ACM Press. vI. nI. Aug 1990.