Sei sulla pagina 1di 32

Evoluo do Software

Introduo Cincia da Computao

Facin-PUCRS
Material adaptado do texto original de Douglas Jos Peixoto de Azevedo UFRGS - Informtica -2006

Adaptado de: Giraffa & Ana Paula

Primeiros Anos -caractersticas


desenvolvimento do software era feito, virtualmente, sem administrao at que os prazos comeassem a se esgotar e os custos a subir abruptamente. orientao batch (em lote) para a maioria dos sistemas Na maior parte, entretanto, o hardware dedicava-se execuo de um nico programa que, por sua vez, dedicava-se a uma nica aplicao especfica software, por outro lado, era projetado sob medida para cada aplicao e tinha uma distribuio relativamente limitada ambiente de software personalizado o projeto era processo implcito realizado no crebro de algum e a documentao muitas vezes no existia.

Adaptado de: Giraffa & Ana Paula

Segundo era caractersticas


multiprogramao e os sistemas multiusurios introduziram novos conceitos de interao homem-mquina

tcnicas interativas
avanos da armazenagem on-line levaram primeira gerao de sistemas de gerenciamento de banco de dados aparecimento "software houses software desenvolvido para ampla distribuio num mercado interdisciplinar Programas para mainframes e minicomputadores Surgimento da "manuteno de software

Adaptado de: Giraffa & Ana Paula

Terceira era caractersticas

As redes globais, as comunicaes digitais de largura de banda ("bandawidth") elevada e a crescente demanda de acesso "instantneo" a dados exigem muito dos desenvolvedores de software. caracterizada pelo advento e o generalizado uso de microprocessadores, computadores pessoais e poderosas estaes de trabalho "workstations" de mesa.

Adaptado de: Giraffa & Ana Paula

Quarta era caractersticas

As tecnologias orientadas a objetos, orientadas a documentos, esto ocupando o lugar das abordagens mais convencionais para o desenvolvimento de software em muitas reas de aplicao. As tcnicas de "quarta gerao" para o desenvolvimento de software j esto mudando a maneira segundo a qual alguns segmentos da comunidade de software constroem programas de computador. Os sistemas especialistas e o software de inteligncia artificial finalmente saram do laboratrio para a aplicao prtica em problemas de amplo espectro do mundo real.

Adaptado de: Giraffa & Ana Paula

Verzello[ver84] classifica o software em trs tipos, sendo:


Software de sistema - so programas escritos para controlar e coordenar o software.
Software de linguagens - so programas que traduzem outros programas escritos em linguagens de programao mais ou menos semelhantes lngua inglesa, para a forma binria que a linguagem utilizada pelos componentes do sistema computacional e, alm disso, os programas escritos para ajudar os desenvolvedores a escrever seus programas e a manter os programas j escritos a salvo, em bancos de dados especiais. Software de aplicao - so programas escritos para resolver problemas comerciais ou prestar outros servios de processamento de dados aos usurios.

Adaptado de: Giraffa & Ana Paula

J Pressman[Pre95], amplia esta classificao de software para 7 categorias, comentando ser uma tarefa um tanto difcil desenvolver categorias genricas para aplicaes de software, pois medida em que a complexidade do software cresce, desaparece a clara viso em compartimentos. Seguem-se as categorias sugeridas:

Adaptado de: Giraffa & Ana Paula

Software bsico - uma coleo de programas escritos


para dar apoio a outros programas. A rea do software bsico caracterizada por: forte interao com o hardware de computador; intenso uso por mltiplos usurios; operaes concorrentes que exigem escalonamento "schedule"; compartilhamento de recursos e sofisticada administrao do processo; estruturas de dados complexas e mltiplas interfaces externas.

Adaptado de: Giraffa & Ana Paula

Software de tempo real - monitora, analisa e controla


