Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Me. Edson Moreno UNIDADE II Fundamentos de Engenharia de Software Nesta unidade, será conceituado o processo de software, mostrará as suas etapas, como decompor o processo, e determinar os recursos do projeto e do produto software. Ao percorrer o ciclo de vida de desenvolvimento do software, os modelos de processos de software mostram o alinhamento dos métodos e das técnicas a serem aplicadas, desde os estágios iniciais de: concepção, análises, construção, entrega e evolução do software. Serão apresentados os principais modelos de processo de software, tais como: cascata, incremental, espiral, processos unificados, modelos pessoais e de equipe. Nesse contexto, a unidade II, da disciplina Fundamentos de Engenharia de Software, trata do processo de software e dos respectivos modelos de processos de software. Introdução O processo de software orienta a estratégia de como usar os recursos de infraestrutura, para aplicar nas atividades de produção do software durante o ciclo de vida do desenvolvimento. Nesse capítulo serão abordados os seguintes itens: Processo de software e o desenvolvimento do projeto; Gestão de planejamento do software; Fusão do produto e do processo. Processos de software Fonte: KOLB, J. J. Fases do Processo Unificado. Disponível em: http://jkolb.com.br/fases-do-processo-unificado/. Acesso em: 16 dez. 2020. A estrutura básica apresenta as principais fases do desenvolvimento do software. Processo de software e o desenvolvimento do projeto Fonte: MORENO (2019). Cada fase pode e deve ser elaborada com base em um ou mais processos que variam de acordo com o tamanho, a complexidade e a qualidade exigida do software. Um processo é uma sequência de fatos, atividades ou operações que apresentam certa unidade e/ou que se reproduzem com certa regularidade (PRESSMAN, 2002). O processo deve ser delimitado, definindo o seu início e o seu fim. Os pontos de início (input) e do fim (output) são marcas de referências (milestones), úteis para o acompanhamento do processo. As marcas de referência servem para controlar, medir, avaliar, projetar e melhorar o processo. Processo de software – Planejamento do processo Fonte: MORENO (2019). Decompor um processo é estabelecer uma sequência coerente de práticas, que objetiva o desenvolvimento ou a evolução de sistemas de software. Processo de software – Decomposição do processo Fonte: MORENO (2020). O processo de engenharia de software pode, por exemplo, representar a implementação de uma determinada funcionalidade. A gestão do planejamento do software funciona em conjunto com as Metodologias de Desenvolvimento de Sistemas/Software. Um documento breve serve de instrumento de comunicação, para avaliar a organização das pessoas envolvidas no projeto de software (stakeholders), definindo os papéis e as responsabilidades de acordo com a capacitação técnica e as aptidões. Para cada pessoa envolvida no projeto o gestor avalia e determina as suas atividades, as datas, os custos e os recursos necessários. Gestão de planejamento do software Fonte: STEFANELLO, L. A. Fases do desenvolvimento de software. Disponível em: https://incuca.net/fases-do-desenvolvimento-de-software/. Acesso em: 16 dez. 2020. Saiba mais. Na projeção dos recursos para os processos do projeto, três perfis de analistas são essenciais: analista de negócios, analista de processo e o analista de sistema: Analista de negócio (ou autor do processo): tem a ideia do negócio e do que precisa da tecnologia da informação; Analista de processo: é aquele que interpreta a ideia do negócio, os seus riscos e as suas regras, e que tem, por objetivo, determinar as atividades para processar o negócio; Analista de sistema: determina os componentes do sistema e o workflow que levam à criação das funções do software. Gestão de planejamento do software – Análise de recursos Fonte: PAROLA, D. A “disputa” dos Analistas: Negócios x Processos x Sistemas. Disponível em: https://www.profissionaisti.com.br/a-disputa-dos- analistas-negocios-x-processos-x-sistemas. Acesso em: 16 dez. 2020. Entenda como esses analistas trabalham. Os recursos necessários para o projeto, e para o produto e os procedimentos de modelagem, construção e entrega, garantem a efetivação de cada processo do projeto. Com base nos requisitos determinados pelos analistas, esta abordagem recai em duas categorias gerenciais: gerência do projeto e gerência do produto. Gestão de planejamento do software – Recursos do projeto e do produto Gerente de projeto Gerente do produto Recursos humanos Recursos materiais Recursos tecnológicos Recursos financeiros Recursos humanos (peopleware) Recursos de software Recursos de hardware Recursos de dados Recursos de rede de computadores Cada vez mais, pequenas e médias empresas estão adotando os chamados Sistemas Integrados de Gestão (SIG). O SIG usa a tecnologia ERP para gerenciar as suas atividades. Como analista de sistemas de uma média empresa, cujo principal objetivo é agilizar os processos organizacionais, que benefício direto você deverá obter com a adoção desta tecnologia? a) Automatização dos processos de negócio da empresa, tais como são hoje, criando, assim, uma interface digital com os processos de seu principal cliente. b) Disponibilidade de todas as informações da empresa e de seu cliente, devido à obrigatoriedade de criar um banco de dados único para as duas organizações. c) Melhoria dos níveis de segurança nas transferências de informações por correio eletrônico entre a empresa e o seu principal cliente. d) Redução da carga de trabalho em seus servidores, já que várias tarefas passariam a ser executadas nos clientes da rede que conecta as duas empresas. e) Padronização, integração e maior disponibilidade das informações relativas aos processos organizacionais que conectam a empresa e o seu cliente. Interatividade Cada vez mais, pequenas e médias empresas estão adotando os chamados Sistemas Integrados de Gestão (SIG). O SIG usa a tecnologia ERP para gerenciar as suas atividades. Como analista de sistemas de uma média empresa, cujo principal objetivo é agilizar os processos organizacionais, que benefício direto você deverá obter com a adoção desta tecnologia? a) Automatização dos processos de negócio da empresa, tais como são hoje, criando, assim, uma interface digital com os processos de seu principal cliente. b) Disponibilidade de todas as informações da empresa e de seu cliente, devido à obrigatoriedade de criar um banco de dados único para as duas organizações. c) Melhoria dos níveis de segurança nas transferências de informações por correio eletrônico entre a empresa e o seu principal cliente. d) Redução da carga de trabalho em seus servidores, já que várias tarefas passariam a ser executadas nos clientes da rede que conecta as duas empresas. e) Padronização, integração e maior disponibilidade das informações relativas aos processos organizacionais que conectam a empresa e o seu cliente. Resposta A organização das atividades é apresentada por um fluxo de processos que descreve o ciclo de vida do projeto. Principais características de um bom processo são: Ser configurável para diferentes organizações; Ser adaptável para diferentes tamanhos e tipos de projetos; Ser bem definido, gerenciável e repetível; Conter uma nomenclatura universal e métricas para o planejamento e o gerenciamento do projeto; Ser integrado com as ferramentas que o suportem. Fusão do produto e do processo Fonte: ÁVILA, M. PMBOK e Gerenciamento de Projetos. Disponível em: http://www.mhavila.com.br/topicos/gestao/pmbok.html. Acesso em: 19 jun. 2020. Fusão do produto e do processo – Estrutura organizacional Fonte: MORENO (2020). A figura mostra uma estrutura organizacional para o desenvolvimentode software. É uma estrutura genérica que apresenta as fases da organização, bem como as suas formas de relacionamento. Fusão do produto e do processo – Subprocessos e atividades O processo pode ser dividido em subprocessos e respectivas atividades. Vale o bom senso. Normalmente, a divisão em etapas está associada ao tamanho, à complexidade, à qualidade, ao custo e ao prazo para cumprir do processo. Fonte: ARKAN (2020). Figura: processo idealizado pela empresa ARKAN, desenvolvera de software. O arcabouço do processo de desenvolvimento do software é o conjunto de artefatos de software e recursos necessários que devem estar disponíveis para produzir o software. Estes artefatos e recursos formam um repertório de alternativas que ficam à disposição, para serem escolhidas em cada etapa do processo ou de determinada atividade. A cada iteração ocorre a escolha dos itens do arcabouço para preparar a equipe e dispor dos recursos do arcabouço para a próxima etapa. Fusão do produto e do processo – Arcabouço do processo Fonte: MORENO (2020). Elementos do arcabouço do processo para o desenvolvimento do software Equipe de desenvolvimento Escolha do(s) modelo(s) de processos de software Métodos e procedimentos Ferramentas e técnicas Artefatos de software Fusão do produto e do processo – Gerenciamento da equipe I A metodologia sugerida para um bom gerenciamento da equipe de desenvolvimento do software tem base na Matriz de Responsabilidades (MR) do PMBOK® (Project Management Body of Knowledge). Os stakeholders são todos interessados no software/sistema. Em escala na hierarquia de decisão estão: Cliente, Representante do usuário, Autor do Processo, Gerente de projeto, Gerente do sistema, Programador, Administrador do Banco de Dados (DBA - DataBase Administrator). A figura mostra a distribuição de colunas e linhas de uma Matriz de Responsabilidades para o gerenciamento da equipe de desenvolvimento de software. Fonte: MORENO (2020). Fusão do produto e do processo – Gerenciamento da equipe II A distribuição de responsabilidades não deve ser atribuída ao acaso. A distribuição é baseada em atributos, que indicam o papel que o integrante tem na equipe, como mostra no rodapé da matriz. Fonte: MORENO (2020). Atributos do Processo: R = Responsável; A = quem Aprova; S = quem dá Suporte; P = Participante. Objetivo do Negócio Requisitos do Negócio Modelagem do Negócio Arcabouço do processo Modelagem de Casos de Uso (RU) Arquitetura do Sistema (RS) Arquitetura da Informação (RU) (RS) (RF) (RNF) Arquitetura da Lógica de Processamento (RU) (RF) (RNF) Estrutura do Banco de Dados (RS) (RF) Prototipação Codificação Testes de componente e de integração ATIVIDADE Cliente Gerente de projeto Gerente de sistemas Analista de sistemas Program. DBA Na melhoria do processo algumas características devem ser observadas na montagem do ferramental do arcabouço do processo. Assinale a alternativa com algumas dessas características: a) Adquirir as ferramentas que suportem específicos ambientes operacionais. b) Configurável para diferentes organizações e adaptável para diferentes tamanhos e tipos de projetos. c) Na comunicação, usar de uma nomenclatura universal estritamente tecnológica. d) Obter os requisitos do cliente e associá-los com os artefatos de software. e) Para facilitar as ferramentas e as técnicas aplicadas de última geração com as práticas que independem do conhecimento do desenvolvedor. Interatividade Na melhoria do processo algumas características devem ser observadas na montagem do ferramental do arcabouço do processo. Assinale a alternativa com algumas dessas características: a) Adquirir as ferramentas que suportem específicos ambientes operacionais. b) Configurável para diferentes organizações e adaptável para diferentes tamanhos e tipos de projetos. c) Na comunicação, usar de uma nomenclatura universal estritamente tecnológica. d) Obter os requisitos do cliente e associá-los com os artefatos de software. e) Para facilitar as ferramentas e as técnicas aplicadas de última geração com as práticas que independem do conhecimento do desenvolvedor. Resposta A estrutura organizacional orientada por um modelo de processo é a composição organizada do ciclo de vida do software. O modelo de processo de software fornece a estabilidade, e o controle e a organização para as atividades, que se deixadas sem controle, tornam-se caóticas. Um modelo de software é uma representação simplificada de um processo de software. Cada modelo representa uma perspectiva particular de um processo e, portanto, fornece as informações parciais (SOMMERVILLE, 2011). Os modelos de processo de software, apresentados neste capítulo, são: Modelos de processos tradicionais: Cascata, Balbúrdia, Prototipagem, Incremental, RAD e Espiral; Processo Unificado: RUP e Práxis; Modelos de processos pessoal e de equipe: PSP e TSP. Modelos de processos de software Modelos de processo – Cascata (Waterfall ou Sequencial Linear) É considerado o modelo clássico de vida do desenvolvimento do software. Serve de base para os demais modelos. Fonte: SOMMERVILLE (2003); PRESSMAN (2002), (2007), (2011). Modelos de processo – Balbúrdia (Codifica/Corrige ou Codifica/Remenda) Neste modelo, não há o planejamento, nem o controle com relação aos possíveis riscos. O modelo Balbúrdia é caracterizado pela administração do caos, pela informalidade, pelo loop de gestão Codifica/Corrige, em que o planejamento, os requisitos do software, a modelagem e a documentação são caóticos ou, até mesmo, inexistentes. O modelo Balbúrdia não é propriamente um modelo de processo de software a ser seguido. Na verdade, é um modelo de processo de software que deve ser evitado. Fonte: MORENO (2020). É a construção de um protótipo do esboço do software para melhorar o entendimento entre o cliente e o desenvolvedor. Modelos de processo – Prototipagem Fonte: PRESSMAN (2002). Fonte: IMOVELWEB (2002). Ouvir o cliente O cliente testa o protótipo Construir/revisar o protótipo É um modelo evolucionário com as sequências lineares dos elementos Cascata aplicados em uma determinada funcionalidade. O modelo Incremental é iterativo e tem como objetivo apresentar um produto operacional a cada incremento realizado, ou seja, é desenvolvido com o conceito de versões. Modelos de processo – Incremental Fonte: PRESSMAN (2007). Modelos de processo – Espiral Fonte: PFLEEGER (2004). É um modelo evolucionário que combina a natureza iterativa da Prototipagem com o estilo clássico do modelo Cascata. O software é desenvolvido em uma série de versões evolucionárias e, a cada ciclo, é definido um conjunto de atividades de arcabouço. Um release é definido e, após várias iterações, o software atinge a sua totalidade. Modelos de processo – RAD (Rapid Application Development) Fonte: PRESSMAN (2007). É um modelo misto com característica de vários outros modelos e tem como objetivo a entrega rápida do software. Possui uma abordagem baseada na construção de componentes. Cada função é direcionada para uma equipe, para, então, serem integradas para formar o software. Várias ferramentas são utilizadas para a Prototipagem, que vão desde os aplicativos para desenhos, até apresentações, arquiteturas, modelagem de telas e ferramentas IDE. A prototipação permite avaliar o produto de software antes de sua codificação. Qual das alternativas a seguir expressa a principal função da Prototipagem? a) Com as maquetes desenvolvidas em várias dimensões, possam ser elaboradas novas funcionalidades à escolha do cliente. b) Haja uma redução de retrabalhos com base na abordagem de novos processos que poderão ser definidos para a mudança do sistema/software. c) Permite que os desenvolvedores eos usuários examinem, antecipadamente, os requisitos do sistema/software. d) O desenvolvimento de novas funções para a interpretação do desenvolvedor e que possam, posteriormente, ser transferidas para o pessoal da programação. e) Vários diagramas de blocos sejam montados de forma sequencial. Interatividade Várias ferramentas são utilizadas para a Prototipagem, que vão desde os aplicativos para desenhos, até apresentações, arquiteturas, modelagem de telas e ferramentas IDE. A prototipação permite avaliar o produto de software antes de sua codificação. Qual das alternativas a seguir expressa a principal função da Prototipagem? a) Com as maquetes desenvolvidas em várias dimensões, possam ser elaboradas novas funcionalidades à escolha do cliente. b) Haja uma redução de retrabalhos com base na abordagem de novos processos que poderão ser definidos para a mudança do sistema/software. c) Permite que os desenvolvedores e os usuários examinem, antecipadamente, os requisitos do sistema/software. d) O desenvolvimento de novas funções para a interpretação do desenvolvedor e que possam, posteriormente, ser transferidas para o pessoal da programação. e) Vários diagramas de blocos sejam montados de forma sequencial. Resposta Processo unificado – RUP (Rational Unified Process) I Fonte: KRUCHTEN (2000). É desenhado e documentado usando o UML. É desenvolvido e mantido como uma ferramenta de software e distribuído on-line, utilizando a tecnologia web. Está sob o formato eletrônico e pode ser configurado de acordo com as necessidades de cada organização. São disponibilizados upgrades regulares de software pela Rational Software. Processo unificado – RUP (Rational Unified Process) II Fonte: KRUCHTEN (2000). Visão Lógica Visão Processo Visão Desenvolvimento Visão Implementação Programadores Gerenciamento do software Analista/ Designers de Estrutura Eng. Software/Sistema Topologia do Sistema Entrega Instalação Comunicação Integradores do Sistema Desempenho Escalar Throughput Usuário-final Funcionalidade O RUP é um processo comercializado pela IBM®. O RUP é orientado por casos de uso. Processo unificado – RUP (Rational Unified Process) III Fonte: KRUCHTEN (2000). Na horizontal são representadas as fases, que formam a estrutura dinâmica. Na vertical são representadas as disciplinas (workflows), que formam a estrutura estática. Disciplinas Modelagem de negócios Requisitos Análise e Design Implementação Teste Implantação Gerenciamento de Configuração e Mudança Gerenciamento de Projeto Ambiente Iniciação Elaboração Construção Fases Inicial Elab. n° 1 Elab. n° 2 Const. n° 2 Const. n° 1 Const. n° N Trans. n° 1 Trans. n° 2 Iterações Transição Processo unificado – Práxis O modelo Práxis tem base no modelo de ciclo de vida espiral, com as mesmas raízes no processo unificado e na estrutura diferente de disciplinas. O modelo Práxis, igualmente ao RUP, é dirigido por casos de uso, centrado na arquitetura, iterativo e incremental. Fonte: PRAXIS. Praxis Framework Limited, 2019. Disponível em: https://www.praxisframework.org/en/method. Acesso em: 19 dez. 2020. Fonte: PAULA FILHO, W. de P. O Processo Práxis 3.0. Disponível em: https://vdocuments.site/o-processo-praxis-30-2008-wilson-de-padua- paula-filho-o-processo-praxis-30-wilson-de-padua-paula-filho-professor- aposentado-dcc-icex-ufmg-diretor.html. Acesso em: 14 jul. 2020. Goals and activities Goals and activities Benchmark attributes Procedures, tools and techniques Benchmark criteria Process, documentation and roles Method Maturity Knowledge Competence Modelo de processo pessoal – PSP (Personal Software Process) O PSP é um processo de desenvolvimento específico para o engenheiro de software. O PSP orienta o planejamento e o desenvolvimento dos componentes do software. Fonte: PIEAS (2017). A ideia é: “A melhoria da capacidade da organização depende da melhoria de cada indivíduo”. O TSP é uma extensão do PSP com o enfoque na equipe de trabalho. O TSP foi “criado” para ser seguido por desenvolvedores previamente treinados no PSP para trabalhar em equipes auto-organizadas e desenvolver um software de qualidade. O TSP pode ser uma solução para as pequenas organizações de software que se consideram muito pequenas para enfrentar as complexidades do CMMI. Conceito e estrutura: As equipes são autogerenciadas – A equipe planeja e gerencia as tarefas do dia a dia; os processos se baseiam na experiência, no conhecimento e na maturidade. O TSP provê um conjunto de elementos: Scripts de processos; Formulários, relatórios e gráficos; e Papéis. Modelo de processo para a equipe – TSP (Team Software Process) O PSP – Personal Software Process é um modelo de processo que ajuda os profissionais a serem os melhores engenheiros de software. A ideia é: “A melhoria da capacidade da organização depende da melhoria de cada indivíduo”. Assinale a alternativa que corresponde à estrutura do PSP: a) Processo de iniciação pessoal, Processo de construção e Processo de transição para a equipe. b) Processo de iniciação pessoal, Processo de medição pessoal e Processo pessoal de melhoria contínua. c) Processo de medição pessoal, Processo de planejamento pessoal e Processo de gestão de qualidade pessoal. d) Processo de planejamento pessoal, Processo de análise pessoal e Processo do projeto pessoal. e) Processo referencial, Processo gerenciável e Processo de gestão de qualidade pessoal. Interatividade O PSP – Personal Software Process é um modelo de processo que ajuda os profissionais a serem os melhores engenheiros de software. A ideia é: “A melhoria da capacidade da organização depende da melhoria de cada indivíduo”. Assinale a alternativa que corresponde à estrutura do PSP: a) Processo de iniciação pessoal, Processo de construção e Processo de transição para a equipe. b) Processo de iniciação pessoal, Processo de medição pessoal e Processo pessoal de melhoria contínua. c) Processo de medição pessoal, Processo de planejamento pessoal e Processo de gestão de qualidade pessoal. d) Processo de planejamento pessoal, Processo de análise pessoal e Processo do projeto pessoal. e) Processo referencial, Processo gerenciável e Processo de gestão de qualidade pessoal. Resposta KRUCHTEN, P. The Rational Unified Process: An Introduction. 2. ed. USA: Addison-Wesley, 2000. PAULA FILHO, W. de P. Engenharia de Software: Fundamentos, Métodos e Padrões. 3. ed. Rio de Janeiro: LTC, 2015. PFLEEGER, S. L. Engenharia de Software. 2. ed. São Paulo: Prentice Hall, 2004. PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7. ed. Rio de Janeiro: McGraw-Hill, 2002. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. Referências ATÉ A PRÓXIMA!
Compartilhar