Disciplina Discipline MAC5783
Engenharia de Software

Software Engineering

Área de Concentração: 45134

Concentration area: 45134

Criação: 22/06/2023

Creation: 22/06/2023

Ativação: 22/06/2023

Activation: 22/06/2023

Nr. de Créditos: 8

Credits: 8

Carga Horária:

Workload:

Teórica

(por semana)

Theory

(weekly)

Prática

(por semana)

Practice

(weekly)

Estudos

(por semana)

Study

(weekly)

Duração Duration Total Total
4 2 4 12 semanas 12 weeks 120 horas 120 hours

Docentes Responsáveis:

Professors:

Ana Cristina Vieira de Melo

Paulo Roberto Miranda Meirelles

Objetivos:

Compreender as atividades que compõem o processo de desenvolvimento de software e seus propósitos. Estudar a aplicação dos princípios da gestão das atividades e seu impacto no andamento do projeto e no produto final para desenvolvimento com qualidade e agilidade de sistemas de software inovadores com alto grau de complexidade. Os participantes dessa disciplina atuarão em atividades práticas e técnicas ao longo do curso, propiciando também a experimentação prática dos conteúdos.

Objectives:

The students will understand the activities that make up the software development process and their purposes. They will study the application of activity management principles and their impact on project progress and the final product for developing innovative software systems with high complexity, ensuring quality and agility. Participants in this discipline will engage in practical and technical activities throughout the course, providing hands-on experimentation with the content.

Justificativa:

Sistemas de software estão cada vez mais complexos, tanto do ponto de vista técnico quanto social, e capazes de usar grandes conjuntos de máquinas distribuídas, por exemplo, para coletar, armazenar e processar grandes quantidades de dados. O estudo das técnicas e ferramentas da Engenharia de Software, que está cada vez mais próxima das fronteiras com outras áreas da computação como a Inteligência Artificial, também compreende a evolução e inovação das arquiteturas dos projetos de software e as melhores práticas de desenvolvimento, em especial difundidas pelos métodos ágeis e comunidades de software livre, adotadas amplamente pela indústria de software.

Rationale:

Software systems are becoming increasingly complex from a technical and social perspective. They are capable of utilizing large sets of distributed machines, for example, to collect, store, and process vast amounts of data. The study of techniques and tools in Software Engineering, which is increasingly close to the boundaries of other computer science areas such as Artificial Intelligence, also encompasses the evolution and innovation of software project architectures and best development practices, especially those popularized by agile methods and free/open-source software communities, widely adopted by the software industry.

Conteúdo:

Modelos de ciclos de vida e processos de desenvolvimento. Boas práticas e agilidade no desenvolvimento de software. Gestão de projetos, planejamento e estimativas modernas de desenvolvimento de software. Análise e especificação de requisitos. Modelagem, Projeto design) e Padrões de projeto. Arquitetura de Software, padrões e estilos arquiteturais. Verificação, validação e testes. Gerenciamento de configurações. Manutenção e evolução de software, incluindo qualidade do produto e métricas de código-fonte. Ecossistema do software livre e práticas de desenvolvimento colaborativo e equipes distribuídas. Tópicos atuais de Engenharia de Software, por exemplo, Engenharia de Software para Pesquisa ("Research Software Engineering") e Engenharia de Software Sustentável (relacionado a "green software").

Content:

Software development life cycles and processes. Best practices and agility in software development. Project management, planning, and modern software development estimation. Requirements analysis and specification. Modeling, Design, and Design Patterns. Software architecture, architectural patterns, and architectural styles. Verification, validation, and testing. Configuration management. Software maintenance and evolution, including product quality and source code metrics. The ecosystem of free/open-source software, collaborative development practices, and distributed teams. Current topics in Software Engineering, such as Research Software Engineering and Sustainable Software Engineering (related to "green software").

Forma de Avaliação:

