Soluções        Serviços          Atendimento       Governo        Consultoria T.I      Treinamento

Software

Um processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software. É estudado dentro da área de Engenharia de Software, sendo considerado um dos principais mecanismos para se obter software de qualidade e cumprir corretamente os contratos de desenvolvimento, sendo uma das respostas técnicas adequadas para resolver a Crise do software.

Índice

  • 1 Passos/Atividades Processo
    • 1.1 Análise Econômica
    • 1.2 Análise de requisitos de software
    • 1.3 Especificação
    • 1.4 Arquitetura de Software
    • 1.5 Implementação (ou codificação)
    • 1.6 Teste
    • 1.7 Documentação
    • 1.8 Suporte e Treinamento de Software
    • 1.9 Manutenção
  • 2 Padrões
  • 3 Modelos de Processo
    • 3.1 Processo em cascata
    • 3.2 Processos Iterativos
    • 3.3 Processos ágeis
    • 3.4 Método formal
  • 4 Ver também
    • 4.1 Alguns métodos de desenvolvimento de software
    • 4.2 Temas relacionados
    • 4.3 Softwares de apoio

Passos/Atividades Processo

Análise Econômica

Visa a estabelecer se o projeto de Software gerará lucro, e se a receita gerada será o suficiente para cobrir os custos. Este processo acompanha todas as demais etapas de desenvolvimento do Software.

Análise de requisitos de software

A extração dos requisitos de um desejado produto de software é a primeira tarefa na sua criação. Embora o cliente, provavelmente, acredite saber o que o software deva fazer, esta tarefa requer habilidade e experiência em engenharia de software para reconhecer a incompletude, ambigüidade ou contradição nos requisitos.

Especificação

A especificação é a tarefa de descrever precisamente o software que será escrito, preferencialmente de uma forma matematicamente rigorosa. Na prática, somente especificações mais bem sucedidas foram escritas para aplicações bem compreendidas e afinadas que já estavam bem desenvolvidas, embora sistemas de software de missão crítica sejam freqüentemente bem especificados antes do desenvolvimento da aplicação. Especificações são mais importantes para interfaces externas que devem permanecer estáveis.

Arquitetura de Software

A arquitetura de um sistema de software remete a uma representação abstrata daquele sistema. Arquitetura é concernente à garantia de que o sistema de software irá ao encontro de requisitos do produto, como também assegurar que futuros requisitos possam ser atendidos. A etapa da arquitetura também direciona as interfaces entre os sistemas de software e outros produtos de software, como também com o hardware básico ou com o sistema operacional.

Implementação (ou codificação)

A transformação de um projeto para um código deve ser a parte mais evidente do trabalho da engenharia de software, mas não necessariamente a sua maior porção..

Teste

Teste de partes do software, especialmente onde tenha sido codificado por dois ou mais engenheiros trabalhando juntos, é um papel da engenharia de software

Documentação

Uma importante tarefa é a documentação do projeto interno do software para propósitos de futuras manutenções e aprimoramentos. As documentações mais importantes são das interfaces externas.

Suporte e Treinamento de Software

Uma grande porcentagem dos projetos de software falham pelo fato de o desenvolvedor não perceber que não importa quanto tempo a equipe de planejamento e desenvolvimento irá gastar na criação do software se ninguém da organização irá usá-lo. As pessoas ocasionalmente resistem à mudança e evitam aventurar-se em áreas pouco familiares. Então, como parte da fase de desenvolvimento, é muito importante o treinamento para os usuários de software mais entusiasmados, alternando o treinamento entre usuários neutros e usuários favoráveis ao software. Usuários irão ter muitas questões e problemas de software os quais conduzirão para a próxima fase.

Manutenção

A manutenção e melhoria de software lidam com a descoberta de novos problemas e requisitos. Ela pode tomar mais tempo que o gasto no desenvolvimento inicial do mesmo. Não somente pode ser necessário adicionar códigos que combinem com o projeto original, mas determinar como o software trabalhará em algum ponto depois da manutenção estar completa, pode requerer um significativo esforço por parte de um engenheiro de software. Cerca de ⅔ de todos os engenheiros de software trabalham com a manutenção, mas estas estatísticas podem estar enganadas. Uma pequena parte destes trabalha na correção de erros. A maioria das manutenções é para ampliar os sistemas para novas funcionalidades, as quais, de diversas formas, podem ser consideradas um novo trabalho. Analogamente, cerca de ⅔ de todos os engenheiros civis, arquitetos e construtores trabalham com manutenção de uma forma similar.

