sexta-feira, 13 de março de 2009

Introdução a Engenharia de Softwares - Parte 4

Pessoal, vamos falar um pouco mais sobre software!?

Os softwares tem características interessantes. Por isso acho que vale a pena escrever um pouco mais.

Definição de software

"Instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados.

Estruturas de dados que possibilitam que os programas manipulem adequadamente a informação.

Documentos que descrevem a operação e o uso dos programas."

De acordo com os mais estudados no assunto, softwares não são apenas "programinhas de computador", e sim algo muito mais complexo. Os softwares são o conjunto dos elementos citados acima: Instruções (programa propriamente dito), Estruturas de dados (banco de dados, arquivos, hashmap, etc) e documentos (manuais, documentação de projeto, etc).

Características dos Softwares:


1. O software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico.

O gráfico abaixo conhecido como The Bathtub Curve (Curva da banheira), demonstra a curva de falhas por tempo dos hardwares. Ele mostra a vida dos produtos como peças e acessórios eletrônicos após a fabricação até a sua "morte".



1º Estágio - Infant Mortality (Mortalidade Infantil).

No primeiro estágio vemos que a taxa de falhas é muito alta, isto é devido a peças que já saem com problemas de fábrica. Após a troca dessas peças defeituosas, a taxa se estabiliza (segundo estágio).

2º Estágio - Useful Life (Vida Útil).

No segundo estágio, após a troca de peças defeituosas detectadas precocemente (Burn-in), a taxa de falhas cai se torna estável por um tempo (é a vida útil do produto). Como o produto é físico (ao contrário do software), com o tempo ele começa a sofrer desgastes (terceiro estágio).

3º Estágio - Wear-out (Desgaste).

No terceiro estágio a taxa de falhas sobe muito devido ao desgaste sofrido com o uso do equipamento, poeira, vibração, corrosão, etc. Isto é a "morte" do produto ocasionando a troca ou reparo do equipamento.


Lembrando pessoal que usei a Curva da Banheira para compararmos com a Curva do Software que é uma evolução da anterior.

2. Software não se “desgasta”.


Como sabemos os softwares não são componentes físicos como os hardwares, e sim componentes lógicos, logo a curva sofrerá uma alteração.

No início vemos a taxa de falhas muito alta. Isto se deve ao fato de implantação do software, que inicialmente possui muitos erros. A medida que os erros são reparados (Debug), a taxa vai ficando estável.

Quando o software caminha para índices baixos de erro, o software necessita de uma manutenção ou atualização, e novamente a taxa de erros sobe. Isso acontece porque quando ocorre uma alteração no código, a probabilidade de se fazer algo errado e criar um novo erro é muito alta. Isso acontece diversas vezes na construção, implantação de um software e faz com que a taxa de falhas comece a subir novamente, devido a essas alterações.

O que acontece é que o sotware não é como o hardware, não se desgasta e sim começa a ficar obsoleto (Obsolescence). Veja figura abaixo.



3. A maioria dos softwares é feita sob medida em vez de ser montada a partir de componentes existentes.

Ao contrário do hardware que se uma peça der defeito, logo podemos trocá-la e resolver o problema, no software não podemos simplesmente trocar alguma parte do programa por outra nova. Daí a dificuldade de se construir softwares.

Componentes dos Softwares:

Componentes executáveis: instruções de programas, estruturas de dados (bancos de dados), interfaces.

Componentes não executáveis: documentação de projeto e análise, manual de usuário e de produção.

OBS:
Para que um software seja considerado completo, ele deve possuir todos esses componentes.

Aplicações dos Softwares:

Software Básico: Uma coleção de programas escritos para servir a outros programas. Ex: compiladores, editores, sistemas operacionais, drivers etc.

Software de Tempo Real: Programas que monitoram, analisam e controlam eventos do mundo real. Um sistema de tempo real precisa responder dentro de restrições de tempo especificadas, requerendo um bom tempo de resposta. Ex: software de controle de metrô, de usina nuclear, de satélites etc.

