segunda-feira, 13 de julho de 2009

Visão da Gerencia de Riscos na Engeharia de Software

Vários tipos de projetos são propostos, com diferentes objetivos, em que é preciso gerenciar estrategicamente de acordo com as metas organizacionais. Em gerenciamento de projetos, para garantir o sucesso é preciso identificar fatores positivos e adversos. O tratamento dos fatores adversos, tido como riscos, favorecem o alcance das oportunidades, dos fatores positivos, identificados.

Os riscos possuem diferentes significados, como os de ordem física, estrutural, econômica, social, ambiental. Podendo ainda se desdobrar em diversos componentes e sucessivos níveis de detalhamento.

O risco faz parte da vida do ser humano, as pessoas em sua grande maioria, diariamente fazem escolhas, com graus diferenciados de riscos, mas também com um grau de oportunidades e benefícios associados.

Todo projeto de software enfrenta problemas de qualidade, de cronograma, e de custo que estão sendo afetados por risco que são inesperados, não planejados ou ignorados simplesmente pela falta de conhecimento. Portanto, na capacidade de prevenir e controlar essas variáveis pode estar o diferencial para gerir os riscos de projetos na indústria de software.


GERENCIA DE RISCOS E TOMADA DE DECISÕES


A maioria das decisões, sobretudo aquelas importantes, está baseada em algum tipo de estimativa, colocando a incerteza como elemento do processo decisório.

Um risco só deveria ser tratado quando o seu benefício potencial para a organização e as chances de ganhos excedesse o valor do custo reparador de uma decisão mal sucedida e as chances de perdas dentro de uma margem satisfatória. Para que isso possa acontecer é preciso que o gerente de projeto, ou o profissional responsável pelo risco, encontre as respostas para algumas questões, tais como o motivo pelo qual o risco deve ser tratado; quais são os ganhos associados ou o que poderá ser perdido; as reais chances de sucesso (ou fracasso); o que poderá ser feito se os objetivos definidos não forem alcançados; se o custo de estratégias de tratamento vale o esforço para um risco específico.

Dessa forma, torna-se importante faze uma análise do grau de incerteza existente no processo de decisão, ou seja, procurar uma estimativa dos riscos envolvidos.

Geralmente, quando se fala em correr riscos, pensa-se logo em perdas ou sacrifícios financeiros. Muitos riscos fazem parte de nosso dia a dia de tal forma, que mal os levamos em consideração, ao invés disso, as reações muitas vezes são subconscientes.


GERÊNCIA DE RISCOS VERSUS GERÊNCIA DE PROJETOS


A Gerência de Riscos tem uma aplicabilidade bastante ampla em ambientes organizacionais. Quando se fala em gerir projetos, é inevitável que se fale em gerir riscos. Por este motivo, muitas vezes, é difícil definir limites entre as duas gerência.

Ainda não existe um consenso sobre o relacionamento entre a gerência de projetos e a gerência de riscos. Normas, padrões e modelos são apresentados, na Engenharia de Software, mas não tratam esse relacionamento de forma explícita. Não existe um padrão que descreva o elo existente entre a Gerência de Riscos e a Gerência de Projeto, nem tão pouco apresente o objetivo do processo e das atividades da Gerência de Riscos. Com isso podemos observar que ainda existe uma certa imaturidade por parte da Engenharia de Software, onde normas e modelos deveriam consolidar este conhecimento já existente.

Na tabela a seguir podemos observar algumas das visões segundo autores, com conhecimentos na área de Engenharia de Software, trazendo os possíveis relacionamentos existentes entre a Gerência de Projetos e a Gerência de Riscos de Software.

Com isso, podemos observar que, independentemente da visão adotada, a organização deve ter consciência da importância da aplicação dos processos da Gerência de Riscos de forma integrada e contínua, em seu ambiente de desenvolvimento de software.



CONSIDERAÇÕES FINAIS:

Devido a grande influência da globalização e inovações e mudanças, as organizações cobram um dinamicidade e proatividade nas respostas aos problemas e riscos.

Hoje, a gestão de riscos envolve a aplicação de uma metodologia lógica e sistemática para administrar os riscos. Porém essa área, ainda sofre com a pequena quantidade de estudos sobre o assunto. Outra dificuldade, é a existência de diversas visões parciais sobre as técnicas de gerenciamento. Quando ela são levadas a prática, geram conflitos como de vocábulos, valores, conhecimentos e etc, gerando a falta de padronização.

Uma visão integrada dos riscos, é fundamental para as organizações, por isso é preciso uma construção de um único e integrado padrão de processos no gerenciamento. É preciso disseminação dos conceitos de gestão, assim como a definição de um processo que suporte as atividades de gerenciamento dos riscos.

Concluindo, a gerência de riscos permite avaliar a viabilidade das atividades a serem realizadas, bem como, o custo/benefício das mesmas.

Riscos em Projetos de Software

