O cenário do desenvolvimento de sistemas no mundo está extremamente aquecido. Desde a década de 1970, quando os primeiros sistemas computacionais de grandes organizações começaram a ser desenvolvidos, nunca na história houve esse apagão de mão-de-obra que estamos vivenciando. Empresas não conseguem encontrar profissionais capacitados para trabalhar em suas demandas, esse retrato do mercado favorece quem almeja uma colocação na área de TI em geral.
A tecnologia no desenvolvimento de sistemas avança com ênfase para áreas que estão em ascensão, como a Internet das coisas, conhecida popularmente pela sigla em inglês IOT que significa Internet of Things. A IOT se resume no controle de vários objetos físicos que possuem sensores, tecnologia embarcada e que estejam totalmente conectados. Tarefas do cotidiano são resolvidas por meio da IOT. Imagine por exemplo um casal que trabalha o dia todo fora de casa e não tem tempo para varrer e passar um pano para tirar a poeira. Um robô com tecnologia embarcada pode resolver esse problema. Hoje em dia, existem robôs faxineiros, que mapeiam todos os cômodos da casa e são capazes de realizar esse trabalho diariamente, e o melhor, são controlados por aplicativos de celular. Quem possibilita essa trabalho é a IOT.
Outra área que também está decolando em avanços tecnológicos é a Inteligência Artificial (IA). A IA é a inteligência da máquina similar à humana, pois ela possui a capacidade de aprender com o ambiente que se encontrada inserida. São diversas as atividades que uma máquina pode fazer que podem ser classificadas como IA. É um conceito complexo e bem amplo assim como todas as definições que se encontra na literatura, porém sem dúvidas está trazendo grandes benefícios à sociedade.
Nesse sentido, é uma área bem atrativa aos jovens e adolescentes que estão em busca de uma definição profissional. Por conta disso, você decidiu ser desenvolvedor de sistemas, porém desconhece toda a parte de conteúdos, conceitos teóricos e o processo de desenvolvimento de software que é fundamental para o desenvolvimento de uma aplicação.
Quando somos simplesmente usuários de sistemas pessoais ou empresariais, muitas vezes não conseguimos imaginar quantas etapas foram necessárias para o seu desenvolvimento, porém sabemos que sem eles nosso trabalho seria muito mais difícil. Os sistemas computacionais foram construídos para facilitar a vida dos seus usuários. Imagine por exemplo se não existissem os aplicativos de bancos, com toda certeza, você teria que passar horas e horas por semana nas filas em sua agência bancária.
Portanto, a importância de aprender todas as etapas para se construir sistemas de qualidade que realmente atendam as necessidades do usuário se faz necessária.
O processo de desenvolvimento de software é realizado por meio de vários modelos disponíveis na área de engenharia de software. Modelos como: incremental, espiral, montagem de componentes, entre outros, são utilizados para o acompanhamento evolutivo do desenvolvimento do sistema.
Portanto, convido você a realizar uma pesquisa de todos os modelos de processo de software existentes, para que você consiga compreender, e assim, ser assertivo na decisão de qual modelo irá adotar considerando o processo de negócio do sistema que você irá desenvolver.
Um dos principais problemas apresentados em nosso estudo de caso é a falta de conhecimento no processo de negócio do cliente. Precisamos conhecer a fundo esse processo para que seja possível atender as necessidades por meio de soluções computacionais. Um levantamento de dados bem realizado pode ser decisivo na qualidade do produto entregue, pois ele será responsável por mapear as funcionalidades previstas no sistema.
O profissional de desenvolvimento de software, conhecido nas comunidades de desenvolvimento como “Dev”, do inglês developer, objetivando alcançar os melhores resultados em seus algoritmos, necessita de um conhecimento abrangente das etapas do ciclo de vida básico do processo de engenharia de software. Essas etapas estão dividas em: análise de requisitos, análise de sistemas, projeto, implementação, teste de software, implantação e manutenção.
Dentro da metodologia da UML é necessário conhecer e compreender todas essas etapas.
A análise de requisitos é a primeira etapa a ser realizada no processo de desenvolvimento. É necessário mapear todas as funcionalidades que entrarão no sistema. Entrevistas, reuniões e acompanhamento da rotina do cliente são algumas técnicas utilizadas nessa etapa. Depois é hora de utilizar os Diagramas da UML que foram abordados em nossa disciplina para construir como serão desenvolvidas e mantidas as funcionalidades do sistema. Na etapa de projeto, define-se algumas tecnologias, como por exemplo o banco de dados e a linguagem de programação utilizada. Como estamos utilizando o paradigma de desenvolvimento orientado a objetos, essas linguagens devem atuar especificamente nesse paradigma.
Após toda essa etapa de levantamento e análise, é hora de desenvolver a aplicação. Passamos então para a etapa de Implementação do projeto, onde são realmente construídas a Interface com o usuário e a lógica do sistema, respectivamente o Front-End e o Back-End, termos definidos para a parte visual de interatividade com o usuário e a parte lógica, ou seja, o que realmente acontece por trás das telas quando o usuário pressiona um botão. A etapa de teste de software vem na sequência para garantir que uma bateria de testes específicas para o sistema seja realizada para cada funcionalidade, tela ou módulo da aplicação. Não havendo mais erros, o ciclo segue para a etapa de Implantação, etapa que vai se encarregar da disponibilização do sistema para o cliente. A disponibilização pode ser feita de várias formas, por e-mail, link para atualização ou até mesmo a inserção do sistema de modo físico ou remoto pela empresa de software. A implantação também é conhecida pelo termo em inglês deploy do sistema. Por fim, a última etapa do ciclo é a etapa de manutenção, que é responsável além da correção de bugs e falhas, pela customização de novas funcionalidades e por manter o sistema funcionando corretamente.
Na disciplina, o ciclo de vida básico do processo de engenharia de software é abordado, além de alguns conceitos da UML. Focamos na classe e seus atributos e operações, bem como, a associação de classes dentro de um diagrama de classe e os conceitos de herança e interface, que foram abordados na UML e também na implementação com a linguagem de programação Java.
Antes de iniciar qualquer rotina de desenvolvimento de software é preciso analisar detalhadamente o processo de negócio do cliente. Por meio da análise de requisitos, uma das etapas do ciclo de vida básico do processo de engenharia de software, pode-se constatar as deficiências do processo atual do cliente e assim melhorá-lo. Se faz extremamente necessário esse diagnóstico do processo atual, que também é conhecido como “As Is”, ou seja, como está rodando atualmente, para que depois possa implementar as melhorias desenvolvendo o novo modelo de processo conhecido também como “To Be”, como ficará após ser desenvolvido. Vale lembrar também que, quanto mais o profissional conhecer sobre o processo do cliente e sobre as etapas do processo de engenharia de e software, melhor será a qualidade do produto, impactando na sua credibilidade e satisfação do cliente.