Software Comercial: A maior área de desenvolvimento de software. Sistemas de Informação: controle escolar, controle de estoque, sistema de biblioteca, comércio eletrônico, pontos de venda etc.

Software Científico e de Engenharia: Software para apoio a cálculos matemáticos, físicos e atividades de engenharia. Ex: simulação de sistemas, ferramentas CASE (computer-aided software engineering), ferramentas CAD (computer-aided design) etc.

Software Embutido: Normalmente residem em memória não volátil (ROM) e são usados para controle de produtos e sistemas para o mercado consumidor industrial. Ex: programas em forno de microondas, celulares, computadores de bordo em automóveis etc.

Software de Computador Pessoal ou Aplicativo: Softwares de escritório, para computadores pessoais. Ex: editores de texto, planilhas eletrônicas, software de acesso a e-mails etc.

Software de Inteligência Artificial: Adquirem conhecimento com a entrada de dados e informações coletadas anteriormente. Ex: (reconhecimento de voz, de imagem, digital, retina), (jogos inteligentes, gerenciamento de informações imprecisas), notícias, mala direta, etc.

Essa classificação dos software foi baseada na classificação feita por PRESSMAN.

Como abrir e executar programas no Delphi


ShellExecute

Estou postando como abrir e executar programas de dentro de sua aplicação Delphi. Espero que gostem.

Para abrirmos ou executarmos uma aplicação no ambiente Win32 nós iremos utilizar a função ShellExecute da API do Windows.

Dê uma olhada no help do ShellExecute para a descrição de todos os parâmetros e códigos de erro retornado.

Como você verá nós podemos abrir vários tipos de documentos a partir de nossa aplicação sem saber que programa está associado a ele (seu link é definido no registro do Windows)


Exemplos:

Você terá que adicionar a ShellAPI a sua unit.

uses ShellApi;


Executar o Notepad

ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ;


Abrir Abc.txt com o Notepad

ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\Abc.txt', nil, SW_SHOWNORMAL) ;


Mostrar o conteúdo da pasta "Delphi"

ShellExecute(Handle,'open', 'c:\Delphi', nil, nil, SW_SHOWNORMAL) ;


Executar um arquivo de acordo com sua extensão.

ShellExecute(Handle, 'open', 'c:\MyDocuments\Letter.doc',nil,nil,SW_SHOWNORMAL) ;


Abrir um Site ou um arquivo html com o navegador padrão

ShellExecute(Handle, 'open', 'http://duvidasdeprogramacao.blogspot.com',nil,nil, SW_SHOWNORMAL) ;


Fonte: http://delphi.about.com/od/windowsshellapi/a/executeprogram.htm

CSS - Background


Ótimos exemplos da propriedade background do CSS.

Nestes exemplos retirados da W3C, após clicar no link você pode editar o código CSS e ver o que acontece no mesmo momento.

Exemplos:

Set the background color
This example demonstrates how to set the background color for an element.

Set an image as the background
This example demonstrates how to set an image as the background.

How to repeat a background image
This example demonstrates how to repeat a background image.

How to repeat a background image only vertically
This example demonstrates how to repeat a background image only vertically.


How to repeat a background image only horizontally

This example demonstrates how to repeat a background image only horizontally.

How to display a background image only one time
This example demonstrates how to display a background image only one time

How to place the background image
This example demonstrates how to place the image on the page.

How to position a background image using %
This example demonstrates how to position an image on the page using percent.

How to position a background image using pixels
This example demonstrates how to position an image on the page using pixels.

How to set a fixed background image
This example demonstrates how to set a fixed background image. The image will not scroll with the rest of the page.

All the background properties in one declaration
This example demonstrates how to use the shorthand property for setting all of the background properties in one declaration.

Retirado de: http://www.w3schools.com/css/css_background.asp

