1. que é software?
Comente sobre seus componentes e diferencie-o de um programa de
computador. Software é um conjunto de instruções que orientam um computador a realizar
tarefas específicas. Ele é composto por diversos componentes:
Código-fonte: conjunto de instruções escritas em uma linguagem de programação.
Dados: informações processadas pelo software.
Documentação: informações sobre o software, como manual do usuário e documentação
técnica.
O software se diferencia de um programa de computador por ser um conceito mais amplo. Um
programa é um conjunto específico de instruções que executa uma tarefa específica, enquanto o
software abrange todo o conjunto de elementos que permitem o funcionamento de um sistema
computacional, incluindo programas, dados e documentação.
2. A Engenharia de Software se diferencia de outras áreas com as quais se confunde por alguns
pontos chave:
Foco:
Engenharia de Software: Aplica princípios da engenharia para projetar, construir, testar e manter
softwares. O foco está na praticidade e na eficiência do software, atendendo às necessidades
dos usuários.
Outras áreas:
Ciência da Computação: Busca compreender os fundamentos teóricos da computação, como
algoritmos, linguagens de programação e arquitetura de computadores. O foco está na teoria e
na pesquisa.
Ciências da Informação: Estuda a organização, armazenamento, recuperação e uso da
informação. O foco está na gestão e no acesso à informação.
Sistemas de Informação: Projeta, implementa e gerencia sistemas de informação que atendem
às necessidades de uma organização. O foco está na integração de tecnologia e processos de
negócio.
3. O que é Engenharia de Software?
A engenharia de software é uma disciplina que aplica princípios de engenharia ao
desenvolvimento de software. Ela visa criar software de alta qualidade que seja eficiente,
confiável e atenda às necessidades dos usuários.
4. O que é Produto de Software?
Um produto de software é um software completo e pronto para ser utilizado por um usuário.
Ele pode ser um aplicativo, um sistema operacional, um website ou qualquer outro tipo de
software.
5. “Engenheiros de software preocupam se com o desenvolvimento de produtos de software. ”
Quais são os tipos de produto de software que existem? Dê exemplos.
Existem diversos tipos de produtos de software, como:
Aplicativos: programas que executam tarefas específicas, como editores de texto, jogos,
navegadores web e softwares de gerenciamento.
Sistemas operacionais: controlam o funcionamento básico do computador e gerenciam os
recursos do sistema.
Linguagens de programação: ferramentas para criar outros programas.
Sites e aplicações web: programas acessíveis através de um navegador web.
Sistemas embarcados: softwares que controlam o funcionamento de dispositivos eletrônicos,
como carros, eletrodomésticos e smartphones.
6. Fale da crise de software
A crise de software foi um período na década de 1960 e 1970 em que os projetos de software
frequentemente falhavam ou excediam significativamente o orçamento e o tempo previsto. Isso
levou à necessidade de novas metodologias e ferramentas para o desenvolvimento de software.
7. O que torna um projecto de software diferente de projectos de outras áreas de engenharia? Os
projetos de software são diferentes de projetos de outras áreas de engenharia por diversos
motivos:
Intangibilidade: o software é um produto intangível, o que dificulta sua avaliação e teste.
Complexidade: o software pode ser extremamente complexo, com milhões de linhas de código
e interdependências entre diferentes componentes.
Mudança: o software precisa ser constantemente atualizado para se adaptar a novas
tecnologias e às necessidades dos usuários.
8. Por que motivos a engenharia de software é importante?
A engenharia de software é importante porque permite o desenvolvimento de software de alta
qualidade que é essencial para o funcionamento da sociedade moderna. O software é utilizado
em diversos setores, como saúde, finanças, transporte e comunicação.
9. O que são problemas fundamentais e acidentais da Engenharia de Software?
Os problemas fundamentais da engenharia de software são aqueles que são inerentes ao
desenvolvimento de software, como a complexidade, a alterabilidade e a invisibilidade.
Os problemas acidentais da engenharia de software são aqueles que são causados por fatores
externos, como a falta de comunicação entre os membros da equipe de desenvolvimento ou a
falta de requisitos claros.
10. Mencione os atributos de um bom software. Confiabilidade, Eficiência, Facilidade de
Manutenção, Facilidade de Uso, Portabilidade, Reusabilidade, Segurança, Efetividade,
Flexibilidade.
11. Defina o conceito de sistema.
Um sistema é um conjunto de elementos interdependentes que trabalham juntos para alcançar
um objetivo comum.
12. Mencione e descreva as actividades fundamentais de Engenharia de Software.
Engenharia de Requisitos Design de Software Codificação Teste de Software
Manutenção de Software
13. O que é um processo de desenvolvimento de software?
Um processo de desenvolvimento de software é um conjunto de atividades, métodos, práticas e
transformações que são usados para desenvolver e evoluir software.
14. O que são métodos ágeis?
Os métodos ágeis servem para adaptar o modo de trabalho às condições de um projeto,
garantindo maior flexibilidade e rapidez à sua execução. Eles são fruto da Cultura Ágil, conjunto
de ideias e práticas que visam a acelerar a inspeção, adaptação, correção e entrega, atendendo
assim às demandas do cliente e da empresa.
15. Diferenças entre XP, Scrum e outros metos:
O Scrum define uma abordagem para gerenciamento de projetos considerando um processo de
desenvolvimento iterativo e incremental. Já o XP define uma metodologia ágil com foco nas
atividades de desenvolvimento para pequenas e médias equipes.
16. O processo de engenharia de software
é uma abordagem sistemática para o desenvolvimento, operação e manutenção de software. Ele
envolve a aplicação de princípios de engenharia para o software, garantindo que o produto final
atenda aos requisitos de qualidade, desempenho e confiabilidade.
O processo de engenharia de software geralmente inclui as seguintes etapas:
1. Especificação de Requisitos: Compreensão e documentação dos requisitos do software.
2. Projeto de Software: Planejamento da arquitetura e estrutura do software.
3. Implementação: Codificação e desenvolvimento do software com base nos requisitos e
projeto.
4. Teste: Verificação e validação do software para garantir que ele funcione conforme o
esperado.
5. Manutenção: Atualização e correção do software após a implantação.
17. A gestão de assistência de suporte técnico
é um aspecto importante da engenharia de software, e os casos de uso são uma ferramenta
essencial para capturar e documentar os requisitos do sistema. Aqui está um exemplo
simplificado de um caso de uso para a gestão de assistência de suporte técnico.
18. qual eh o processo de diagrama( e processo que ocorre quando passa de uma frase para outra)
Em engenharia de software, os diagramas são frequentemente usados para representar
visualmente a estrutura e o comportamento de um sistema de software. Alguns tipos comuns de
diagramas incluem diagramas de caso de uso, diagramas de classes, diagramas de sequência,
diagramas de atividades, entre outros. Cada tipo de diagrama tem um propósito específico e
ajuda a comunicar aspectos diferentes do sistema em desenvolvimento.
19. saber modelar resulta em diagramas e que modelacao faz se em cada processo? exemplo
diagrama de cado de sequencia.
a modelagem frequentemente resulta na criação de diagramas para representar visualmente os
processos, estruturas e comportamentos de sistemas ou conceitos. Cada tipo de modelagem
pode envolver a criação de diferentes tipos de diagramas para ilustrar aspectos específicos. Por
exemplo:
Modelagem de Sequência:
- Ao modelar o comportamento dinâmico de um sistema, os desenvolvedores podem criar
"Diagramas de Sequência" para representar a interação entre objetos em uma determinada
sequência temporal, mostrando como as mensagens são trocadas entre eles.
20. o que faz parte da engenharia de software?
A engenharia de software abrange um conjunto de disciplinas e práticas relacionadas ao
desenvolvimento e manutenção de sistemas de software. Alguns dos principais aspectos que
fazem parte da engenharia de software incluem:
1. Análise de Requisitos: Compreensão e documentação das necessidades dos usuários para o
sistema de software a ser desenvolvido.
2. Projeto de Software: Planejamento e elaboração da arquitetura, estrutura e componentes do
sistema, incluindo a definição de interfaces e interações entre os módulos.
3. Programação e Codificação: Implementação do software com base nas especificações e no
projeto estabelecido, utilizando linguagens de programação e boas práticas de codificação.
4. Testes de Software: Verificação e validação do software para garantir que ele atenda aos
requisitos e funcione conforme o esperado, incluindo testes unitários, de integração, de sistema,
entre outros.
5. Gestão de Configuração: Controle das mudanças no software, documentação associada e
gerenciamento das versões do sistema.
6. Gestão de Projetos: Coordenação das atividades, recursos e prazos relacionados ao
desenvolvimento do software, incluindo planejamento, execução e controle do projeto.
7. Qualidade de Software: Aplicação de padrões e processos para garantir a qualidade do
software produzido, incluindo revisões técnicas, análise estática, entre outros.
8. Manutenção de Software: Atividades realizadas após o lançamento do software para corrigir
defeitos, melhorar o desempenho ou adicionar novas funcionalidades.
21. o que sao requisitos?
são descrições formais e informais das funcionalidades, características e restrições que um
sistema de software deve atender para satisfazer as necessidades dos usuários, clientes ou
outras partes interessadas. Eles são fundamentais para guiar o processo de desenvolvimento de
software e garantir que o produto final atenda às expectativas e requisitos específicos.
22. quais sao os tipos de requisites que conhece e em que consiste cada uma delas?
1. Requisitos Funcionais:
- Consistem nas funções específicas que o sistema deve executar, descrevendo as ações que o
sistema precisa ser capaz de realizar para atender às necessidades dos usuários. Por exemplo, "o
sistema deve permitir que os usuários cadastrem novos clientes".
2. Requisitos Não Funcionais:
- Referem-se a atributos de qualidade do sistema, como desempenho, segurança, usabilidade e
confiabilidade. Eles descrevem as restrições e condições sob as quais o sistema deve operar. Por
exemplo, "o sistema deve ser capaz de processar 1000 transações por segundo".
3. Requisitos de Interface:
- Descrevem as interações entre o sistema em desenvolvimento e outros sistemas ou
componentes externos, incluindo hardware, software ou usuários. Por exemplo, "o sistema deve
ser capaz de se integrar com um sistema de pagamento externo".
4. Requisitos de Usuário:
- Representam as necessidades e expectativas dos usuários finais em relação ao sistema. Eles
são frequentemente expressos na linguagem do usuário final e ajudam a garantir que o sistema
atenda às expectativas dos principais stakeholders.
5. Requisitos de Sistema:
- Descrevem as necessidades do sistema como um todo, incluindo suas interfaces externas,
funcionalidades e restrições operacionais.
6. Requisitos Regulatórios:
- Refletem os requisitos impostos por regulamentos governamentais, padrões da indústria ou
outras normas legais que o sistema deve cumprir.
23. o que eh um modelo de processos de desenvovimento de software?
Um modelo de processo de desenvolvimento de software é uma representação abstrata das
atividades, tarefas e interações necessárias para desenvolver um sistema de software. Ele
descreve as etapas pelas quais um projeto de software passa, desde a concepção até a entrega e
manutenção, e fornece um guia para a organização e execução dessas atividades.
Os modelos de processo de desenvolvimento de software são essenciais para garantir que as
práticas de engenharia de software sejam consistentes, repetíveis e eficazes. Eles ajudam as
equipes de desenvolvimento a entender o fluxo de trabalho, identificar dependências entre as
atividades e gerenciar os recursos de forma eficiente.