b'\n_START_ARTICLE_\nProcesso de desenvolvimento de software\n_START_SECTION_\nAn\xc3\xa1lise Econ\xc3\xb4mica\n_START_PARAGRAPH_\nVisa a estabelecer se o projeto de Software gerar\xc3\xa1 lucro, e se a receita gerada ser\xc3\xa1 o suficiente para cobrir os custos.\n_START_SECTION_\nAn\xc3\xa1lise de requisitos de software\n_START_PARAGRAPH_\nA extra\xc3\xa7\xc3\xa3o dos requisitos de um cliente\n_START_SECTION_\nEspecifica\xc3\xa7\xc3\xa3o\n_START_PARAGRAPH_\nA especifica\xc3\xa7\xc3\xa3o \xc3\xa9 a tarefa de descrever precisamente o software, preferencialmente de uma forma matematicamente rigorosa. Na pr\xc3\xa1tica, somente especifica\xc3\xa7\xc3\xb5es mais bem sucedidas foram escritas para aplica\xc3\xa7\xc3\xb5es bem compreendidas e afinadas que j\xc3\xa1 estavam bem desenvolvidas, embora sistemas de software de miss\xc3\xa3o cr\xc3\xadtica sejam frequentemente bem especificados antes do desenvolvimento da aplica\xc3\xa7\xc3\xa3o. Especifica\xc3\xa7\xc3\xb5es s\xc3\xa3o mais importantes para interfaces externas que devem permanecer est\xc3\xa1veis.\n_START_SECTION_\nArquitetura de Software\n_START_PARAGRAPH_\nA arquitetura de um sistema de software remete a uma representa\xc3\xa7\xc3\xa3o abstrata daquele sistema. Arquitetura \xc3\xa9 concernente \xc3\xa0 garantia de que o sistema de software ir\xc3\xa1 ao encontro de requisitos do produto, como tamb\xc3\xa9m assegurar que futuros requisitos possam ser atendidos. A etapa da arquitetura tamb\xc3\xa9m direciona as interfaces entre os sistemas de software e outros produtos de software, como tamb\xc3\xa9m com o hardware b\xc3\xa1sico ou com o sistema operacional.\n_START_SECTION_\nImplementa\xc3\xa7\xc3\xa3o ou codifica\xc3\xa7\xc3\xa3o\n_START_PARAGRAPH_\nA transforma\xc3\xa7\xc3\xa3o de um projeto para um c\xc3\xb3digo deve ser a parte mais evidente do trabalho da engenharia de software, mas n\xc3\xa3o necessariamente a sua maior por\xc3\xa7\xc3\xa3o.\n_START_SECTION_\nTeste\n_START_PARAGRAPH_\nTeste de partes do software, especialmente onde tenha sido codificado por dois ou mais engenheiros trabalhando juntos, \xc3\xa9 um papel da engenharia de software._NEWLINE_Diversas atividades de testes s\xc3\xa3o executadas a fim de se validar o produto de software, testando cada funcionalidade de cada m\xc3\xb3dulo, buscando, levando em considera\xc3\xa7\xc3\xa3o a especifica\xc3\xa7\xc3\xa3o feita na fase de projeto. Onde o principal resultado \xc3\xa9 o relat\xc3\xb3rio de testes, que cont\xc3\xa9m as informa\xc3\xa7\xc3\xb5es relevantes sobre erros encontrados no sistema, e seu comportamento em v\xc3\xa1rios aspectos.\n_START_SECTION_\nDocumenta\xc3\xa7\xc3\xa3o\n_START_PARAGRAPH_\nUma importante tarefa \xc3\xa9 a documenta\xc3\xa7\xc3\xa3o do projeto interno do software para prop\xc3\xb3sitos de futuras manuten\xc3\xa7\xc3\xb5es e aprimoramentos. As documenta\xc3\xa7\xc3\xb5es mais importantes s\xc3\xa3o das interfaces externas.\n_START_SECTION_\nSuporte e treinamento de Software\n_START_PARAGRAPH_\nUma grande percentagem dos projetos de software falham pelo fato de o desenvolvedor n\xc3\xa3o perceber que n\xc3\xa3o importa quanto tempo a equipe de planejamento e desenvolvimento ir\xc3\xa1 gastar na cria\xc3\xa7\xc3\xa3o do software se ningu\xc3\xa9m da organiza\xc3\xa7\xc3\xa3o ir\xc3\xa1 us\xc3\xa1-lo. As pessoas ocasionalmente resistem \xc3\xa0 mudan\xc3\xa7a e evitam aventurar-se em \xc3\xa1reas pouco familiares. Ent\xc3\xa3o, como parte da fase de desenvolvimento, \xc3\xa9 muito importante o treinamento para os usu\xc3\xa1rios de software mais entusiasmados, alternando o treinamento entre usu\xc3\xa1rios neutros e usu\xc3\xa1rios favor\xc3\xa1veis ao software. Usu\xc3\xa1rios ir\xc3\xa3o ter muitas quest\xc3\xb5es e problemas de software os quais conduzir\xc3\xa3o para a pr\xc3\xb3xima fase.\n_START_SECTION_\nManuten\xc3\xa7\xc3\xa3o\n_START_PARAGRAPH_\nA manuten\xc3\xa7\xc3\xa3o 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\xc3\xa3o somente pode ser necess\xc3\xa1rio adicionar c\xc3\xb3digos que combinem com o projeto original, mas determinar como o software trabalhar\xc3\xa1 em algum ponto depois da manuten\xc3\xa7\xc3\xa3o estar completa, pode requerer um significativo esfor\xc3\xa7o por parte de um engenheiro de software. Cerca de 66% de todos os engenheiros de software trabalham com a manuten\xc3\xa7\xc3\xa3o, mas estas estat\xc3\xadsticas podem estar enganadas. Uma pequena parte destes trabalha na corre\xc3\xa7\xc3\xa3o de erros. A maioria das manuten\xc3\xa7\xc3\xb5es \xc3\xa9 para ampliar os sistemas para novas funcionalidades, as quais, de diversas formas, podem ser consideradas um novo trabalho. Analogamente, cerca de 66% de todos os engenheiros civis, arquitetos e construtores trabalham com manuten\xc3\xa7\xc3\xa3o de uma forma similar.\n_START_SECTION_\nM\xc3\xa9todos Formais\n_START_PARAGRAPH_\nM\xc3\xa9todos formais em ci\xc3\xaancias da computa\xc3\xa7\xc3\xa3o e engenharia de software, s\xc3\xa3o t\xc3\xa9cnicas baseadas em formalismos matem\xc3\xa1ticos para a especifica\xc3\xa7\xc3\xa3o, desenvolvimento e verifica\xc3\xa7\xc3\xa3o dos sistemas de softwares e hardwares. Seu uso para o desenvolvimento de software e hardware \xc3\xa9 motivado pela expectativa de que, como em outras disciplinas de engenharia, possam contribuir para a confiabilidade e robustez de um projeto executando an\xc3\xa1lises matem\xc3\xa1ticas apropriadas. Entretanto, o alto custo do uso dos m\xc3\xa9todos formais faz com que, de modo geral, sejam usados apenas no desenvolvimento de sistemas de alta-integridade, nos quais h\xc3\xa1 alta probabilidade de as falhas provocarem perda de vidas ou s\xc3\xa9rio preju\xc3\xadzo.'