• Nenhum resultado encontrado

3.1.2.1 Estrutura organizacional

3.1.3 Sistemas de informação

3.1.3.3 Desenvolvimento de sistemas

O desenvolvimento de sistemas tem se tornado cada vez mais complexo no decorrer dos últimos anos, especialmente porque precisa acompanhar o ritmo de crescimento das organizações e as exigências do mercado em termos de eficiência e eficácia, com a produção de sistemas que se adequem rapidamente à multiplicidade de plataformas e padrões existentes.

Nessa trilha, surgiram recursos como as plataformas de desenvolvimento de sistemas distribuídos, as ferramentas de engenharia de software suportada por computador, os geradores de relatórios, as metodologias ágeis, dentre outras, com o intuito de auxiliar as equipes de desenvolvimento na tarefa de acelerar a entrega de sistemas às organizações.

As plataformas de desenvolvimento de sistemas distribuídos ajudam as equipes a gerenciar a complexidade de criar aplicações corporativas e web services o mais rápido possível. As mais conhecidas são:

Java EE (Enterprise Edition) - uma plataforma robusta centrada na linguagem Java®, cujo código pode rodar em diversos sistemas operacionais e que fornece meios para construir aplicações seguras, possui boa escalabilidade e fácil manutenção e é utilizada na criação de sistemas de grande porte, com um elevado número de usuários que executam transações concorrentes;

.NET® - uma plataforma comercial, restrita ao sistema operacional Windows, que possui razoável escalabilidade e alto nível de segurança e proporciona praticidade e agilidade no desenvolvimento de sistemas de pequeno e médio porte.

Essas novas aplicações precisam interagir entre si e com os demais sistemas legados, desenvolvidos em plataformas distintas. Para isso, é preciso lançar mão de plataformas de integração de sistemas, sendo as mais conhecidas:

Enterprise Application Integration (EAI) - um conjunto de ferramentas que possibilitam a integração de todas as aplicações em um sistema unificado; Web Services - um conjunto de componentes de software que trocam

informações entre si usando linguagens e padrões universais web;

Service Oriented Architecture (SOA) - uma estratégia para desenvolvimento de software, baseada nos princípios da computação distribuída, na qual uma

aplicação é definida como um conjunto de serviços que utiliza o paradigma

request/reply para estabelecer a comunicação entre os sistemas clientes e os

sistemas que implementam os serviços;

Workflow - uma solução que permite sistematizar de forma consistente os processos ou fluxos de trabalho e informação de uma empresa;

Common Object Request Broker Architecture (CORBA) - uma arquitetura criada para simplificar a troca de dados entre sistemas distribuídos heterogêneos.

As ferramentas de engenharia de software auxiliada por computador (Computer-

Aided Software Engineering - CASE), por sua vez, abrangem uma larga faixa de

programas que são usados para automatizar algumas atividades relacionadas ao processo de software, tais como: editores de diagramas, dicionários de dados, gerador de interfaces, compiladores, dentre outros (SOMMERVILLE, 2007). As principais ferramentas CASE utilizadas pelos desenvolvedores são: Visio®, Erwin® e DBDesigner,

sendo esta última uma ferramenta de código aberto.

As ferramentas para geração de relatórios, que estão disponíveis em diversos formatos e para diversas plataformas, também são recursos que auxiliam no desenvolvimento de sistemas. Dentre as mais conhecidas estão: Jasper Reports, Oracle

Reports® e Crystal Reports®.

A ferramenta JasperReports é totalmente open source e gratuita, capaz de exportar relatórios para diversos formatos diferentes, tais como PDF, HTML, XML e XLS, aceita diversas formas de entrada de dados e permite o uso de diagramas, gráficos e até códigos de barras.

Já as ferramentas Oracle Reports® e Crystal Reports®, da Oracle e Microsoft, respectivamente, são ferramentas comerciais, que contêm basicamente as mesmas funcionalidades do JasperReports, mas são atreladas aos respectivos sistemas gerenciadores de banco de dados Oracle e SQLServer.

A fim de melhor explorarem as facilidades proporcionadas por essa ferramentas para concepção de aplicativos, os desenvolvedores criaram as metodologias ágeis, com o objetivo de permitir que o desenvolvedor se concentre apenas na criaçâo rápida e eficaz do software (SOMMERVILLE, 2007). Tais metodologias proporcionam uma maior interação com os usuários, especialmente quando os requisitos mudam rapidamente durante o processo de desenvolvimento e quando necessitam ser priorizados. As metodologias ágeis mais conhecidas são:

SCRUM - permite manter o foco na entrega do maior valor de negócio, no menor tempo possível, sob contínua inspeção do desenvolvimento do

software cujas prioridades são determinadas pelo negócio;

Test-Driven Development (TDD) - prioriza a criação de testes e somente depois é escrito o código de programa;

Extreme Programming (XP) - permite aos usuários um considerável envolvimento na especificação e priorização dos requisitos do sistema, como parte da equipe de desenvolvimento, discutindo cenários (histórias dos usuários) com os demais membros.

Todavia, mesmo com o surgimento de várias ferramentas e metodologias com o intuito de automatizar o desenvolvimento de software, o processo global continuou lento tendo em vista a preponderância das abordagens tradicionais utilizadas, que envolvem um overhead significativo de planejamento, projeto e documentação de sistemas, sendo a principal delas o Rational Unified Process (RUP), cujo processo iterativo envolve quatro fases (concepção, elaboração, construção e transição) e baseia- se nas melhores práticas observadas na indústria.

Por fim, cabe registrar ainda que, face à enorme quantidade de informação que tem sido produzida pelos sistemas e aplicações desenvolvidas para suportar o processo de negócio das organizações, necessita-se também do uso de pacotes integrados de

software, os quais congregam várias e especificas ferramentas para gestão, coleta,

filtragem, tratamento e disseminação de informação útil aos usuários e aos processos de tomada de decisões, dentre os quais:

Business Intelligence (BI) - um conjunto de ferramentas que analisam grandes quantidades de dados para orientar a tomada de decisões empresariais;

Web 2.0 - uma evolução natural dos paradigmas, conceitos e aplicativos da

web, cujos usuários passam a interagir com as aplicações de forma

participativa, uma vez que a evolução do hardware permite que o processamento, antigamente feito exclusivamente no servidor, passe a ser feito em parte no cliente, permitindo que os usuários participem ativamente do processo de elaboração do conteúdo;

Gestão de Conteúdo – engloba o ciclo de vida completo desde a criação até a disponibilização, arquivamento ou eliminação da informação e utiliza diversas ferramentas para este fim.