Oi e aí meus amigos tudo bem com vocês sejam bem-vindos a esse primeiro vídeo de engenharia de software que vai falar sobre aspectos iniciais dessa disciplina Eu sou professor Thiago Jabor e fiz esse material em conjunto com a professora Luana Lobato a engenharia de software pode ser definida como a aplicação de abordagens sistemáticas econômicas e quantificáveis para o desenvolvimento operação e também a manutenção de um software de qualidade Então os profissionais da engenharia de software é realizam as suas técnicas de modo organizado e profissional com ferramentas técnicas e métodos adequados Então tudo vai se dar
de acordo com o problema a ser solucionado as restrições e desenvolvimento e principalmente dos recursos disponíveis Principalmente aqueles referentes aos custos E aí em um ambiente de produção de software Vale ressaltar que ele é bem complexo porque envolve várias pessoas trabalhando de modo simultâneo e elas têm que ser controladas esse trabalho precisa ser motivado efeito de uma maneira muito organizada porque são feitas muitas linhas de código milhares de linhas e também de documentos que inclui vários diagramas que tem alta complexidade e precisam seguir para que tenhamos um resultado compatível e adequado a qualidade ideal de
software bom então a engenharia de software tem como objetivos o controle sobre o desenvolvimento do software dentro de custos prazos e níveis de qualidade desejados Então as organizações elas querem ter previsibilidade e chegar ao fim do tempo estimado do projecto e ter o resultado ideal é bom então nós teremos assim produtividade no desenvolvimento operação e manutenção do Sol então a engenharia de software ela se refere a uma metodologia que trabalha no desenvolvimento de software por grupos ao invés de indivíduos às vezes a gente tá muito acostumado a programar sozinho então a gente não tem ideia
de como funciona nas organizações então tenho em mente equipes trabalhando sobre o mesmo código e tem que dar um resultado previsível e com produtividade de uma organização Então a gente vai aplicar princípios da engenharia é a ciência bem exata para ter o resultado a ideia de arte e de soluções heróicas a nossa ideia aqui é ter o trabalho com grande profissionalismo e controle e Aqui nós temos uma diferença que é super importante falar nesse nível da engenharia de software nesses aspectos iniciais que é a questão do programador versus o engenheiro de som o programador é
aquele que codifica que tem algum alguma documentação ele pega e transforma no código é uma maneira até antiga de chamar o profissional porque hoje nas empresas nós temos software sendo feito de alta complexidade por engenheiro de software e eles trabalham em equipe é muita das vezes nas metodologias mais atuais já ficam bem próximos aos usuários eles coletam os requisitos trabalham com cronograma fazem reuniões da equipe Então tem um aspecto de trabalho em equipe que tem que ser visto a inteligência emocional a questão de leitura dos bom então o aspecto geral aqui da sede da computação
é visto de um modo muito mais complexo do que a simples programação tão que temos a foto do programador fazer na sua qualificação e de um engenheiro de software Na verdade são vários Engenheiros de sódio Oi e o quê que seria um software de qualidade é aquele que satisfaz os requisitos que o usuário deseja então Além disso ele deve ser fácil de manter porque ele vai precisar de modificações ao longo do tempo isso é natural ter boa performance não adianta ele realizar o que o usuário quer e se demorado ou é ao longo do tempo
ele dá problema travar quando a gente chama então isso também faz parte da confiabilidade e ser fácil de usar se o usuário não consegui usar não adianta e alguns outros atributos então de qualidade manutenabilidade como eu já falei aqui eficiência só que não deve desperdiçar os recursos do sistema e você faça usar tendo usabilidade e vamos agora dar um exemplo de um software para o varejo sofrem de vendas então ele tem que ser correto a loja não pode deixar de cobrar pelos produtos comprados pelo consumidor então ele tem que somar os produtos esse sofre e
dá o resultado certo então todas as contas todos os cálculos tem que ser corretos e ele tem que ser robusto E altamente disponível Ou seja a loja não pode parar gente não pode ficar na fila por um sistema que está fora do ar como é dito aí é informalmente você já passaram por isso pessoal vir algum software que parou e vocês tiveram que esperar coloque aí nos comentários E além disso o software deve ser eficiente é sendo rápido executando as funções é com pouco recurso computacional então o sistema operacional deve trabalhar com folga vai trabalhar
tranquilamente para oferecer os recursos do aplicativo Além disso nesse exemplo aqui ele deve ser fácil de usar então a empresa vai conomizar em treinamento o software vai ser intuitivo ele tem que ser altamente extensível e adaptável seja é a medida que novos requisitos vão surgindo e na prática é isso que acontece o sofre têm que incorporar o recurso a partir da implementação e também reusável a várias empresas tem que usar esse mesmo o sistema ou parte dele isso vai trazer economia porque para fazer um software direcionado a um caso específico vai ficar caro a gente
vai ver isso também daqui a pouquinho a outra questão em relação a esse software para o varejo ele tem que ser aberto compatível de fácil integração com outros sistemas então se a empresa comprar o impressora fiscal tem que funcionar tem que funcionar com servidores para gravar informação com os aplicativos de rede e entre outros vários aplicativos que deve haver a compatibilidade ele tem que ser portável independente de plataforma imagine-se em uma atualização de Windows a mudança de sistema é todo todo o aplicativo deve ser refeito isso aí na prática não pode acontecer E além disso
ele tem que ser de baixo custo de instalação e de atualização porque a empresa tem um grande número de pontos onde ele aplica Esse sistema é é sobre a forma de trabalho a engenharia de software prega a produtividade então é o principal curso custo das empresas é com seus colaboradores Então essas horas de desenvolvimento tem um custo alto então você tem que produzir software de um modo ágil e isso vai ser mais barato então esse sofre vai ficar um software de bom custo-benefício Para isso precisamos ter um tempo de desenvolvimento reduzido e um suporte rápido
às necessidades do mercado então tô precisando de um requisito Então logo eu tenho que dar conta de atender essa funcionalidade que é exigida no sistema é só para o sócio é barato Como disse anteriormente vou explicar um pouco mais é difícil na prática a gente ter softer barato mas o que que é normalmente feito os cursos são diluídos entre vários clientes Então você desenvolve é para uso em massa no mesmo domínio no mesmo mercado então por isso a gente fala em reuso e sensibilidade e adaptabilidade são essenciais no nosso mercado para uma distribuição no custo
é reduzido no custo a de 41 bom então o quê que pode acontecer com software mal feito coloque aí também nos comentários hein Olha só esse barco aqui ou ilustração bem interessante tá afundando tem que tirar água no meio do caminho aqui o exemplo também de um barco bem maior então se você não faz bem feito na hora de usar o seu software você tem vários problemas então nós devemos evitar isso como com profissionalismo com a engenharia de software para agregar qualidade no seu sócio e bom então e a Gere software se preocupa com essa
qualidade com produtividade então nós precisamos de segurança de pessoas competitividade das empresas e disponibilidade de serviços essenciais então a qualidade o software vai garantir tudo isso é mas na prática houve a crise do software que que significa essa crise que pode acontecer tem algumas empresas que ainda não adotam engenharia de software isso aconteceu é um tempo atrás e os projetos foram cancelados foi o que motivou todo o trabalho de engenharia de software o tempo desenvolvimento é bem maior do que o previsto o sistema depois não funciona como planejado a manutenção é feita de modo caótico
difícil com pouco reuso e com problemas graves de complexidade complexidade do sistema e é quais são as causas então da crise do software a essa complexidade dos sistemas cada vez requisitos mais difíceis de implementar são exigidos no sistema dificuldade de escrever de formalizar esses requisitos e também a má qualidade nos métodos nas linguagens e ferramentas estão é preciso Um profissionalismo e também uma evolução das Ferramentas o que tem melhorado muito e ainda falta de qualidade técnica Então as organizações elas tem que investir em Treinamentos e vocês aí tem que se capacitar nas novas metodologias e
também aprender novas ferramentas ferramentas atuais e de boa qualidade a fim de garantir um sucesso nessa implementação tão difícil que é o softer é que é necessário na prática hoje em dia G1 dá para devolver o sorte nós temos vários ciclos de vida e nesse processo de desenvolvimento então quê que esse modelo de ciclo de vida é uma representação abstrata e simplificada do processo de trabalho de desenvolvimento de software mostrando as principais atividades e as informações utilizadas na produção e manutenção de software Então tudo é feito em etapas com base em modelos previamente vistos 1
os principais modelos de ciclo de vida de software são o Cascata e os modelos interativos desse conjunto gente pode exemplifi Car o espiral e uma incremental vou explicar agora o Cascata o Cascata em se inicia com a definição dos requisitos projeto de software Daí vem o desenvolvimento codifi cação depois a gente testa implanta libera esse soft para uso nem tanto foi visto que essas fases não são tão fixas assim então na prática é o fluxo aqui na imagem anterior era só de ida aqui ó ele vai e volta ele pode acontecer de uma maneira bem
mais complexo e por isso até que a evolução nos trouxe os modelos interativos que já prevêem que todo os requisitos todos os requisitos eles evoluem eles mudam ao longo do tempo e seu processo têm que incorporar essa mudança de requisitos de uma maneira natural o a equipe os devedores eles não podem falar assim nossa eu não vou aceitar essa mudança agora tá tudo pronto não porque isso vai acontecer sempre ele tem que fazer de uma maneira adaptável então para isso nós temos o desenvolvimento espiral e uma incremental a minha do espiral aquele que tem um
desenho parecido uma espiral vou mostrar incorporando aspectos gerenciais no processo como a parte de análise de riscos planejamento controle e tomada de decisão tão em vários momentos nós vamos analisar os riscos prever possíveis ações de mitigação e contenção Então esse processo representado parecido como uma forma de espiral 1 e é e cada volta na espiral nós temos uma fase no processo não tendo fases fixas e os riscos Como eu disse anteriormente são avaliados ao longo do processo aí o desenho chegamos nele então Aqui nós temos é espiral e o texto aqui fala cada item da
espiral como planos planos de desenvolvimento integração testes a parte decodificação isso vai avançando se você for percorrendo a sua espiral 1 e no teu meto incremental Então em vez de entregar o sistema como um todo você vai entregando incrementos com funcionalidades específicas que vão evoluindo que vão se somando onde os requisitos dos usuários são priorizados Então você consegue ver as interfaces e momentos preliminares momentos anteriores prioritários uma vez que esse desenvolvimento é iniciado os requisitos são congelados pelo menos nessa parte desse início nessas fases então vezes quiser evoluir mais são incorporados em novas falas e
é para o trabalho da série software nós temos o apoio de várias ferramentas e elas são chamadas de ferramentas que estamos tem que escolher boas ferramentas e adotar os seus processos provendo então suporte a codifi cação análise de requisitos a manutenção entre outras etapas em alguns exemplos estão aqui e hoje nessas partes iniciais nós encerramos gostaria de agradecer audiência de vocês solicitar o like e que se inscreva no canal um abraço