<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>modularidade &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/modularidade/</link>
	<description>Feed of posts on WordPress.com tagged "modularidade"</description>
	<pubDate>Mon, 08 Sep 2008 08:36:43 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[A Necessidade da Abstração (A Visão do Poeta)]]></title>
<link>http://jcspl.wordpress.com/?p=76</link>
<pubDate>Sat, 17 May 2008 12:00:07 +0000</pubDate>
<dc:creator>Julio Cesar Sampaio do Prado Leite</dc:creator>
<guid>http://jcspl.wordpress.com/?p=76</guid>
<description><![CDATA[Em nota anterior, &#8220;Níveis de Abstração&#8220;, já tinha apontado da importância do concei]]></description>
<content:encoded><![CDATA[<p>Em nota anterior, "<a title="abstr" href="http://jcspl.wordpress.com/2007/03/14/niveis-de-abstracao/" target="_blank">Níveis de Abstração</a>", já tinha apontado da importância do conceito de abstração para a engenharia de software.</p>
<p>Posterior a minha postagem, o <a title="jeff" href="http://www-dse.doc.ic.ac.uk/cgi-bin/moin.cgi/jk" target="_blank">Professor Jeff Kramer </a>publicou um artigo na <a title="key 2" href="http://portal.acm.org/citation.cfm?id=1232743.1232745&#38;coll=GUIDE&#38;dl=GUIDE&#38;idx=J79&#38;part=magazine&#38;WantType=Magazines&#38;title=Communications%20of%20the%20ACM&#38;CFID=://www.google.com.br/search?sourceid=navclient-ff&#38;CFTOKEN=www.google.com.br/search?sourceid=navclient-ff" target="_blank">CACM</a> cujo título é “<a title="key" href="http://www.cse.msu.edu/~cse914/Papers/kramer-abstraction.pdf" target="_blank">Abstraction – the key to Computing</a>?” onde escreve sobre porque acredita que esse conceito é fundamental para a computação.  Concordo plenamente.  Vale a pena ler.</p>
<p>Estive na UFF no árduo trabalho de membro da banca de um concurso para Professor.   Nesta ocasião,  o <a title="orlando" href="http://www.ic.uff.br/~loques/" target="_blank">Professor Orlando Loques</a> mostrou-me um conto de <a title="borges" href="http://es.wikipedia.org/wiki/Jorge_Luis_Borges" target="_blank">Jorge Luis Borges</a> que tinha pregado em sua parede. Incrível! Creio que é uma demonstração clara da necessidade da abstração.   Aqui vai o texto, leia-o com atenção.</p>
<blockquote><p><strong>Del rigor en la ciencia</strong></p>
<p>En aquel Imperio, el Arte de la Cartografía logró tal Perfección que el Mapa de una sola Provincia ocupaba toda una Ciudad, y el Mapa del Imperio, toda una Provincia. Con el tiempo, estos Mapas Desmesurados no satisficieron y los Colegios de Cartógrafos levantaron un Mapa del Imperio, que tenía el Tamaño del Imperio y coincidía puntualmente con él. Menos Adictas al Estudio de la Cartografía, las Generaciones Siguientes entendieron que ese dilatado Mapa era Inútil y no sin Impiedad lo entregaron a las Inclemencias del Sol y los Inviernos. En los Desiertos del Oeste perduran despedazadas Ruinas del Mapa, habitadas por Animales y por Mendigos; en todo el País no hay otra reliquia de las Disciplinas Geográficas.<br />
Suárez Miranda: Viajes de varones prudentes<br />
Libro Cuarto, cap. XLV, Lérida, 1658 (<a title="site de poesia" href="http://www.palabravirtual.com/index.php?ir=ver_poema1.php&#38;pid=10936" target="_blank">veja a fonte</a>)</p></blockquote>
<p>Se preferir ouvi-lo na própria voz do grande poeta, veja <a title="youtube" href="http://video.google.com/videoplay?docid=-8747548060623486309" target="_blank">este vídeo</a>.</p>
<p>--------</p>
<p>Leia sobre <a title="sisdinf" href="http://sisdinf.blogspot.com/" target="_blank">Sistemas de Informação</a>.</p>
<p>Veja a página do <a title="jcspl" href="http://www-di.inf.puc-rio.br/~julio/" target="_blank">autor</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Simpósio Brasileiro de Engenharia de Software (SBES)]]></title>
<link>http://jcspl.wordpress.com/2007/10/27/simposio-brasileiro-de-engenharia-de-software-sbes/</link>
<pubDate>Sat, 27 Oct 2007 12:21:04 +0000</pubDate>
<dc:creator>Julio Cesar Sampaio do Prado Leite</dc:creator>
<guid>http://jcspl.wordpress.com/2007/10/27/simposio-brasileiro-de-engenharia-de-software-sbes/</guid>
<description><![CDATA[Reproduzo abaixo mensagem que enviei à lista da Sociedade Brasileira de Computação.
&#8220;O even]]></description>
<content:encoded><![CDATA[<p>Reproduzo abaixo mensagem que enviei à lista da <a target="_blank" href="http://www.sbc.org.br/" title="sbc">Sociedade Brasileira de Computação</a>.</p>
<p>"<em>O evento que reuniu o <a target="_blank" href="http://www.sbbd-sbes2007.ufpb.br/index.php?section=sbes" title="sbes 07">XXI SBES</a> e o XXII SBBD aconteceu na semana<br />
passada na Paraíba.</em></p>
<p><em>O SBES atingiu a maioridade. Gostaria de observar que essa<br />
maioridade é apropriada.</em></p>
<p><em>Quem esteve em João Pessoa presenciou um congresso<br />
dinâmico e muito bem organizado.</em></p>
<p><em>A maioridade é presente também no nível de debate e nos<br />
temas discutidos. Reflete, sem dúvida, a constante preocupação<br />
da comunidade em manter o SBES como um marco para a atividade<br />
de pesquisa em Engenharia de Software. Escutei alguns comentários<br />
sobre o SBES como uma incubadora de eventos, e<br />
isso é notável, ou seja, além de fomentar que grupos de interesse<br />
ganhem autonomia, mantém a tradição da reunião de<br />
muitos (creio que por volta de 500 pessoas) centrados nos<br />
assuntos da pesquisa em Engenharia de Software.</em></p>
<p><em>Um das perguntas freqüentes que o SBES se faz é sobre a interação da<br />
comunidade com a indústria. No painel sobre isso, foi perguntado à<br />
platéia, quem vinha da indústria. Creio que cerca de 2% dos presentes<br />
levantaram a mão. No entanto, um dos membros do painel,<br />
o Professor Don Batory, lembrou da importante missão da pesquisa<br />
atrelada às universidades. Segundo sua visão, é aí onde reside a<br />
principal fonte de transferência de conhecimento: os alunos, que<br />
serão os futuros profissionais. O SBES é fundamentalmente um lugar<br />
para o debate de resultados de pesquisas e, portanto, mais próximo<br />
do interesse acadêmico. Creio que isso é positivo.</em></p>
<p><em>A integração com a indústria se dá, e se dará como, importante,<br />
efeito colateral.</em></p>
<p><em>Em uma das sessões técnicas foi apresentado um trabalho<br />
que surgiu da colaboração entre uma universidade e uma empresa<br />
de software, porque esta empresa assistiu, no ano anterior no SBES,<br />
uma apresentação da ferramenta da universidade. É obvio que isso<br />
é só um exemplo, mas é um fato concreto.</em></p>
<p><em>Enfim: na verdade, a mensagem era para agradecer ao<br />
comitê organizador e ao comitê de programa. Fizeram um excelente trabalho. Parabéns!</em></p>
<p><em>jcl </em>"</p>
<p>Em comemoração aos 21 anos do SBES, coloco <a target="_blank" href="http://jcspl.wordpress.com/simposio-brasileiro-de-engenharia-de-software-sbes/" title="sbes">aí ao lado, uma página</a> com elos para artigos publicados no simpósio bem como para as páginas dos simpósios desde de 1998. Quem tiver endereços para eventos anteriores, favor informar, que atualizarei as informações.</p>
<p>-----</p>
<p>Leia sobre <a target="_blank" href="http://sisdinf.blogspot.com/" title="sisdinf">Sistemas de Informação</a>.</p>
<p>Veja a página do <a target="_blank" href="http://www-di.inf.puc-rio.br/~julio/" title="jcspl">autor</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Organização Modular (Modularidade)]]></title>
<link>http://jcspl.wordpress.com/2007/05/03/organizacao-modular-modularidade/</link>
<pubDate>Thu, 03 May 2007 11:20:10 +0000</pubDate>
<dc:creator>Julio Cesar Sampaio do Prado Leite</dc:creator>
<guid>http://jcspl.wordpress.com/2007/05/03/organizacao-modular-modularidade/</guid>
<description><![CDATA[O conceito de organização modular é fundamental em Teoria Geral de Sistemas, por um motivo óbvio]]></description>
<content:encoded><![CDATA[<p>O conceito de organização modular é fundamental em <a target="_blank" href="http://sisdinf.blogspot.com/2006/04/um-breve-resumo-sobre-teoria-geral-dos.html" title="tgs">Teoria Geral de Sistemas</a>, por um motivo óbvio: um sistema é sempre um subsistema de um sistema mais abstrato, ou de nível hierárquico mais alto, representando-se a idéia da decomposição como uma hierarquia. Usa-se o termo modularidade para refletir a propriedade de algo ter uma organização modular. Veja que usei o termo subsistema, mas poderia ter utilizado o termo sub-módulo.</p>
<p>A organização modular tem como finalidade básica auxiliar o gerenciamento de sistemas complexos.</p>
<p>Aprendi o conceito de organização modular logo cedo ao programar em Cobol e procurar dividir a “Procedure Division” em blocos usando o comando “Perform”. Um livro, "<a target="_blank" href="http://books.google.com.br/books?vid=04fSvddflKpJvTJe1T&#38;id=5ukmAAAAMAAJ&#38;q=%22modular+programming%22&#38;dq=%22modular+programming%22&#38;pgis=1" title="modular programming">Modular Programming</a>", foi base para um aprendizado mais formal sobre o assunto. A idéia é óbvia, mas ainda, por incrível que pareça, não foi completamente compreendida quer em <a target="_blank" href="http://www.people.hbs.edu/cbaldwin/DR1/DR1Overview.pdf" title="power of modularity">outras áreas</a>, quer pelos profissionais que produzem software.</p>
<p>Creio que um bom resumo sobre organização modular é <a target="_blank" href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-19.html#%_chap_3" title="texto do cap 3">texto inicial do Capítulo 3</a> e do <a target="_blank" href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-25.html#%_chap_4" title="Chapter 4">Capítulo 4 do livro</a> de Abelson, Sussman and Sussman. Cito algumas partes desses dois textos a seguir: a) “A Síntese efetiva de programas também precisa de princípios organizacionais que nos guie na formulação do desenho de um programa. Em particular, precisamos de estratégias para nos ajudar a estruturar grandes sistemas de tal maneira que eles tenha uma organização modular, isto é que eles possam ser divididos “naturalmente” em partes coerentes que possam ser separadamente desenvolvidas e mantidas” e b) “Em nosso estudo de desenho de programas, nos vimos que especialistas controlam a complexidade de seus desenhos usando técnicas gerais usadas por desenhadores de todos os sistemas complexos. Eles combinam elementos primitivos para formar objetos compostos, eles abstraem objetos compostos para formar blocos de construção de alto-nível, e eles preservam modularidade através da adoção de visões de larga escala para a estrutura do sistema.”</p>
<p>No tratado de Teoria Geral de Sistemas, <a target="_blank" href="http://www.amazon.com/gp/offer-listing/B0000EG8Y7/ref=dp_olp_0/103-3864136-3307044?ie=UTF8&#38;qid=1178291153&#38;sr=1-5&#38;condition=all" title="TGS">Bertallanfy escreve</a> na página 55 que o ditado “O todo é maior que a soma das partes” é na verdade o fato de que as características constitutivas não são explicadas a partir das características das partes isoladas, mas a partir dessas partes e das suas relações.</p>
<p>No entanto, fica no ar a questão de como identificar módulos, como fracionar um todo?</p>
<p>A idéia de que <a target="_blank" href="http://www.njit.edu/v2/Library/archlib/pub-domain/sullivan-1896-tall-bldg.html" title="sullivan">forma segue função </a>é uma das mais importantes heurísticas para organizar de forma modular. O livro de Abelson, Sussman e Sussman, no início do Capitulo 3 menciona explicitamente essa estratégia.</p>
<p>No entanto, como saber se nosso todo está bem organizado modularmente. Ou seja, como qualificar o resultado de termos organizado o sistema de maneira modular. Qual a modularidade desse sistema?</p>
<p>Em sistemas que precisam ter independência entre suas partes para facilitar sua evolução é comum adotar-se a estratégia de módulos com forte independência de outros módulos e com forte unicidade. Isso caracteriza sistemas onde o acoplamento entre sub-sistemas é fraco e onde cada sub-sistema é fortemente coeso.</p>
<p>Em engenharia de software, principalmente nos escritos de <a target="_blank" href="http://opac.porbase.org/ipac20/ipac.jsp?profile=porbase&#38;uri=full=3100024@!688170@!0&#38;ri=1&#38;aspect=basic_search&#38;menu=search&#38;ipp=20&#38;staffonly=&#38;term=&#38;index=&#38;uindex=&#38;aspect=basic_search&#38;menu=search&#38;ri=1" title="yourdon constantine">Constantine e Yourdon</a> as noções de acoplamento e coesão foram definidas de maneira clara, mas sem um formalismo adjacente. Essas noções foram herdadas dos conceitos de organização da teoria geral de sistemas e da cibernética.</p>
<p>Além do trabalho de Constantine e Yourdon é importantíssimo o trabalho do <a target="_blank" href="http://en.wikipedia.org/wiki/David_Parnas" title="Parnas">Prof. Parnas</a>, que também tem relação com a teoria geral de sistemas. Além de ressaltar a idéia de independência de módulos no sentido tanto de coesão e acoplamento, coube a Parnas criar um conceito sobre o compartilhamento de informação que se tornou um dos conceitos gerais mais citados na literatura de software. Refiro-me ao conceito de “information hiding” ou de proteção da informação. Esse conceito prega que cada módulo ou sub-sistema deve guardar para si as informações que só a ele interessa. É claro, que o conceito, ao ser aplicado a sistemas, gera como efeito um acoplamento fraco, em função da heurística de minimizar o conhecimento compartilhado.</p>
<p>No mundo de orientação a objetos o conceito de acoplamento ficou um tanto confuso. Vários autores definem métricas de acoplamento como sendo uma enumeração de quantas relações existem entre as partes e não observam que o fundamental não é o número de relações que um objeto possui, mas sim a qualidade dessa relação. Aqui, qualidade entende-se pelo quanto cada objeto se deixa conhecer pelo outro. No entanto, o fato de que a orientação a objetos mistura taxonomia com mereologia dificulta a aplicação do conceito de acoplamento fraco.</p>
<p>Existem métricas que procuram medir acoplamento e coesão, mas métricas sobre proteção de informação são raras e menos utilizadas.</p>
<p>É importante ressaltar que o acoplamento forte pode algumas vezes ser necessário. Um exemplo onde o acoplamento forte é positivo é no emprego em engenharia de produção do conceito de produção “<a target="_blank" href="http://libdigi.unicamp.br/document/?view=32" title="just in time">just in time</a>”. Em alguns casos essa forte dependência entre produtores e fornecedores é justificada pela redução de custos. Em software, muitas vezes um compartilhamento de memória comum é plenamente justificável em algumas situações, caracterizando um acoplamento forte entre os componentes que dividem esse recurso.</p>
<p>Uma heurística fundamental: o uso do conector "e" ou "ou" em um título de um módulo (ou subsistema) é um forte indicativo da falta de coesão!</p>
<p>Durante a pesquisa para escrever o texto acima encontrei alguns lugares que recomendo a visita. Alguns estão em Inglês.</p>
<p>a) <a target="_blank" href="http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/lowcoupling.htm" title="acopl-1">Noções de acoplamento</a> (Jacques Sauvé)<br />
b)<a target="_blank" href="http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/altacoesao.htm" title="coes-1"> Noções de coesão</a> (Jacques Sauvé)<br />
c) <a target="_blank" href="http://www.ime.usp.br/~kon/MAC5715/2002/aulas/Aula3.html" title="mod-1">Noções de modularidade</a> (Fabio Kon)<br />
d) <a target="_blank" href="http://www.ic.unicamp.br/~thelma/inf313/aulas-2005/aula6c-quali.pdf" title="coes-acol-1">Definição de Acoplamento/Coesão de Yourdon/Constantine</a> (Thelma Chiosi)<br />
e) <a target="_blank" href="http://javaboutique.internet.com/tutorials/coupcoh/" title="metrics">Metrics</a> (Samudra Gupta)<br />
f) <a target="_blank" href="http://www.cs.unc.edu/~stotts/COMP145/modules.html" title="coh-coupling">Coupling/Cohesion</a> (David Stotts)<br />
g) <a target="_blank" href="http://www.waysys.com/ws_content_bl_pgssd_ch06.html" title="page-jones">Cohesion</a> (Page-Jones)</p>
<p> (17/12/2007).  Relendo a nota, vejo que é necessário explicitar, melhor, o que é acoplamento e coesão.  <a target="_blank" href="http://jcspl.wordpress.com/2007/12/17/acoplamento-e-coesao/" title="acoplamento coesão">Siga o elo para ver </a>essa nova explicação.</p>
<p>............</p>
<p>Leia sobre <a target="_blank" href="http://sisdinf.blogspot.com/" title="sisdinf">Sistemas de Informação</a>.</p>
<p>Veja a página do <a target="_blank" href="http://www-di.inf.puc-rio.br/~julio/" title="jcspl">autor</a>.</p>
]]></content:encoded>
</item>

</channel>
</rss>
