Sistemas Computacionais

Sistemas Computacionais com enfoque simplificado


Conceitos básicos


Nos anos 40, iniciou-se a evolução dos sistemas   computadorizados.   Os   custos eram concentrados no desenvolvimento do hardware, devido às limitações encontradas na época. Já nos anos 50, à medida que a tecnologia de hardware foi sendo dominada, passaram a se concentrar no desenvolvimento dos sistemas operacionais, onde surgiram os primeiros sistemas e as linguagens de alto nível, como FORTRAN, COBOL e de seus respectivos compiladores. Na época, a ideia era poupar o usuário cada vez mais de se preocupar com o funcionamento interno da máquina, podendo assim concentrar todos seus esforços na resolução de problemas computacionais ao invés de preocupar-se com os problemas de

funcionamento de hardware, ficando esse para uma pessoa especializada.

No início dos anos 60, os sistemas com características de multiprogramação surgiram e a eficiência e utilidade dos sistemas computacionais tiveram um grande avanço, contribuindo de forma significativa para as constantes quedas de preço do Hardware. Esse avanço se deu pela necessidade cada vez maior de desenvolver sistemas de software de grande porte para substituir os pequenos programas aplicativos utilizados até então. Desta necessidade, surgiu um grande problema, decorrente da falta de experiência e à não adequação dos métodos de desenvolvimento existente para pequenos programas, a “crise do software”, dando início ao processo de nascimento do termo “Engenharia de Software”.

O que é Software?

Quando se pensa em software, vem logo o pensamento de que é um programa de computador. No entanto, software envolve além do programa, toda documentação e configuração para que o software funcione corretamente.

O software consiste de vários programas separados como:

Arquivos de configurações de programas;

A descrição da estrutura do sistema em uma documentação clara;

A descrição que explica a utilização do sistema ao usuário.

Os produtos de Software se dividem em dois:

Produtos Genéricos: São sistemas do tipo Stand-Alone onde os programas não precisam de interpretador e uma vez compilado gera um executável. São produzidos por uma empresa especializada em softwares e vendidos no mercado. Muitos desses produtos podem ser chamados de Pacote de Software e temos como exemplo as Planilhas Eletrônicas, os processadores de texto, ferramenta de gerenciamento de projeto, entre outras.

Produtos sob encomenda ou personalizados: Na visão de Sommerville (2009), os produtos sob encomenda são sistemas encomendados pelo cliente e desenvolvido por uma empresa especialmente para aquele cliente.

Uma das diferenças entre os produtos genéricos e sob encomenda é que nos genéricos quem define a especificação do software é a própria empresa que desenvolve.

O software sob encomenda e a especificação do produto é definido por quem está comprando o software. Segundo Pressman (2006), existem sete categorias de software de computadores que apresentam desafios

para os Engenheiros de Software:

Software de Sistemas: Conjunto de programas feito para servir a outros programas. Alguns exemplos são os editores, compiladores, entre outros.

Software de Aplicação: São programas isolados, voltados para uma tarefa específica do negócio. É

utilizado para processar dados comerciais ou técnicos e também para controlar funções de tempo real.

Software científico e de Engenharia: Antes esses eram caracterizados por Algoritmos “Number Crunching” onde processam números. Vão da Astronomia à Vulcanologia, da Biologia Molecular à Manufatura Automatizada.

Software Embutido: Encontra-se dentro de um sistema feito para implementar e controlar características e funções para o usuário final e para o próprio sistema. Este tipo de software pode ser utilizado para realizar funções limitadas, como por exemplo, o controle do teclado de uma geladeira, ou fornecer uma função significativa, como por exemplo as funções digitais em um automóvel (controle de combustível).

Software para linhas de produtos: Software específico, utilizado por diversos clientes, podendo ser utilizado num mercado limitado, como o controle de estoque, ou direcionado para os usuários em massa, como planilhas, processadores de textos, gestão de banco de dados, entre outros.

Aplicações Web: Cobrem várias aplicações. Um exemplo são as aplicações de comércio eletrônico. Podem