A avaliação será realizada através de seminários, projetos e provas. A nota final será calculada pela média obtida pelo aluno nos instrumentos de avaliação. Nas duas primeiras semanas de aula o docente fixará as datas e o número de provas, projetos e seminários, assim como o critério de atribuição do conceito final.

Type of Assessment:

The evaluation will be carried out through seminars, projects and tests. The final grade will be calculated by mean obtained by the student in the assessment instrument. In the first two weeks of class, the teacher will set the dates and number of tests, projects and seminars, as well as the criteria for attributing the final letter grade.

Bibliografia:

1- Valente, Marco Tulio. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020. 2- Alistair Cockburn, Agile Software Development: The Cooperative Game, 2nd Edition, Addison-Wesley Professional, 2006. 3- Larman, Craig. Utilizando UML e Padrões, 3a edição, ISBN 8560031529, 2007. 4- Aniche, Maurício F. Effective software testing : a developer's guide. Shelter Island, NY, Manning, 2022. 5- Martin, Robert C. and Coplien, James O.. Clean code: a handbook of agile software craftsmanship. Upper Saddle River, NJ [etc.]: Prentice Hall, 2009. Bibliografia Complementar: 6- Frederick, Brooks P. The mythical man-month essays on software engineering. Boston Addison-Wesley Munich u.a. 2009 7- Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change (2nd Edition),Addison-Wesley Professional, 2004. 8- Kon et al. Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de Negócio. Em: Jornada de Atualização em Informática da SBC. 2011. Disponível em http://ccsl.ime.usp.br/pt-br/publicacao/2011/software-livre-e-propriedade-intelectual-aspectos- juridicos-licencas-e-modelos. 9- Chue Hong, N. P., Katz, D. S., Barker, M., Lamprecht, A-L, Martinez, C., Psomopoulos, F. E., Harrow, J., Castro, L. J., Gruenpeter, M., Martinez, P. A., Honeyman, T., et al. (2022). FAIR Principles for Research Software version 1.0. (FAIR4RS Principles v1.0). Research Data Alliance. DOI: https://doi.org/10.15497/RDA00068 10- Pressman, Roger S. e Maxim, Bruce. Engenharia de Software: uma abordagem profissional. Mcgraw Hill - Artmed, 2016.

Bibliography:

1- Valente, Marco Tulio. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020. 2- Alistair Cockburn, Agile Software Development: The Cooperative Game, 2nd Edition, Addison-Wesley Professional, 2006. 3- Larman, Craig. Utilizando UML e Padrões, 3a edição, ISBN 8560031529, 2007. 4- Aniche, Maurício F. Effective software testing : a developer's guide. Shelter Island, NY, Manning, 2022. 5- Martin, Robert C. and Coplien, James O.. Clean code: a handbook of agile software craftsmanship. Upper Saddle River, NJ [etc.]: Prentice Hall, 2009. Bibliografia Complementar: 6- Frederick, Brooks P. The mythical man-month essays on software engineering. Boston Addison-Wesley Munich u.a. 2009 7- Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change (2nd Edition), Addison-Wesley Professional, 2004. 8- Kon et al. Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de Negócio. Em: Jornada de Atualização em Informática da SBC. 2011. Disponível em http://ccsl.ime.usp.br/pt-br/publicacao/2011/software-livre-e-propriedade-intelectual-aspectos- juridicos-licencas-e-modelos. 9- Chue Hong, N. P., Katz, D. S., Barker, M., Lamprecht, A-L, Martinez, C., Psomopoulos, F. E., Harrow, J., Castro, L. J., Gruenpeter, M., Martinez, P. A., Honeyman, T., et al. (2022). FAIR Principles for Research Software version 1.0. (FAIR4RS Principles v1.0). Research Data Alliance. DOI: https://doi.org/10.15497/RDA00068 10- Pressman, Roger S. e Maxim, Bruce. Engenharia de Software: uma abordagem profissional. Mcgraw Hill - Artmed, 2016.

Tipo de oferecimento da disciplina:

Presencial

Class type:

Presencial