Baixe o app para aproveitar ainda mais
Prévia do material em texto
Técnica para construção do modelo lógico de sistemas APRESENTAÇÃO Para a construção do modelo lógico de sistemas, são necessários conceitos sobre processos de software, identificação de requisitos para a construção de um software e reconhecimento do processo de desenvolvimento e gerenciamento de um sistema. Nesta Unidade de Aprendizagem, você estudará o conceito de processos de software e como utilizá-los no processo de desenvolvimento e gerenciamento de softwares. Aprenderá também a identificar requisitos de um sistema de software para reduzir problemas relacionados a treinamento, revisões, tempo e esforço no desenvolvimento e gerenciamento de softwares. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Discutir os conceitos dos processos de software• Identificar os requisitos de um software.• Reconhecer o processo de desenvolvimento e gerenciamento de um software.• DESAFIO Um projeto de software tem um ciclo de vida. Assim, para completar o ciclo, existem diversas fases. Suponha que você faz parte da equipe de desenvolvimento e precisa explicar ao cliente quais são as respectivas atividades de cada fase do ciclo. INFOGRÁFICO Requisito é uma exigência, uma solicitação, um desejo, uma necessidade. Um requisito funcional é um pedido de ação ao qual um software deverá atender. Acompanhe o infográfico sobre requisitos funcionais. CONTEÚDO DO LIVRO Quando se fala em análise e projetos de desenvolvimento de software, uma infinidade de tarefas aparecem em nossa mente. Entre elas estão importantes itens como, por exemplo, conceitos de processos de software. Estes englobam um conjunto de atividades e resultados que transformam requisitos funcionais e não funcionais em um documento essencial que deverá ser utilizado para implementar e propor alterações, realizar análises de viabilidade, custos e prazos, assim como atingir a qualidade esperada do software a ser desenvolvido. No capítulo Técnica para construção do modelo lógico de sistemas, do livro Análise e projeto de sistemas, você aprenderá conceitos sobre processos de software, como identificar requisitos de software e como reconhecer o processo de desenvolvimento e gerenciamento de um software. ANÁLISE E PROJETO DE SISTEMAS Priscila Gonçalves Técnica para construção do modelo lógico de sistemas Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Discutir os conceitos sobre processos de software. � Identificar os requisitos de um software. � Reconhecer o processo de desenvolvimento e gerenciamento de um software. Introdução Para a construção do modelo lógico de sistemas, são necessários conceitos sobre processos de software, identificação de requisitos para a construção de um software e reconhecimento do processo de desenvolvimento e gerenciamento de um sistema. Neste capítulo, você vai estudar conceitos sobre processos de sof- tware, como identificar requisitos de um software e aprenderá sobre o reconhecimento do processo de desenvolvimento e gerenciamento de softwares. Processos de software Um dos itens primordiais de fator de sucesso em empresas de desenvolvimento de software é a utilização de um processo de software, que pode ser definido brevemente como um conjunto de atividades exigidas no desenvolvimento de um sistema de software. Logo, pode-se dizer que se trata de um conjunto de atividades e resultados que juntos produzem um software. Essas atividades são relacionadas entre elas e operam de acordo com padrões preestabelecidos para alcançar um objetivo ou resultado desejado. Ou seja, a partir dessa definição, você pode produzir um software de alta qualidade e custo baixo. Técnica para construção do modelo lógico de sistemas2 A partir desses conceitos, pode-se considerar que um processo de software pode ser visto como um conjunto de atividades, métodos, ferramentas e prá- ticas que podem ser utilizadas para construir um produto. Entre as atividades relacionadas ao processo de software, estão: especificação, desenvolvimento, verificação e manutenção. Processo de software e suas fases As principais fases de um processo de software são: a especificação de requi- sitos, na qual são traduzidas as necessidades ou requisitos operacionais para a descrição da funcionalidade a ser implementada; o projeto de sistema, no qual tudo o que foi traduzido terá uma descrição item a item de componentes necessários para a codificação do software; a programação propriamente dita, em que ocorre a codificação que controla o sistema e é implementada a lógica necessária; a verificação, onde se observa se todos os requisitos iniciais foram implementados e o objetivo alcançado. Segundo Sommerville (2011), podemos identificar as seguintes atividades no processo de software: � Especificação ■ Engenharia de sistema: solução para o problema em questão, envolve questões amplas, inclusive que sejam a parte em relação ao software, porém pertençam ao problema a ser solucionado. ■ Análise de requisitos: área em que as necessidades para atender ao cliente são levantadas, tendo como principal objetivo especificar os requisitos documentando-os. ■ Especificação do sistema: ocorre a descrição funcional do software, incluindo planos de testes para verificar se está adequado. � Projeto ■ Arquitetura: neste item, ocorre o desenvolvimento do modelo conceitual para o software, composto de módulos que podem ser independentes. ■ Interface: é definida e estudada a interface de comunicação para cada módulo. ■ Detalhamento: neste item, os módulos são definidos e podem ser traduzidos para pseudocódigos. � Implementação ■ Codificação: a implementação e o desenvolvimento em si do software. 3Técnica para construção do modelo lógico de sistemas � Validação ■ Teste unitário: ocorre a realização de testes para verificar se há erros e se o comportamento está adequado. ■ Integração: união de diferentes módulos do software em um só, assim como a verificação da interação entre eles quando estão fun- cionando em conjunto. � Manutenção e evolução ■ O software desenvolvido e implementado entra em um ciclo que abrange todas as fases anteriores. Requisitos de um software Requisitos são condições que devem ser alcançadas, ou seja, é o que um sof- tware ou componente deve possuir para satisfazer uma especificação de um sistema a fim de atender às necessidades dos clientes, restrições e serviços que devem ser contemplados. Normalmente são identificados a partir das regras de negócio estabelecidas, que estão diretamente ligadas à área específica em que o software será desenvolvido. Durante o levantamento de requisitos, os desenvolvedores devem ter conhe- cimento sobre o que o sistema deverá proporcionar e compreender a necessidade do usuário. Entre os requisitos, existem os funcionais e os não funcionais. Requisitos funcionais Requisitos funcionais são os que abordam o que o software deverá fazer, como deverá reagir a entradas específicas e o comportamento. Dependem do tipo de software que será desenvolvido, de quem o utilizará e da maneira como é feita a escrita dos requisitos pela empresa. Ou seja, pode ser descrito de uma forma mais abstrata para que o usuário do sistema tenha uma compreensão mais fácil ou podem ser mais específicos tecnicamente, com entradas, saídas, exceções e restrições. Como um dos problemas em desenvolvimento de software, pode-se citar a imprecisão na especificação dos requisitos, o que pode ocasionar atrasos e aumento de custos na engenharia do software. Por essa razão, preza-se que seja sempre completa e consistente, sendo todos os serviços requeridos pelo usuário explícitos plenamente. Técnica para construção do modelo lógico de sistemas4 Requisitos não funcionais Requisitos não funcionais são restrições aos serviços ou às funções ofere- cidos pelo software, incluindo normas e timing e, normalmente, aplicam-se ao softwarecomo um todo. Não estão relacionados diretamente a serviços específicos que sejam oferecidos pelo software, podem estar relacionados às propriedades do sistema, como: tempo de retorno, confiabilidade. Normalmente especificam ou restringem características do sistema e frequentemente são mais críticos que os funcionais, ou seja, se deixar de atendê-los, pode ser que o sistema seja inutilizado. Os requisitos não funcionais podem afetar a arquitetura do software, as- segurando que sejam cumpridos requisitos de desempenho, organizando o sistema para que seja minimizada a comunicação entre componentes. Você poderá verificar que um único requisito não funcional poderá gerar outros requisitos funcionais relacionados a ele, os quais possam definir serviços necessários, como um requisito de proteção. A Figura 1 apresenta tipos de requisitos não funcionais, segundo Sommerville (2011). Figura 1. Tipos de requisitos não funcionais. Fonte: Adaptada de Sommerville (2011, p. 61). Requisitos não funcionais Requisitos de produto Requisitos de usabilidade Requisitos de e�ciência Requisitos de desempenho Requisitos de espaço Requisitos de con�ança Requisitos ambientais Requisitos reguladores Requisitos éticos Requisitos legais Requisitos contábeis Requisitos de segurança/ proteção Requisitos operacionais Requisitos de desenvolvimento Requisitos de proteção Requisitos externos Requisitos organizacionais 5Técnica para construção do modelo lógico de sistemas Geralmente, os requisitos não funcionais conflitam com outros requisitos funcionais ou não funcionais. Sempre que possível, os requisitos não funcionais devem ser escritos quantitativamente, para que sejam objetivamente testados. Você pode medir essas características quando o sistema está sendo testado para verificar se ele tem cumprido ou não seus requisitos não funcionais (SOMMERVILLE, 2011). A especificação de requisitos de software nada mais é do que um documento oficial, em que os desenvolvedores baseiam-se para implementar o software solicitado. Esse documento deve incluir requisitos de usuário e uma especi- ficação detalhada dos requisitos (funcionais e não funcionais) de sistema, ou seja, esses documentos são essenciais quando alguém está desenvolvendo um sistema. O Quadro 1 mostra usuários desses documentos e como eles o utilizam, conforme Kotonya e Sommerville (1998). Fonte: Adaptado de Sommerville (2011, p. 64). Clientes do sistema � Especificam e leem os requisitos para verificar se estes satisfazem suas necessidades. � Especificam as alterações nos requisitos. Gerentes � Usam o documento de requisitos para planejar uma proposta para o sistema e para planejar o processo do seu desenvolvimento. Engenheiros de sistema � Usam os requisitos para entender o sistema que será desenvolvido. Engenheiros de teste de sistema � Usam os requisitos para desenvolver testes de validação do sistema. Engenheiros de manutenção de sistema � Usam os requisitos para entender o sistema e os relacionamentos entre suas partes. Quadro 1. Usuários de documento de engenharia de requisitos Técnica para construção do modelo lógico de sistemas6 Dessa forma, você deverá incluir em documento de requisitos detalhes que dependerão do tipo de software que deverá ser desenvolvido e o processo utilizado. Acesse o artigo a seguir e conheça melhor as ferramentas disponíveis para gerência de requisitos. https://goo.gl/JtgVTv O quadro a seguir apresenta uma maneira de organizar o documento de requisitos com base na norma IEEE (IEEE, 1998). Prefácio � Deve definir os possíveis leitores do documento e descrever seu histórico de versões, incluindo uma justificativa para a criação de uma nova versão e um resumo das mudanças feitas em cada uma. Introdução Deve descrever: � a necessidade para o sistema; � as funções do sistema e explicar como ele vai funcionar com outros sistemas; � como o sistema atende aos objetivos globais de negócio ou estratégicos da organização que encomendou o software. Glossário � Deve definir os termos técnicos usados no documento. Você não deve fazer suposições sobre a experiência ou o conhecimento do leitor. Definição de requisitos de usuário Deve descrever: � serviços fornecidos ao usuário; � requisitos não funcionais do sistema. � Essa descrição pode usar linguagem natural, diagramas ou outras notações compreensíveis para os clientes. � Normas de produtos e processos seguidos devem ser especificados. (Continua) 7Técnica para construção do modelo lógico de sistemas Arquitetura do sistema � Deve apresentar uma visão geral em alto nível da arquitetura do sistema previsto, mostrando a distribuição de funções entre os módulos do sistema. � Componentes de arquitetura reusados devem ser destacados. Especificação de requisitos do sistema � Deve descrever em detalhes os requisitos funcionais e não funcionais. � Se necessário, também podem ser adicionados mais detalhes aos requisitos não funcionais. � Interfaces com outros sistemas podem ser definidas. Modelos do sistema � Mostram os relacionamentos entre seus componentes e seu ambiente. Exemplos de possíveis modelos são: de objetos, de fluxo de dados ou semânticos de dados. Evolução do sistema � Deve descrever os pressupostos fundamentais em que o sistema se baseia, bem como quaisquer mudanças previstas, em decorrência da evolução de hardware, de mudanças nas necessidades do usuário, etc. � Essa seção é útil para projetistas de sistema, pois pode ajudá-los a evitar decisões que restringem possíveis mudanças no sistema. Apêndices � Deve fornecer informações detalhadas e específicas relacionadas à aplicação em desenvolvimento, além de descrições de hardware e banco de dados. � Requisitos de hardware definem as configurações mínimas ideais para o sistema. � Requisitos de banco de dados definem a organização lógica dos dados usados pelo sistema e os relacionamentos entre eles. Índice � Vários índices podem ser incluídos no documento, como índice alfabético normal, de diagramas e de funções. Fonte: Adaptado de Sommerville (2011, p. 67). (Continução) Processo de desenvolvimento e gerenciamento de um software Conforme abordado anteriormente, o documento de especificação é um item primordial para que o software seja desenvolvido de acordo com as necessi- dades dos clientes, com as restrições necessárias, abordando confiabilidade, Técnica para construção do modelo lógico de sistemas8 portabilidade, segurança e usabilidade, assim como desempenho e hardware necessário. A Figura 2 mostra as fases e cada uma de suas etapas antes do desenvolvimento do software. Figura 2. Visão espiral do processo de engenharia de requisitos. Fonte: Adaptada de Sommerville (2011, p. 70). Início Especi�cação de requisitos de negócio Especi�cação de requisitos de usuário Elicitação de requisitos de usuário Estudos de viabilidade Prototipação Revisões Documento de requisitos de sistema Elicitação de requisitos de sistema Elicitação de requisitos Validação de requisitos Especi�cação de requisitos de sistema Especi�cação de requisitos A análise e a elicitação de requisitos envolvem vários tipos de pessoas de uma organização, geralmente o stakeholder, que inclui usuários finais que interagirão direto com o sistema, e alguma outra pessoa que será afetada direta ou indiretamente pelo software. 9Técnica para construção do modelo lógico de sistemas O gerenciamento de projetos em software leva em consideração primeiro a qualidade, a produtividade e a redução de riscos. Os pontos técnicos devem incluir a definição do ciclo de vida e tipos de planos a serem utilizados para testes, documentação, desenvolvimento, qualidade e gerenciamento. No quesito ciclo de vida do software, identificam-se três fases: definição, desenvolvimento e operação. Em definição, os requisitos são determinados e a viabilidade é estudada, assim como o planejamento de atividades é elaborado.Na fase do desenvolvimento, são realizadas atividades para a produção do software, como: concepção, especificação, design de interface, prototipação, arquitetura, codificação e verificação. Na fase da operação, o software será utilizado pelos usuários e podem ocorrer manutenções, para correções ou evoluções. Os principais motivos para problemas apresentados estão relacionados a falhas no gerenciamento de projetos durante a fase de desenvolvimento, segundo Standish Group (1994). Uma das tarefas de um gestor de projetos é identificar as partes mais difíceis e buscar soluções eficientes. O gestor de projetos deve trabalhar com ideias e com pessoas, tendo como principais atividades planejamento, assessoria, organização, saber dirigir e controlar o projeto. Da mesma forma que deve ter comprometimento com equipe, prazos, custos e qualidade em suas entregas. Como há muitas mudanças de requisitos, o ciclo mostrado na figura apre- sentada deve ser repetido toda vez que for necessário. As novas técnicas com metodologias ágeis facilitam a vida dos gerentes de projeto desde que estes tenham uma equipe qualificada e comprometida, pois podem facilitar a adaptação às mudanças que ocorrem no decorrer dos projetos. É importante que aspectos como arquitetura de sistema, linguagem de programação, sistema gerenciador de banco de dados e padrão de interface gráfica sejam considerados na fase do projeto. É fundamental que gerentes de projeto estejam atualizados sobre novas tecnologias, ferramentas, metodologias, modelos e melhores práticas para que o projeto tenha sucesso e o desenvolvimento seja eficaz e eficiente. Técnica para construção do modelo lógico de sistemas10 IEEE Std-830. IEEE Recommended Practice for Software Requirements Specifications. IEEE, 1998. KOTONYA, G.; SOMMERVILLE, I. Requirements engineering: processes and techniques. Chichester: John Wiley, 1998. SOMMERVILLE, I. Software engineering. 9th ed. São Paulo: Pearson Prentice Hall, 2011. THE STANDISH GROUP. The chaos report. 1994. Disponivel em: <https://www.csus. edu/indiv/v/velianitis/161/chaosreport.pdf>. Acesso em: 01 jul. 2018. Leituras recomendadas DIAS, A. A. Ferramentas gratuitas para gerência de requisitos. Disponível em: <https:// www.profissionaisti.com.br/wp-content/uploads/2012/04/Ferramentas-Gratuitas- para-Ger%C3%AAncia-de-Requisitos.pdf>. Acesso em: 01 jul. 2018. MACORATTI, J. C. O processo de software. c2010. Disponível em: <http://www.ma- coratti.net/proc_sw1.htmhttp://www.macoratti.net/proc_sw1.htm>. Acesso em: 25 maio 2018. REIS, C. R. Caracterização de um modelo de processo para projetos de software livre. Dissertação (Mestrado em Computação e Matemática Computacional) - Instituto de Ciências, Matemática e Computação, Universidade de São Paulo, São Carlos, SP, 2001. SCHWARTZ, J. I. Construction of software. In: Practical strategies for developing large systems. 1st. ed. Menlo Park: Addison-Wesley, 1975. SOMMERVILLE, I. Integrated requirements engineering: a tutorial. IEEE Software, v. 22, n. 1, p. 16-23, jan./fev. 2005. Disponível em: <https://ieeexplore.ieee.org/stamp/ stamp.jsp?tp=&arnumber=1377113http://dx.doi.org/10.1109/MS.2005.13>. Acesso em: 01 jul./ 2018. DICA DO PROFESSOR A gerência de projetos tem um papel importante no desenvolvimento de sistemas. O gerenciamento de projetos em software leva em consideração a qualidade, a produtividade e a redução de riscos. Os principais motivos para problemas apresentados estão relacionados a falhas no gerenciamento de projetos durante a fase de desenvolvimento. Uma das tarefas de um gestor de projetos é identificar as partes mais difíceis e buscar soluções eficientes. Na Dica do Professor, você aprenderá mais sobre as atividades desempenhadas por um gerente de projetos e quais atributos ele deve possuir. Conteúdo interativo disponível na plataforma de ensino! EXERCÍCIOS 1) O que são processos de software? A) São projetos que devem trabalhar com ideias e com pessoas. B) São tecnologias, ferramentas, metodologias, modelos e melhores práticas para o projeto. C) São pontos técnicos que devem incluir a definição do ciclo de vida e tipos de planos a serem utilizados no sotfware. D) Conjunto de atividades exigidas no desenvolvimento de um sistema de software. E) Ocorre quando um ou mais métodos têm o mesmo nome, mas devem ter conjuntos de parâmetros diferentes. 2) Quais são as principais fases de um processo de software? A) Especificação, projeto, implementação, validação e manutenção e evolução. B) Especificação, engenharia de sistema, interface, validação e manutenção e evolução. C) Especificação, integração, implementação, validação e manutenção e evolução. D) Especificação, integração, detalhamento, validação e manutenção e projeto E) Interface, integração, análise de requisitos, validação e manutenção e projeto. 3) O que ocorre na fase do projeto? A) Ocorrem a implementação e o desenvolvimento em si do software. A interface não é definida, e a interface de comunicação para cada módulo é estudada. B) Ocorre o desenvolvimento do modelo conceitual para o software, composto por módulos que podem ser independentes. Há a definição da interface e o estudo de comunicação para cada módulo. Os módulos são definidos e podem ser traduzidos para pseudocódigos. C) O software desenvolvido e implementado entra em um ciclo que abrange todas as fases anteriores. Os módulos são indefinidos e podem ser traduzidos para pseudocódigos D) Nesta fase, as necessidades para atender o cliente são levantadas, tendo como principal objetivo especificar os requisitos, documentando-os, e os módulos são indefinidos. E) Ocorre a descrição funcional do software, incluindo planos de testes para verificar se está adequado. A interface é definida, e a interface de comunicação é estudada para todos os módulos de uma só vez. O que são requisitos funcionais e não funcionais? Assinale a alternativa que explica 4) as diferenças. A) Os funcionais são os que abordam o que o software deverá fazer, como deverá reagir a entradas específicas e o comportamento. Dependem do tipo de software que será desenvolvido, de quem o utilizará e da maneira como é feita a escrita dos requisitos pela empresa. Requisitos não funcionais são restrições aos serviços ou às funções oferecidos pelo software, incluindo normas e timing, e normalmente se aplicam ao software como um todo. B) Os funcionais normalmente especificam ou restringem características do sistema e frequentemente são mais críticos que os não funcionais, ou seja, se deixar de atender a esses requisitos, pode ser que o sistema seja inutilizado. C) Não funcionais podem ser descritos de uma forma mais abstrata para que o usuário do sistema tenha uma compreensão mais fácil ou podem ser mais específicos tecnicamente, com entradas, saídas, exceções e restrições. D) Como um dos problemas em desenvolvimento de software, pode-se citar a imprecisão na especificação dos requisitos não funcionais, o que pode ocasionar atrasos e aumento de custos na engenharia do software. Por essa razão, preza-se que seja sempre completa e consistente, de forma que todos os serviços requeridos pelo usuário sejam explícitos plenamente. E) Nos requisitos funcionais, ocorre a união de diferentes módulos do software em um só, assim como a verificação da interação entre eles quando estão funcionando em conjunto. 5) Qual é o papel do gestor de projetos em desenvolvimento de software? A) Identificar problemas e incumbir aos desenvolvedores a apresentação da solução. B) Impedir que ocorram mudanças de requisitos no decorrer do projeto. C) Identificar as partes mais difíceis e buscar soluções eficientes, planejar, assessorar, organizar, dirigir e controlar o projeto. D) As novas técnicas com metodologias ágeis dificultam a vida dos gerentes de projeto. E) Trabalhar com planejamento engessado. NA PRÁTICA Os requisitos funcionais determinam as funcionalidades do sistema.Uma empresa que desenvolve softwares está sempre atenta aos requisitos funcionais de cada cliente. Luciano acaba de ingressar em uma empresa que desenvolve e faz a manutenção de softwares. Conteúdo interativo disponível na plataforma de ensino! De acordo com os requisitos funcionais, é possível incluir, alterar, consultar e excluir clientes dos tipos pessoa física e pessoa jurídica. SAIBA MAIS Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Curso em conceito e instrumentos para o monitoramento de programas O artigo discorre a respeito de modelos lógicos de processos de software. Conteúdo interativo disponível na plataforma de ensino! Requisitos Funcionais e não Funcionais Assista o vídeo que contem explicações sobre requisitos Funcionais e não Funcionais. Conteúdo interativo disponível na plataforma de ensino!
Compartilhar