Início
topics
Desenvolvimento de software
O desenvolvimento de software se refere a um conjunto de atividades de ciências da computação dedicadas ao processo de criação, design, implementação e suporte de software.
O software em si é o conjunto de instruções ou programas que dizem a um computador o que fazer. Ele é independente do hardware e torna os computadores programáveis. Há três tipos básicos:
Software de sistema, para fornecer funções essenciais, como sistemas operacionais, gerenciamento de discos, utilitários, gerenciamento de hardware e outras necessidades operacionais.
Software de programação, para fornecer aos programadores ferramentas como editores de texto, compiladores, vinculadores, depuradores e outras ferramentas para criar código.
Software de aplicações (aplicações ou aplicativos), para ajudar os usuários a realizar tarefas. Pacotes de produtividade do Office, software de gerenciamento de dados, players de mídia e programas de segurança são exemplos. Aplicações também se referem a aplicativos móveis e da web, como os usados para fazer compras na Amazon.com, socializar no Facebook ou postar fotos no Instagram.1
Um quarto tipo possível é o software incorporado. O software de sistemas incorporados é usado para controlar máquinas e dispositivos que normalmente não são considerados computadores: redes de telecomunicações, carros, robôs industriais e muito mais. Esses dispositivos e seus softwares podem ser conectados como parte da internet das coisas (IoT).
O desenvolvimento de software é conduzido principalmente por programadores, engenheiros de software e desenvolvedores de software. Essas funções interagem e se sobrepõem, e a dinâmica entre elas varia muito entre os departamentos de desenvolvimento e as comunidades.
Os programadores, ou codificadores, escrevem código fonte para programar computadores para tarefas específicas, como mesclar bancos de dados, processar pedidos online, rotear comunicações, realizar pesquisas ou exibir textos e gráficos. Normalmente, os programadores interpretam instruções de desenvolvedores e engenheiros de software e usam linguagens de programação, como C++ ou Java, para executá-las.
Os engenheiros de software aplicam princípios de engenharia para criar software e sistemas para resolver problemas. Eles usam a linguagem de modelagem e outras ferramentas para criar soluções que podem ser aplicadas a problemas de forma geral, em vez de apenas resolver para um caso ou cliente específico.
As soluções de engenharia de software seguem o método científico e devem funcionar no mundo real, como no caso de pontes ou elevadores. A responsabilidade deles aumentou à medida que os produtos se tornaram cada vez mais inteligentes com a adição de microprocessadores, sensores e software.
Além de mais produtos dependerem de software para diferenciação no mercado, o desenvolvimento de software deve ser coordenado com o trabalho de desenvolvimento mecânico e elétrico do produto.
Os desenvolvedores de software têm uma função menos formal do que os engenheiros e podem estar intimamente envolvidos em áreas específicas do projeto, incluindo a criação de códigos. Ao mesmo tempo, eles conduzem o ciclo de vida geral de desenvolvimento de software, incluindo o trabalho com equipes funcionais para transformar requisitos em recursos, gerenciar equipes e processos de desenvolvimento e realizar testes e manutenção de software.2
O trabalho de desenvolvimento de software não se limita aos codificadores ou às equipes de desenvolvimento. Profissionais como cientistas, fabricantes de dispositivos e criadores de hardware também desenvolvem códigos de software, mesmo que não sejam primariamente desenvolvedores de software.
Também não se limitam aos setores tradicionais de tecnologia da informação, como empresas de software ou semicondutores. Na verdade, de acordo com o Brookings Institute (link fora de ibm.com), essas empresas representam menos da metade das empresas que realizam desenvolvimento de software.
Uma distinção importante é o desenvolvimento de software personalizado, ao contrário do desenvolvimento de software comercial.
O desenvolvimento de software personalizado é o processo de projetar, criar, implementar e manter o software para um conjunto específico de usuários, funções ou organizações.
Por outro lado, o software comercial pronto para uso (COTS) é projetado para um amplo conjunto de requisitos, o que permite que seja empacotado, comercializado e distribuído.
Saiba como o desktop como serviço (DaaS) permite as empresas atingirem o mesmo nível de performance e segurança ao implementar aplicações no local.
Normalmente, o desenvolvimento de software envolve as seguintes etapas:
As etapas do processo de desenvolvimento de software se enquadram no gerenciamento do ciclo de vida da aplicação (ALM). A solução IBM Engineering Management é um superconjunto do ALM que permite o gerenciamento do desenvolvimento paralelo mecânico, elétrico e de software.
As etapas do processo de desenvolvimento de software podem ser agrupadas nas fases do ciclo de vida, mas a importância do ciclo de vida é que ele se recicla para permitir o aprimoramento contínuo. Por exemplo, os problemas dos usuários que surgem na fase de manutenção e suporte podem se tornar requisitos no início do próximo ciclo.
O desenvolvimento de software também é importante porque é difundido. Como aponta a vice-presidente e blogueira da IBM, Dibbe Edwards: "O software surgiu como um diferencial importante em muitos produtos — de carros a máquinas de lavar e termostatos — com uma crescente internet das coisas conectando-os."
Alguns exemplos:
O uso do desenvolvimento de software para diferenciar marcas e obter vantagem competitiva exige proficiência nas técnicas e nas tecnologias que podem acelerar a implementação, a qualidade e a eficácia do software.
Uma solução comprovada para atividades de modelagem e projeto, que ajuda você a oferecer sistemas e software de qualidade com mais rapidez.
Controle avançado de versão de software e gerenciamento de espaços de trabalho, oferecendo controle de fonte distribuído e suporte a desenvolvimento paralelo para melhorar a produtividade de indivíduos e equipes ao rastrear automaticamente mudanças nos artefatos. O software permite um recurso praticamente ilimitado de suspensão e retomada para lidar com interrupções de trabalho.
Fornece conexões entre as ferramentas do IBM Engineering Lifecycle Management e ferramentas de terceiros, como Git, GitLib e GitHub, para gerenciar o controle de versões do software.
Código, conteúdo, comunidade e muito mais.
Inscreva-se nos tópicos mais importantes.
Atenda a necessidades de negócios complexas com velocidade e agilidade, conectando suas ferramentas de desenvolvimento de software.
Atualmente, nossa pesquisa em ciência da computação concentra-se na descoberta de avanços na automação, no processamento de informações e na computação.
1 Software, Techopedia (link fora de ibm.com)
2 Software Engineer vs. Software Developer – What’s the Difference? Fullstack Academy (link fora de ibm.com)
3The Forrester Wave™: Low-Code development Platforms for AD&D Pros, Q4 201 John R. Rymer, Forrester Research, Inc. 23 de outubro de 2017 (link fora de ibm.com)