Baixe o app para aproveitar ainda mais
Prévia do material em texto
Informática Básica Profa. Jane Maria dos Santos 1 FACULDADES CARLOS DRUMMOND DE ANDRADE Centro Superior de Educação Tecnológica – Ponte Rasa Profa.: Jane Maria dos Santos Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Competência: INFORMÁTICA BÁSICA 11.. OO qquuee éé ssooffttwwaarree?? Não podemos associar software somente a programas de computador, na verdade, essa é uma visão restrita. Software não é apenas o programa mas também toda a documentação associada e dos dados de configuração necessários para fazer com que esses programas operem corretamente. Um sistema de software, usualmente, consiste em uma série de programas separados, arquivos de configuração que são utilizados para configurar esses programas, documentação do sistema, que descreve a estrutura desse sistema, e documentação do usuário, que explica como utilizar o sistema, e no caso de produtos de software, sites Web para usuários fazerem o download das informações recentes sobre o produto. Existem dois tipos de produtos de software: Produtos Genéricos: São sistemas conhecidos como stand-alone, produzidos por uma organização de desenvolvimento e vendidos no mercado a qualquer cliente capaz de adquiri-lo. Também podemos nos referir a eles como pacotes de software. Exemplos: Bases de dados, processadores de texto, pacotes de desenho e as ferramentas de gerenciamento de projetos. Produtos sob encomenda: (personalizados ou customizados). São sistemas encomendados por um cliente em particular. O software é desenvolvido especialmente para aquele cliente por uma empresa de software. Exemplos: Sistemas de controle de para dispositivos eletrônicos, sistemas escritos para serem compatíveis com um processo de negócios específico e sistemas de controle de tráfego aéreo. Uma diferença importante entre esses diversos tipos de software é que, nos produtos genéricos, a organização que desenvolve o software controla sua especificação. Para os produtos personalizados, a especificação é usualmente desenvolvida e controlada pela organização que está comprando o software. Os desenvolvedores de software devem trabalhar de acordo com essa especificação. 22.. EEvvoolluuççããoo ddoo SSooffttwwaarree O melhor desempenho de hardware, menor tamanho e custo mais baixo precipitaram o aparecimento de sistemas baseados em computadores mais sofisticados. Temos no inicio da década de 1990, a descrição por Alvin Toffler (futurista), de uma “mudança de poder”, em que velhas estruturas de poder (governamental, educacional, industrial, econômico e militar) se desintegrariam Informática Básica Profa. Jane Maria dos Santos 2 enquanto os computadores e o software levariam a uma “democratização do conhecimento”. Inicialmente no desenvolvimento de sistemas computadorizados, o hardware sofreu contínuas mudanças, enquanto o software era visto por muitos com uma reflexão posterior. A programação de computador era uma arte “secundária” para a qual havia poucos métodos sistemáticos. O desenvolvimento de software era feito virtualmente sem administração – até que os prazos começassem a se esgotar e os custos a subir demasiadamente. Durante esse período era usada uma orientação em batch (em lote) para a maioria dos sistemas. Temos assim: De 1950 a meados de 1960: Os primeiros anos � Orientação Batch � Distribuição limitada � Software customizado De meados de 1960 a meados de 1980: A segunda era � Multiusuário � Tempo real � Bancos de dados � Produtos de software Inicio de 1980 a meados de 1990: terceira era � Sistemas distribuídos � “Inteligência” embutida � Hardware de baixo custo � Impacto de consumo desde meados de 1990: quarta era � Sistemas de desktop poderosos � Tecnologias orientadas a objetos � Sistemas especialistas � Redes neurais artificiais � Computação paralela A maior parte do software era desenvolvida, e em última análise, usada pela própria pessoa ou organização e se apresentasse problemas era o próprio “usuário” que o consertava. Em movimento a quinta era, os problemas associados ao software de computador continuam a se intensificar, temos: 1. A sofisticação do software ultrapassou nossa capacidade de construir um software que extraia o potencial do hardware; 2. Nossa capacidade de construir programas não pode acompanhar o ritmo da demanda de novos programas; 3. Nossa capacidade de manter os programas existentes é ameaçada por projetos ruins e recursos inadequados. Percebemos que inicialmente os sistemas baseados em computador eram desenvolvidos pela administração orientada ao hardware. Os gerentes de projeto concentravam-se no hardware, porque ele era o maior item de Informática Básica Profa. Jane Maria dos Santos 3 orçamento particular do desenvolvimento do sistema. Colocado de forma simples, os gerentes aplicavam controles, métodos e ferramentas que reconhecemos hoje como engenharia de hardware. Na programação havia poucos métodos e poucas pessoas usavam. O programador aprendia normalmente por tentativa e erro, os técnicos criaram uma mística que poucos conheciam e também não se importavam em conhecer, principalmente os gerentes. Podemos dizer que era um mundo indisciplinado. Hoje, a distribuição de custos para o desenvolvimento de software mudou totalmente. O software agora é o item de maior custo, e iniciam-se os seguintes questionamentos pelos gerentes: 1. Por que demora tanto tempo para que os programas sejam concluídos? 2. Por que os custos são tão elevados? 3. Por que não descobrimos todos os erros antes de entregarmos o software aos nossos clientes? 4. Por que temos dificuldade em medir o progresso enquanto o software está sendo desenvolvido? Essas preocupações levaram a manifestação da preocupação relativa ao software e a maneira pela qual ele é desenvolvido. Inicia-se a adoção de práticas de engenharia de software. 33.. OO qquuee éé eennggeennhhaarriiaa ddee ssooffttwwaarree?? A engenharia de software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção do software, desde estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. Nessa definição, há duas frases importantes: 1. “Disciplina da engenharia”: Os engenheiros fazem os produtos funcionarem. Eles aplicam teorias, métodos e ferramentas nas situações apropriadas, de modo seletivo; e sempre procuram descobrir soluções para os problemas, mesmo quando não existem teorias aplicáveis e métodos de apoio. Os engenheiros também reconhecem que precisam trabalhar de acordo com as restrições organizacionais e financeiras e, assim, procuram soluções que estejam dentro das restrições. 2. “Todos os aspectos da produção de software”: a engenharia de software não se dedica só aos processos técnicos de desenvolvimento de software, mas também a atividades como o gerenciamento de projetos de software e o desenvolvimento de ferramentas, métodos e teorias que dêem apoio a produção do software. Em suma: “A engenharia de software é uma disciplina que reúne metodologias, métodos e ferramentas a ser utilizados, desde a percepção até o momento em que o sistema desenvolvido deixa de ser operacional, visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software.” 1 1 . Carvalho, A.M.B. & Chiossi, T.C.S. Introdução a Engenharia de Software. Editora da Unicamp, 2001 Informática BásicaProfa. Jane Maria dos Santos 4 44.. OO qquuee éé uumm pprroocceessssoo ddee ssooffttwwaarree?? Um processo de software é um conjunto de atividades e resultados associados que geram um produto de software. Existem 4 atividades de processo fundamentais, comuns a todos os processos de software. São elas: 1. Especificação de software: A funcionalidade do software e as restrições em sua operação devem ser definidas. 2. Desenvolvimento de software: O software deve ser produzido de modo que atenda a suas especificações. 3. Validação do software: O software tem de ser validado para garantir que ele faz o que o cliente deseja 4. Evolução do software: O software deve evoluir para atender às necessidades mutáveis do cliente Diferentes processos de software organizam essas atividades de maneiras diversas e são descritos em diferentes níveis de detalhes. Os prazos das atividades variam, do mesmo modo que os resultados de cada atividade. Diferentes organizações podem utilizar processos diferentes para produzir o mesmo tipo de produto. 55.. OO qquuee éé uumm mmooddeelloo ddee pprroocceessssoo ddee ssooffttwwaarree?? Um modelo de processo de software é uma descrição simplificada de um processo de software, que é apresentada a partir de uma perspectiva específica. Os modelos, pela sua natureza, são simplificações; e assim, um modelo de processo de software é uma abstração do processo real que está sendo descrito. Alguns exemplos dos tipos de modelos de processo de software que podem ser produzidos são: 1. Um modelo de Workflow: As atividades, nesse modelo, representam ações humanas. 2. Um modelo de Fluxo de dados ou de atividades: Ele representa o processo como um conjunto de atividades 3. Um modelo de papel/ação: Esse modelo representa os papéis das pessoas envolvidas no processo e as atividades pelas quais são responsáveis Existem os modelos gerais ou também chamados de paradigmas de desenvolvimento de software, alguns exemplos: � O modelo em cascata (modelo de ciclo de vida clássico); � Modelo de ciclo de vida clássico com realimentação; � Espiral; � Prototipagem evolutiva. 66.. OO qquuee ssããoo mmééttooddooss ddee eennggeennhhaarriiaa ddee ssooffttwwaarree?? Um método de engenharia de software é uma abordagem estruturada para o desenvolvimento de software, cujo objetivo é facilitar a produção de software de alta qualidade, apresentando uma boa relação custo-benefício. Informática Básica Profa. Jane Maria dos Santos 5 Métodos como análise estruturada foram inicialmente desenvolvidas na década de 1970, os métodos orientados a funções que ainda são largamente utilizados e que a partir da década de 80 e 90 foram complementados por métodos orientados a objetos. Essas diferentes abordagens foram integradas em uma única, construída segundo o UML (Unified Modeling language – linguagem de modelagem unificada). 77.. OO qquuee ssããoo ffeerrrraammeennttaass CCAASSEE?? CASE significa Computer-Aided Software Engineering (engenharia de software com o auxilio do computador). Quando falamos em ferramentas CASE (ou CASE tools) estamos nos referindo a gama de programas utilizados para apoiar as atividades de processos de software, como exemplo: analise de requisitos, modelagem de sistemas e testes. Esse tipo de ferramenta (CASE), destinada a dar apoio à analise e ao projeto, dividem-se em: Upper-CASE: dá apoio às fases iniciais do processo de software. Lower-CASE: dá apoio a implementação e aos testes. 88.. QQuuaaiiss ooss pprriinncciippaaiiss ddeessaaffiiooss ddaa eennggeennhhaarriiaa ddee ssooffttwwaarree?? São três os principais desafios da engenharia de software 1. O desafio do legado (herança): A maioria dos grandes sistemas de software em uso atualmente foi desenvolvida há muitos anos. O desafio do legado significa poder fazer a manutenção e a atualização desses softwares, para evitar custos excessivos e prosseguir com as prestações de serviço. 2. Heterogeneidade: Se refere a desenvolver técnicas para construir softwares confiáveis, que sejam flexíveis o bastante para lidar com a diferença de ambientes atuais. 3. Fornecimento: Diz respeito a reduzir o tempo para o fornecimento de sistemas grandes e complexos, sem comprometer a qualidade. 99.. OO qquuee éé qquuaalliiddaaddee ddee ssooffttwwaarree?? “Qualidade de Software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos”2. Assim o autor apresenta de forma simplificada o que é a qualidade de software, porém o conceito de qualidade vai mais além, pois o termo refere-se a uma característica subjetiva. Como então avaliar a qualidade de um produto de software? Diversas metodologias foram desenvolvidas ao longo do tempo e todas englobam um conjunto de atividades, métodos e práticas desde os requisitos à manutenção do software para a obtenção da qualidade, procurando sempre a melhoria de cada etapa do desenvolvimento. 2. Bartié, Alexandre – Garantia da Qualidade de Software – Campus, 2002 Informática Básica Profa. Jane Maria dos Santos 6 Na gestão de Qualidade de Software temos duas divisões macros: A Qualidade de Processo e a Qualidade de Produto, tendo que a dimensão da qualidade de processo envolve todas as atividades em que o foco principal é garantir a qualidade de cada etapa do processo de engenharia de software e a dimensão da qualidade de produto tem como objetivo garantir a qualidade do produto de tecnologia gerado durante o ciclo de desenvolvimento. Em ambos os processos têm os testes utilizados para a garantia da qualidade.
Compartilhar