quinta-feira, 12 de março de 2009

Introdução ao CSS


Cascading Style Sheets

Com o CSS, seus documentos HTML podem ser exibidos usando diferentes estilos.

CSS resolve um problema muito comum

As tags HTML foram originalmente projetadas para definir o conteúdo de um documento. Elas foram criadas com a intenção de dizer "Isto é um cabeçalho", "Isto é um parágrafo", "Isto é uma tabela", utilizando tags como <h1>, <p>, <table>, e por daí por diante.
O layout do documento foi criado para ser manipulado pelo browser, sem a utilização das tags de formatação.

As tags de formatação não foram criadas na especificação original do HTML. Isso tornou cada vez mais difícil a criação de web sites, onde o conteúdo dos documentos HTML tivesse que ser separado do layout do documento. Para resolver esse problema, o World Wide Web Consortium (W3C) - Um consórcio sem fins lucrativos, responsável pela padronização do HTML criou o Cascading Style Sheets (CSS).

Hoje o CSS já é suportado pela maioria dos browsers existentes.


As folhas de estilo podem poupar muito trabalho

As folhas de estilo definem como elementos HTML são mostrados.
Exemplo: Tag <font>, <center>, <i>, etc...
Geralmente elas são gravadas em um arquivo externo ".css". Arquivos .css externos habilitam você a mudar a aparência e layout de várias páginas, apenas editando um único arquivo ".css".

CSS é um grande avanço do sites Web, porque permite desenvolvedores controlar o estilo e o layout de muitas Web pages simultaneamente.
Como um desenvolvedor web você pode definir um estilo para cada elemento HTML e aplicá-lo a tantas páginas quanto você quiser.

Para fazer mudanças globais, simplesmente mude o arquivo ".css", e todos elementos nas páginas Web atualizarão automaticamente.

Folhas de Estilo permitem o estilo da informação ser especificada de muitas maneiras.
Estilos podem ser especificados dentro de um simples elemento HTML, dentro da tag <head>, ou em um arquivo externo ".css".
Mesmo múltilpas folhas de estilo externas podem ser referenciadas dentro de um simples documento HTML.

--------------------------------------------------------------------------------

Sintaxe CSS
A sintaxe CSS é dividida em três partes: seletor, propriedade e valor:

seletor {propriedade: valor}

O seletor é normalmente a tag HTML que você quer definir, a propriedade é o atributo que você deseja alterar, e cada propriedade pode ter um valor.

A propriedade e o valor são separados por ":" e devem estar entre chaves:

Exemplo:

body {color: black}


Obs: Se o valor possuir várias palavras, coloque entre aspas:


p {font-family: "sans serif"}


Obs: Se você deseja especificar mais de uma propriedade, você deve separá-las com ";".

O exemplo abaixo mostra como definir um parágrafo alinhado ao centro, com a cor do texto em vermelho:


p {text-align:center;color:red}


Para ficar mais fácil a leitura, você pode descrever uma propriedade em cada linha:


p
{
text-align: center;
color: black;
font-family: arial
}



Fonte: http://www.w3schools.com/css/

Conexões TCP/IP com PostgreSQL 8.3

Pessoal, quando queremos utilizar o banco de dados como um servidor para ser conectado por outras pessoas da rede, precisamos mudar algumas configurações que por padrão vem desativadas por questões de segurança.
Por isso traduzi um post sobre o assunto e vou publicá-lo aqui.

Siga os passos a seguir:


1.-Editar o arquivo postgresql.conf para aceitar conexões TCP/IP.

a) Botão Iniciar –> PostgreSQL 8.3 –> Configuration files –> Edit postgresql.conf



b) No arquivo postgresql.conf buscamos a linha:

# - Connection Settings -

Retire a tralha(jogo da velha) da linha abaixo:

#listen_addresses = ‘localhost’

Substituiremos localhost por *(asterisco), para que o postgresql possa receber conexões, ficando da seguinte forma:

listen_addresses = ‘*’



Salve o arquivo e feche-o. Agora vamos configurar para receber conexões Ip de outras máquinas.

Para dar autorização aos usuários através de conexão remota:

a) Botão Iniciar –> PostgreSQL 8.3 –> Configuration files –> Edit pg_hba.conf



b) No arquivo pg_hba.conf

Buscamos a linha:

# IPv4 local connections:


———-

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5

———–

Adicionaremos os IPs dos usuários que se conectarão ao servidor, ficando da seguinte forma:

———-

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.3/32 md5

———–

O último passo agora é reiniciar o serviço do PostgreSql no servidor para que as alterações tenham efeito e os clientes possam se conectar.

*Fazemos isto no Painel de controle-> Ferramentas Administrativas –> Serviços-> PostgreSQL Database Server 8.3



Paramos o servidor e iniciamos novamente

Assim o cliente poderá se conectar através de seu pgAdmin III

*Obs: Se estiver com firewall, desative-o ou coloque exceções ao postgreSQL.

Material retirado de: http://darkchicles.wordpress.com/2009/02/18/conexiones-tcpip-con-postgresql-83/

quarta-feira, 11 de março de 2009

Javascript: Operadores


Operadores para efetuar mudança do conteúdo de uma variável

= Atribui valor a uma variável
++ Incrementa valor de uma variável, x++ é o mesmo que x=x+1
-- Decrementa valor de uma variável, x-- é o mesmo que x=x-1


Operadores para comparação de valores

== Igual
!= Diferente
=== Estritamente igual(verifica conteúdo e tipo da variável)
!== Estritamente diferente(verifica conteúdo e tipo da variável)
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a


Operadores aritiméticos

% Módulo
+ Soma
- Subtração
* Multiplicação
/ Divisão


Operadores lógicos

&& Módulo
|| Ou
! Não


Operadores de bits

& Operação E
| Operação Ou
^ Operação Ou Exclusivo
~ Operação Não
>> Rotação de bits para direita
<< Rotação de bits para esquerda
>>> Rotação de bits para direita sem levar em consideração o sinal


Operadores especiais

?: Efetua operação condicionada, exemplo x = a > 1 ? 3 : 4; ou seja se o valor da variável a for maior que 1, será atribuído a x o valor 3 caso contrario 4

, A vírgula efetua operação da esquerda para a direita sendo que o último elemento é retornado. Ex: x=1, y=2;

delete variavel Elimina um objeto que esteja sendo referenciada pela variável, se a variavel for uma propriedade de um objeto, limpa esta referência do objeto.

propriedade in objeto Retorna true caso a propriedade esteja contida no objeto

objeto instanceof TipoDoObjeto Retorna true caso o objeto seja de determinado tipo

typeof(objeto) Retorna string contendo o tipo do objeto

new TipoDoObjeto(p1, ...) Cria uma instância do objeto

this Representa a instância do objeto corrente

void (expressao) Resolve expressão, porém ignora valor retornado



Short Circuit
Operações lógicas utilizam short circuit da seguinte forma :


true || qualquer coisa = true
false && qualquer coisa = false


assim é possível por exemplo fazer a seguinte operação:


if (a != 0 && 1/a > 0.5) {
....
}


assim evita erros de divisão por zero.

Outro exemplo da utilização, é para contornar a diferença dos eventos do explorer e do mozilla/firefox.


function listener(event) {
event = event || window.event;
...
}


Assim se esta função estiver rodando no IE ou num navegador utilizando Gecko irá rodar da mesma forma.

Retirado de Wikibooks

Funções úteis para PostgreSql


Funções Diversas

SELECT CURRENT_DATABASE();

SELECT CURRENT_SCHEMA();

SELECT CURRENT_SCHEMA(boolean);

SELECT CURRENT_USER;

SELECT SESSION_USER;

SELECT VERSION();


