Engenharia de Software Engenharia de Software | Maio | 2004 (distribuição gratuita) nº13 www.engenharia-software.com À Procura dos Princípios Fundamentais Aliar as Redes às Aplicações O desenvolvimento de software é arte pura. Não pode ser uma disciplina da engenharia – e não tem nenhum dos aspectos da engenharia – porque não tem princípios fundamentais. Todo o conhecimento de como se desenvolve software baseia-se no processo de teste e erro. Sem princípios fundamentais, o desenvolvimento de software continuará a ser uma arte para sempre e persistirá a chamada crise do software. A LAN é uma empresa de Coimbra que começou a sua actividade em 1994, com uma forte incidência na área das redes informáticas. Em 1999, a empresa internacionalizou a sua actividade com a prestação de serviços de redes em Angola. Um dos aspectos paradigmáticos da actividade comercial da LAN consiste na aliança entre as propostas de redes e de aplicações, cobrindo vários mercados e necessidades. O modelo de negócio da empresa começou por privilegiar a área das redes e relegar a componente aplicacional para segundo plano. Essa estratégia foi revista alguns anos mais tarde e, actualmente, baseia a sua actividade de software nas aplicações da PHC. p. 8 p. 3 Regras para o Desenho de Software Neste artigo È apresentado um conjunto de regras de desenho ñ um ìpadr„o de desenho universalî associado ao princÌpio fundamental e aos requisitos axiom·ticos. p. 10 integrador de soluções 2 Arte ou Ciência índice 3 À Procura dos Princípios Fundamentais do Desenvolvimento de Software 6 Desenvolver o Capital Intelectual de Coimbra 8 Aliar as Redes às Aplicações 10 Regras para o Desenho de Software 12 Reconquistar o Mercado Português 14 Os Mais e os Menos da Europa Digital A Legislação e o Comércio Electrónico Mercado de PCs Cresceu Mais na Região EMEA que no Mundo Sun Rende-se à Microsoft 15 Mais Português na Microsoft Gadgets Electrónicos em Alta Software de Armazenamento Cresceu 7,9% Continua a discutir-se se a engenharia de software é uma actividade artesanal ou científica. É verdade que adoptou a palavra engenharia, mas será mesmo digna de ostentar esse nome? Há quem diga que sim, há quem diga que não e há ainda aqueles que preferem o nim. Nesta edição da newsletter Engenharia de Software procuramos esclarecer a questão. Para isso, recorremos a dois artigos de de Koni Buhrer, especialista em engenharia de software na Rational Software/IBM. No primeiro, o autor explica porque considera a engenharia de software uma arte e não uma ciência. Para se tornar ciência, é necessário identificar os princípios fundamentais do desenvolvimento de software. Sem esses princípios, diz o autor, o desenvolvimento de software continuará a ser uma arte para sempre e persistirá a chamada crise do software (projectos frequentemente cancelados antes da sua conclusão, orçamento e prazos excedidos, resultados de baixa qualidade…). São propostos ainda neste artigo alguns dos requisitos axiomáticos – que se aplicam a qualquer sistema de software. No segundo artigo, que não é mais do que uma espécie de continuação do primeiro, Buhrer apresenta um conjunto de regras de desenho – um “padrão de desenho universal” associado ao princípio fundamental e aos requisitos axiomáticos – e quatro tipos de elementos de design que, em conjunto, podem descrever todo um sistema de software numa única visão. Na entrevista das páginas centrais apresentamos a empresa LAN, um integrador que aborda o mercado das redes e das aplicações. Um dos aspectos importantes desta entrevista tem a ver com a importância das relações de parceria para responder ao mercado. No caso concreto da LAN, alia a sua experiência na área das redes às aplicações desenvolvidas pela PHC (uma software-house que vende o seu software apenas através de parceiros). Neste número também publicamos uma entrevista com o country manager da Computer Associates Portugal e falamos do conceito de Capital Intelectual proposto por Leif Edvinsson. Este especialista altamente conceituado em todo o mundo e eleito Brain of the Year em 1998, esteve em Coimbra a convite do Projecto TIM para participar num seminário relativo à economia do conhecimento. O Editor Leonel Miranda ficha técnica Director: Horácio Pina Prata · Editor: Leonel Miranda ([email protected]) Colaboradores: Andreas Huber, Edgar Bragança, Fernando Santos, Isabel Ferreira, Jorge Teixeira, Luis Oliveira, Manuel Arcângelo, Mário Carvalho, Paulo Figueiredo, Rui Pereira, Rui Porteiro, Susana Fonte, Andreia Madeira · Marketing: Mário Noronha · Paginação e Produção: INSAT Consultoria e Serviços Lda. · Propriedade: Associação Comercial e Industrial de Coimbra (ACIC) – Projecto TIM (Tradição, Inovação e Mudança) · Endereço: Projecto TIM; Parque de Feiras e Exposições; Alto da Relvinha; 3020-365 Coimbra · Telefone: 239 497 232/440 · Fax: 239 497 231/441 · Email: [email protected] · Tiragem: 5 000 exemplares · Distribuição Gratuita · Apoio: princípios Engenharia de Software | Maio| 2004 À Procura dos Princípios Fundamentais do Desenvolvimento de Software O desenvolvimento de grandes sistemas de software é difícil e imprevisível. Os projectos de software são frequentemente cancelados, terminam fora de prazo, excedem os orçamentos, ou produzem resultados de baixa qualidade. Tudo isto faz com que a engenharia de software seja bastante diferente de outras disciplinas de engenharia convencionais. A nalisando as coisas de forma superficial, os problemas da “engenharia” de software podem ser facilmente explicados pelo facto do desenvolvimento de software ser artesanato e não uma disciplina da engenharia. Para se tornar uma disciplina da engenharia, o desenvolvimento de software terá que passar por uma mudança de paradigma, deixando a fase do teste e erro e especificar um conjunto de princípios fundamentais. Neste artigo procuramos propor um primeiro princípio de desenvolvimento de software, assim como um conjunto correspondente de requisitos de software “axiomáticos”. Arte versus engenharia Quando olho para as fabulosas catedrais góticas europeias, costumo perguntar quem foram os arquitectos que as desenharam e as construíram. Como é que adquiriram o conhecimento necessário para criarem estruturas que, além de belas, também são suficientemente robustas para resistir às forças da natureza durante séculos? Como é que conseguiram construir esses edifícios sem computadores, sem ferramentas hidráulicas e sem os modernos materiais de construção? Claramente, os arquitectos medievais tinham um conhecimento extraordinário sobre o desenho e construção de edifícios – pelo que eram altamente respeitados e honrados como mestres da sua profissão. De facto, eram mestres, mas não merecem ser chamados de engenheiros. Porque não? A razão é simples. Apesar dos arquitectos medievais terem um conheci- mento profundo sobre a forma como construir edifícios altos, não sabiam nada sobre as leias da física. Sabiam que a forma de um tecto em arco tinha que ser cónica, mas nunca ouviram falar de equações diferenciais. O conhecimento dos arquitectos medievais baseava-se exclusivamente na experiência resultante do teste e erro e não tinha qualquer fundamento científico. Em resumo, podemos dizer que os arquitectos medievais sabiam como fazer as coisas, mas não tinham qualquer ideia sobre a razão porque as coisas tinham que ser feitas dessa forma. O desenho e a construção de edifícios eram uma arte, pelo que os mestres medievais de arquitectura eram artistas e não engenheiros. A diferença entre o mestre de arquitectura medieval e o moderno engenheiro civil tem a ver com o facto deste último compreender a razão das regras arquitecturais. Pode deduzir as regras a partir das leis da física e, consequentemente, provar a fiabilibilidade de um desenho antes de efectuar qualquer trabalho de construção e mesmo que não tenha qualquer experiência prática. Pelo contrário, os arquitectos medievais tinham que acumular esse conhecimento lenta e penosamente, através do processo de teste e erro. Eventualmente, alguns tornavam-se mestres e passavam os seus conhecimentos aos aprendizes. Alguns desses aprendizes 3 4 princípios acabariam também por se tornar mestres e passar o seu conhecimento aos aprendizes das gerações seguintes. Foi assim que a arte medieval da arquitectura foi amadurecendo lentamente ao longo do tempo – mas continuando a ser arte. O desenho e a construção de edifícios passou abruptamente de arte para uma disciplina da engenharia quando se passou a basear nos fundamentos científicos fornecidos pelas leis da física. A maturidade, por si só, não transforma uma arte numa disciplina da engenharia. A engenharia requer uma mudança de paradigma. A arte baseia-se no teste e erro, enquanto que a engenharia se baseia num conjunto de princípios fundamentais (frequentemente as leis da física aplicáveis). A partir desses princípios, todo o conhecimento pode ser inferido. O teste e erro é o selo da arte, enquanto os princípios fundamentais são o selo da engenharia. O que é actualmente o desenvolvimento de software? Com base nesta distinção, é caso para perguntarmos se actualmente o desenvolvimento de software é arte, uma disciplina da engenharia, ou algo intermédio. Muitos especialistas em desenvolvimento de software declarariam provavelmente que ainda não é uma disciplina da engenharia, mas está a avançar nesse sentido. Eu acho que essa ideia é uma miragem. Na minha opinião, o desenvolvimento de software é arte pura. Não pode ser uma disciplina da engenharia – e não tem nenhum dos aspectos da engenharia – porque não tem princípios fundamentais. Todo o conhecimento de como se desenvolve software baseia-se exclusivamente no processo de teste e erro. É verdade que já foram efectuados alguns progressos desde o surgimento do desenvolvimento de software. Alguns mestres do desenvolvimento de software – como Grady Booch, Jim Rumbaugh e Walker Royce, por exemplo – inventaram métodos e regras bem sucedidos para guiar aqueles que fazem desenvolvimento de software. A esses métodos e regras chamamos normalmente boas práticas. Mesmo assim, tal como os arquitectos medievais, os especialistas em desenvolvimento de software aprenderam e validaram essas boas práticas através do teste e erro. Aquilo que falta actualmente ao desenvolvimento de software é um conjunto de princípios fundamentais onde se possam basear as suas regras e métodos. A falta de princípios fundamentais de desenvolvimento de software tem consequências sérias, frequentemente materializadas na expressão “a crise do software”. Os projectos de software são muitas vezes cancelados antes da sua conclusão. Por sua vez, aqueles que são concluídos excedem frequentemente o orçamento e os prazos, ou fornecem resultados de baixa qualidade. Como outros autores já explicaram, o factor chave para o sucesso de um projecto de software é uma boa arquitectura. A incapacidade para criar rotineiramente uma boa arquitectura é exactamente aquilo que distingue o desenvolvimento de software das disciplinas de engenharia tradicionais. Mas porque razão existe esta embaraçosa discrepância? Ao contrário do especialista em desenvolvimento de software, o engenheiro utiliza um conjunto de princípios fundamentais para provar a qualidade de um desenho antes de ser efectuado qualquer trabalho de construção. Pelo contrário, quem desenvolve software terá que se basear em testes para avaliar a qualidade de uma arquitectura. Ou seja, tem que chegar a uma boa arquitectura através de um processo de teste e erro. Este facto explica a razão porque os dois maiores problemas dos projectos de software mal sucedidos são os “fragmentos tardios e o trabalho repetido”, assim como o “fracasso tardio do desenho”. Os especialistas em desenvolvimento de software criam um desenho arquitectural no início do desenvolvimento de software, mas não têm qualquer forma de avaliar imediatamente a qualidade desse desenho. Os especialistas em desenvolvimento não têm princípios fundamentais para provar se o desenho é adequado. O teste do software revelará todos os defeitos arquitecturais, mas isso só acontece numa fase posterior do desenvolvimento, quando a correcção desses defeitos já é onerosa e causadora de perturbações. Proposta: um primeiro princípio de desenvolvimento de software Sem princípios fundamentais, o desenvolvimento de software continuará a ser uma arte para sempre e persistirá a chamada crise do software. É, portanto, necessário ir à procura de alguns princípios fundamentais. Apesar de ser demasiado difícil identificar os princípios fundamentais do desenvolvimento de software, já é bastante fácil encontrar alguns requisitos axiomáticos – requisitos que se aplicam a qualquer sistema de software. Apresentamos de seguida uma lista desses requisitos: - O software tem que obter dados de uma ou mais interfaces externas (hardware). - O software tem que disponibilizar dados para uma ou mais interfaces externas (hardware). - O software tem que manter dados internos para serem utilizados e actualizados a cada ciclo de execução. - O software tem que transformar os dados de entrada em dados de saída (utilizando possivelmente os dados internos). - O software tem que efectuar transformações de dados tão rapidamente quanto possível. Consulte o artigo completo em www.engenharia-software.com evento 6 Desenvolver o Capital Intelectual de Coimbra No passado dia 12 de Maio, o Auditório da Reitoria da Universidade de Coimbra acolheu o seminário Corporate Longitude - Navigating the Knowledge Economy. A iniciativa foi do Projecto TIM (um projecto da ACIC – Associação Comercial e Industrial de Coimbra), contou com o apoio da Universidade de Coimbra e trouxe a Portugal Leif Edvinsson, considerado um dos 20 líderes de conhecimento mais admirados em todo o mundo e eleito Brain of the Year em 1998, ex-aequo com Bill Gates e Paul McCartney. L eif Edvinsson é um dos especialistas mundiais mais destacados de um conceito que dá pelo nome de Intellectual Capital, ou capital intelectual, sendo mesmo um dos pioneiros nesta área. Já foi distinguido pelo seu trabalho por vários organismos internacionais e publicou livros sobre o tema. Em 1997 publicou o livro “Realizing Your Company´s True Value by Finding Its Hidden Brainpower”, conjuntamente com Michael Malone. Em 2002 foi publicado o livro “Corporate Longitude”, também da sua autoria. Com este último livro, Leif Edvinsson pretendeu propor diferentes formas de olhar para os problemas nas organizações. Segundo o próprio, para conseguirmos descobrir coisas novas e fazer face às incertezas do futuro, precisamos de adoptar novas perspectivas. A importância do capital intelectual A importância do capital intelectual percebida por Leif Edvinsson levou-o a fundar a UNIC (Universal Networking Intellectual Capital), cujo principal objectivo consiste em criar as condições para que países, regiões e organizações possam desenvolver o capital intelectual que possuem e tirar o devido partido dessa mais valia. O capital intelectual, segundo Leif Edvinsson, é uma combinação de capital humano e de capital estrutural. Por capital humano entenda-se a inteligência, as aptidões, as abordagens e o potencial das pessoas. O capital estrutural (ou de estrutura) é o capital inerente aos clientes, processos, bases de dados, marcas e sistemas. No fundo, o que se pretende é transformar o conheci- Leif Edvinsson, um dos mais destacados especialistas mundiais de Capital Intelectual. mento e os activos intangíveis em capital criador de recursos, através da multiplicação do capital humano com o capital de estrutura. Leif Edvinsson sublinha que o capital intelectual é universal. Não diz respeito apenas a uma empresa. É fundamental para todas as empresas. Também não deve ser compreendido apenas como uma técnica de gestão (como a reengenharia) que possamos decidir implementar ou não. Não se trata de uma ferramenta académica, de um componente da gestão de conhecimento, ou de mais uma ideia de gestão para tornar as empresas mais rápidas e eficientes. Para Leif Edvinsson, o capital intelectual é antes a espinha dorsal e a estrutura de suporte para compreender o potencial dos activos escondidos, seja a nível de um país, de uma comunidade, de uma região, ou de uma organização. Para mais informação , poderá consultar www.corporatelongitude.com e www.unic.net. O seminário fez parte integrante do Programa Cultural da Queima das Fitas 2004 e, além de Leif Edvinsson, contou com outros oradores docentes da Universidade de Coimbra. Concretamente, a comunicação de Teresa Carla Oliveira teve como título “Para além do Capital Humano: Valorização das Experiências de Vida e do Trabalho”. Duarte Gomes e Leonor Cardoso abordaram o tema “Gestão do Conhecimento e Desempenho Organizacional”. PUB Rational IBM entrevista 8 Aliar as Redes às Aplicações A LAN é uma empresa de Coimbra que começou a sua actividade em 1994, com uma forte incidência na área das redes informáticas. Em 1999, a empresa internacionalizou a sua actividade com a prestação de serviços de redes em Angola, onde ainda continua com projectos. Um dos aspectos paradigmáticos da actividade comercial da LAN consiste na aliança entre as propostas de redes e de aplicações, cobrindo vários mercados e necessidades. Leonel Miranda O modelo de negócio da empresa começou por privilegiar a área das redes e relegar a componente aplicacional para segundo plano. Essa estratégia foi revista alguns anos mais tarde e, actualmente, a LAN baseia a sua actividade de software nas aplicações da PHC. Esta parceria, segundo Luís Henriques, director técnico e director comercial da LAN, permitiu à empresa alargar os seus objectivos de mercado, aliando a sua experiência na área das redes à componente de software. A LAN apresenta-se como um integrador que desenvolve interfaces de ligação entre o software da PHC e outros softwares ou hardware. Como refere a informação oficial da empresa divulgada na Internet, “o objectivo da LAN é implementar sistemas de informação nas empresas, oferecendo soluções chave na mão, criando, projectando e implementando desde a infra-estrutura de cablagem e sistemas servidores até às bases de dados e aplicações…”. Apesar desta diversificação de actividade, as redes continuam a ter uma forte presença na actividade da LAN, nomeadamente através do protocolo IP (Voz sobre IP, sistemas de vigilância sobre IP) e das redes sem fio. As componentes de redes e de aplicações têm andado assim cada vez mais interligadas nos projectos da LAN. Por exemplo, a empresa está a trabalhar num projecto (na Chamagás) que envolve a componente de comunicações e o software PHC para responder ao negócio de distribuição de gás. Noutro projecto com a Marigold-Industrial (grupo francês Comasec), a Gestão de Recursos Humanos da PHC está a ser integrada com o controlo e vigilância de acessos. No caso da Tridec, está a implementar uma solução de VoIP sobre ADSL entre a Holanda e Portugal. Luís Henriques, director técnico e director comercial na LAN Uma década de actividade Como já referimos atrás, a LAN iniciou a sua actividade há cerca de uma década (em 1994), pelo que tem atravessado a história mais recente da informática. A nível de sistemas, iniciou a sua actividade com soluções Unix, seguindo-se depois soluções Novell e Microsoft (NT e 2000 Server). Actualmente, a hegemonia vai para os sistemas Windows .net Server 2003 e Linux. Se considerarmos as redes locais (LANs) – que deram o nome à empresa – a evolução também foi uma constante, passando das ligações RS232 para Token-Ring, Ethernet, Fast Ethernet e Gigabit Ethernet. Esta evolução também foi acompanhada com soluções de cablagem: cabos de cobre blindados, cabos de fibra óptica, cabos UTP (Unshielded Twisted Par) de categoria 5 e, mais recentemente, de categoria 6 e 7. Nas WANs (Wide Area Networks) os modems de 9 600 bits por segundo (9,6 Kbps) baseados em linhas telefónicas deram lugar aos seus congéneres de 56 000 bits por segundo (56 Kbps). Também podemos falar das ligações RDIS a 64 Kbps e a 128 Kbps. Com a banda larga, a LAN passou a disponibilizar soluções ADSL (Asynchronous Digital Subscribe Line), cuja largura de banda para downloads chega aos 1 024 Kbps sobre linhas telefónicas analógicas e digitais. entrevista 9 Engenharia de Software | Maio | 2004 Ainda a nível das redes, a LAN propõe igualmente soluções de comunicação dedicada Frame Relay ou ponto a ponto. Nas ligações ponto a ponto já efectuou instalações com routers a 2 Mbps, utilizando tecnologia SDSL (Synchronous Digital Subscribe Line). Nas soluções wireless, as propostas vão desde as redes de interior às de exterior. Quando se trata de protocolos de rede, o TCP/IP lidera actualmente o mercado, dada a omnipresença da Internet. Nesta área, a LAN propõe soluções de Intranet e Extranet via VPN (Virtual Private Network). Incluiu ainda no seu catálogo de propostas as soluções de segurança (através da implementação de políticas de sistema, encriptação de dados, antivírus, sniffers e firewalls). Na vertente aplicacional, os 10 anos de actividade da LAN também foram marcados pela evolução tecnológica e, inclusivamente, pela mudança de parceiro. Depois da ligação a uma empresa de software de Coimbra, que não conseguiu responder às necessidades da LAN, optou pela actual parceria que mantém com a PHC. Em termos tecnológicos, as aplicações em Cobol, Access e dBase deram lugar, em 2001, a soluções em SQL Server. Soluções propostas Actualmente, a LAN tem um leque de propostas bastante variado e capaz de responder a vários tipos de necessidades. As soluções disponibilizadas cobrem as áreas de ERP (Enterprise Resource Planning), B2B (Business to Business), CRM (Customer Relationship Management), clínicas e consultórios médicos, recursos humanos e controlo de acessos, redes sem fio (wireless), telefone IP, vigilância sobre IP, ou segurança (protecção de dados). Ainda a nível das comunicações, a LAN disponibiliza soluções de interligação de redes locais (wireless, VPN sobre Internet, ADSL, Dial-in e soluções dedicadas utilizando tecnologias xDSL). No caso das soluções B2B é proposto o software de gestão para Internet da gama phcDigital. Esta gama inclui os módulos/ produtos dPortal (gestão de conteúdos e site institucional), dSuporteExterno (apoio técnico aos clientes via Internet), dFront (front-office na Internet), dSuporteInterno (gestão remota do suporte), dManager (gestão remota da gestão comercial e financeira), dComunidade (partilha remota de gestão comercial financeira), dIntranet Ricardo Almeida, responsável pelo desenvolvimento do software Manufactor no grupo PHC, e Luís Henriques, director técnico e director comercial na LAN. (comunicação e informação interna), dFormação (interface Internet para formandos), dCrm (gestão remota da actividade comercial) e dContabilidade (acesso remoto à informação contabilística). Poderá encontrar informação mais detalhada sobre as várias soluções no site da LAN. Quem é a PHC? A PHC é uma software-house de Lisboa com cerca de 15 anos de actividade e presença em todo o país através de uma rede de distribuição. A empresa não aborda os clientes directamente, mas antes através de parceiros. A actividade de desenvolvimento da PHC começou pelo software de gestão (comercial, contabilidade…). Nos últimos três anos começou a alargar a sua gama de software para abranger a gestão de clínicas, a gestão de projectos de construção civil e a área de produção. Como explicou Ricardo Almeida, responsá- vel pelo desenvolvimento do software Manufactor, a PHC é um grupo de empresas, em que cada uma se dedica a uma área de actividade específica. O objectivo consiste em desenvolver software simultaneamente standard, parametrizável e robusto. Com base na informação disponibilizada no site, podemos referir ainda que a PHC lançou a primeira versão do seu software para Windows em 1994. Mais recentemente, em 2002, lançou o produto PHC Digital, constituído por vários packages que permitem o acesso e controlo da informação através da Internet. O grupo dedica-se actualmente apenas ao desenvolvimento de software e à formação, conta com 80 funcionários e mais de 200 parceiros espalhados pelo país e África. A rede de distribuição da PHC cobre o Norte, Centro, Sul e Ilhas de Portugal e estende-se também a Moçambique. Ficha da Empresa Nome: LAN Instalações: Coimbra Data de criação: 1994 Número de empregados: 7 Volume de negócios 2003: 750 000 euros Principais clientes: Tridec, Marigold Industrial, DataPlas, Chamagás, Diário de Coimbra, Matobra, Purificadora, MoviCoimbra, Montael, Fucoli-Somepal, Açoreana Seguros etc. Soluções: ERP, B2B, CRM, gestão de clínicas e consultórios, redes sem fio, VoIP, vigilância sobre IP, segurança, VPN sobre Internet, Dial-in, xDSL. Países de actuação: Portugal e Angola. Outros países em prospecção. Site: www.lan.pt desenho 10 Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho – um “padrão de desenho universal” associado ao princípio fundamental e aos requisitos axiomáticos. O padrão de desenho universal apresenta quatro tipos de elementos de design que, em conjunto, podem descrever todo um sistema de software numa única visão. C ada tipo de elemento de desenho tem a ver com um – e apenas com um – dos seguintes quatro aspectos da operação do sistema: estruturas de dados e operações primitivas, interfaces externas (hardware), algoritmos de sistema, fluxo de dados e sequência de acções Porque precisamos de regras de desenho Um princípio fundamental é uma lei fundamental estabelecida ou uma verdade largamente aceite que rege um campo específico da ciência ou da engenharia. Para a área da construção, por exemplo, a lei da gravidade é um princípio fundamental. O desenvolvimento de software também tem um princípio fundamental: o software corre em hardware e interage com hardware – hardware esse que tem uma velocidade finita. Apesar dos princípios fundamentais serem a base de todo o raciocínio científico, fornecem pouca ajuda prática a um engenheiro que tem pela frente um trabalho de desenho. Normalmente, são demasiado abstractos ou demasiado pesados para serem implementados directamente. Mesmo assim, os princípios fundamentais incluem requisitos axiomáticos – requisitos que se aplicam a todos os sistemas que foram e serão criados. Na área da construção, por exemplo, a ideia de que “o edifício deve suportar a força da gravidade” constitui um requisito axiomático. Obviamente, todos os edifícios têm que satisfazer este requisito. O desenvolvimento de software também tem requisitos axiomáticos, como vimos no artigo da página 3. A partir dos seus requisitos axiomáticos, todas as disciplinas tradicionais da engenharia têm derivado um conjunto de regras de desenho. Na área da construção civil, por exemplo, uma regra de desenho é a que se segue: “uma parede mestra (destinada a suportar peso) tem que estar sempre posicionada por cima de uma parede mestra”. O propósito desta regra de desenho consiste em ajudar os engenheiros a criar arquitecturas que satisfaçam os requisitos axiomáticos. Se um desenho arquitectural obedecer a todas as regras de desenho, então os engenheiros saberão a priori que satisfaz os requisitos axiomáticos e, consequentemente, será consistente com os princípios fundamentais. As regras de desenho permitem que os engenheiros demonstrem facilmente a qualidade de uma arquitectura antes de iniciarem a construção. É necessário, portanto, encontrar as regras de desenho do desenvolvimento de software que estão associadas aos cinco requisitos axiomáticos referidos na página 3. O padrão de desenho universal As regras de desenho assumem várias formas. Podem ser muito explícitas, como uma lista de declarações imperativas do tipo “o especialista em desenvolvimento de software deve…”, mas também podem ser mais subtis, como um conjunto de elementos de desenho predefinidos incluídos numa linguagem de desenho. Se uma linguagem de desenho incluir classes, por exemplo, então uma regra de desenho implícita será “utilize classes para o desenho de software”. A maior parte dos métodos de desenho de desenho 11 Engenharia de Software | Maio | 2004 software disponibilizam, tanto um conjunto de elementos de desenho predefinidos, como regras narrativas sobre a forma como utilizar esses elementos de desenho. Comecemos pelos elementos de desenho. Convém ter em conta que as linguagens de desenho existentes, como a Unified Modeling Language (UML), não disponibilizam muita ajuda. A UML, por exemplo, é um sistema de notação ad hoc, sem princípios fundamentais subjacentes e sem requisitos axiomáticos. Os elementos de desenho foram escolhidos devido ao seu grande poder expressivo e porque a experiência e erro provaram a sua utilidade. Não são estes os elementos de desenho de que estamos à procura. Em vez disso, precisamos dos elementos de desenho o mais restritivos possível – elementos que forcem os especialistas em desenvolvimento de software a criar arquitecturas que satisfaçam os nossos requisitos axiomáticos. Os seguintes quatro tipos de elementos de desenho inserem-se nesta descrição. Entidade de dados. As entidades de dados representam os dados entrados e saídos do sistema de software, assim como os dados internos. Servidor I/O. Encapsulam as interfaces externas (hardware) com as quais interage o software. Também podem ser servidores puros de entrada ou de saída. Servidor de transformação. Efectuam a transformação de dados de entrada em dados de saída, ao mesmo tempo que actualizam possivelmente os dados internos. Gestor de fluxo de dados. Obtêm dados de entrada dos servidores de I/O, invocam os servidores de transformação (que transformam os dados de entrada em dados de saída) e disponibilizam dados de saída aos servidores de I/O. Também detêm os dados internos. Os requisitos axiomáticos 1 a 4 implicam claramente a presença de entidades de dados, servidores de I/O e servidores de transformação. Mas para que queremos os gestores de fluxos de dados? A resposta é que os gestores de fluxos de dados tornam o fluxo de execução explícito. Isto, por sua vez, permite que um especialista em desenvolvimento de software mostre que uma arquitectura satisfaz o requisito axiomático 5: “o software efectua a transformação de dados tão rápido quanto possível”. Sem gestores de fluxos de dados – por exemplo, com os outros elementos de desenho a enviarem mensagens uns para os outros – o fluxo de execução tornar-se-ia rapidamente impossível de acompanhar e, consequentemente, o tempo de execução seria imprevisível. Cada tipo de elemento de desenho tem uma natureza distinta e uma responsabilidade distinta dentro de um sistema de software. As propriedades e as responsabilidades sobrepõem-se muito pouco e os elementos de desenho do padrão de desenho universal complementam-se bem uns aos outros. Dividir para conquistar O padrão de desenho universal tem uma característica chave que o distingue de qualquer outro método de desenho ou linguagem de modelação: divide estritamente as preocupações operacionais pelos seus quatro tipos de elementos de desenho. Desta forma, elimina qualquer necessidade de visualizações diferentes de um desenho. Com o padrão de desenho universal, todos os aspectos de um sistema de software podem ser representados numa única visualização. No entanto, nessa visualização cada tipo de elemento de desenho está preocupado com um – e só um – aspecto do funcionamento do sistema. As entidades de dados estão preocupadas apenas com estruturas de dados e operações primitivas nessas estruturas de dados. Uma entidade de dados é um objecto inteiramente passivo – dado puro – insensível a algoritmos de sistema, interfaces externas, ou sequências de acções. Os servidores de I/O estão preocupados apenas com a encapsulação e o serviço de interfaces externas (hardware). Um servidor de I/O pode estar preocupado com o tempo de I/O, mas não com o agendamento ou com a activação de outras acções de sistema. Os servidores de I/O não efectuam qualquer tarefa algorítmica relativamente aos dados de entrada ou de saída com que lidam. Os servidores de transformação estão preocupados apenas com os algoritmos do sistema. Um servidor de transformação nunca tem que se preocupar com a origem ou com o destino dos dados. Todas as operações de um servidor de transformação são sequenciais e determinísticas. Os servidores de transformação não estão preocupados com a representação dos dados, interfaces externas, ou sequências de acções. Os gestores de fluxos de dados estão preocupados apenas com os fluxos de dados e com as sequências de acções. Sabem quais as acções que o sistema precisa de realizar e em que sequência, mas não estão preocupados com os detalhes dessas acções – os algoritmos e as interfaces externas (hardware). Apesar dos gestores de fluxos de dados deterem os dados internos, não estão preocupados com a sua representação. Para consultar o artigo completo veja em www.engenharia-software.com empresa 12 Reconquistar o Mercado Português A Computer Associates (CA) posiciona-se como um fornecedor de software orientado para a gestão das infra-estruturas de tecnologias e sistemas de informação das organizações de média e grande dimensão. A companhia também tem soluções para as pequenas empresas, mas a sua orientação estratégica tem sido sobretudo para as médias e grandes empresas. Leonel Miranda D e acordo com José Pedro Carvalho, country manager da Computer Associates Portugal, a companhia está a passar por uma mudança de ciclo no nosso país. Desde há três anos, tem vindo a apostar seriamente na máxima do “customer first” (o cliente em primeiro lugar) e a tomar medidas concretas para passar essa ideia à sua rede de parceiros e ao mercado em geral. Os frutos dessa política parecem estar a surgir. Segundo as palavras do country manager da CA Portugal, nos primeiros nove meses do ano fiscal de 2003, a companhia obteve resultados superiores aos 12 meses do ano fiscal anterior. A integração dos diferentes produtos e a agregação em áreas tecnológicas com interface de utilizador comum foram outros aspectos que contribuíram para a maior adesão do mercado. Seis áreas tecnológicas Na qualidade de uma das multinacionais de referência do mundo do software, as propostas da CA abrangem um grande leque de produtos, organizados em seis áreas tecnológicas (ver imagem). A primeira dessas áreas é a gestão de infra-estruturas, designada internamente por Enterprise Management e servida pela linha de produtos Unicenter – talvez a marca mais conhecida da CA. A segunda área é a segurança, onde são propostos os produtos eTrust. As soluções de segurança propostas vão desde o simples antivírus até soluções abrangentes que contemplem a gestão de todos os utilizadores. Os produtos BrightStor respondem à área de armazenamento. Neste caso, estamos a falar, não do hardware de José Pedro Carvalho, country manager da Computer Associates Portugal. armazenamento, mas antes do software que efectua a gestão desses componentes de hardware. As soluções de base de dados e de desenvolvimento de aplicações (Data Management and Application Development) estão agrupadas na linha de produtos Advantage. A completar esta área, existem as soluções AllFusion, orientadas para a gestão do ciclo de vida das aplicações. Os produtos AllFusion permitem controlar o ciclo de vida das aplicações, desde a modelização de dados até à gestão de configurações. Para a área de Portal e Business Intelligence são propostos os produtos CleverPath. Estas seis áreas tecnológicas endereçadas pela CA envolvem mais de um milhar de produtos e têm duas características impor- empresa 13 Engenharia de Software | Maio | 2004 tantes em comum, segundo José Pedro Carvalho. A primeira é a independência relativamente à plataforma de suporte. Ou seja, todos os produtos da CA são desenhados desde o início para serem independentes face à plataforma de base (Windows, vários Unixes, mainframe), pelo que podem funcionar de forma integrada numa organizações com múltiplas plataformas. A segunda característica comum a todos os produtos da CA é a existência de uma interface comum com o utilizador através do portal. Por exemplo, os produtos Unicenter têm o portal com o mesmo nome e podem ser utilizados de acordo com uma interface comum. Base instalada em Portugal A CA Portugal está actualmente apta a vender no nosso país todas as soluções da multinacional e, de acordo com a informação fornecida, existem clientes no nosso país de todas as seis áreas tecnológicas referidas atrás. No entanto, a maior base instalada é a da família de produtos Unicenter. José Pedro Carvalho destacou ainda três outras áreas que, segundo o próprio, irão ter grande procura nos próximos anos: segurança, armazenamento e gestão do ciclo de vida aplicacional. No caso da segurança, a adesão do mercado acontecerá por razões óbvias de protecção, devido a uma maior consciência dos riscos e ao aumento (em quantidade e sofisticação) dos ataques. Quanto ao armazenamento, o mercado tem vindo a perceber que a solução para as necessidades crescentes não passa apenas pela adição de discos e outro hardware, mas sobretudo pela melhor gestão dos meios já existentes. A gestão de todo o ciclo aplicacional é outra das vertentes que irá ter grande procura nos próximos tempos, devido à necessidade de garantir que as aplicações que são colocadas em produção obedecem a regras de qualidade, de controlo e de verificação. Apesar de Portugal ser um mercado pequeno no contexto mundial e mesmo europeu, José Pedro Carvalho contextualizou-nos o peso do nosso país para a CA no âmbito do mercado ibérico. Nesse sentido, foi-nos dito que o volume de negócios da CA Portugal representa cerca de um terço do negócio da CA Espanha. Venda directa e indirecta Em Portugal, a CA pratica a venda directa e indirecta (através de parceiros). A abordagem directa do mercado incide apenas sobre as Os mais de mil produtos que constituem a oferta da CA estão agrupados em seis áreas tecnológicas. grandes empresas e as maiores das médias empresas. No entanto, esta abordagem do mercado com a sua própria força de venda também tem em conta a rede de parceiros, enquanto fornecedores de valor acrescentado complementar às soluções da CA. Face a esta dualidade de abordagem do mercado (venda directa e indirecta), quisemos saber como é que a CA lida com as potenciais situações de concorrência com os seus próprios parceiros. José Pedro Carvalho explicou-nos que a participação dos parceiros é normalmente incentivada. Nos casos em que a força de venda interna da CA poderia sair prejudicada pela perda de um negócio a favor de um parceiro, foi-nos referido que “existe a compensação total das partes envolvidas”. Ou seja, a força comercial da CA não é penalizada pelo facto da venda ser efectuada por um parceiro. Por outro lado, existem alguns produtos que a CA não vende directamente ao cliente final – só através de revendedores – mesmo quando surgem oportunidades de venda. Estão incluídos aqui alguns produtos da área de segurança (antivírus, Secure Content Management…), algumas soluções de armazenamento (ArcServe Backup) e as soluções de modelização de dados (Advantage ErWin). No entanto, isto não impede que exista uma colaboração estreita entre o revendedor e a CA no fornecimento destes produtos, sobretudo quando a sua venda acontece no âmbito de soluções com alguma complexidade. A rede de parceiros directos da CA em Portugal ronda a dezena e meia, cobrindo todo o território nacional, incluindo as regiões autónomas. Quanto à localização geográfica do mercado da CA, situa-se essencialmente no litoral, dada a dimensão das empresas privilegiadas pela estratégia da companhia. Vale a pena acrescentar ainda que a CA Portugal tem sobretudo uma missão comercial, pelo que é constituída por uma equipa comercial (cerca de sete pessoas), uma equipa técnica constituída por cerca de 13 consultores (pré-venda, após-venda, implementação, definição de soluções…) e uma equipa de carácter administrativo (cerca de cinco pessoas). A sucursal da CA no nosso país não efectua desenvolvimento nem fornece o chamado suporte de primeira linha. Ficha da Empresa Nome: Computer Associates Portugal Instalações: Lisboa Data de instalação em Portugal: Subsidiária desde 1991 Número de empregados: 26 Volume de negócios 2003: 5 milhões de euros em volume de contratos Principais clientes: CTT, Banco de Portugal, Portugal Telecom, Banco BPI, Optimus, Modelo-Continente, etc. Produtos: Mais de um milhar de produtos agrupados em seis áreas tecnológicas – Enterprise Management (Unicenter), Security (eTrust), Storage (BrightStor), Data Management and Application Development (Advantage), Application Life Cycle Management (AllFusion), Portal and Business Intelligence (CleverPath). Site: www.ca.com/offices/portugal/index.htm notícias 14 Mercado de PCs Cresceu Mais na Região EMEA que no Mundo Os Mais e os Menos da Europa Digital A Jupiter Research realizou um estudo (Digital Life Index) destinado a medir o nível de desenvolvimento digital em 17 países da Europa Ocidental. Para este tipo de avaliação, o estudo teve em conta vários factores, o volume de compras on-line e o número de telefones móveis e outros equipamentos digitais. Os resultados indicam que a Suécia lidera a tabela classificativa a nível da navegação Internet e da utilização de equipamentos digitais recentes. Nestas categorias, o outro extremo da tabela é ocupado pela Grécia. No entanto, se falarmos de compras na Internet, a liderança passa para o Reino Unido. Quando são considerados todos os factores em conjunto, os melhores resultados são obtidos pela Suécia, Dinamarca, Noruega e Finlândia. Nos piores lugares estão a Grécia, Portugal e Itália, com os gregos a ocuparem sempre o último lugar em todos os seis factores considerados pelo estudo. As grandes economiaseuropeiasocupamposiçõesdíspares. Enquanto que a França e a Alemanha estão próximas na tabela classificativa (ocupando respectivamente os lugares 10 e 11 da tabela), o Reino Unido conseguiu posicionar-se nos cinco primeiros. A Legislação e o Comércio Electrónico O seminário CiberLaw 2004, organizado recentemente em Lisboa, teve o mérito de discutir algumas das questões legais que se colocam actualmente face ao mundo electrónico, desde as mensagens de carácter publicitário enviadas por correio electrónico sem o consentimento do destinatário (vulgarmente designadas por spam), até à atribuição dos nomes de domínio a nível da Internet. Durante o evento, foi dada grande ênfase ao Decreto-Lei n.º 7/2004, também conhecido por lei do comércio electrónico. A discussão andou muito em torno das “alterações” introduzidas na lei portuguesa face à directiva comunitária 200/31/CE. Quem quiser investigar mais estes temas, poderá consultar dois livros editados recentemente. Um deles é da autoria de Miguel Almeida Andrade e tem como título “Nomes de Domínio na Internet - A Regulamentação dos Nomes de Domínio Sobre .pt”. O outro foi escrito por Manuel Rocha, Ana Marques e André Bernardo e chama-se “Guia da Lei do Comércio Electrónico”. De acordo com a Gartner, o mercado de PCs registou um crescimento de 16,8 por cento na região EMEA (Europa, Médio Oriente e África) durante o primeiro trimestre de 2004, comparativamente a igual período de 2003. No total, foram vendidos 14,9 milhões de equipamentos, incluindo desktops, notebooks e servidores de arquitectura Intel. Ainda de acordo com a Gartner, o mercado de PCs também cresceu 13,4 por cento a nível mundial no mesmo trimestre, registando um volume de vendas da ordem das 45,3 milhões de unidades. A região onde este mercado registou maior crescimento durante o primeiro trimestre deste ano foi a área EMEA, enquanto que o Japão foi a que menos cresceu, ficando-se por um aumento de vendas de seis por cento. Sun Rende-se à Microsoft Depois dos tempos de litígio com a Microsoft, a Sun parece ter dado o braço a torcer. A Microsoft herda desses tempos a factura de 1,95 mil milhões de dólares que tem de pagar à Sun, mas conseguiu estabelecer um pacto de 10 anos com esta última mediante o pagamento de mais 700 milhões de dólares para resolver questões antitrust e mais 900 milhões de dólares por questões relacionadas com patentes. As duas companhias acordaram ainda o pagamento de direitos pela utilização das tecnologias uma da outra. Para a Sun, este pacto tem como objectivo a melhoria da interoperabilidade entre as tecnologias das duas companhias. No entanto, não nos podemos esquecer que a Sun apresentou reduções de facturação durante 12 trimestres consecutivos e prejuízos líquidos em alguns deles. No terceiro trimestre fiscal, findo em Março último, a Sun registou prejuízos líquidos no valor de 760 milhões de dólares. A facturação no mesmo período registou uma quebra de cinco por cento relativamente ao ano anterior. Engenharia de Software Mais Português na Microsoft A Microsoft apresentou várias novidades nas últimas semanas. Uma das mais bem vindas para o nosso país foi o lançamento das versões do Microsoft Project e do Visio em língua portuguesa. Desta forma, só falta colocar o OneNote em português para que todos os programas do Microsoft Office System “falem” a língua de Camões. O Project é uma aplicação de gestão de projectos, enquanto que o Visio está orientado para a criação de diagramas técnicos e empresariais. Paralelamente, a Microsoft apresentou uma nova forma de licenciamento do Navision, procurando assim responder melhor às necessidades dos clientes de menor dimensão. Gadgets Electrónico em Alta A região EMEA também contribuiu significativamente para o crescimento do mercado de handhelds e smart-phones, com um volume de compras próximo dos 2,5 milhões de equipamentos durante o primeiro trimestre de 2004. Face a igual período de 2003, o crescimento de vendas foi de 62 por cento. A Nokia e a HP ocupam, respectivamente, a primeira e segunda posição, embora a quota de mercado da primeira tenha diminuído. Na terceira posição surge a PalmOne. Estes dados foram divulgados pela Canalys. Software de Armazenamento Cresceu 7,9% O mercado mundial de software de armazenamento cresceu 7,9 por cento durante 2003, segundo a Gartner, atingindo um volume de negócios global da ordem dos cinco biliões de dólares. Recorde-se, no entanto, que este mercado tinha registado um decréscimo de 5,8 por cento no ano anterior. Relativamente a 2004, os analistas da Gartner estimam um crescimento idêntico ao de 2003. Os fornecedores mais proeminentes destes mercado em 2003 foram a EMC (com uma quota de mercado de 28,3 por cento), a Veritas Software (com 18,7%), a IBM (13%), a HP (5,6%) e a Computer Associates (5,3 %). Nome Cargo Empresa Morada Código Postal Localidade Telefone NIF E-mail Curso 1 Análise e Gestão de Requisitos 6 Documentação de Sistemas Utiliza ferramentas de análise de requisitos Usa ferramentas de geração automática Faz a traceabilidade de alterações de requisitos de documentação Usa ferramentas de gestão de alterações de requisitos Usa só o Microsoft Word Tem um procedimento formalizado Normalmente não produz documentação Utiliza a Norma ANSI IEEE 1063 – 2 Gestão de Configurações e Alterações Standard for software user documentation Usa ferramentas de gestão de configurações Faz versionamento de aplicações 7 Standards de Interoperabilidade Faz controle de alterações Conhece e usa sistematicamente Não faz Conhece e está a começar a usar 3 Modelação Visual Usa ferramentas de modelação visual Utiliza ou conhece o Rational Rose Usa UML Não faz modelação visual 4 Teste de Software Faz sempre testes manuais Usa ferramentas para automação de testes Faz plano de testes Concebe casos de uso de testes 5 Services Oriented Architecture Conhece, mas não usa Não conhece 8 Dos seguintes items, qual(is) os que toma como referência CMM (Capability Maturity Model) e/ou CMMI (Capability Maturity Model Integration) ISO 15504 - SPICE (Software Process Improvement and Capability Determination) ISO 9126 ou ISO 12119 (Qualidade dos Produtos de Software) ISO 12207 (Information Technology – Software Life Cycle Processes) Conhece e usa sistematicamente ISO 14598 (Avaliação de produtos de Conhece e está a começar a usar Software) Conhece, mas não usa Trillium Não conhece Para receber mensalmente a newsletter (distribuição gratuita), preencha o questionário acima e envie-o para: Projecto TIM; Parque de Feiras e Exposições; Alto da Relvinha; 3020-365 Coimbra. Também poderá digitalizá-lo e enviá-lo para o endereço [email protected], ou imprimi-lo e enviá-lo através do fax (+351) 239 497 231. tradição, inovação e mudança PUB TIM CARA VELA CARAVELA