eventos do mundo real. Entre os elementos do software de tempo real incluem-se: um componente de coleta de dados que obtm as informaes provenientes de um ambiente externo, um componente de anlise que transforma as informaes conforme a aplicao exige; um componente de controle / sada que responde ao ambiente externo e um componente de monitorao que coordena todos os demais componentes de forma a resposta em tempo real. O termo "tempo real" difere de "interativo" ou "time sharing" (tempo compartilhado). Um sistema de tempo real deve responder dentro de restries de tempo estritas. O tempo de resposta de um sistema interativo pode ser normalmente ultrapassado sem resultados desastrosos.
Adaptado de: Giraffa & Ana Paula 10

Software comercial - a maior rea particular de software.


As aplicaes dessa rea reestruturam os dados de uma forma que facilita as operaes comerciais e as tomadas de decises administrativas. Alm da aplicao de processamento de dados convencional, as aplicaes de software comerciais abrangem a computao interativa.

Adaptado de: Giraffa & Ana Paula

11

Software cientfico e de engenharia - tem sido


caraterizado por algoritmos de processamento de nmeros. As aplicaes variam da astronomia vulcanologia da anlise de fadiga mecnica de automveis, dinmica orbital de naves espaciais recuperveis e da biologia molecular manufatura automatizada.

Adaptado de: Giraffa & Ana Paula

12

Software embutido - usado para


controlar produtos e sistemas para os mercados industriais e de consumo. O software embutido ("embedded software") reside na memria s de leitura "read only" e pode executar funes limitadas e particulares (por exemplo, controle de teclado para fornos de microondas) ou oferecer recursos funcionais de controle significativos (por exemplo, funes digitais em automveis, tais como controle, mostradores no painel, sistemas de freio, etc.)

Adaptado de: Giraffa & Ana Paula

13

Software de computador pessoal - so os softwares


para computadores pessoais que entrou em efervescncia na ltima dcada, tais como processamento de textos, planilhas eletrnicas, computao grfica, diverses, gerenciamento de dados, aplicaes financeiras pessoais e comerciais, redes externas ou acesso a banco de dados, so apenas algumas das centenas de aplicaes.

Adaptado de: Giraffa & Ana Paula

14

Software de inteligncia artificial - faz uso de algoritmos no numricos para


resolver problemas complexos que no sejam favorveis computao ou anlise direta.

Atualmente a rea de "Artificial Inteligency AI" mais ativa a dos "sistemas especialistas baseados em conhecimentos", porm outras reas de aplicao para o software de AI so o reconhecimento de padres (voz e imagem), jogos e demonstrao de teoremas.
Uma rede neural simula a estrutura dos processos cerebrais (a funo do neurnio biolgico) e pode levar a uma nova classe de software que consegue reconhecer padres complexos e aprender com a "experincia" Adaptado de: Giraffa passada. & Ana Paula 15

O contexto em que o software[Pre95] foi desenvolvido est estreitamente ligado a quase cinco dcadas de evoluo dos sistemas computadorizados. O melhor desempenho de hardware, o menor tamanho e o custo mais baixo, precipitaram o aparecimento de sistemas baseados em computadores mais sofisticados. Mudamo-nos dos processadores vlvula para os dispositivos microeletrnicos que so capazes de processar 200 milhes de instrues por segundo.
Adaptado de: Giraffa & Ana Paula 16

Outras categorias :
software para rede de computadores software de controle de trfego areo software rob", que so os sistemas desenvolvidos para navegar na rede mundial de computadores, a Internet, onde a sua principal atividade sair vasculhando os computadores de todo o mundo, procurando trabalhos desenvolvidos por pesquisadores ou profissionais para depois poder referenci-los em uma busca qualquer.

Por exemplo, o site da "Alta Vista Digital" ou "Yhaoo", que tm vrios "robosoft" que saem pela rede "Internet" buscando assuntos para depois poder fazer referncia em suas pesquisas.
Adaptado de: Giraffa & Ana Paula 17

Outras categorias :

SOFTWARE

Aplicativos

Utilitrios

Bsico

Adaptado de: Giraffa & Ana Paula

18

Software Aplicativo
Efetuar tarefas que sirvam diretamente ao

usurio. Ex: controle de contas a pagar processador de textos contabilidade Disponveis hoje
mltiplos abrangem diversas reas do conhecimento
19

