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
Download

Newsletter ES N.º 13