Escopo: PROCESSOS FUNDAMENTAIS Etapa:Desenvolvimento de software Disciplina: Auditoria & Qualidade em Sistemas de Informação Professor: Lucas Topofalo Integrantes: Joel Soares de Jesus Luiz R. Bandeira Jr. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 1 de 15
Índice 1. Sumário Executivo...3 2. Objetivo...4 3. O Processo de Desenvolvimento...4 4. Descrição...5 4.1. Implementação de Processo...5 4.1.1 Modelo de ciclo de vida...5 4.1.2 Definir as regras...6 4.1.3 Definir padrão de desenvolvimento...6 4.1.4 Planejamento de condução do projeto...6 4.1.5 Produtos do projeto...6 4.2. Análise de requisitos do sistema...7 4.2.1 Especificação do sistema...7 4.2.2 Requisitos do sistema...7 4.3. Projeto de arquitetura do sistema...8 4.3.1 Arquitetura em alto nível...8 4.3.2 Requisitos da arquitetura em alto nível...8 4.4. Análise de requisitos do software...8 4.4.1 Definição e Documentação...9 4.4.2 Avaliação... 10 4.4.3 Revisões... 10 4.5. Projeto da arquitetura do software... 10 4.5.1 Montagem da arquitetura... 10 4.5.2 Documentação em alto nível... 11 4.5.3 Documentação em alto nível... 11 4.5.4 Documentação de versões... 11 4.5.5 Documentação de requisitos... 11 4.5.6 Documentação de requisitos... 12 4.5.7 Condução de revisões... 12 5. Case... 14 6. Biografia... 15 Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 2 de 15
1. Sumário Executivo Software é uma parte fundamental da tecnologia de informação e de sistemas convencionais, tais como sistemas de transporte, militares, da área médica e financeiros. Tem havido uma proliferação de normas, procedimentos, métodos, ferramentas e ambientes de desenvolvimento e de gerência de software. Esta proliferação tem criado dificuldades na gerência e engenharia de software, principalmente na integração de produtos e serviços. A disciplina de software necessita migrar desta proliferação para uma estrutura comum que possa ser usada por profissionais de software para falar a mesma língua na criação e gerência de software. Esta Norma provê tal estrutura comum. A estrutura cobre o ciclo de vida de software desde a concepção de idéias até a descontinuação do software, e consiste nos processos de aquisição e fornecimento de produtos e serviços de software. Adicionalmente, a estrutura provê o controle e a melhoria destes processos. Os processos desta Norma formam um conjunto abrangente. Uma organização, dependendo de seu objetivo, pode selecionar um subconjunto apropriado para satisfazê-lo. Esta Norma é, portanto, projetada para ser adaptada para uma organização, projeto ou aplicação específicos. Também é projetada para ser utilizada quando o software é uma entidade independente ou embutida ou integrada a um sistema. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 3 de 15
2. Objetivo Esta Norma estabelece uma estrutura comum para os processos de ciclo de vida de software, com terminologia bem definida, que pode ser referenciada pela indústria de software. A estrutura contém processos, atividades e tarefas que servem para ser aplicadas durante a aquisição de um sistema que contém software, de um produto de software independente ou de um serviço de software, e durante o fornecimento, desenvolvimento, operação e manutenção de produtos de software. O termo software inclui a parte de software de firmware (microprogramas que são gravados em chips). Esta Norma também provê um processo que pode ser utilizado para definir, controlar e melhorar os processos de ciclo de vida de software. 3. O Processo de Desenvolvimento O processo de Desenvolvimento faz parte do que se chama processos fundamentais que é um dos processos da norma ISO/IEC 12207. Neste processo é onde concentram-se todas as atividades a serem empregadas pelo desenvolvedor do projeto de software. Desta forma, destacando-se atividades ligadas à análise, projeto, codificação, integração, testes, implantação e homologação. Nesta etapa, o desenvolvedor participa de forma ativa, levando em conta o que fora levantado para o projeto (documento de especificação ou Briefing). Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 4 de 15
As atividades envolvidas neste processo podem ser divididas nos seguintes passos: 1. Implementação de processo 2. Análise de requisitos do sistema 3. Projeto da arquitetura do sistema 4. Análise de requisitos do software 5. Projeto da arquitetura do software 6. Projeto detalhado do software 7. Codificação e teste do software 8. Integração do software 9. Teste de homologação/qualificação do software 10. Integração do sistema 11. Teste de homologação/qualificação do sistema 12. Implantação do software 13. Homologação do software A seguir, iremos discorrer acerca das 5 (cinco) primeiras atividades do processo de desenvolvimento. 4. Descrição 4.1. Implementação de Processo É a atividade inicial da etapa de desenvolvimento e a mesma é segmentada nos seguinte passos: 4.1.1 Modelo de ciclo de vida A menos que não esteja estipulado em contrato, o desenvolvedor deverá definir o modelo de ciclo de vida do software que seja mais apropriado de acordo com o escopo, tamanho e complexidade do projeto. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 5 de 15
As atividades e tarefas do processo de desenvolvimento estarão mapeadas neste modelo de ciclo de vida que deve ser seguido como um roteiro do projeto de forma concorrente, recursiva ou passo a passo. 4.1.2 Definir as regras a)preparar e definir o documento que será instrumento de homologação/aceitação do projeto; b) Inserir os resultados a serem gerados em um meio de controle do processo para controle do projeto (ex.:ms-project); c) Documentar e resolver problemas de não conformidade encontrados nos produtos de software e tarefas; d)preparar e praticar os procedimentos de suporte previstos e especificados em contrato 4.1.3 Definir padrão de desenvolvimento O desenvolvedor seleciona o padrão de desenvolvimento a ser utilizado no projeto, métricas e ferramentas e linguagem de programação apropriada, caso não definida por contrato. 4.1.4 Planejamento de condução do projeto Neste passo, é definido o planejamento de condução do projeto, o qual deve incluir padrões, métricas, ferramentas, ações e responsabilidades relacionadas com o desenvolvimento e qualificação de requerimentos para boas práticas, como segurança e confiabilidade de software. 4.1.5 Produtos do projeto Devem ser considerados os tipos de produtos a serem entregues no fim do projeto, como códigos fontes, manual de utilização do software e qualquer documento relevante para a manutenção e evolução do software. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 6 de 15
4.2. Análise de requisitos do sistema Este passo divide-se em duas outras tarefas que deverão ser empregadas pelo desenvolvedor, são elas: 4.2.1 Especificação do sistema A especificação de uso do sistema a ser desenvolvido, deve estar bem definido de modo a orientar quais serão suas funções e limitações do sistema, as regras de negócio e requisitos do usuário do sistema, considerando também a segurança, usabilidade, interface amigável e manutenibilidade. Todas estas observações devem ser devidamente documentadas. 4.2.2 Requisitos do sistema Os requisitos do sistema devem seguir os seguintes critérios que devem ser documentados como documentos do projeto: a) Rastreabilidade para os requisitos do item de sistema; b) Consistência externa com os requisitos do item de sistema; c) Consistência interna entre os componentes de sistema; d) Adequação dos métodos e padrões de projeto utilizados; e) Viabilidade do projeto detalhado; f) Viabilidade da operação e manutenção. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 7 de 15
4.3. Projeto de arquitetura do sistema Este passo também é realizado em duas tarefas: 4.3.1 Arquitetura em alto nível Deve ser realizada uma análise da arquitetura do sistema em alto nível, ou seja, esta análise deve identificar itens relacionados ao hardware, software e operações manuais a serem desempenhadas e que estes itens estão disponíveis dentro dos requerimentos do sistema. Evidentemente, todos devidamente documentados. 4.3.2 Requisitos da arquitetura em alto nível Os requisitos da arquitetura devem seguir os seguintes critérios que devem ser documentados como documentos do projeto: a) Rastreabilidade para os requisitos de aquisição; b) Consistência com os requisitos de aquisição; c) Testabilidade; d) Viabilidade do projeto arquitetura do sistema; e) Viabilidade da operação e manutenção. 4.4. Análise de requisitos do software Esta atividade deve ser realizada para cada item de software (ou item de configuração de software, se identificado) e consiste nas seguintes tarefas: Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 8 de 15
4.4.1 Definição e Documentação O desenvolvedor deve estabelecer e documentar os requisitos do software, incluindo as especificações das características de qualidade descritas a seguir. Um guia para especificar as características de qualidade pode ser encontrado na ISO/IEC 91262 Information technology - Software product evaluation Quality characteristics and guidelines for their use. a) Especificações funcionais e de capacidade, incluindo desempenho, características físicas e condições do ambiente sob o qual o item de software será executado; b) Interfaces externas ao item de software; c) Requisitos de qualificação; d) Especificações de proteção, incluindo aquelas relacionadas aos métodos de operação e manutenção, influências do ambiente e danos pessoais; e) Especificações de segurança, incluindo aquelas relacionadas com o comprometimento de informações sigilosas; f) Especificações de engenharia de fatores humanos (ergonomia), incluindo aquelas relacionadas com operações manuais, interações entre homemmáquina, restrições a pessoal e áreas que necessitam de maior atenção humana, que são sensíveis a erros humanos e treinamento; g) Definição de dados e requisitos de bases de dados; h) Requisitos de instalação e aceitação do produto de software entregue no(s) local(ais) de operação e manutenção; i) Documentação do usuário; j) Requisitos do usuário para execução e operação; k) Requisitos do usuário para manutenção. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 9 de 15
4.4.2 Avaliação O desenvolvedor deve avaliar os requisitos do software considerando os critérios listados a seguir. a) Rastreabilidade para os requisitos do sistema e projeto do sistema; b) Consistência externa com os requisitos do sistema; c) Consistência interna; d) Testabilidade; e) Viabilidade do projeto do software; f) Viabilidade da operação e manutenção. 4.4.3 Revisões O desenvolvedor deve conduzir revisão(ões) conjunta(s). Sendo bem sucedidas as conclusões da(s) revisão(ões), uma linha básica (baseline) para os requisitos do item de software deve ser estabelecida. 4.5. Projeto da arquitetura do software Esta atividade deve ser realizada para cada item de software (ou item de configuração de software, se identificado) e consiste nas seguintes tarefas: 4.5.1 Montagem da arquitetura O desenvolvedor deve transformar os requisitos para o item de software em uma arquitetura que descreve sua estrutura de alto nível e identifica os componentes de software. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 10 de 15
Deve ser garantido que todos os requisitos do item de software sejam alocados aos seus componentes de software e, mais adiante, sejam refinados para facilitar o projeto detalhado. A arquitetura do item de software deve ser documentada. 4.5.2 Documentação em alto nível O desenvolvedor deve desenvolver e documentar um projeto de alto nível para as interfaces externas ao item de software e entre os componentes de software do item de software. 4.5.3 Documentação em alto nível O desenvolvedor deve elaborare documentar um projeto de alto nível para a base de dados. 4.5.4 Documentação de versões O desenvolvedor deveria desenvolver e documentar versões preliminares da documentação do usuário. 4.5.5 Documentação de requisitos O desenvolvedor deve definir e documentar os requisitos preliminares de teste e o cronograma para a integração do software. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 11 de 15
4.5.6 Documentação de requisitos O desenvolvedor deve avaliar a arquitetura do item de software e os projetos de interface e base de dados, considerando os critérios listados a seguir. Os resultados das avaliações devem ser documentados. a) Rastreabilidade para os requisitos do item de software; b) Consistência externa com os requisitos do item de software; c) Consistência interna entre os componentes de software; d) Adequação dos métodos e padrões de projeto utilizados; e) Viabilidade do projeto detalhado; f) Viabilidade da operação e manutenção. 4.5.7 Condução de revisões O desenvolvedor deve conduzir revisão(ões) conjunta(s) tal qual o processo detalhado nesta mesma regra, sob título Processo de Revisão Conjunta, em resumo detalhamos abaixo: Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 12 de 15
O processo de revisão conjunta é um processo para avaliar a situação e produtos de uma atividade de um projeto, se apropriado. As revisões conjuntas são feitas tanto nos níveis de gerenciamento do projeto como nos níveis técnicos e são executadas durante a vigência do contrato. Este processo pode ser empregado por qualquer das duas partes, onde uma parte (parte revisora) revisa a outra parte (parte revisada). Lista das atividades. Este processo consiste nas seguintes atividades: 1. Implementação do processo; 2. Revisões de gerenciamento do projeto; 3. Revisões técnicas. Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 13 de 15
5. Case No mercado há diversos cases onde foram aplicados em parte ou em todo a metodologia de desenvolvimento de software. A seguir apresentamos um case real onde o processo de desenvolvimento de software foi empregado, propiciando ótimos resultados. Cenário: Empresa Pública com sistema antigo, baseado em Terminal, tem por necessidade utilizar tecnologia mais recente e portar toda sua estrutura Main Frame para padrão Web, utilizando tecnologia Java. Solução: Passo 1. Análise dos processos da empresa e suas necessidades, desta forma definindo o escopo do projeto e seu cronograma físico. (Implementação de processo) Passo 2. Análise do projeto de software a ser desenvolvido, através de entrevistas com os usuários e administradores do sistema atual. (Análise de requisitos do sistema) Passo 3. Com base no material levantado no Passo 2, faz-se o desenho do novo software que atenda os requisitos levantados. (Projeto da arquitetura do sistema) Passo 4. Definição do material a ser gerado para acompanhar/documentar o desenvolvimento do software (Análise de requisitos do software) Passo 5. Criação dos modelos de banco de dados e objetos para a programação a ser utilizada (Projeto da arquitetura do software) Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 14 de 15
6. Biografia As referências abaixo, tanto em forma digital quanto impressa, foram utilizadas em todo ou em parte para a confecção deste documento. 1. Referência: Norma NBR12207- Processos de ciclo de vida de software 2. Referência: Engenharia de Software - Roger S. Pressman 5ª. Edição 3. Referência: Engenharia de Software com CMM, Fiorini, Soeli, Star, Arnot Von Baptista Renan Processos Fundamentais Desenvolvimento de Software UGF/ Tecnologia da Informação - Página 15 de 15