Você está na página 1de 6

Sistema - Um sistema um grupo de componentes inter-relacionados que trabalham rumo a uma meta comum, recebendo insumos e produzindo resultados

s em um processo organizado de transformao. Caractersticas de um Sistema de Informao: Grande volume de dados e informaes; Complexidade de processamento; Muitos clientes e / ou usurios envolvidos; Contexto abrangente, mutvel e dinmico; Interligao de diversas tcnicas e tecnologias; Suporte a tomada de decises empresariais; Auxlio na qualidade, produtividade e competitividade organizacional. Software - a parte programvel de um sistema de informao. Ele um elemento central: realiza estruturas complexas e flexveis que trazem funes, utilidade e valor ao sistema. Pode ser: Genrico desenvolvido para ser vendido para uma gama de clientes diferentes. Encomendado (personalizado) desenvolvido para um nico cliente, de acordo com a sua especificao. Natureza do software um produto intangvel. Atributos de um bom Software Manutenibilidade - O software deve evoluir para alcanar necessidades de mudana; Confiabilidade - O software deve ser confivel; Eficincia - O software no deve desperdiar recursos do sistema; Usabilidade - O software deve ser usvel pelos usurios para os quais ele foi projetado. A importncia dos softwares As economias de TODAS as naes desenvolvidas dependem de software; Mais e mais sistemas so controlados por software; O gasto com engenharia de software representa uma parte significativa do PIB em todos os pases desenvolvidos; Os custos de software freqentemente dominam os custos do sistema; Os custos de software so maiores para mant-lo do que para desenvolv-lo. Origem dos problemas dos Sistemas de Informao Falta de treinamento das pessoas que operam; Processos de negcios inadequados; Deficincias da tecnologia; Falta de empenho dos rgos de topo das organizaes; Falta de comprometimento e empenho dos usurios; Incompreenso do valor dos sistemas de informao; Falta de entendimento entre o pessoal da Informtica e os usurios; Deficincias no processo de desenvolvimento; Falhas na coordenao do projeto; Mudanas freqentes dos requisitos do negcio. "a Engenharia de Software a aplicao de um processo sistemtico, disciplinado, e quantificado ao desenvolvimento, operao e manuteno de software; ou seja, a Engenharia de Software a aplicao de tcnicas de engenharia ao software". A Engenharia de Software preocupa-se com as teorias, os mtodos e as ferramentas para o desenvolvimento profissional de software. Seu objetivo o desenvolvimento e operao de um produto (software). Desafios enfrentados pela Engenharia de Software: Lidar com sistemas legados, lidar com diversidade crescente e lidar com necessidades de tempos de entrega reduzidos. Ciclo de vida do desenvolvimento de softwares: Codifica-remenda Cascata Espiral Prototipagem evolutiva Entrega evolutiva (Cascata e Prototipagem evolutiva) Dirigidos por prazo (time-boxed) Dirigidos por ferramentas

Codifica-remenda O ciclo de vida mais catico; Os desenvolvedores comeam imediatamente a codificar, remendando medida que os erros vo sendo descobertos; Provavelmente o ciclo de vida mais usado; um modelo de alto risco. Cascata A fase seguinte s pode iniciar quando a anterior tiver sido concluda e aprovada pelas partes envolvidas. O modelo em cascata puro de baixa visibilidade para o cliente porque ele s recebe o resultado no final. Dificulta a realizao de mudanas com o processo em andamento (requisitos sempre mudam). um modelo de alto risco, tanto para o cliente quanto para os desenvolvedores.

Cascata Variante Permite que, em fases posteriores, haja reviso e alterao de resultados das fase anteriores. uma viso mais realista do desenvolvimento de software. Baixa visibilidade para o cliente porque ele s recebe o resultado no final um modelo de alto risco, tanto para o cliente quanto para os desenvolvedores.

Prototipao Prottipo de software um sistema que... no tem tempo de vida definido; pode servir a mltiplos propsitos; deve ser construdo rapidamente e com baixo custo; parte integrante de um design centrado no usurio, para avaliao e modificao.

Espiral o produto desenvolvido em uma srie de iteraes; cada nova iterao corresponde a uma volta na espiral; permite construir produtos em prazos curtos, com novas caractersticas e recursos que so agregados medida que a experincia descobre sua necessidade; as atividades de manuteno so usadas para identificar problemas; seus registros fornecem dados para definir os requisitos das prximas liberaes; requer gesto sofisticada para ser previsvel e confivel. , atualmente, a abordagem mais realstica para o desenvolvimento de software em grande escala;

Prototipagem evolutiva A espiral usada no para desenvolver o produto completo, mas para construir. Os prottipos cobrem cada vez mais requisitos, at que se atinja o produto desejado. Requer gesto muito sofisticada e equipe disciplinada e experiente.

