UNIVERSIDADE GAMA FILHO COORDENAÇÃO DE APOIO ACADÊMICO TECNÓLOGO EM GESTÃO DE PROJETOS DE TECNOLOGIA DA INFORMAÇÃO PROCESSOS FUNDAMENTAIS (NORMA ISO/IEC 12207) - PROCESSO DE OPERAÇÃO - Trabalho apresentado como requisito para obtenção ao GQ1 da disciplina INF 366 – Auditoria e Qualidade em Sistemas de Informação Por Renato Paes de Souza Outubro/2006 INDICE 1. INTRODUÇÃO.................................................................................................03 2. HISTÓRICO DA NORMA ISO/IEC 12207........................................................04 3. A NORMA ISO/IEC 12207...............................................................................05 3.1 Processos Fundamentais...............................................................................06 3.1.1 Processo de aquisição................................................................................06 3.1.2 Processo de fornecimento..........................................................................07 3.1.3 Processo de desenvolvimento....................................................................07 3.1.4 Processo de operação................................................................................07 3.1.5 Processo de manutenção...........................................................................08 4. O PROCESSO DE OPERAÇÃO.....................................................................08 4.1 Implementação do Processo.........................................................................09 4.2 Teste Operacional.........................................................................................09 4.3 Operação do Sistema....................................................................................09 4.4 Suporte ao Usuário........................................................................................10 REFERÊNCIAS BIBLIOGRÁFICAS...................................................................11 1. INTRODUÇÃO A demanda por qualidade tem motivado a comunidade de software para o desenvolvimento de modelos para a qualidade de software. Portanto, a melhoria da qualidade do software torna-se um processo cada vez mais comum nas organizações devido à necessidade de obtenção de melhores resultados em todas as fases do ciclo de vida do software. Para tanto, a comunidade mundial envolvida com desenvolvimento de software vem criando normas para regular e orientar a produção do software. Com isso, surgiu a ISO/IEC 12207 sob o título de Information technology Software Life Cycle Process (tecnologia da informação - Processos de Ciclo de Vida de Software), que foi criada para estabelecer uma estrutura comum de processos, para ser utilizada como referência em negócios relacionados a produtos de software, e também considera que o desenvolvimento e manutenção do software devem ser conduzidos de forma semelhante a engenharia. A norma possui três classes gerais que são os Processos Fundamentais, Apoio e Organizacional. O objetivo deste trabalho será fazer um estudo aprofundado a partir da Norma ISO/IEC 12207, em específico o Processo de Operação, que é parte integrante dos Processos Fundamentais. 2. HISTÓRICO DA NORMA ISO/IEC 12207 É a primeira norma internacional que fornece um conjunto de processos para aquisição e fornecimento de produtos e serviços de software. Estes processos podem também ser empregados para gerir, desenvolver, usar e melhorar o software através do seu ciclo de vida. A sua arquitetura permite contemplar os métodos, técnicas, ferramentas e ambientes atuais e em evolução. Esta norma começou a ser elaborada em junho de 1989, no Grupo de trabalho ISO/IEC/JTC1/SC7/WG7 (Comitê de Engenharia de Software) e foi aprovada em agosto de 1995. A norma ISO/IEC 12207 estabelece os processos, atividades e tarefas a serem aplicados durante a aquisição, fornecimento, desenvolvimento, operação e manutenção de software. A Norma apresenta uma definição abrangente em relação aos processos, e orienta a adaptação para sua utilização nos projetos de software implementados numa organização. Define dezessete processos do ciclo de vida do software e organiza em três classes: Processos Fundamentais, Processos de Apoio e Processos Organizacionais. Adicionalmente, a norma contém um enquadramento para a gestão, controle e melhoramento das atividades do ciclo de vida do software. Esta norma foi adaptada pelos Estados Unidos como a norma IEEE/EIA 12207 e é considerada uma norma estratégica que fornece a base para adoção, a nível organizacional, dos processos de software adequados a projetos dos vários setores de atividade (comerciais, militares e outros) quer para clientes internos quer internacionais. Foi adotada pelo Department of Defense (DoD), em substituição da norma MIL-STD-498, em maio de 1998. 3. A NORMA ISO/IEC 12207 A Norma ISO/IEC 12207 - Processos do Ciclo de Vida do Software tem como principal objetivo fornecer uma estrutura comum para que o adquirente, fornecedor, desenvolvedor, mantenedor, operador, gerentes e técnicos envolvidos com o desenvolvimento de software utilizem uma linguagem comum. Esta linguagem comum é estabelecida na forma de processos bem definidos. A estrutura da Norma foi concebida de maneira a ser flexível, modular e adaptável às necessidades de quem a utiliza. Para isto, ela está fundamentada em dois princípios básicos: modularidade e responsabilidade. Modularidade, no sentido de processos com mínimo acoplamento e máxima coesão, o qual é baseada nas seguintes regras de particionamento: Coesão - as tarefas num processo estão funcionalmente relacionadas; Acoplamento - a ligação entre os processos é mínima, e; Associação - se a função é usada por mais que um processo então essa função transforma-se num processo; Se um processo X é invocado apenas por um processo A então este processo A pertence àquele processo X. Responsabilidade, no sentido de estabelecer um responsável único por cada processo, facilitando a aplicação da Norma em projetos onde várias pessoas podem estar legalmente envolvidas. Uma função cujas partes estão sob diferentes responsabilidades não é um processo. Conforme citado anteriormente, a Norma é composta por um conjunto de processos, atividades e tarefas que podem ser adaptados de acordo com os projetos de software. Estes processos são classificados em três tipos: fundamentais, de apoio e organizacionais, conforme ilustra a Figura1. Os processos de apoio e organizacionais devem existir independentemente da organização e do projeto que está sendo executado. Os processos fundamentais são instanciados de acordo com a situação. Processos Fundamentais Figura 1: Visão geral dos Processos da ISO/IEC 12207 3.1 Processos Fundamentais São responsáveis pela geração dos produtos de software, constituindo o ciclo de vida de software propriamente dito. São representados pelos seguintes processos: 3.1.1 Processo de aquisição Define as atividades do adquirente, organização que adquire um sistema ou produto de software. Inicia-se com a definição da necessidade de adquirir um sistema, um produto de software ou um serviço de software. O processo continua com a preparação e emissão de pedido de proposta, seleção de fornecedor e gerência do processo de aquisição através da aceitação do sistema, produto de software ou serviço de software. 3.1.2 Processo de fornecimento Define as atividades do fornecedor, organização que provê o produto de software ao adquirente. O processo pode ser iniciado tanto por uma decisão de preparar uma proposta para responder a um pedido de proposta de um adquirente, quanto pela assinatura e celebração de um contrato com o adquirente para fornecer o sistema, produto de software ou serviço de software. O processo continua com a determinação dos procedimentos e recursos necessários para gerenciar e garantir o projeto, incluindo o desenvolvimento e a execução dos planos de projeto, até a entrega do sistema, produto de software ou serviço de software para o adquirente. 3.1.3 Processo de desenvolvimento Define as atividades do desenvolver, organização que define e desenvolve o produto de software. O processo contém as atividades para análise de requisitos, projeto, codificação, integração, testes, e instalação e aceitação relacionada aos produtos de software. 3.1.4 Processo de operação Define as atividades do operador, organização que provê serviço de operação de um sistema computacional no seu ambiente de funcionamento para seus usuários. O processo cobre a operação do produto de software e o suporte operacional aos usuários. 3.1.5 Processo de manutenção Define as atividades do mantenedor, organização que provê os serviços de manutenção do software, isto é, gerenciamento de modificações no software para mantê-lo atualizado e em perfeita operação. Este processo é ativado quando o produto de software é submetido a modificações no código e na documentação associada devido a um problema, ou à necessidade de melhoria ou adaptação. O objetivo é modificar um produto de software existente, preservando a sua integridade. Ressalta-se que os Processos de Apoio e Organizacionais da Norma ISO/IEC 12207 não serão pesquisados de forma detalhada e aprofundada nesse trabalho. 4. O PROCESSO DE OPERAÇÃO Cada Processo é definido pelas suas atividades, e cada atividade é adicionalmente definida pelas suas tarefas, sendo que cada atividade subordinada a um processo é um conjunto de tarefas intimamente ligadas. Uma tarefa é um requisito, uma declaração própria, uma recomendação ou uma ação permissível, ou seja, tarefa é o que o processo deve fazer. A norma também escreve o processo de adaptação que contém as atividades básicas para adaptar a norma a uma organização ou projeto específico. A norma possui 74 atividades e 224 tarefas, conforme é visto na tabela 1, que apresenta o desdobramento dos processos, atividades e tarefas da norma: CLASSES FUNDAMENTAL APOIO ORGANIZACIONAL TOTAL PROCESSOS 5 8 4 17 ATIVIDADES 35 25 14 74 TAREFAS 136 61 27 224 Tabela 1: Desdobramentos dos processos da Norma ISSO/IEC 12207 O processo de operação contém as atividades e as tarefas do operador, abrangendo a operação do produto de software e o suporte operacional aos usuários. Consiste nas seguintes atividades: 4.1 Implementação do Processo Nesta atividade, o operador deve desenvolver, documentar e executar um plano, bem como um conjunto de padrões para conduzir as atividades e tarefas do processo de operação. Devem-se estabelecer procedimentos para receber, registrar, resolver e rastrear problemas e fornecer um retorno sobre os mesmos. Sempre que for encontrado um problema, este deve ser incluído no processo de resolução de problemas. O operador também deve estabelecer procedimentos para o teste operacional do produto, para inserir os relatórios de problemas e pedidos de modificação no processo de manutenção e para liberar o produto para uso operacional. 4.2 Teste Operacional O operador deve executar o teste operacional e liberar o produto para uso, caso os critérios especificados sejam satisfeitos. Também deve garantir que o código e as bases de dados sejam iniciados, executados e finalizados de acordo com o plano. 4.3 Operação do Sistema O sistema deve ser operado no ambiente para o qual foi desenvolvido e de acordo com a documentação do usuário. 4.4 Suporte ao Usuário O operador deve fornecer assistência e consultoria aos usuários sempre que solicitado, encaminhando as solicitações para o processo de manutenção, fornecendo retorno aos solicitantes e monitorando as resoluções até a sua conclusão. No quadro 1 a seguir, pode-se ter a visão resumida das tarefas da atividade do Processo de Operação. Implementação do processo Teste operacional Operação do sistema Suporte ao usuário 1. Desenvolver e documentar as atividades operacionais; 2. Desenvolver e documentar os procedimentos para tratar dos problemas; 3. Definir os procedimentos para o teste ao produto, para o tratamento de problemas e pedidos de alteração e para a passagem a produção. 1. Conduzir os testes operacionais; 2. Testar o código e as bases de dados. 1. Verificar que o sistema opera conforme descrito na documentação do usuário. 1. Atender aos pedidos dos usuários; 2. Acompanhar o andamento dos pedidos dos usuários; 3. Fornecer soluções para os problemas mais freqüentes. Quadro 1: Visão resumida das tarefas da atividade do Processo de Operação REFERÊNCIAS BIBLIOGRÁFICAS NBR ISO/IEC 12207 – tecnologia de informação: processos de ciclo de vida de software. Rio de Janeiro: ABNT, 1998. LINKS, que serviram de base ao texto ISO/IEC 12207 Software Lifecycle Processes, de Lewis Gray ISO 12207 and Related Software Life-Cycle Standards, de Jim Moore A Comparison of IEEE/EIA 12207, ISO/IEC 12207, J-STD-016, and MIL-STD-498 for Acquirers and Developers, Lewis Gray, PDF Coordinating the SEI CMMs with IEEE/EIA 12207, Lewis Gray, PDF