Padrões

O processo de desenvolvimento de software tem sido objetivo de vários padrões, que visam a certificação de empresas como possuidoras de um processo de desenvolvimento, o que garantiria certo grau de confiança aos seus contratantes.

Alguns padrões existentes atualmente:

  • CMMI (anteriormente CMM)
  • SPICE
  • ISO 12207
  • MPS/Br

Modelos de Processo

Há uma década, vem se tentando encontrar um processo ou metodologia previsível e repetível que melhore a produtividade e qualidade. Alguns tentaram sintetizar e formalizar a tarefa aparentemente incontrolável de escrever um software. Outros aplicaram técnicas de gerenciamento de projeto na escrita de software. Sem o gerenciamento de projeto, projetos de software podem facilmente sofrer atraso ou estourar o orçamento. Como um grande número de projetos de software não atendem suas expectativas em termos de funcionalidades, custo, ou cronograma de entrega, ainda não existe um modelo de processo perfeito para todas aplicações.

Processo em cascata

O mais antigo e bem conhecido processo é o Modelo em cascata, onde os desenvolvedores (a grosso modo) seguem estes passos em ordem. Eles estabelecem os requisitos, os analisam, projetam uma abordagem para solução, arquitetam um esboço do software, implementam o código, testam (inicialmente os testes unitários e então os testes de sistema), implantam e mantêm. Depois que cada passo é terminado, o processo segue para o próximo passo, tal como construtores que não revisam as fundações de uma casa depois que as paredes foram erguidas. Se as iterações não são incluídas no planejamento, o processo não tem meios para corrigir os erros nas etapas inicias (por exemplo, nos requisitos), então o processo inteiro da engenharia de software deve ser executado até o fim, resultando em funcionalidades de software desnecessárias ou sem uso.Para isso tem que se fazer o implemento dos requisitos anteriormente analisados pelo programador.

Processos Iterativos

O Desenvolvimento iterativo e incremental prescreve a construção de uma porção pequena, mas abrangente, do projeto de software para ajudar a todos os envolvidos a descobrir cedo os problemas ou suposições, falhas que possam a levar ao desastre. O processo iterativo é preferido por desenvolvedores porque lhes fornece um potencial para atingir os objetivos de projeto de um cliente que não sabe exatamente o que quer, ou quando não se conhece bem todos os aspectos da solução.

Processos de desenvolvimento ágil de software são construídos com os fundamentos do desenvolvimento iterativo. Os processos ágeis usam o feedback, mais que o planejamento, como seus mecanismos de controle primário. O feedback é produzido por testes regulares e das versões do software desenvolvido.

Processos ágeis

Método formal

Os Métodos Formais são abordagens matemáticas para resolver problemas de software e hardware ao nível de requisito, especificação e projetos. Exemplos de métodos formais incluem Método-B, Redes Petri, RAISE e VDM. Várias notações de especificação formal estão disponíveis, tais como a notação-Z. De forma mais genérica, a teoria do autômato pode ser usada para construir e validar o comportamento da aplicação para o projeto de um sistema de máquina de estado finito.

Máquinas de estado finito baseadas nestas metodologias permitiram especificar software executáveis e contornar a codificação convencional.

Ver também

Alguns métodos de desenvolvimento de software

  • Modelo em cascata
  • Modelo em espiral
  • Modelo desenvolvimento dirigido
  • Modelo baseado experiência usuario
  • Modelo Bottom-Up
  • Modelo Balbúrdia
  • Prototipacão
  • Modelo Top-Down
  • Modelo V
  • Programação extrema
  • Scrum

Temas relacionados

  • Modelo abstrato
  • Modelo IPO+S
  • Processo
  • Modelagem de Dados
  • Matriz CRUD
  • Paradigmas de programação
  • Projeto
  • Ciclo de vida de desenvolvimento de sistema
  • Documentação de Software
  • Projeto de Sistemas
  • Esforço de teste
  • RUP
  • Praxis (engenharia de software)