Entrega evolutiva O sistema particionado em partes independentes que podem ser entregues medida que forem ficando prontas e avaliadas; Permite que, em pontos bem definidos, os usurios possam avaliar partes do produto e fornecer realimentao quanto s decises tomadas; Os incrementos funcionam como prottipos do sistema; Novos requisitos podem ser incorporados aos outros incrementos do sistema; Deve-se identificar funcionalidade prioritrias que sero desenvolvidas primeiro; Os processos de cada incremento podem ser independentes. Pode-se utilizar Cascata; Risco menor de fracasso completo do sistema; A funes entregues primeiro so testadas mais vezes, medida que os incrementos so entregues.

Dirigidos por prazo O produto o que se consegue fazer dentro de um determinado prazo, que normalmente, estabelecido de forma poltica. O produto entregue apenas parcial. O restante ser entregue disfarado de manuteno. Dirigidos por ferramenta Algumas ferramentas podem impor processos rgidos, que podem ser adequados para tipos bem especficos de produtos. Essas ferramentas so conhecidas por ferramentas CASE (Computer Aided Software Engineering ). Ferramentas CASE ajudam os desenvolvedores a aumentar sua produtividade ao construrem aplicativos de negcios, sistemas de software e dispositivos incorporados. Uma ferramenta CASE no a soluo para todos os problemas da organizao; A organizao deve ter certeza de estar pronta para a nova ferramenta. RUP

modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software. Traz elementos de todos os modelos genricos de processo, apia a iterao e ilustra boas prticas de especificao e projeto. Modelo constitudo por quatro fases que esto relacionadas mais estritamente aos negcios do que a assuntos tcnicos.

Concepo Identificar todas as entidades externas (pessoas e sistemas), que iro interagir com o sistema; Definir essas interaes; Avaliar a contribuio do sistema com o negcio; Se a contribuio for de pouca importncia, o projeto pode ser cancelado depois dessa fase. Elaborao Objetivo: Desenvolver um entendimento do domnio do problema; Estabelecer um framework de arquitetura para o sistema; Desenvolver o plano de projeto; Identificar os riscos principais do projeto. Ao concluir esta fase, voc deve ter: um modelo de requisitos para o sistema (os casos de uso da UML); Uma descrio de arquitetura; Um plano de desenvolvimento para o software. Construo Fase essencialmente relacionada ao projeto, programao e teste de sistema. Ao concluir esta fase, voc deve ter: um sistema de software em funcionamento; A documentao associada pronta para ser liberada para os usurios. Transio essa fase esta relacionada transferncia do sistema da comunidade de desenvolvimento para a comunidade dos usurios e com a entrada do sistema em funcionamento no ambiente real.

Processo de Manuteno de Software: Manuteno um processo geral de mudanas de um sistema depois que ele entregue. Geralmente aplicado ao software sob encomenda. Tipos: Corretiva: Reparo de defeitos de software. Adaptativa: Adaptar o software a um ambiente operacional diferente. Evolutiva: Adicionar funcionalidade ao sistema ou modific-la. Verso de sistema: uma instncia de um sistema que difere, de alguma maneira, de outras instncias. Release: uma verso distribuda aos clientes. A diferena entre o release e a verso do sistema que as verses so criadas no mbito da organizao, para desenvolvimentos ou testes internos, e no so previstas para serem liberadas para os clientes. Numerao de verso: Sistemas e componentes podem ter numeraes diferentes. Em geral, o nmero antes do ponto a release e o nmero depois do ponto a verso. Exemplo 2.5 (release 2, verso 5). Teste de Software: Um teste de software bem sucedido aquele que revela um erro ainda no descoberto e a etapa de teste deve ser conduzida de modo que o maior nmero de erros possvel seja encontrado com um menor dispndio de tempo e esforo.