O risco em um projeto de software é uma medida da probabilidade e da perda relacionadas à ocorrência de um evento negativo que afete o próprio projeto, seu processo ou o seu produto. Em outras palavras, qualquer coisa que possa acontecer e ameaçar o bom andamento do projeto é um risco. O risco do projeto relaciona-se com aspectos operacionais, organizacionais e contratuais. Este tipo de risco é uma responsabilidade do Gerente do Projeto, nele estando incluídos limitações de recursos, interfaces externas, relacionamentos com fornecedores e restrições contratuais.

Riscos de Softawre: identificação

  • De acordo com a Natureza
    • Riscos de Projeto
    • Riscos de Negócio
    • Riscos Técnicos
  • De acordo com a probabilidade do evento
    • Conhecidos
    • Previsíveis
    • Imprevisíveis

Veja mais aqui...


quarta-feira, 17 de junho de 2009

Gestão de Configuração de Softwares

"Independente da fase do ciclo de vida de um Software, o desejo de modificá-lo vai persistir durante todo o cilco de vida do mesmo."

Mudanças durante o desenvolvimento de um software, são inevitáveis. As necessidades dos usuários mudam, o ambiente no qual o sistema vai rodar muda e etc. Com tantas mudanças assim, é necessária alguma forma para que o desenvolvimento não entre no chamado "incêndio". Para isso, é criada uma Gerência de Configuração de Softwares que se utiliza da Gestão de Configuração de Softwares(GC).

CONCEITO E FUNÇÃO

A Gestão de Configuração de Software é um conjunto de atividades de apoio ao desenvolvimento de softwares que ajuda a lidar e controlar as modificações que ocorrem durante todo o ciclo de vida.
Quem faz parte dessa Gestão são os chamados Skateholder(entidades que particpam do processo de produção): Gerente de Projetos, Analistas, Desenvolvedores, Usuário e a Organização.

PRINCÍPIOS BÁSICOS

A GC é responsável por responder a 3 questões básicas:

1. Quais mudanças aconteceram no sistema?
2. Por que essas mudanças aconteceram?
3. O sistema continua íntegro mesmo depois das mudanças?


Para que seja recebido resultados positivos a essas perguntas a GC é formada pelas seguintes atividades:


PASSOS DA GESTÃO

1. Controle de Versão
* Identificação, armazenamento e gerenciamento dos itens de configuração e de suas versões durante todo o ciclo de vida do software;
* Histórico de todas as alterações efetuadas nos itens de configuração;
* Recuperação de uma configuração em um determinado momento desejado do tempo.
2. Auditoria
* Envocar auditores, ou um grupo, para fiscalizar o desenvolvimento do software. Esses auditores devem identificar, rastrear, analisar e controlar as mudanças nos itens.
3. Documentação
* Documentar através de relatórios as pricipais modificações desenvolvidas.

PRODUTOS OBTIDOS

Os Produtos do Trabalho da gerência de configuração é um Plano de estrategia, contendo:

* As modificações do software
* Relatorios
* Ordens de modificações

Origem das Modificações

* Novas condições de negocios(Modificações internas)
* Novas necessidade do cliente(Acrescentar funções ao sistema)
* Reorganização ou crescimento e diminuição dos negocios
* Restrições no orçamento ou no tempo que foi determinado(dependendo do dinheiro e do tempo disponível, o processo de desenvolvimento será modificado)


As mudanças feitas no softwares são analisadas através das Linhas de Base ou Baselines. As Baselines são configurações formalmente aprovadas para servir de referência para o desenvolvimento posterior do sistema. (Ver nosso artigo sobre Baselines Aqui)

sábado, 13 de junho de 2009

Vídeo aulas de Engenharia de Software














Se você assimila mais o conteúdo ouvindo ou assistindo, assista direto no Youtube as aulas abaixo. São aulas ministradas por professores que abordam vários aspectos da Engenharia de Software com uma boa apresentação de slides. Cada aula dura em média 10 a 11 minutos.

Aula 1 - Parte 1 - Entender as principais características de um Software e sua qualidade.
Link Youtube

Aula 1 - Parte 2 - História e Princípios da Engenharia de Software
Link Youtube

Aula 2 - Parte 1 - Processos e Modelos de Softwares.
Link Youtube

Aula 2 - Parte 2 - Desenvolvimento Evolucionário de um Software(Controle de Versões)
Link Youtube

Aula 3 - Parte 1 - Requisitos de ambas as partes, Tarefa da Engenharia de Requisitos.
Link Youtube

Aula 3 - Parte 2 - Especificação, Validação, Gestão(Partes do processo de construção)
Link Youtube

Aula 4 - Parte 1 - Metodologias de testes na engenharia, Técnicas de manutenção do software.
Link Youtube

Aula 4 - Parte 2 - Caixa preta, Casos de Teste, Confiabilidade
Link Youtube

Aula 5 - Parte 1 - Qualidade e Métricas de Software, Qualidade e Custos de Softwares.
Link Youtube

Aula 5 - Parte 2 - Métricas de Software(Tamanhos, Funções, Re-Trabalho), Problemas de métricas.
Link Youtube

Aula 6 - Parte 1 - Teoria da Análise orientada a Objetos
Link Youtube