SELECT CURRENT_SETTING('DATESTYLE');

SELECT HAS_TABLE_PRIVILEGE('usuario','tabela','privilegio');

SELECT HAS_TABLE_PRIVILEGE('postgres','nulos','insert'); - - Retorna: t

SELECT HAS_DATABASE_PRIVILEGE('postgres','testes','create'); - - Retorna: t

SELECT HAS_SCHEMA_PRIVILEGE('postgres','public','create'); - - Retorna: t


SELECT relname FROM pg_class WHERE pg_table_is_visible(oid);


Arrays

SELECT ARRAY[1.1,2.2,3.3]::INT[] = ARRAY[1,2,3];

SELECT ARRAY[1,2,3] = ARRAY[1,2,8];

SELECT ARRAY[1,3,5] || ARRAY[2,4,6];

SELECT 0 || ARRAY[2,4,6];


Array de char com 48 posições e cada uma com 2:

campo char(2) [48]


Funções Geométricas

area(objeto) - - area(box '((0,0), (1,1))');

center(objeto) - - center(box '((0,0), (1,2))');

diameter(circulo double) - - diameter(circle '((0,0), 2.0)');

height(box) - - height(box '((0,0), (1,1))');

length(objeto) - - length(path '((-1,0), (1,0))');

radius(circle) - - radius(circle '((0,0), 2.0)');

width(box) - - width(box '((0,0), (1,1))');


Funções para Redes

Funções cidr e inet

host(inet) - - host('192.168.1.5/24') - - 192.168.1.5

masklen(inet) - - masklen('192.168.1.5/24') - - 24

netmask(inet) - - netmask('192.168.1.5/24') - - 255.255.255.0

network(inet) - - network('192.168.1.5/24') - - 192.168.1.0/24


Função macaddr

trunt(macaddr) - - trunc(maraddr '12:34:34:56:78:90:ab') - - 12:34:56:00:00:00


Funções de Informação do Sistema

current_database()

current_schema()

current_schemas(boolean)

current_user()

inet_client_addr()

inet_client_port()

inet_server_addr()

inet_server_port()

pg_postmaster_start_time()

version()

has_table_privilege(user, table, privilege) - dá privilégio ao user na tabela

has_table_privilege(table, privilege) - dá privilégio ao usuário atual na tabela

has_database_privilege(user, database, privilege) - dá privilégio ao user no banco

has_function_privilege(user, function, privilege) - dá privilégio ao user na função

has_language_privilege(user, language, privilege) - dá privilégio ao user na linguagem

has_schema_privilege(user, schema, privilege) - dá privilégio ao user no esquema

has_tablespace_privilege(user, tablespace, privilege) - dá privilégio ao user no tablespace


current_setting(nome) - valor atual da configuração

set_config(nome, novovalor, is_local) - seta parâmetro de retorna novo valor

pg_start_backup(label text)

pg_stop_backup()

pg_column_size(qualquer)

pg_tablespace_size(nome)

pg_database_size(nome)

pg_relation_size(nome)

pg_total_relation_size(nome)

pg_size_pretty(bigint)

pg_ls_dir(diretorio)

pg_read_file(arquivo text, offset bigint, tamanho bigint)

pg_stat_file(arquivo text)

Retirado do site: http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Internas/Convers%C3%A3o_de_Tipos

terça-feira, 10 de março de 2009

Introdução a Engenharia de Softwares - Parte 3 - Automatizar ou não?



Tem outros pontos que acho importante ressaltar na Engenharia de Softwares. Por isso sempre que lembrar de algum detalhe que ache importante vou publicar aqui, porque por mais que sejam muito simples pra nós que somos dá área, pode ser útil as pessoas que estão ingressando.

Automatizar ou não?

Qual é o Analista que nunca se deparou com a situação de dizer a um cliente que não será viável o que ele quer?

Ou será que nenhum de vocês já ouviu. O software vai ter que ficar pra depois, temos que aguardar recursos.