Classificao: Caixa preta - Funcional: Testes executados para demonstrar que cada funo completamente operacional. Caixa branca - Estrutural: Est relacionado a um exame minucioso de sua estrutura interna e detalhes procedimentais. Verificao Conjunto de atividades que garante que o software implementa corretamente uma funo especfica. Estamos construindo o produto corretamente? Validao - Conjunto de atividades que garante que o software construdo corresponde aos requisitos do cliente. Estamos construindo o produto certo? Verificao e validao (testes) so um processo que estabelece a existncia de defeitos/erros no processo de software Depurao: um processo que localiza e corrige esses defeitos. Dinmico: Os testes dinmicos so os procedimentos baseados na execuo do cdigo binrio do programa. Unidade verificao de erros existentes nas unidades de projeto do mesmo, qual daremos o nome de mdulo. Interface Devem garantir que a informao flui adequadamente para dentro e fora da unidade de software testada. Estrutura lgica de dados Devem garantir que os dados armazenados temporariamente mantenham sua integridade ao longo da funcionalidade. Os erros mais detectados: Digitao inconsistente, Iniciao incorreta de variveis, Inconsistncia nos tipos de dados, Underflow e overflow. Condies limite Este teste busca verificar que o que foi definido a nvel de projeto para as condies limite de uma unidade est sendo respeitado a nvel de implementao. Caminhos independentes Devem garantir que todos os comandos de um mdulo sejam executados pelo menos uma vez. Manipulao de erros desejvel que um projeto de software estabelea caminhos de tratamento de erros para as unidades que o compem, permitindo que os problemas que venham a ocorrer durante a utilizao de um programa, especialmente no caso de programas interativos, possam ser recuperados e a execuo do programa possa ser retomada normalmente. Integrao Objetiva a busca de erros surgidos quando da integrao das diferentes unidades componentes do software. Big Bang (no incremental) Todos os mdulos so associados e o programa testado como um todo. Incremental O programa vai sendo "construdo" aos poucos e testado por partes. Teste de regresso Aplicar, ao unir os mdulos, testes de integrao e repetir os testes feitos anteriormente por cada mdulo separado. Fumaa Consiste em testar o sistema todo, todos os dias. Validao ou Aceitao Verificao de que o software como um todo cumpre corretamente a funo para a qual ele foi especificado. Alfa (Caixa Preta) so realizados com base no envolvimento de um cliente, ou numa amostra de clientes, sendo que o desenvolvedor observa o comportamento do cliente e vai registrando as anomalias detectadas durante a utilizao. Beta (Caixa Preta) so conduzidos em uma ou mais instalaes do cliente pelo usurio final do software. Configurao (Caixa Branca) Garantir que todos os elementos de configurao do software tenham sido adequadamente desenvolvidos e catalogados corretamente com todos os detalhes necessrios que devero servir de apoio fase de manuteno do software. Algumas vezes denominada Auditoria. Sistema so verificados os aspectos de funcionamento do software, integrado aos demais elementos do sistema, como o hardware e outros elementos. Recuperao O objetivo observar a capacidade do sistema para recuperar-se da ocorrncia de falhas, num tempo previamente determinado. cada vez mais freqente a exigncia de sistemas tolerantes a falhas. Estresse Consiste em verificar como o sistema vai se comportar em situaes limite. Segurana Visa garantir que o sistema no vai provocar danos recuperveis ou no ao sistema pela sua prpria ao. Desempenho Consiste em verificar se os requisitos de desempenho esto sendo atendidos para o sistema como um todo.

Esttico: So aqueles realizados sobre o cdigo-fonte do software, utilizando como tcnica bsica a inspeo visual. Podem ser feitos de duas formas: leitura cruzada: Um leitor atribudo para avaliar o trabalho de cada programador do software. Inspeo Walkthrough (Acompanhamento)

Principais caractersticas Conduzida pelo moderador (que no seja o autor). Geralmente uma anlise por pares. Papis definidos. Utilizao de mtricas. Processo formal baseado em regras e utilizao de check-list com critrio de entrada e sada. Reunio de preparao. Relatrio de inspeo, lista de defeitos encontrados; Processo de acompanhamento formal; Opcionalmente, ter aperfeioamento do processo e um leitor. Principal propsito: encontrar defeitos

Principais caractersticas: Reunio conduzida pelo autor. Cenrios, grupos de discusso, exerccios prticos. Sesses sem restrio de tempo. Opcionalmente h uma reunio preparatria dos revisores, relatrios de reviso, lista de defeitos encontrados e um redator (diferente do autor). Na prtica pode variar de informal para muito formal. Principal propsito: aprendizagem, obter entendimento, encontrar defeitos

Quando terminamos com o teste? Como saberemos que j testamos o suficiente? Na verdade voc NUNCA acaba de testar. Voc em determinado momento passa essa tarefa para o seu cliente. Diversos fatores acabam por decidir qual o momento em que devemos passar a tarefa adiante. Plano de teste: um documento com uma abordagem sistemtica para o teste de sistemas como hardware ou software. O plano de teste um dos oito documentos descritos na IEEE 829, uma norma que especifica a forma e o conjunto de artefatos no teste de software. Caso de teste: um conjunto de condies usadas para teste de software. Ele pode ser elaborado para identificar defeitos na estrutura interna do software, atravs de situaes que exercitem adequadamente todas as estruturas utilizadas na codificao; ou ainda, garantir que os requisitos do software que foi construdo sejam plenamente atendidos.