Buscar

Resenha_Engenharia_de_Software_Carolline_Lins

Prévia do material em texto

Nome: Carolline Azevedo Lins - Cód.: 676630
Curso: Pós-Graduação em Banco de Dados
Disciplina: Engenharia e Qualidade de Software
Engenharia de Software, sua Natureza e seus Processos
Software consiste em instruções (programas de computador que, quando executadas, fornecem características, funções e desempenho desejados); estrutura de dados que possibilitam aos programas manipular informações adequadamente; e informação descritiva, tanto na forma impressa como na virtual, descrevendo a operação e o uso dos programas, ou seja, software nada mais é do que um agrupamento de comandos escritos em uma linguagem de programação. Estes comandos, ou instruções, criam as ações dentro do programa, e permitem seu funcionamento.
 Os softwares possuem dois principais tipos: softwares de sistemas e de aplicativos. Sendo software de sistema interpretado como programas que apoiam outros programas, como o software que realiza a comunicação com o hardware para a construção de outro software e de aplicação corresponde como programas que são desenvolvidos para solucionar problemas e necessidades de um negócio específico.
Hoje, o software é um produto e, ao mesmo tempo, o veículo para distribuir um produto. Como produto, fornece o potencial computacional representado pelo hardware ou, de forma mais abrangente, por uma rede de computadores que podem ser acessados por hardware local. Como veículo de distribuição do produto, o software atua como a base para o controle do computador (sistemas operacionais), a comunicação de informações (redes) e a criação e o controle de outros programas (ferramentas de software e ambientes).
O software distribui o produto mais importante de nossa era: a informação. Ele transforma dados pessoais (por exemplo, transações financeiras de um indivíduo) de modo que possam ser mais úteis em determinado contexto; gerencia informações comerciais para aumentar a competitividade; fornece um portal para redes mundiais de informação (internet) e os meios para obter informações sob todas as suas formas.
Atualmente, uma enorme indústria de software tornou-se fator dominante nas economias do mundo industrializado.
A natureza do software é mutante. As aplicações e os sistemas baseados na internet passaram de simples conjuntos de conteúdo informativo para sofisticados sistemas que apresentam funcionalidades complexa e conteúdo multimídia. Embora essas WebApps possuam características e requisitos exclusivos, elas não deixam de ser um tipo de software.
Os aplicativos móveis apresentam novos desafios, à medida que migram para uma ampla variedade de plataformas. A computação em nuvem transformará o modo de distribuir software e o seu ambiente.
O desenvolvimento de um software passa por métodos e ferramentas de engenharia de software que servem, entre outras coisas, ao propósito de garantir, ou pelo menos facilitar, a obtenção do objetivo de ter qualidade nos programas. Sendo qualidade, segundo Crosby, uma conformidade aos requisitos. Essa definição deixa explícito o fato de que é preciso ter um ponto de referência para julgar um produto. Traz embutida a ideia de como efetuar esse julgamento e, por fim, mostra como o processo todo pode ser documentado, analisado e os resultados transmitidos a outras pessoas. As definições de qualidade enfatizam aspectos como: os requisitos de software que são a base a partir da qual a qualidade é medida e os padrões especificados que definem um conjunto de critérios de desenvolvimento que orientam a maneira segundo a qual o software passa pelo trabalho de engenharia.
Diversos são os softwares existentes para uso atualmente, e no futuro, precisarão de manutenção devido aos avanços tecnológicos e para complementar a necessidade dos usuários. Diante disso, ao desenvolver um software é necessário que o mesmo seja compatível com alterações futuras, sem comprometer suas funcionalidades, a qualidade e a facilidade na manutenção, se torna o resultado de um produto bem desenvolvido.
Se baseando na qualidade do processo, os processos de softwares correspondem a um conjunto estruturado de atividades necessárias para o desenvolvimento de um sistema de software.
Os processos de softwares são atividades e tarefas a serem realizadas na criação de algum produto, porém não é uma condição rígida de como desenvolvê-lo, mais sim um alicerce para o desenvolvimento de um produto de dentro do prazo com qualidade. Um processo define quem faz, o que faz e quando fazer. No entanto, cada organização desenvolve seus próprios processos. Apesar da existência do processo não trazer garantias de que o software será entregue conforme proposto, dentro do prazo ou características de longo prazo, o próprio processo pode ser avaliado para garantir que estará de acordo com os processos básicos de desenvolvimento de software, com o passar das últimas décadas foram sendo proposta uma série de abordagens de avaliação para o desenvolvimento dos processos de software.
Uma metodologia genérica pode ser compreendida por cinco atividades: a especificação, projeto, implementação, validação e evolução, que são aplicadas quantas vezes forem necessárias para a interação do projeto que produzirá um incremento de software, do qual disponibiliza os recursos e funções do software, a cada incremento tornando o software mais completo. Porém, essas atividades são complementadas por algumas atividades de apoio, como exemplo: controle e acompanhamento do projeto, administração de risco, garantia de qualidade de software, revisões técnicas, gerenciamento da configuração de software, gerenciamento de reusabilidade, entre outras. A prática da engenharia é uma atividade de resolução dos problemas para a criação do software que tem como princípios básicos a compreensão do problema, o planejamento da solução, a execução do plano e examinar o resultado. Assim, parte destes princípios consiste na utilização do bom senso.
Observa-se a existência dos modelos prescritivos de processos que são um conjunto distinto de atividades, tarefas, e produtos de trabalho que são necessários para tornar engenharia de software com alta qualidade. Existem vários modelos de processo de software (ou paradigmas de engenharia de software), dentre os modelos principais estão: Modelo Cascata, Prototipação, RAD, Evolutivo e métodos formais.
Conforme a evolução do mercado, os desafios e a competitividade também crescem, fazendo com que os desenvolvedores tenham de assumir uma abordagem na engenharia de software que o mantenham ágeis, definindo um processo que possam ser manipuláveis, adaptáveis, sem exageros, somente com o básico e essencial, para que possam se adequar às necessidades do consumidor.
 Um método ágil na engenharia de software consta quatro elementos básicos: a importância das equipes que se auto-organizam, o controle sobre o trabalho realizado e sobre a comunicação entre a equipe, os desenvolvedores e os clientes, o reconhecimento das mudanças, e a entrega rápida do software para satisfazer o cliente. Dentro da metodologia de desenvolvimento ágil destacam-se os métodos: Extreme Programming (XP), Desenvolvimento de Software Adaptativo (ASD), Scrum, Métodos de Desenvolvimento de Sistemas Dinâmicos (DSDM) e Crystal.
 Os desenvolvedores têm de criar sistemas robustos e complexos, em algumas situações, com detalhes críticos, porém devem ser compreendidos pelas partes envolvidas para obtenção dos requisitos, então a modelagem ágil é utilizada a fim de facilitar o reconhecimento, por ser um conjunto de valores, princípios e práticas voltado para a modelagem do software.

Continue navegando