Prévia do material em texto
O Ciclo de Vida do Desenvolvimento de Sistemas (SDLC) é um processo que abrange várias etapas, desde a concepção até a implementação e manutenção de um sistema de informação. Uma representação comum do SDLC inclui: O levantamento das necessidades, também chamado de análise de requisitos, identifica as necessidades de informação da organização, enquanto a análise de alternativas consiste na identificação e avaliação de sistemas alternativos. O projeto trata da construção das especificações detalhadas para o projeto selecionado, incluindo o design das interfaces, banco de dados, hardware e procedimentos de teste. O desenvolvimento inclui o desenvolvimento ou aquisição do software, a aquisição de hardware e o teste do novo sistema. A implementação ocorre após o sistema ter passado satisfatoriamente por testes de aceitação, sendo transferido do ambiente de desenvolvimento para o ambiente de produção, com migração do sistema antigo, se necessário. A manutenção refere-se a todas as atividades relacionadas a um sistema depois que ele é implementado, incluindo correção de erros e adição de novos recursos. Não há um modelo uniformemente aceito de SDLC, e diferentes abordagens podem combinar ou reorganizar essas etapas de maneiras diferentes. Algumas organizações veem o desenvolvimento de sistemas não como projetos isolados, mas como um processo contínuo. Elas adotam práticas de gestão de processos e buscam melhorar constantemente suas metodologias de desenvolvimento. Existem várias abordagens no desenvolvimento de sistemas, como o modelo em cascata, abordagem em espiral, prototipagem e programação ágil. A escolha da abordagem depende da natureza do projeto e da organização. Modelagem de sistemas, que inclui modelos de dados, processos e objetos, ajuda os desenvolvedores a entender os sistemas existentes e projetar novos sistemas de forma eficaz. SLIDES No ambiente de Tecnologia da Informação (TI) das organizações, a complexidade está aumentando. É crucial simplificar o acesso, acelerar as operações e garantir a segurança da informação. Desenvolver sistemas personalizados é importante para garantir que atendam às necessidades específicas da organização, oferecendo vantagem competitiva e controle total sobre o software. Existem motivos para desenvolver sistemas, como a falta de opções no mercado, custos elevados de pacotes prontos, riscos de manutenção e a necessidade de segurança em operações críticas. O desenvolvimento de sistemas envolve várias etapas, incluindo análise de requisitos, elaboração de projeto, implementação e definição de plataforma, ambiente de desenvolvimento, base de dados, segurança e documentação. A abordagem de "codificação cowboy" ou "modelo balbúrdia" é informal e leva a problemas como baixa qualidade, dificuldade de manutenção e estresse para os desenvolvedores. A Engenharia de Software surgiu para lidar com a complexidade dos sistemas, buscando métodos e técnicas para tornar o desenvolvimento de software mais eficiente. Estatísticas mostram que muitos projetos de software são cancelados, falham na entrega, excedem custos e prazos originais, evidenciando a necessidade de abordagens mais maduras na indústria de software. A Engenharia de Software envolve estabelecer métodos, regras e critérios para criar, construir, analisar, desenvolver e manter software de forma econômica, confiável e eficiente. O processo de software é uma sequência de práticas que visa o desenvolvimento ou evolução de sistemas de software, incluindo especificação, projeto, implementação e teste. Existem vários modelos de processo de software, como o sequencial, evolucional, em espiral e ágil, cada um com suas características e abordagens específicas. Metodologias, métodos e ferramentas são usados para orientar e apoiar o desenvolvimento de software, incluindo ferramentas CASE (Computer Aided Software Engineering) e métodos como análise estruturada e UML (Unified Modeling Language). Esse conteúdo oferece uma compreensão dos princípios e práticas envolvidos no desenvolvimento de sistemas de software, destacando a importância da abordagem estruturada e metodologias adequadas para lidar com a complexidade do processo. Parte superior do formulário Esse material oferece uma visão abrangente sobre o processo de desenvolvimento de software, incluindo: 1. Procedimentos de gerência do projeto: envolvem a sequência de métodos, resultados esperados, controles e coordenação da equipe. 2. Ciclo de Vida do Software: aborda diferentes modelos de ciclo de vida, como o cascata, prototipação, incremental, evolutivo, entre outros. 3. Rational Unified Process (RUP): uma metodologia proprietária de desenvolvimento de software que enfatiza a orientação a objetos e é projetada para aumentar a produtividade da equipe. 4. Fases do Desenvolvimento de Software no RUP: incluem concepção, elaboração, construção e transição, cada uma com atividades específicas e iterações. 5. Atividades do Desenvolvimento de Software: desde a definição de requisitos até a implantação e manutenção do software, incluindo análise, projeto, codificação, teste e suporte operacional. 6. Modelos de Maturidade: destaca o Capability Maturity Model Integration (CMMI), que avalia a qualidade dos processos de software em uma organização em cinco níveis de maturidade. Esses tópicos fornecem uma estrutura abrangente para entender o processo de desenvolvimento de software, desde a concepção até a manutenção, com ênfase em metodologias eficazes e modelos de maturidade para garantir a qualidade e eficiência do processo. No caso apresentado, vemos a dificuldade comum de comunicação entre os usuários e os desenvolvedores na definição e compreensão dos requisitos do sistema. Isso destaca a importância da engenharia de requisitos, que envolve várias atividades para garantir que as necessidades dos usuários sejam corretamente entendidas e documentadas. Essas atividades incluem: 1. Estudo de viabilidade: avaliação inicial para determinar se vale a pena prosseguir com a análise dos requisitos. 2. Elicitação de requisitos: coleta de informações sobre o sistema desejado, através de técnicas como entrevistas, questionários, análise de documentos, entre outras. 3. Modelagem de requisitos: organização e especificação das informações coletadas, incluindo requisitos funcionais e não funcionais. 4. Análise de requisitos: priorização, verificação de consistência e validação dos requisitos junto aos stakeholders. Essas atividades visam reduzir os problemas de entendimento e garantir que os requisitos do sistema sejam claramente definidos e compreendidos por todas as partes envolvidas no projeto. A escolha da técnica de elicitação adequada depende do contexto do projeto, das características dos stakeholders e da natureza dos requisitos. Aqui estão algumas considerações sobre algumas técnicas específicas: 1. Entrevistas: São úteis para obter um entendimento mais profundo das necessidades dos usuários. Entrevistas fechadas podem ser úteis quando há um conjunto específico de questões a serem abordadas, enquanto entrevistas abertas permitem uma discussão mais livre e podem revelar informações inesperadas. 2. Leitura de Documentos: É útil quando há uma grande quantidade de informações disponíveis em documentos existentes. No entanto, pode ser difícil encontrar e sintetizar os requisitos relevantes em meio a uma grande quantidade de informações dispersas. 3. Questionários: São eficazes quando há muitos stakeholders envolvidos e é importante obter uma visão geral das opiniões e necessidades de um grande grupo. No entanto, eles têm suas limitações em termos de profundidade de compreensão e interação. 4. Cenários: São úteis para ilustrar como o sistema será usado na prática, ajudando a identificar requisitos específicos de interação do usuário com o sistema. 5. Prototipagem: Pode ser valiosa para ajudar os usuários a visualizar e experimentar o sistema antes do desenvolvimento completo. Protótipos descartáveis podem ser usados para explorar requisitos iniciais, enquanto a prototipagem evolucionária permiteum desenvolvimento iterativo em resposta ao feedback dos usuários. 6. Observação e Análise Social: Permitem uma compreensão mais profunda dos processos reais de trabalho dos usuários, embora possam exigir um investimento significativo de tempo e recursos. Cada técnica tem suas vantagens e desvantagens, e a escolha da técnica adequada dependerá das necessidades específicas do projeto, da disponibilidade de recursos e da cultura organizacional. Em muitos casos, uma combinação de diferentes técnicas pode ser a mais eficaz para obter uma compreensão completa dos requisitos do sistema. Parece que você está explorando o processo de elicitação e análise de requisitos de software, o que é essencial para o desenvolvimento de sistemas que atendam às necessidades dos usuários. Aqui estão alguns pontos importantes que foram discutidos: 1. Análise de Requisitos: Este é um processo crítico para identificar inconsistências e omissões nos requisitos elicitados. A análise deve ser realizada de forma contínua e intercalada com a elicitação de requisitos, pois muitos problemas podem ser descobertos durante o processo de elicitação. 2. Validação: A validação dos requisitos é realizada com a ajuda dos clientes ou usuários para confirmar o conhecimento adquirido. Isso ajuda a garantir que os requisitos capturados reflitam com precisão as necessidades reais dos usuários. 3. Documentação Gerada: O resultado da engenharia de requisitos é um documento de requisitos de software, também conhecido como SRS (Software Requirements Specification). Esse documento inclui requisitos do usuário e requisitos do sistema, fornecendo uma base sólida para o desenvolvimento do software. 4. Padrão IEEE/ANSI 830-1998: Este padrão estabelece uma estrutura para a documentação de requisitos de software, abrangendo várias seções, como introdução, descrição geral, requisitos de interface, funcionalidades do sistema, requisitos não funcionais, entre outros. 5. Joint Application Design (JAD): É uma técnica utilizada para identificar requisitos de sistema, integrando usuários de negócios e profissionais técnicos por meio de seminários altamente focados. Define papéis específicos para diferentes participantes, como o patrocinador executivo, membros da equipe de desenvolvimento, usuários de negócio, secretário e facilitador. 6. Elicitação de Requisitos em 3 Etapas: O processo de elicitação de requisitos pode ser dividido em três etapas principais: entender o problema de gestão da informação, identificar os processos relacionados ao problema e identificar as unidades de informação relacionadas ao processo. Essas etapas ajudam a definir claramente os requisitos do sistema. Cada uma dessas etapas e técnicas desempenha um papel crucial na captura eficaz dos requisitos do sistema e na garantia de que o software desenvolvido atenda às expectativas e necessidades dos usuários.