Adaptado de: Giraffa & Ana Paula

Tipos de Software Aplicativo


Processador de Textos

Dicionrios Eletrnicos
Desenhos Tcnicos e Artsticos Editorao Eletrnica (publisher) Edio de Imagens Administrao/Contabilidade Matemtica Engenharia e Arquitetura Planilhas Eletrnicas Medicina

Jogos
Peridicos

Adaptado de: Giraffa & Ana Paula

20 Software Aplicativo

Software Utilitrio
Administram o ambiente.

Fornecem ao usurio ferramentas para organizar os discos, verificar disponibilidade de memria, corrigir falhas de processamento. teis ao sistema computacional.

Adaptado de: Giraffa & Ana Paula

21

Exemplos de Utilitrios
Compactadores Formatadores Backup

Degrafmentadores
Antivirus

Adaptado de: Giraffa & Ana Paula

22 Software Utilitrio

Software Bsico
Todo o programa que necessrio ao

funcionamento do computador.
Mais importante Sistema Operacional

gerencia e disponibiliza para o usurio os recursos da mquina e seus perifricos, permitindo que o equipamento torne-se opervel.

Adaptado de: Giraffa & Ana Paula

23

Tipos de Software Bsico MSDOS

Software Bsico

Windows, OS2, Unix, AIX, Linux Windows 3.11, Windows 95, Windows 98, Windows NT, Windows XP

Adaptado de: Giraffa & Ana Paula

24

O software de computador uma informao que existe em duas formas bsicas[Pre95]:

componentes no executveis em mquina


componentes executveis em mquina.

Os componentes so criados por meio de uma srie de converses que mapeiam as exigncias do cliente para cdigo executvel em mquina.
Adaptado de: Giraffa & Ana Paula 25

Um modelo ou prottipo das exigncias convertido num projeto.

O projeto de software convertido numa forma de linguagem que especifica a estrutura de seus dados, os atributos procedimentais e os requisitos relacionados.
A forma de linguagem processada por um tradutor que a converte em instrues executveis em mquina.

Adaptado de: Giraffa & Ana Paula

26

Os componentes[Sho83] de software so construdos usando uma linguagem de programao que tem um vocabulrio limitado, uma gramtica explicitamente definida e regras de sintaxe e semntica bem formadas. Esses atributos so essenciais para a traduo por mquina.

Adaptado de: Giraffa & Ana Paula

27

As formas de linguagem em uso so: linguagens de mquina linguagem de alto nvel linguagens no procedimentais.

Adaptado de: Giraffa & Ana Paula

28

A Linguagem de mquina uma representao simblica do conjunto de instrues da unidade central de Processamento (CPU).

Adaptado de: Giraffa & Ana Paula

29

As linguagens de alto nvel permitem que o desenvolvedor de software e o programa sejam independentes da mquina.
Exemplo: Pascal, C, C++, C#, JAVA, etc... No decorrer da ltima dcada, um grupo de linguagens de quarta gerao ou no procedimentais foi introduzido.

Adaptado de: Giraffa & Ana Paula

30

Em vez de exigir que o desenvolvedor de software especifique detalhes de procedimentos, a linguagem no procedimental subentende um programa especificando o resultado desejado em vez de especificar a ao exigida para se conseguir esse resultado. O software de apoio converte a especificao do resultado num programa executvel em mquina.
Adaptado de: Giraffa & Ana Paula 31

REFERNCIAS BIBLIOGRFICAS

[Pre95] PRESSMAN, Roger S. Engenharia de software. So Paulo : Makron, 1995. [Pre97] PRESSMAN, Roger S. Software engineering: a practiotioners approach. New York: Makron, 1997. [Sho83] SHOOMAN, Martin L. Software engineerings. .singapore : McGraw-Hill, 1983. [Som92] SOMERVILLE, Iam. Software engineering. 4. ed. AddisonWesley, 1992. [Ver84] VERZELLO, Robert J.; REUTTER III, John Processamento de dados. So Paulo : McGraw-Hill, 1984.

Adaptado de: Giraffa & Ana Paula

32