Software Architecture: An Engineering Perspective
Introduction
Neste curso, vamos estudar princípios da Engenharia de Software através de técnicas ágeis altamente produtivas para desenvolver sistemas de informação na forma de SaaS. Espera-se que os alunos se deparem e compreendam os novos desafios e oportunidades de SaaS versus software empacotados por meio da aplicação de técnicas de desenvolvimento fundamentais para a concepção, análise, projeto, implementação, teste e implantação de um sistema de informação SaaS simples.
É importante ressaltar que esta é uma das poucas disciplinas do curso de SI que possibilita ao aluno um contato mais próximo e prático com as disciplinas relacionadas ao desenvolvimento de software propriamente dito, uma clara carência não só deste curso mas uma necessidade real do mercado de TI nacional e com muitas posições de trabalho em aberto o que demonstra uma clara carência de capital humano especializado.
É sabido que uma imersão prática em Engenharia de Software em um curso semestral (em torno de 15 semanas) com _Exercícios Escolares _intercalados, necessidades de aulas práticas de monitoria, revisões e um significativo projeto em times com data limite para conclusão é uma meta bastante ambiciosa.
Neste contexto, espera-se que os estudantes, para cursar esta disciplina com sucesso, estejam confortáveis com pelo menos uma linguagem de programação Orientada a Objetos e com os conceitos básicos da Orientação a Objetos (classes, herança, polimorfismo, sobrecarga, entre outros) e conceitos básicos de abstração e estrutura de dados (abstração de dados, abstrações de procedimentos / funções de alta ordem, recursão, tipos abstratos de dados, entre outros).
Antes desta disciplina, é importante ressaltar que os alunos de SI do CIn cursam “IF966 INTRODUÇÃO AOS SISTEMAS DE INFORMAÇÃO” (pré-requisito) que introduz os alunos aos principais conceitos e fundamentos dos Sistemas de Informação e da Tecnologia da Informação e Comunicação; “IF968 PROGRAMAÇÃO 1” (pré-requisito) que aborda os conceitos básicos de algoritmos, estruturas de dados dinâmicas, técnicas de construção de algoritmos e alguns breves conceitos de complexidade de algoritmos, usualmente em Java mas com experiências feitas utilizando Python (são duas turmas, onde a turma com os “reprovados” trabalham com Python como uma experiência em verificar qual o impacto de já iniciar com Java e suas complexidades atrapalha na absorção do conteúdo); e, “IF969 ALGORITMOS E ESTRUTURA DE DADOS” (obrigatória do curso) utilizando Java que conforme o nome diz, trata dos algoritmos e estruturas de dados. A IF968 e a IF969 são as únicas disciplinas do curso que tratam de algoritmos e programação e juntamente com a IF977 formam a trilha de disciplinas obrigatórias para trabalhar o desenvolvimento de software propriamente dito.
Existem ainda disciplina (co)relacionadas como:
No próximo post tratarei do projeto propriamente dito do curso, ou seja, o programa da disciplina. Quais os principais temas, como eles serão tratados, o ciclo de vida do conhecimento dentro do framework do curso e o que eu imagino enfrentar de desafios e os riscos envolvidos!
Espero não demorar tanto para o próximo post, mesmo porque o semestre atual está no fim e a disciplina tem que ficar pronta logo!
Leave a Comment