Ou será que você se deparou com aquele velho amigo seu, dono de um boteco que vende muita cerveja e que vive dizendo que quer informatizar o bar, pra melhor controle das contas, clientes, vendas. Você explica a ele que se ele quiser informatizar seu bar terá que comprar um computador, um ar-condicionado, porque o ambiente é quente e pode superaquecer seu processador. De repente terá que comprar também uma impressora fiscal pra emitir os cupons e contratar um técnico para fazer a manutenção do computador já que ele não sabe mexer em nada. Não esquecendo que ele terá que pagar pelo software que você vao fazer que não deve ser nada barato.

Bom depois disso, acho que por mais que eu o explicasse os benefícios que um software bem planejado traria a médio e longo prazo, acho que talvez não seria viável para ele naquele momento. De uma forma bem sucinta o que nós fizemos foi um estudo de viabilidade que nem sempre é feito pelos empresários, causando na maioria das vezes a parada do desenvolvimento de software que é sempre o que os empresários mais conservadores pensam que deve ficar em último plano.

Por essas e outras razões existem vários problemas que devem ser observados antes de começarmos a automatizar um processo. Vou citar os mais comuns para que vocês reflitam a respeito lembrando do exemplo do boteco do seu amigo.

Custo – Nem sempre é verdade que os computadores sejam mais rápidos e mais baratos do que o modo “antigo”.

As vezes o custo benefício não compensa como foi no caso do boteco.

Conforto – Espaço em demasia, excessivo ruído, gerar muito calor ou consumir energia demais.

Como no boteco de repente só o computador com o ar-condicionado iria consumir tanta energia que não compensaria.
Poderia não existir espaço para o computador.


Segurança – dados confidenciais podem ficar vulneráveis.

As vezes o dono fica com um certo medo de te passar informações confidenciais mas imprescindíveis para o desenvolvimento do sistema.

Manutenibilidade – pode não existir pessoal capacitado.

No caso do boteco o dono não teria condições de pagar um técnico para operar o software e fazer manutenção no computador.

Política – os computadores podem ser uma ameaça aos funcionários.

Os funcionários podem te atrapalhar na implantação e outras ocasiões por achar que perderão seus empregos para os computadores.


Pessaol, então é isso ai... Espero que tenha ajudado.

Se interessar estou colocando um link interessante sobre o assunto:
http://www.hitecnet.com.br/prospectos/31/pqdevo1.htm

Introdução a Engenharia de Softwares - Parte 2


Continuando o post anterior que expliquei uma diferença básica mas que confunde muita gente. Software X Sistema

Vamos tirar outras dúvidas que são básicas mas que muita gente não sabe.

Por que dizemos Engenharia de Softwares e não Engenharia de Sistemas?

E Por que dizemos Analista de Sistemas e não Analista de Softwares?

De acordo com a diferença mostrada pode-se concluir que Engenharia de sistemas trata da organização dos sistemas. Como funcionam, como são os processos em um ramo qualquer de atividade. Lembrando que sistemas não são programas de computador.

Quando falamos em Engenharia de softwares estamos nos referindo na construção, projeto, validação, testes e outras coisas relacionadas a programas de computador.

Um Engenheiro de Sistemas é capaz de conhecer como modelar sistemas e processos de um fábrica por exemplo. Já um Engenheiro de Software será capaz de modelar um software para atender as necessidades do Engenheiro de sistemas.

Já quando falamos de Analista de Sistemas e Analista de Softwares é um pouco diferente. O Analista de Sistemas tem a função de entender como funciona um sistema para que ele possa modelá-lo, projetá-lo e construir um software que atenda essas necessidades. Seria quase a junção de um Engenheiro de Sistemas com um Engenheiro de Software.

O Analista de Softwares tem a função de fazer auditoria no software, avaliar, ver as funcionalidades, etc. Em resumo é um estudo do software pronto.