ou não ser interligados a banco de dados de empresas e às aplicações de negócios.

Software para Inteligência Artificial: Usa-se algoritmos não-numéricos para resolver problemas complexos. Alguns exemplos são a robótica, reconhecimento de padrões (de voz e imagem), jogos e provas de teoremas.

 Mitos e Realidade

Um mito é uma construção de algo que foi idealizado anteriormente e que não tenha nenhuma comprovação prática. Diversos mitos serão citados, tanto para gerência responsável, dos clientes que encomendam e compram o software, como também dos desenvolvedores dos softwares.

Os mitos são crenças sobre os softwares e sobre o processo usado para construí-los. Essas crenças são uma construção mental de algo que foi idealizado, porém não se tem comprovação prática. Hoje a maioria dos profissionais especializados em Engenharia de Software reconhece os mitos pelo que eles são, atitudes enganosas que causam sérios problemas tanto para os gerentes quanto para o pessoal técnico.

Os gerentes responsáveis pelos softwares, como também de outras áreas, trabalham diariamente sobre pressão para seguir orçamentos, manter cronogramas dentro do prazo e melhorar a qualidade.

Para diminuir a pressão, esses gerentes se agarram a mitos existentes que são descritos por Pressman (2006). São eles:

Mito

Já temos um livro que está cheio de padrões e procedimentos para elaborar o software, isso não fornece ao meu pessoal tudo o que ele precisa saber?

Realidade

Os livros com os padrões pode até existir, mas ele é utilizado pelos profissionais? Eles sabem da existência

dessa documentação? Estão incluídas as práticas modernas da Engenharia de Software? É adaptável?

Completo? É desenvolvido para melhorar o prazo de entrega, mantendo a qualidade do software? Na maioria das vezes a resposta é não.

Mito

Caso atrase a entrega, pode-se adicionar mais programadores e ficar em dia com o projeto?

Realidade

Caso isso ocorra o projeto atrasará ainda mais, sobretudo devido a necessidade de haver um treinamento especializado e com isso tendo que parar o seu desenvolvimento.

Um cliente pode ser uma empresa ou então uma pessoa que encomendou o software sob um contrato definido. Normalmente, alguns mitos são levados em consideração pelo cliente, pois há falta de informações mais claras sobre o desenvolvimento do software por parte do gerente ou dos profissionais de software. Esses mitos levam o cliente a ter expectativas falsas quanto ao desenvolvimento gerando insatisfação. Dentre os mitos e realidade do cliente conheça alguns:

Mito

Definir um objetivo geral para a criação de um software é o suficiente. Os detalhes poderão ser mostrados

posteriormente.

Realidade

A definição inicial do projeto quando não é bem definida, acaba levando o projeto ao fracasso. É de grande importância que a descrição do projeto seja elaborada e bem definida logo no início. Suas funcionalidades, o comportamento, as restrições do projeto os critérios de validação são de extrema importância para o desenvolvimento.

Já dentre os mitos e realidade dos profissionais, alguns são citados a seguir:

Mito

Depois de toda a edição do programa e o início de seu funcionamento, o trabalho está concluído.

Realidade

De 50% a 70% do esforço de desenvolvimento de um software é realizado após a sua entrega ao cliente, onde é conhecido como manutenção do mesmo.

Mito

Não é possível ter uma avaliação sobre o software antes de seu funcionamento.

Realidade

A preocupação com a garantia do software está ligada a todas as fases do desenvolvimento. Antes do produto chegar ao seu estado funcional, os testes já podem ser iniciados com o planejamento dos casos de teste.

Mito

Ao final do projeto o produto a ser entregue é o programa funcionando.

Realidade

Um dos componentes de software é o programa em funcionamento. Um bom projeto é realizado pela produção de um conjunto de importantes documentos. Um software sem uma boa documentação pode ser tão ruim quanto um que não seja não funcional.

Fonte: Bellaguarda, Marcelo Figueiredo. Princípios de engenharia de software / Marcelo Belaguarda. – Mossoró : EdUFERSA, 2015.