Softwares de apoio

  • dotProject
  • Trac
  • Git
Obtida de "http://pt.wikipedia.org/w/index.php?title=Processo_de_desenvolvimento_de_software&oldid=27611296"

MAIS INFORMAÇÕES DO SETOR DE SOFTWARE

Arquitetura de dados

Arquitetura de dados é a estrutura dos componentes de dados de uma organização - considerados sob [ ... ]


Rede social

article thumbnail


Rede social Uma rede social é uma estrutura social composta por pessoas ou organizaçõ [ ... ]


Steve Jobs

article thumbnail

Steve Jobs Steve Jobs apresentando um iPhone 4 durante a Apple Worldwide Develo [ ... ]


ERP

Sistemas Integrados de Gestão Empresarial (SIGE ou SIG), em inglês Enterprise Resource Planning (E [ ... ]


BackTrack

article thumbnail

Backtrack

Backtrack 5 Desenvolvedor Max Moser, Mati Aharoni, Martin J. Muench  [ ... ]


Governança em T.I (Governança corporativa)

Governança corporativa (português brasileiro) ou governo das sociedades ou das empresas (portuguê [ ... ]


Processo de desenvolvimento de software

Um processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, c [ ... ]


Linux

article thumbnail


Linux
Tux, a mascote do Linux Modelo: Software Livre Família do SO: bas [ ... ]


CMMI

O CMMI (Capability Maturity Model Integration) é um modelo de referência que contém práticas (Ge [ ... ]


Apple

article thumbnail


Apple Tipo Empresa cotada em bolsa (NASDAQ: AAPL, LSE: 0HDZ, FWB: APC) Fu [ ... ]


Lista de softwares Públicos

em 11/11/2011LISTA DE SOFTARES PÚBLICOSSoftware Público Brasileiro InVesalius  (542 [ ... ]


Modelo em espiral

O Modelo em espiral é um processo de desenvolvimento de software que combina elementos de projeto [ ... ]


Struts framework

Struts é um framework de desenvolvimento da camada controladora, numa estrutura seguindo o padrã [ ... ]


Comércio eletrônico

Comércio eletrônico (português brasileiro) ou comércio electrónico (português europeu) ou e-co [ ... ]


Web 2.0

article thumbnail

Web 2.0 é um termo criado em 2004 pela empresa americana O'Reilly Media[1] para designar uma segu [ ... ]


ITILv3

A versão 3 da biblioteca ITIL foi lançada mundialmente em maio de 2007 como uma atualização comp [ ... ]


Modelagem de dados

Modelagem de Dados Representa um conjunto de requerimentos de informações de negócio. É uma part [ ... ]


Hierarquia DIKW

DIKW é uma hierarquia informacional utilizada principalmente nos campos da Ciência da Informação [ ... ]


Sistema de gerenciamento de conteúdo

Sistema de Gestão de Conteúdo (SGC) - do inglês Content Management Systems (CMS) mas igualmente d [ ... ]


Scrum

article thumbnail

O processo Scrum. O Scrum é um processo de desenvolvimento iterativo e incremental para  [ ... ]


C++

article thumbnail

Origem: Wikipédia, a enciclopédia livre. C++
Programa Olá Mundo, escrito em C++. [ ... ]


AJAX


AJAX (acrônimo em língua inglesa de Asynchronous Javascript and XML, em português "Javascript  [ ... ]


Smartphone

article thumbnail

Galaxy Nexus, exemplo de Smartphone. Nokia Communicator 9000, 9110, 9210, 9500  [ ... ]


Software educativo

article thumbnail

Software educativo é um software cujo principal propósito é o ensino ou o auto-aprendizado.[1]  [ ... ]


Antivírus

article thumbnail

Os antivírus são programas de computador concebidos para prevenir, detectar e eliminar vírus de [ ... ]


Kohana Framework

Kohana é um framework para aplicações web de código aberto, escrito em PHP 5 que adota o padr [ ... ]


IBM Rational Unified Process

O RUP, abreviação de Rational Unified Process (ou Processo Unificado Racional), é um processo pro [ ... ]


CodeIgniter

CodeIgniter Desenvolvedor EllisLab, Inc. Lançado em 28 de Fevereiro de 2006  [ ... ]


JBuilder

JBuilder, é uma IDE para desenvolvimento de aplicações na tecnologia Java criada pela Borland e [ ... ]


Modelo Balbúrdia

No início da computação, poucos programadores seguiam algum tipo de metodologia baseando-se, em [ ... ]


Linguagem de programação

Uma linguagem de programação é um método padronizado para expressar instruções para um compu [ ... ]


Git - sistema de controle de versão

article thumbnail

Origem: Wikipédia, a enciclopédia livre. Git Desenvolvedor Linus Torvalds, Ju [ ... ]


Hacker

article thumbnail


Originalmente, e para certos programadores, hackers (singular: hacker) são indivíduos que elabo [ ... ]


Licenças Microsoft

Microsoft Product Activation O Microsoft Product Activation (MPA, em português, traduz. literal.:  [ ... ]


Sistema Integrado de Aprendizagem de Produtos e Serviços

Sistema Integrado de Aprendizagem de Produtos e Serviços - Sinapse (acrônimo) é o nome de uma met [ ... ]


Blog corporativo

Blogs Corporativos podem ser traduzidos em: uso de blogs dentro do cotidiano das empresas. O Blog  [ ... ]


Symfony

article thumbnail

Symfony

Projeto padrão do Symfony Desenvolvedor Sensio Labs Versão está [ ... ]


Business Intelligence - Inteligência empresarial

Inteligência empresarial (em inglês Business Intelligence), refere-se ao processo de coleta, orga [ ... ]


Sistemas complexos

Um sistema é dito ser um sistema complexo quando suas propriedades não são uma consequência natu [ ... ]


CobiT

Origem: Wikipédia, a enciclopédia livre. COBIT®, do inglês, Control Objectives for Information  [ ... ]


Nanotecnologia

article thumbnail

Imagem de um circuito integrado ampliada 2400 vezes A nanotecnologia (algumas vezes chamada [ ... ]


Dispositivo móvel

Um dispositivo móvel, designado popularmente em inglês por handheld é um computador de bolso ha [ ... ]


Segurança da informação

article thumbnail

A Wikipédia possui o portal:
Portal das tecnologias de informação A segurança da  [ ... ]


C♯

article thumbnail


C♯ Paradigma Orientação a objetos
estruturado
imperativo Surgido em 2001  [ ... ]


Arquitetura de software

A arquitetura de software de um sistema consiste na definição dos componentes de software, suas  [ ... ]


COA - Control Oriented Architecture

Control Oriented Architecture - COA é uma arquitetura de camadas de controle que permite configur [ ... ]


Tecnologia educacional

article thumbnail

A Wikipédia possui o portal:
Portal de educação As Tecnologias educacionais são [ ... ]


Aplicação Web

Aplicação Web é o termo utilizado para designar, de forma geral, sistemas de informática proje [ ... ]


Teste de penetração

article thumbnail

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de um [ ... ]


Videoconferência

article thumbnail

Videoconferência entre militares em 2006. Videoconferência é uma tecnologia que permite  [ ... ]


Artigos Relacionados

Pluriverso - Inteligência em Tecnologia

Pluriverso - Inteligência em Tecnologia


Ed.Centro Sul, 2°Andar, SCIA, Qd. 14, Conj. 07, Lt 1, S. Ind.
CEP: 71.250-135, Brasília-DF.  
Como Chegar
| Atendimento  


+55 (61) 4141.5555

Serviços

Desenvolvimento de Software
Oursourcing de T.I
Consultoria em Tecnologia
Licitação com o Governo

Produtos

ERP, CRM, Colaboração
Cloud Computing

Soluções
Soluções em Outsourcing de Tecnologia
Integração de Software
Avaliação de nível tecnológico
Cálculo de custos de T.I
Softwares customizados


Porque escolher a Pluriverso

Blog Corporativo
Blog do Software

Conheça a Pluriverso
quem somos
verticais de atuação
portifólio
casos de sucesso

Atendimento
contatos
sala de imprensa
como chegar
Trabalhe conosco

desenvolvimento de software