Aula 6 - Parte 2 - Continuação da Análise orientada a Objetos
Link Youtube

quinta-feira, 30 de abril de 2009

Ferramenta Case

A Ferramenta Case (do inglês Computer Aided Software Engeneering), é uma ferramenta que oferece um conjunto de serviços, fortemente relacionados, para apoiar uma ou mais atividades do processo de desenvolvimento de software, em outras palavras, é uma ferramenta cujo objetivo prinicpal é auxiliar a construção de um software de forma mais prática e eficaz.

As ferramentas CASE operam em dois níveis:

* Alto Nível: Ferramentas que auxiliam nas atividades iniciais de requisitos e projetos;

* Baixo Nível: Ferramentas que auxiliam nas atividades de desenvolvimento.

quarta-feira, 29 de abril de 2009

Controle de Processo de Software

O controle da qualidade é definido como um processo e métodos usados para monitorar o trabalho e observar se os requisitos estão sendo satisfeitos. O foco é justamente em revisões e remoção de defeitos antes mesmo do envio dos produtos. O controle da qualidade deve ser de responsabilidade da unidade organizacional que produz o produto. No entanto, é possível ter o mesmo grupo que constrói o produto, que realize também o controle da qualidade, ou estabelecer um grupo de controle da qualidade separado ou departamento dentro da mesma unidade organizacional que desenvolve o produto.

O controle da qualidade consistem de checklists bem definidos em um produto que é especificado no plano de garantia da qualidade. Um exemplos clássico de controle da qualidade são as inspeções de software. A inspeção é o grau mais maduro e formal dentro das revisões, sendo necessária uma preparação prévia, participantes definidos adequadamente e critérios de entrado e saída bem definidos.

O controle da qualidade é projetado para detectar defeitos e corrigir esses defeitos encontrados, enquanto que a garantida da qualidade é orientada através da prevenção de defeitos.

Para o controle do processo podemos definir requisitos, que implicam em:

* Competência para gerir:
* O custo do software;
* O tempo;
* A qualidade.

Já um processo de software sem controle implica em:

* Improvisação;
* Falta de rigor;
* Qualidade ruim;
* Riscos.

Desta forma a empresa acaba em "incêndio", ou seja, ela resolve o problema de forma inadequada.

Modelo McCall

Em 1977, McCall propôs um modelo para a avaliação da qualidade de software. Esse modelo envolve um conjunto de três fatores que avalia o software com relação a três pontos de vista distintos. A seguir o



I - Com relação ao uso do produto (Características Operacionais).

* Corretudide → Medida na qual o software satisfaz as especificações e objetivos visados pelo cliente.

* Confiabilidade → À medida que se pode esperar que um programa execute sua função pretendida com a precisão exigida.

* Eficiência → É a quantidade de recursos computacionais e de código exigida para que um programa execute sua função, com total precisão, visando realizar a operação de forma 100% segura.

* Integridade → Medida na qual, contrala-se o acesso ao software e aos dados, bloqueando assim o acesso de pessoas não autorizadas, para que não ocorra perda de dados ou de código.

* Usuabilidade → Mede a facilidade para a utilização do software.

II - Com relação a alteração do produto (Habilidade para ser alterado).

* Manutenção → O esforço exigido para localizar e reparar erros em um programa.

* Flexibilidade → O esforço utilizado para realizar uma alteração no software, isto é, qual o grau de facilidade que o sw oferece para a sua alteração, de forma rápida e eficaz?

* Testabilidade → São todos os recursos utilizados, no teste do software, isto é, o esforço exigido para testar um programa a fim de garantir que ele execute a função pretendida.

III - Transição do produto (Adaptabilidade a novos ambientes).

* Portabilidade → Mede a facilidade com que um produto pode ser movido para outra plataforma, ou software.

* Reusabilidade → Medida na qual o software, ou parte dele, poder ser reusado em outros softwares, em outras palavras, o código do sw deve ser reaproveitável.

* Interoperabilidade → O software é capaz de ser acoplado ao outro?

terça-feira, 28 de abril de 2009

Visões de Qualidade de Software

A visão de qualidade de software pode ser enxergda de três modos, que são os seguintes:



Usuário → este, avalia o software sem conhcecer seus aspectos internos, isto é, o usuário esta apenas concentrado na facilidade de uso do software, no seu desempenho, na confiabilidade dos resultados; de uma forma geral, o usuário, vê o software como algo que venha a solucionar o seu problema de forma prática, eficaz e segura.

Desenvolvedor → este, avalia aspectos de conformidade em relação aos requisitos dos clientes e também aspectos internos do software, isto é, um software, cujo tenha facilidade de manutenção e que seja bem codificado, podendo assim ser bem endentido, e reaproveitável.

Organização → esta, avalia aspectos de conformidade em relação aos requisitos dos clientes e desenvolvedores e também aspectos de custo e cronograma, ou seja, deve haver por parte da empres cumprimento de prazo, boa previsão de custo, boa produtividade e portabilidade.

Engenharia de Software © 2008. Design by :Yanku Templates Sponsored by: Tutorial87 Commentcute