Baixe o app para aproveitar ainda mais
Prévia do material em texto
Primeiro, estudamos os diversos conceitos relativos a Software, Engenharia de Software, Processos, Modelos de Processos e Modelos Ágeis. T h in st o ck /G e tt y I m a g e s As preocupações com o prazo de desenvolvimento, o custo do projeto e o atendimento ao usuário nem sempre adequado, obrigou, principalmente aos desenvolvedores, a criação de mecanismos que minimizassem estes problemas, inclusive com a maior participação dos clientes e mudança de foco para a qualidade do produto. Troca-se a extensa documentação por artefatos mais simples, rápidos e de fácil elaboração, para acompanhar e controlar o cronograma de projetos em desenvolvimento. Os projetos começam a iterar repetitivas vezes e a interação com os usuários torna-se uma constante, já que se constata diversos benefícios para a qualidade do produto. O reaproveitamento de componentes de software, e os modelos de processo de software incrementais e evolutivos, com o aparecimento dos processos ágeis auxilia ainda mais na árdua e complexa atividade de desenvolvimento de um produto de software, com os membros de um projeto estabelecendo um vínculo maior entre si e compartilhando crescimento técnico e profissional. Depois de estudarmos os processos de software, conceituamos os modelos de referência da qualidade e o processo de qualidade de software. T h in st o ck /G e tt y I m a g e s O uso de sistemas de informação nas empresas trouxe consigo uma maior responsabilidade de se fazer softwares que atendessem aos requisitos dos usuários, e com a qualidade por estes desejada. Sustentada pelo avanço do interesse na qualidade de produtos, as indústrias de software buscavam características que permitissem indicar a qualidade de seus sistemas. Os órgãos disciplinadores e avaliadores da qualidade e o surgimento das normas ISO/IEC também para a qualidade de software, permitiram que organizações e clientes tivessem uma visão mais clara e objetiva das características de qualidade de um software e de sua avaliação.Thins to ck /G e tt y I m a g e s As características e sub características para avaliar a qualidade de um software trouxeram consigo a análise da experiência e da capacitação das empresas que desenvolviam software e outro modelo de referência da qualidade, CMM, passou a ser considerado tão ou mais importante que a própria série ISO/IEC. O modelo, modificado e atualizado, passa a considerar aspectos relativos a desenvolvimento, aquisição ou serviços. Então torna-se o CMM-I o modelo de referência mais cobiçado pelo mercado. Na última unidade estudamos a qualidade de software e as métricas para sua avaliação. T h in st o ck /G e tt y I m a g e s As normas ISO/IEC e CMM-I se completam, cada qual na sua especificidade, aplicação e objetivo. A qualidade de um software, garantida a partir da qualidade de seu processo, e o foco da melhoria contínua determinado pelo CMM-I, trouxeram a norma ISO/IEC 25000: 2005, que engloba as normas ISO/IEC 9126 e 14598, e com esta, o modelo SQuaRE, que melhor caracteriza as medições da qualidade de um software. Por fim, facilitou-se a tarefa de analisar as características e a qualidade de um software com a aplicação de diversas maneiras de se fazer as medições da qualidade e o desafio de promover, manter, garantir e melhorar continuamente a qualidade no processo de desenvolvimento, a partir do projeto, e assegurando sua qualidade inclusive após sua implantação. Finalizamos o estudo do tema: Engenharia de Software e Qualidade em Sistemas Processos de Software Responsável pelo Conteúdo: Prof. Ms. Afonso Pavão Revisão Textual: Prof. Ms. Claudio Brites 5 Processos de Software Nesta unidade, trabalharemos os seguintes tópicos: • Introdução • Orientações para Leitura Obrigatória • Material Complementar Fonte: iStock/Getty Im ages · Apresentar os conceitos de software e Engenharia de Software. · Compreender o que é o processo de software. · Entender o que é ciclo de vida de um de software. · Apresentar os modelos de processos de software. Normalmente com a correria do dia a dia, não nos organizamos e deixamos para o último momento o acesso ao estudo, o que implicará o não aprofundamento no material trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas. Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns dias e determinar como o seu “momento do estudo”. No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões de materiais complementares, elementos didáticos que ampliarão sua interpretação e auxiliarão o pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois estes ajudarão a veriicar o quanto você absorveu do conteúdo, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. 6 Unidade: Processos de Software Introdução Para podermos inserir a Engenharia de Software no contexto da Governança de Tecnologia de Informação, é importante que você compreenda que a atividade de desenvolvimento de sistemas em uma organização não se resume a escrever linhas de código fonte em uma linguagem de programação selecionada para aquela aplicação. Um software (ou um sistema aplicativo) deve ser útil e funcional para seus usuários e ter a qualidade necessária para contribuir com a gestão de uma organização – e, claro, inclusive, para com a gestão da área de Tecnologia de Informação. Por exemplo, algumas preocupações do gestor da TI estão relacionadas com o custo e o prazo de desenvolvimento de um sistema, se a qualidade desse sistema atenderá aos requisitos dos usuários, se esse software pode ser executado com as configurações atuais de hardware, de rede de computadores e infraestrutura computacional existentes. Além disso, o gestor da TI ainda se preocupa com a qualificação e disponibilidade de sua equipe de desenvolvimento, obrigando-se a mantê-la permanentemente atualizada com as tecnologias mais recentes e emergentes e com a integração dos sistemas legados. Outras preocupações do gestor estão relacionadas à segurança da organização, da informação e dos dados, da instalação e dos sistemas aplicativos, além de ter que garantir a continuidade dos negócios e o alinhamento da tecnologia da informação com os negócios e objetivos da empresa. Para tanto, devido a essas variáveis internas à empresa – e sem falar das variáveis externas (política econômica, mercado no qual a empresa atua, com seus concorrentes, clientes e fornecedores) –, o gestor de TI deve fazer uso da Engenharia de Software para considerar e incrementar soluções para algumas dessas variáveis no processo de desenvolvimento de sistemas – onde possível, e conforme a aplicabilidade dos mesmos. 7 Orientações para Leitura Obrigatória Nesta Unidade, ao abordarmos os conceitos gerais de software, de engenharia de software, de processos de software, do ciclo de vida e dos modelos de processos, é altamente recomendável a leitura dos capítulos e obras, e conforme orientações a seguir: SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2011, a partir do login do aluno, clicando em “Serviços”, “Biblioteca” e em “E-books – Bib. Virtual Universitária”. Cap. 1, 2, 4 e 17 – e-book disponível em: http://cruzeirodosulvirtual.com.br Após carregar a página de capa do livro, observea seta à direita da tela para movimentar-se e ir à página seguinte ou retornar à anterior. PRESSMAN, R. S. Engenharia de Software. 7.ed. Rio de Janeiro: Mcgraw-Hill do Brasil, 2011, a partir do login do aluno, clicando em “Serviços”, “Biblioteca” e em “E-books – Bib. Virtual Universitária”. Cap. 1 a 3 – e-book disponível em: http://cruzeirodosulvirtual.com.br Após carregar a página de capa do livro, observe a seta à direita da tela para movimentar-se e ir à página seguinte ou retornar à anterior. Você também deve explorar e ler as obras identificadas no Material Complementar, sua proposta é ajudar você a compreender, sob ótica diferente do conteúdo desta Unidade, os assuntos abordados. 8 Unidade: Processos de Software Material Complementar Livros: Sistemas de Informação Gerenciais – administrando a empresa digital LAUDON, K.C. e LAUDON, J.P. 5. ed. São Paulo: Pearson/Prentice Hall, 2004. Sistemas de Informação e as decisões gerenciais na era da internet O’BRIEN, James A. 2. ed. São Paulo: Saraiva, 2004. Engenharia de Software - Fundamentos, Métodos e Padrões PÁDUA, W. 3. ed. São Paulo: LTC, 2009. Engenharia de software – teoria e prática PFLEEGER, S. L. 2. ed. São Paulo: Pearson/Prentice Hall, 2004. 9 Referências LAUDON, K.C. e LAUDON, J.P. Sistemas de Informação Gerenciais – administrando a empresa digital. 5. ed. São Paulo: Pearson/Prentice Hall, 2004. O’BRIEN, James A. Sistemas de Informação e as decisões gerenciais na era da internet. 2. ed. São Paulo: Saraiva, 2004. PFLEEGER, S. L. Engenharia de software – teoria e prática. 2. ed. São Paulo: Pearson/ Prentice Hall, 2004. PRESSMAN, R. S. Engenharia de software. 7. ed. Rio de Janeiro: Mcgraw-Hill do Brasil, 2011. SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2011. 10 Unidade: Processos de Software Anotações Cap I Fechamento da Unidade Com a última videoaula, concluímos nossa exposição sobre Engenharia de Software. Vamos relembrar alguns assuntos apresentados nesta Unidade. Primeiramente, estudamos os diversos conceitos relativos a softwares, Engenharia de Software, processos, modelos de processos e modelos ágeis. As preocupações com o prazo de desenvolvimento e o custo do projeto têm sido motivo de discussão entre clientes, engenheiros e estudiosos. Some-se a isso o atendimento nem sempre adequado ao usuário, o que faz surgir a proposta de diferentes paradigmas de softwares apoiados por métodos, critérios e ferramentas que tornem mais efetivo, barato e rápido o desenvolvimento de um sistema aplicativo. O foco dos modelos de software muda para o (bom) relacionamento com os usuários e, consequentemente, para a qualidade do produto. Com a evolução e expansão dos conceitos da garantia da qualidade, busca-se determinar pontos de controle durante o processo de desenvolvimento para avaliar se a qualidade até aquela etapa está adequada. Troca-se a extensa documentação por documentos mais simples, rápidos e de fácil elaboração, para acompanhar e controlar o cronograma dos projetos em desenvolvimento. Procura-se envolver cada vez mais os usuários no processo de desenvolvimento, de forma a reduzir os erros e as falhas de análise ou do projeto. Concomitantemente, os projetos começam a iterar repetidas vezes e a interação com os usuários passa a ser uma constante, pois é constatado seus benefícios para a qualidade do produto, fazendo com que o tempo para o desenvolvimento – e por conta disso também seu custo – sejam minimizados. A utilização e o reaproveitamento de componentes de software, tais como rotinas e funções, proporcionam uma aceleração na elaboração de protótipos incrementais e evolutivos que, além de atenderem mais rapidamente aos usuários, são testados com mais frequência – e de modo diferente daquele teste preparado pelos programadores. O aparecimento dos processos ágeis auxilia ainda mais na árdua e complexa atividade de desenvolvimento de um produto de software. Mais do que isso, ao deixar que a própria equipe monitore e controle seu planejamento e cronograma de forma integrativa, e também com os usuários, é possível estabelecer um vínculo maior entre os membros de um projeto. A elaboração dos códigos-fonte é dividida e, principalmente, compartilhada entre os programadores, surgindo assim a programação em pares. Sua grande vantagem (principalmente para efeitos de gestão de projetos) é que a troca de informações constantes e permanentes entre os membros possibilita que todos conheçam todas as partes do sistema, evitando que o conhecimento fique apenas com um profissional da equipe. Outro aspecto evolutivo da Engenharia de Software é o de que esse compartilhamento colabora com o crescimento técnico e profissional da própria equipe, já que nem todos os indivíduos possuem facilidade de comunicação escrita ou oral e/ou ainda o mesmo nível técnico de conhecimento. Dessa forma, esse compartilhamento de informações e o desenvolvimento colaborativo entre os membros facilita o treinamento, o acompanhamento, o gerenciamento e o controle dos projetos e das equipes pelo gestor da área de desenvolvimento. Lembre-se de estudar os materiais didáticos, a bibliografia recomendada e de fazer as atividades. Bem, com isso, encerramos esta Unidade. Nos vemos na próxima. Uma das maiores dificuldades do desenvolvimento de um sistema é compreender correta e adequadamente as necessidades do usuário. E para extrair as informações relativas aos requisitos, os engenheiros de software tem diversas dificuldades. Conforme Aurélio (Fonte: //dicionariodoaurelio.com/requisito), requisito é algo necessário e indispensável; condição indispensável; exigência;algo requerido. Após a coleta de dados realizada, os desenvolvedores ainda precisam identificar claramente os requisitos do sistema,e isso não é uma das tarefas mais fáceis. Primeiro, porque a própria indústria de Software não utiliza o termo requisito de uma forma consistente. Sommerville (2011) lembra que a compreensão do que é um requisito pode variar de uma declaração abstrata de uma função que o sistema deve disponibilizar ou de uma restrição do sistema, a uma, no outro extremo, declaração detalhada do sistema. Em segundo lugar, porque é difícil extrair corretamente as informações dos usuários, por mais que se utilize técnicas diferentes de coleta de dados. E em terceiro, porque os registros dos requisitossão feitos de uma forma desorganizada. O objetivo da Engenharia de Requisitos é elaborar por escrito a correta identificação do problema, fornecendo-a a todos os envolvidos com o sistema. Essa atividade inicia na fase de concepção do sistema, onde os analistas definem o escopo do projeto, e continua com o levantamento detalhado, refinando-se os requisitose modificando-os. A declaração dos requisitos pode prosseguir com a fase de modelagem. Conforme Pressman (2011), no Processo de Software, a Engenharia de Requisitos é uma ação da Engenharia de Softwareque começa na fase de Comunicação e se estende e continua na modelagem. A Engenharia de Requisitos deve se adequaràs necessidades do processo, do projeto, do produto e das pessoas que realizam o trabalho. A Engenharia de Requisitos disponibiliza um processo adequado para se conseguir entender as reais necessidades dos usuários, analisando-as e avaliando a viabilidade da solução, preparando uma que seja razoável, validando-a e gerenciando essas necessidades até que o sistema se torne operacional. De acordo com Pressman (2011), a Engenharia de Requisitos contempla sete fases: a concepção, o levantamento, a elaboração, a negociação, a especificação, a validação e a gestão. Requisitos são descrições dos serviços e de suas restrições que o software deverá fornecer. Esses devem ser bem declarados e compreensíveis, pois sãoessenciais para um adequado processo de desenvolvimento de sistemas. Há diversos tipos de requisitos, e cada um deles deve ser contemplado pelos analistas para efeitos de documentação e de implementação. O documento com os requisitos declarados podeter mais ou menos detalhes e formatações diferentes, mas todos devem conter as necessidades dos clientes. Nos links informados, você poderá verificar alguns exemplos de Software Requirements Specification – SRS. Com a última videoaula, concluímos nossa exposição sobre Engenharia de Requisitos. Vamos relembrar alguns assuntos apresentados nesta unidade: Estudamos aqui os diversos conceitos relativos à Engenharia de Requisitos, Requisitos de Software e Processos de Requisitos de Software, e suas considerações com os Modelos Ágeis. As preocupações com o prazo e o custo do desenvolvimento de projeto fazem surgir naturalmente técnicas para a especificação das necessidades dos usuários e, com isso, a Engenharia de Requisitos. A Engenharia de Requisitos inicia na fase de concepção do software, prosseguindo até a fase de modelagem, e deve se adequar às necessidades do projeto, produto e das pessoas envolvidas. Após o entendimento inicial, é necessário completar o levantamento de dados, o qual pode ser feito por intermédio de diversas técnicas. Essa etapa, além de crítica, é fundamental para que os requisitos dos usuários sejam bem compreendidos, pois, do contrário, fatalmente ocorrerão problemas durante ou após o projeto. É bom lembrarmos outro aspecto importante: que os requisitos dos usuários podem (normalmente o são) ser voláteis, pois a dinâmica da empresa irá gerar outras necessidades. As informações obtidas preliminarmente devem ser refinadas, para que o modelo do software contenha as funções requeridas. O documento que conterá as informações tem diversas nomenclaturas nas empresas, mas o importante é que tenha todas as informações necessárias. Elaborados os artefatos, esses devem ser revisados visando à sua qualidade para o projeto e sua implementação. Requisitos são funções que o software deverá executar (por isso devem ser consistentes, claros e completos, contendo as visões e os cenários de todos os tipos de usuário que dele farão uso), esses são os requisitos funcionais (de funcionalidade do software). Já os requisitos não funcionais, tratam das restrições de como aquelas funções serão disponibilizadas pelo software. Esses requisitos podem ser também requisitos de produto (relativos ao comportamento do software), organizacionais (têm sua origem nas políticas ou procedimentos da empresa) ou externos ao software (como processos de desenvolvimento, aspectos legais ou éticos). Os requisitos de um software podem ser também de domínio (são os especializados: podem ser algoritmos, novos requisitos funcionais ou novas restrições), de usuário (funções e suas restrições que o software deverá executar) ou de sistema(detalhes das funções e das restrições, devem descrever o comportamento do software e ser consistentes e completos – também são conhecidos como especificação funcional). Vale lembrar que o processo de engenharia de requisitos pode ser aplicado tanto em processos de software tradicionaisquanto nos modelos ágeis, sendo que nesses possibilitam aumento na performance. Com a abordagem iterativa e entregas incrementais dos modelos ágeis, além da colaboração entre os envolvidos, a definição dos requisitos em etapas auxilia o entendimento e a implementação do software. Nessa abordagem, pelas suas características, é inserida a função da qualidade, que irá maximizar a satisfação do cliente. Pode-se também elaborar diagramas de caso de uso (da UML) e seus respectivos casos de uso expandidos, para facilitar a compreensão do software. Uma boa engenharia de requisitos aplicada em um projeto é uma das garantias da qualidade de um software. Lembre-se de estudar os materiais didáticos, a bibliografia recomendada e de fazer as atividades. Bem, com isso encerramos esta unidade! Com a última videoaula concluímos nossa exposição sobre Qualidade de Software e modelos de referência. Vamos relembrar alguns assuntos apresentados nesta Unidade: Iniciamos nossos estudos com os conceitos relativos à qualidade e qualidade de software. Posteriormente, estudamos os modelos de referência e o processo de qualidade de software, concluindo com as métricas para a avaliação de sua qualidade. A disseminação e utilização dos sistemas de informação nas empresas trouxeram consigo, além das preocupações com o prazo e o custo de um projeto, a responsabilidade de se fazer softwares que atendessem aos requisitos dos usuários e com a qualidadepor esses desejada. A febre relativa à qualidade na década de 1980 ajudou a incentivar a indústria de software e seus clientes a buscarem características que possibilitassem indicar a qualidade de seus sistemas. A criação de órgãos disciplinadores e avaliadores da qualidade levou as empresas a também adotarem critérios para a análise de seus softwares antes de disponibilizá-los no mercado. O surgimento das normas ISO/IEC para a qualidade e, posteriormente, também para a qualidade de software permitiu que as organizações e clientes tivessem uma visão mais clara e objetiva das características de qualidade de um software e de sua avaliação. As diversas normas enunciadas e voltadas à qualidade de um software direcionaram usuários, clientes e desenvolvedoresa implementarem controles que pudessem salvaguardar as características e as subcaracterísticas definidas daquela norma para a qualidade. À medida que mais e mais sistemas eram desenvolvidos, a experiência e a capacitação das empresas que desenvolviam software logo eram referenciadas como exemplo de qualidade a ser seguida. Entretanto, os clientes tornam-se mais exigentes e cada vez mais conhecedores do que os sistemas podiam fazer por eles, por sua gestão e por sua empresa. Os algoritmos e as métricas para a avaliação da qualidade foram cruciais também para a determinação do que é e quais são os requisitos para a qualidade dessas mesmas métricas, a fim de atingirem seu objetivo, já que os parâmetros para a avaliação e seu processo avaliativo também devem ter qualidade assegurada. Surgem outros modelos de referência da qualidade, como o CMM, e seu direcionamento à capacitação das empresas desenvolvedoras de solução, o qual provocou uma reviravolta nas softwarehouses, com os clientes considerando-o tão ou mais importante que a própria série ISO/IEC. Esse modelo de maturidade e capacitação logo é modificado e atualizado, passando a contar com aspectos relativos a desenvolvimento, à aquisição ou aos serviços. O CMM-I torna-se o modelo de referência mais cobiçado pelo mercado, tendo sido considerado, nos níveis mais elevados, condição para a comercialização de softwares. Entretanto, as normas ISO/IEC e CMM-I se completam, cada uma na sua especificidade, aplicação e objetivo. As ponderações sobre qualidade do software, garantida a partir da qualidade do processo, e o foco da melhoria contínua determinado pelo CMM-I, trouxeram novas possibilidades ao mercado consumidor, atento às modificações e exigências cada vez maiores. Com essas circunstâncias, surgem questionamentos sobre como seria possível avaliar adequadamente os softwares, já que a qualidade é considerada por muitos como subjetiva. Obviamente, a evolução trouxe com ela a norma ISO/IEC 25000: 2005, que engloba as normas ISO/IEC 9126 e 14598, ainda em uso, e, com essa, o modelo SQuaRE, que melhor caracteriza as medições da qualidade de um software. Aos usuários, ficou facilitada a árdua tarefa de analisar as características e respectivas qualidades do software pretendido; aos desenvolvedores, o desafio de promover, manter, garantir e melhorar continuamente aqualidade no desenvolvimento de seus softwares, a partir do projeto, e assegurando-a inclusive pós-implantação. Lembre-se de estudar os materiais didáticos, a bibliografia recomendada e de fazer as atividades. Bem, com isso encerramos essa unidade !!! Nos vemos na próxima. Engenharia de Software e Qualidade em Sistemas Qualidade de Software e Modelos de Referência Responsável pelo Conteúdo: Prof. Ms. Afonso Pavão Revisão Textual: Prof. Ms. Claudio Brites 5 Qualidade de Software e Modelos de Referência Nesta unidade, trabalharemos os seguintes tópicos: • Introdução • Orientação para Leitura Obrigatória • Material Complementar Fonte: iStock/Getty Im ages · Apresentar os conceitos de Qualidade de Software. · Compreender o que são métricas de Software. · Entender a abrangência e importância dos testes de Software. · Apresentar os modelos de referência para a qualidade de Software. Normalmente com a correria do dia a dia, não nos organizamos e deixamos para o último momento o acesso ao estudo, o que implicará o não aprofundamento no material trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas. Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns dias e determinar como o seu “momento do estudo”. No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões de materiais complementares, elementos didáticos que ampliarão sua interpretação e auxiliarão o pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois estes ajudarão a veriicar o quanto você absorveu do conteúdo, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. 6 Unidade: Qualidade de Software e Modelos de Referência Introdução ao Tema Quando falamos sobre qualidade de software é necessário lembrar que o processo de software é extenso e complexo. A engenharia de requisitos ainda é um dos “calcanhares de Aquiles” do desenvolvimento de sistemas. O termo qualidade ganhou notoriedade com a busca pela qualidade de produtos na década de 1980 e expandiu-se rapidamente ao longo dos anos 1990. Qualidade de um produto se refere ao atendimento às suas especificações técnicas – seus “requisitos”. Com o avanço da tecnologia e a constante inovação dos produtos, as empresas começaram a busca pela certificação da International Standardization for Organization – ISO, tornando- se essa uma condição essencial para comercializar seus produtos no mercado mundial. Com o software sucedeu o mesmo, consequência da expansão do interesse na automatização de processos, principalmente por parte das médias e pequenas empresas. Os clientes de software houses também começaram a exigir para o software cada vez mais o atendimento de suas necessidades, e com maior qualidade. Os consumidores viram então as empresas buscando sua certificação com total prioridade. Proliferam-se as organizações que necessitavam mapear seus processos para obter alguma certificação. As empresas que tinham seus processos mapeados saíram na frente e passaram a usar a certificação como propaganda para alavancar suas vendas, veicular seus produtos e sua imagem de seriedade. Logo a certificação passou a ser considerada imprescindível também para as empresas do produto software, pois seriam vistas inclusive como organizações sérias, confiáveis e seguras. Assim, o software também passou a ter as suas especificações técnicas, a exemplo de outros produtos desenvolvidos pela engenharia de produtos. As especificações técnicas do software ficaram conhecidas como requisitos do software, e deveriam atender às necessidades dos clientes. Os processos de software e suas atividades contribuíram para a melhoria desses produtos, uma vez que a atenção dos profissionais da tecnologia da informação ficou voltada para que cada etapa do desenvolvimento também tivesse a qualidade adequada. A transição de controle de qualidade para garantia de qualidade mudou radicalmente a visão dos consumidores e dos fabricantes – independente do produto fabricado. A visão de que o produto final deveria ter qualidade evoluiu para assegurar que o produto final tivesse a qualidade requerida, e isso somente seria possível com adequados controles em cada etapa do processo de fabricação. 7 E com o software não foi diferente, a engenharia de requisitos impulsionou e contribuiu para que sua qualidade melhorasse. A adoção de normas mais rígidas de processos de software para o desenvolvimento de sistemas, a iteratividade e a interação crescente com os clientes sempre mais exigentes fez surgir as normas gerais para o desenvolvimento de sistemas. Com diversas sugestões, o detalhamento dessas normas procurou tornar padrão os requisitos da qualidade do produto software. Mas, com isso, foi necessário criar mecanismos adequados para avaliar as características da qualidade de um software. E como sua complexidade diverge conforme a organização e as necessidades de controle que cada usuário tem, foram criadas diversas métricas para realizar essa medição. As empresas de maior porte e software houses tradicionais – e, portanto, com maior experiência no desenvolvimento de sistemas – já possuíam seu histórico e, consequentemente, tinham um bom diagnóstico da qualidade de seus produtos. Existiam, contudo, diversas empresas produzindo sistemas, e cada uma delas em diferentes estágios de maturidade de desenvolvimento de software. O advento dos critérios para identificar a capacitação da arquitetura de desenvolvimento, elaborados pelo Software Engineering Institute – SEI, da Universidade de Carnegie Mellon – o Capability Maturity Model for Software – CMM e o Integrated – CMM-I possibilitaram, juntamente com outros critérios, elaborar um modelo para a avaliação do nível da experiência dos profissionais e das organizações na elaboração de um software. Esse modelo então passou a ser a nova referência e o passaporte para a comercialização de softwares devido à sua respeitabilidade e amplitude de aceitação. Assim, as empresas se tornam igualmente respeitáveis e confiáveis ao se prepararem para serem submetidas à avaliação oficial do SEI. 8 Unidade: Qualidade de Software e Modelos de Referência Orientação para Leitura Obrigatória Nesta Unidade, ao apresentarmos os conceitos gerais de qualidade de software, de métricas e testes, e de modelos de referência para a qualidade de software, é recomendável a leitura dos capítulos e obras, conforme orientações a seguir: SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2011. Cap. 22, a partir do login do aluno, clicando em “Serviços”, “Biblioteca” e em “E-books – Bib. Virtual Universitária”. Após carregar a página de capa do livro, observe a seta à direita da tela para movimentar-se e ir à página seguinte ou retornar à anterior. PRESSMAN, R. S. Engenharia de Software. 7.ed. Rio de Janeiro: Mcgraw-Hill do Brasil, 2011. Cap. 14, 16, 17, 23 e 30, a partir do login do aluno, clicando em “Serviços”, “Biblioteca” e em “E-books – Bib. Virtual Universitária”. Após carregar a página de capa do livro, observe a seta à direita da tela para movimentar-se e ir à página seguinte ou retornar à anterior. Você também deve explorar e ler o material identificado no Material Complementar, pois sua proposta é ajudá-lo a compreender, sob ótica diferente desta unidade de conteúdo, os assuntos abordados. 9 Material Complementar Sites: Associação Brasileira de Normas Técnicas – ABNT para aquisição. Disponível em: https://goo.gl/S191uo, acesso em 12/04/2016. Wikipedia– ISO/IEC 9126. Disponível em: https://goo.gl/Whbkgw, acesso em 12/04/2016. Leituras: PEPP: Processo de Software para Empresas de Pequeno Porte Baseado no Modelo CMMI Artigo publicado e premiado no SBQS de 2005, na categoria excelência. Disponível em: http://goo.gl/1Dn9Qu, acesso em 15/3/2016. Quality Attributes Atributos da qualidade de software. Disponível em: http://goo.gl/aVmzoK, acesso em 12/04/2016. 10 Unidade: Qualidade de Software e Modelos de Referência Referências BARTIÉ, Alexandre. Garantia da qualidade de software. Rio de Janeiro: Elsevier, 2002. COUTO, Ana B. CMMI - integração dos modelos de capacitação e maturidade de sistemas. Rio de Janeiro: Ciência Moderna, 2007. KOSCIANSKI, André & SOARES, Michel dos Santos. Qualidade de Software. 2. ed. São Paulo, Novatec: 2007. PÁDUA, W. Engenharia de Software - Fundamentos, Métodos e Padrões. 3. ed. São Paulo: LTC, 2009. PRESSMAN, R. S. Engenharia de Software. 7. ed. Rio de Janeiro: Mcgraw-Hill do Brasil, 2011. SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2011. 11 Anotações
Compartilhar