quarta-feira, 4 de março de 2009

Introdução a Engenharia de Softwares - Parte 1


Introdução a Engenharia de Softwares

SOFTWARE X SISTEMA

Sistema

Segundo o WIKIPÉDIA, a palavra "sistema" vem do grego e significa "combinar", "ajustar",
"formar um conjunto". Ou seja, muito genérica a explicação.

Na verdade, em resumo, um sistema é uma ligação entre componentes comuns, com objetivos comuns.

Esses componentes também podem ser sub-sistemas.

Os sistemas tem características em comum:

Eles sempre podem ser divididos em sistemas menores.

Eles sempre farão parte de um sistema maior.


De acordo com essa definição, tudo o que está a nossa volta pode ser encarado como um sistema. Vamos pegar como exemplo o corpo humano.

Quando respiramos utilizamos o sistema respiratório.

Quando comemos utilizamos o sistema digestivo.

Temos o sistema cardíaco, nervoso, etc. Esses sistemas possuem componentes que funcionam com um objetivo em comum. Por exemplo:

O sistema digestivo tem a função de retirar os nutrientes dos alimentos necessários a diferentes funções. E cada órgão terá uma função diferente, mas que no final o objetivo do conjunto é o mesmo.

Exemplos:

Sistemas Feitos pelo Homem:

Sistemas Sociais: organizações de leis, doutrinas, costumes...
Sistemas de Transporte: redes ferroviárias, linhas aéreas...
Sistemas de Comunicação: telefone, telex...
Sistemas Financeiros: contabilidade, controle de estoque...

Sistemas Automatizados:

“São sistemas feitos pelo homem, que interagem com, ou são controlados por um ou mais computadores.”

Sistemas Automatizados:

Componentes:
Hardware – Dispositivos eletrônicos (CPU, memória) que fornecem capacidade ao computador, e dispositivos eletromecânicos (sensores, impressoras, motores) que oferecem funções ao mundo externo.

Software – Programas de computador, estruturas de dados e documentação correlata que servem para efetivar o método, processo ou controle lógico necessário.

Peopleware – Aquelas que operam o sistema, que fornecem as entradas e utilizam as saídas, e as que desempenham atividades de processamento manual em um sistema.

Dataware – As informações que o sistema armazena por um período de tempo.

Procedimentos – Os passos que definem o uso específico de cada elemento do sistema.


Muitos sistemas feitos pelo homem interagem com os sistemas vivos - por exemplo, os marca-passos computadorizados que interagem com o coração humano.

Bom, mas isso está virando uma aula de Biologia? Não é isso que queremos. Estou apenas conceituando Sistema.

Mas e na Informática, o que seria um sistema?

Como na vida real podemos ter um sistema financeiro, sistema escolar, político, etc.

E como funciona?

De acordo com o conceito passado anteriormente esses sistemas possuem componentes que possuem os mesmos objetivos.

Em um sistema de comércio cada componente trabalhará realizando sua função, mas que no final todos terão o mesmo objetivo.

Um sistema comercial pode ser divido em outros sistemas menores como Vendas, Compras, Estoque, etc, comprovando as características citadas.

Mas aí surge a pergunta: Mas onde está a informática nessa história?

Agora que vamos entrar no software

O Software entra em um sistema para auxiliar, agilizar um processo por vários motivos. Aumentar velocidade, diminuir custos, otimizar recursos, etc.

Os softwares nada mais são do que programas de computador, junto com manuais, especificações, planos de teste, etc.

Então está claro a diferença? Software X Sistema

Em um sistema podemos ter vários softwares ou não ter nenhum.

Então por que Engenharia de Softwares e não Sistemas?

Por que da formação Analista de Sistemas e não Softwares?

Assunto para o próximo post. http://duvidasdeprogramacao.blogspot.com/2009/03/introducao-engenharia-de-softwares_10.html

Espero que tenham gostado.

Links

Related Posts with Thumbnails