ENGENHARIA DE SOFTWARE
ATIVIDADES COMPLEMENTARES
ENGENHARIA DE SOFTWARE
ATIVIDADES COMPLEMENTARES
M贸dulo | 3 Cap铆tulo | Engenharia de software Autor | Geanderson Ferreira Machado MiniCV |
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
_____________________________________________________________________________________________ SUMÁRIO 1 ATIVIDADES COMPLEMENTARES ....................................................... 1 1.1 ATIVIDADES COMPLEMENTARES | AULA 01 ................................... 1 1.2 ATIVIDADES COMPLEMENTARES | AULA 02 ................................... 3 1.3 ATIVIDADES COMPLEMENTARES | AULA 03 ................................... 5 1.4 ATIVIDADES COMPLEMENTARES | AULA 04 ................................... 6 1.5 ATIVIDADES COMPLEMENTARES | AULA 05 ................................... 8 2 APÊNDICE ...................................................................................... 10 2.1 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 01 ............ 10 2.2 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 02 ............ 12 2.3 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 03 ............ 14 2.4 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 04 ............ 16 2.5 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 05 ............ 19
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES _______________________________________________________________________
1
ATIVIDADES COMPLEMENTARES
1.1 ATIVIDADES COMPLEMENTARES | AULA 01 Realize estas atividades complementares e teste seu conhecimento: 01) Desde sua origem, qual o principal objetivo da engenharia de software? 02) Defina o que é SWEBook, e para que serve. 03) Desde o surgimento do termo Engenharia de software até o surgimento de um guia de conhecimento sobre o assunto, quanto tempo se passou? 04) Tendo como base o mundo da computação, onde tudo é muito rápido e dinâmico, apresente sua opinião sobre o tempo decorrido entre o surgimento da engenharia de software e a criação de um guia, a qual motivo você atribuiria tal velocidade no processo? 05) Com base no sumário do SWEBook, apresente uma lista dos conhecimentos, que em seu julgamento, deverão ser indispensáveis na sua formação como profissional da área de informática, apresente seus resultados para a sala, e com auxílio do professor discuta sobre o tema. 06) Faça uma pesquisa, internet, livros, artigos científicos, e apresente em formato de relatório, a diferença entre método e metodologia. 07) De volta em 1957, você foi contratado para auxiliar no processo de cálculo do consumo de água na cidade de São Paulo, o primeiro computador a desempacar no Brasil está em suas mãos, descreva quais otimizações você faria em software, visando minimizar esforços e buscando reutilização do desenvolvido em futuros computadores.
Página 1
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES _______________________________________________________________________
08) Imaginando que você foi avisado um pouco antes de retornar para 1957, construa um guia que demostre a evolução das maquinas, desde a data definida, até os computadores modernos, faça um relatório bastante detalhado, pois seu sucesso no cálculo do consumo de água em 1957, poderá ocasionar na minimização dos efeitos da seca do ano de 2015. 09) Em relação ao assembly, quais as vantagens das linguagens compiladas de nível mais auto? 10) Sendo o COBOL uma linguagem muito antiga, você acredita que ela ainda é utilizada no mercado? Justifique sua resposta.
Página 2
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
1.2 ATIVIDADES COMPLEMENTARES | AULA 02 Realize estas atividades complementares e teste seu conhecimento: 01) Faça uma pesquisa de mercado e apresente qual segmento, ou quais seguimentos utilizam linguagem de programação COBOL, faça uma pesquisa de mercado e apresente cargos e salários de profissionais de tal tecnologia. 02) Qual foi o objetivo principal ao se desenvolver o primeiro sistema operacional? 03) Quais características determinaram os primeiros sistemas operacionais como sendo sistema multitasking? 04) O que é um sistema operacional de time-sharing? 05) Ao que se refere o termo WORA? 06) Com base no modelo anterior ao WORA, apresente em sua opinião as principais vantagens. 07) O sistema /360 da IBM teve iniciou com uma quantidade grande de desenvolvedores, e com o passar do tempo esse time apenas cresceu, de que forma você acredita que este fato, crescimento da equipe, possa ter contribuído para eventuais problemas com a entrega? 08) O que prega a Lei de Moore? 09) Qual foi o fim empregado pelo primeiro “worm” da história da computação?
Página 3
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
10) Cite
algumas
empresas
que
tem
como
objetivo
principal
a
produção/desenvolvimento de software e que tiveram sua origem em meados dos anos 70.
Página 4
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
1.3 ATIVIDADES COMPLEMENTARES | AULA 03 Realize estas atividades complementares e teste seu conhecimento: 01) Qual empresa domina atualmente o mercado de software para PCS? Qual é o principal software? 02) Faça uma pesquisa e apresente um relatório sobre a história da Microsoft e sua evolução. 03) Com qual objetivo surgiu a BSA (Bussiness Software Alliance)? 04) Ao que se refere o termo Cloud Computing? 05) Descreva o termo Iaas ou Infra-estrutura como Serviço e apresente alguns exemplos de empresas que trabalham com este modelo de negócio. 06) Descreva o termo SaaS Software como Serviço e apresente alguns exemplos de empresas que trabalham com este modelo de negócio. 07) Descreva o termo PaaS ou Plataforma como Serviço e apresente alguns exemplos de empresas que trabalham com este modelo de negócio. 08) Faça uma pesquisa sobre a história do Linux e apresente algumas de suas atuais distribuições. 09) Qual entidade é responsável por coordenar o desenvolvimento do navegador Mozilla Firefox? Com base em que navegador ele nasceu? 10) Quais são as etapas do Processo de Desenvolvimento de Software no Método Clássico ou Em Cascata?
Página 5
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
1.4 ATIVIDADES COMPLEMENTARES | AULA 04 Realize estas atividades complementares e teste seu conhecimento: 01) Descreva em detalhes as etapas de Teste e codificação. 02) Com base no que foi estudado, apresente o método de medição de projeto definido como LOC, Linhas de Código. 03) Com base no que foi estudado, apresente o método de medição de projeto definido como Ponto de função. 04) Quais propostas foram trazidas pelo paradigma da Programação Estruturada? 05) Quais propostas foram trazidas pelo paradigma da Programação Orientada a objetos? 06) Você ficou encarregado de iniciar o desenvolvimento de um projeto na sua empresa, e a sua primeira tarefa será definir qual paradigma de programão será utilizado. Para isso você deverá apresentar vantagens e desvantagens sobre o paradigma escolhido. 07) Faça uma pesquisa e apresente em formato de relatório os paradigmas de programação encontrados, apresente pontos positivos e negativos sobre cada um. 08) O que é e como são utilizados os DFDs? 09) Pensando em um sistema que faça controle dos alunos, salas, cursos e professores de uma escola, modele esse sistema, documente as regras
Página 6
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
e defina o funcionamento do sistema. 10) Com base nas regras definidas crie um DFD.
Pรกgina 7
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
1.5 ATIVIDADES COMPLEMENTARES | AULA 05 Realize estas atividades complementares e teste seu conhecimento: 01) Agora com base em todas as informações levantadas desenvolva o modelo ER (entidade relacional). 02) Você foi contrato para desenvolver um SGBD novo para uma grande empresa
do
mercado.
Defina
quais
as
funcionalidades
ele
necessariamente deve ter, existe alguma que você gostaria de adicionar? 03) Qual o conceito básico do Desenvolvimento Iterativo? 04) De que forma Prototipação beneficia um projeto de software? 05) O que prega o Manifesto para Desenvolvimento Ágil de Software? Pode ser considerado um método? 06) Defina qual o papel dos Stakeholder nas metodologias ágeis e nas anteriores. 07) Para que é utilizado o CMMI, e como funciona o seu modelo de qualificação? 08) Apresente
os
modelos
de
qualificação
que
você
mais
achou
interessante, apresente suas características e processos. 09) Dos processos apresentados acima, pesquise e apresente os custos das certificações; 10) Faça um relatório contendo o modelo ideal de desenvolvimento de
Página 8
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
software na sua opinião, paradigma de programação, metodologia de desenvolvimento e apresente a certificação que você julgou mais importante.
Página 9
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
2
APÊNDICE
2.1 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 01 1) O O objetivo da engenharia de software é o de produzir software sem defeitos, sem falhas. Software sem bugs. 2) Sigla
em
inglês,
para
Guia
para
o
Conhecimento
Relacionado à Engenharia de Software, auxilia a estudantes e profissionais da engenharia de software a conhecerem a praticarem as
boas
práticas,
processos
e
metodologias
conhecidas
e
documentadas. O
conteúdo
do
Guia
deve
ser
visto
como
uma
caracterização "informada e razoável" do corpo de conhecimentos da engenharia de software e uma base para sua evolução futura. 3) 36 anos 4) Deve ser apresentada opinião sobre o tema; 5) Deve ser apresentada opinião sobre o tema, e o mesmo deverá ser discutido pela sala, em formato de “brainstorm”. 6) Apresentar pesquisa em formado de relatório. 7) Diversos tópicos podem ser abordados, dentre eles os principais seriam, definição de uma linguagem de máquina padrão, para que futuros computadores também a utilizassem, de forma a tornar o software compatível com futuras gerações do hardware, framework ou base de linguagem de comunicação com hardware. Criação de um sistema operacional para facilitar interações com hardware;
Página 10
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
8) Apresentar relatório detalhado da evolução dos computadores a partir de 1959. 9) Facilidade
de
aprendizagem
e
utilização
e
possibilidade
de
reutilização, através de um novo processo de compilação no caso de um novo hardware 10)
Apresentar opinião e justificativa sobre utilização do cobol no
mercado.
Página 11
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
2.2 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 02 1) Apresentar pesquisa de mercado de utilização de cobol assim como média salarial dos profissionais da tecnologia. 2) Diminuir o tempo em que o computador permanecia ocioso entre a desmontagem de um trabalho e a montagem do seguinte. 3) Diversos
usuários,
cada
um
em
seu
terminal,
interagissem
e
executassem seus programas com a sensação de que dispunham do computador para si, ainda que do ponto de vista do computador cada passo de cada programa fosse executado sucessiva e sequencialmente. 4) É um sistema que gerencia a fração de tempo da CPU que cada usuário ou terminal recebe para o processamento de sua tarefa. 5) A possibilidade de codificar um programa apenas uma vez e executá-lo na maior variedade possível de hardwares, também conhecido em inglês pela sigla WORA (Write Once, Run Anywhere) que pode ser traduzido em português por “Escreva uma vez e rode em qualquer plataforma”, constituiu desde sempre um objetivo perseguido pelos programadores e pela Engenharia de Software. 6) Apresentar o que entende como principais vantagens 7) Apresentar opinião. 8) Em 1965, Gordon Moore, que viria a ser um dos futuros fundadores da Intel, observou que a capacidade dos microprocessadores e circuitos integrados duplicava aproximadamente a cada 18 meses.
Página 12
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
9) Identificar
os
computadores
ociosos
e
fazê-los
ajudar nas tarefas de manutenção e administração da rede 10) SAP, fundada em 1971, na Alemanha, por engenheiros egressos da IBM, a principal desenvolvedora mundial de Sistemas ERP. Oracle, fundada em 1976 com o nome de Relational e principal empresa mundial de SGBDs, entre outras.
Página 13
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
2.3 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 03 1) Microsoft, o principal software é o sistema operacional Windows. 2) Apresentar pesquisa. 3) Atuar como grupo de pressão contra a pirataria e em defesa dos interesses
dos
grandes
vendedores
mundiais
de
programas de computador16 valendo-se muitas vezes de métodos controversos. 4) Computação
na
Nuvem,
em
que
o
termo
nuvem
é
uma
metáfora de Internet, de computação distribuída, uma forma de dizer que do ponto de vista do usuário os servidores podem estar em qualquer lugar). 5) Infra-estrutura como Serviço, usuários e empresas podem alugar espaço em disco e tempo de processamento na nuvem conforme a necessidade, bons exemplos seriam empresas de hospedagem de websites. 6) SaaS ou Software como Serviço, usuários e empresas podem utilizar software
conforme
a
necessidade,
exemplos
interessantes
que
alcançam a todo público seriam, spotify e netflix. 7) PaaS ou Plataforma como Serviço consiste na oferta de recursos computacionais
(Processador
e
Sistema
Operacional)
para
desenvolvimento de soluções, dois bons exemplos são a Microsoft com o Azure e a amazon com seu serviço de cloud. 8) Apresentar pesquisa.
Página 14
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
9) É desenvolvido sob coordenação da Fundação Mozilla, tendo sido originado a partir do Netscape. 10) Análise, Projeto, Codificação, Teste, Implantação, Manutenção.
Página 15
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
2.4 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 04 1) Codificação: Nesta etapa se realiza a atividade de programação e desenvolvimento de software, propriamente dita. Teste: Nesta etapa se realiza o conjunto de atividades para a verificação de que software desenvolvido executa o que foi especificado na Etapa de Análise. 2) Uma
primeira
unidade
de
medida
historicamente
utilizada
no
desenvolvimento de software baseava-se na quantidade de linhas-de código fonte (LOC, do acrônimo em inglês, Lines Of Code ou, ainda, Kloc,
equivalente
a
milhares
de
LOCs)
dos
programas.
Usou-se o número de LOCs para estimar custos e prazos para o desenvolvimento de programas e sistemas. E usaram-se também unidades de medida derivadas dela como medidas de produtividade como, por exemplo, LOCs por programador por mês, quantidade de bugs por LOCs e assim por diante. 3) Para tentar superar as limitações apontadas para a LOC adotou-se uma unidade de medida baseada em pontos-de-função e que, ainda hoje, tem sido
usada
de
modo
amplo
em
organizações
dedicadas
ao
desenvolvimento de software, sobretudo os de tipo administrativo e gerencial. São considerados pontos-de-função, por exemplo, entre outros: Inputs (telas, mensagens), transações típicas de operações com bancos de dados em registros como criar, ler, atualizar, consultar e deletar registros Outputs (telas, relatórios, mensagens). Assim, dada a especificação de um software ou rotina a ser desenvolvido, um programador experiente pode identificar a quantidade de pontos-defunção que precisarão ser codificados e avaliar a dificuldade em fazê-lo categorizando-os, por exemplo, em simples, médios e complexos. Cada
Página 16
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
categoria recebe uma ponderação. Assim para estimar o tempo que será
necessário
para
desenvolver
uma
determinada
rotina,
o
orçamentista totaliza os pontos-de-função de cada categoria. 4) Desenvolvedor agrupar cada tarefa (uma rotina claramente segregada e nomeada)
num
Módulo,
invocando-o
e
passando-lhe
dados
(denominados argumentos) conforme a necessidade. O Módulo é executado e devolve para a rotina que o invocou o controle do programa. Este novo paradigma favoreceu o aumento da eficiência em diversas etapas do processo de desenvolvimento de software. 5) Implementa os conceitos de modularidade e encapsulamento de modo ainda mais rigoroso que a Programação Estruturada, potencializando ainda mais as possibilidades de documentação, reutilização dos códigos e formação de bibliotecas. Diferentemente das estruturas de linguagens de programação usadas até então (e que guardavam semelhança com as sequências de comandos que um humano poderia usar ao redigir as instruções que o computador deveria seguir), o paradigma da OO trata objetos como unidades estanques em relação aos demais elementos do programa.
Juntamente
com
o
objeto
estão
encapsulados
suas
Propriedades (Atributos) e definidos os Métodos que podem ser invocados para enviar e recuperar informações de e para os objetos. A grande potência deste novo paradigma da OO se evidencia também pela conceituação de que cada Objeto é membro (instância) de uma determinada Classe de Objetos. Isto facilita a criação de novos objetos da mesma classe e a modificação de objetos existentes no programa ao fazer uso das possibilidades trazidas pelo conceito de herança. 6) Apresentar decisão e argumentos. 7) Apresentar pesquisa.
Página 17
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
8) Uma representação gráfica do fluxo de dados de um sistema. De forma que seja possível modela-lo em aspecto de processos. Assim um DFD nível 0 apresenta as funções da forma mais agregada. Também é chamado de Diagrama de Contexto, pois apresenta as fronteiras com Entidades e Sistemas Externos ao que está sendo estudado. Conforme as necessidades são elaborados os DFDs com mais detalhes e que são hierarquicamente numerados. 9) Apresentar as regras do sistema 10) Apresentar DFD de acordo com as regras definidas.
Página 18
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
2.5 GABARITO DAS ATIVIDADES COMPLEMENTARES|AULA 05 1) Apresentar modelo ER. 2) Operações próprias de Bancos de Dados como, por exemplo, leitura, atualização,
deleção
e
criação
de
registros.
Múltiplas facilidades de indexação, acesso e recuperação dos dados Modelo de segurança física e lógica para acesso aos dados com a manutenção de log de acessos e garantindo a integridade e consistência dos
dados.
Facilidades
para
a
realização
de
back-ups.
Recursos de redundância (capacidade de duplicar as informações de modo que se um dispositivo de armazenamento falhar outro possa assumir seu lugar sem interrupção dos serviços), de replicação (conjuntos de dados que precisam ser disponibilizados em diferentes locais e devem ser periodicamente sincronizados) e outros que favorecem a alta disponibilidade. Commit (ou capacidade de garantir que uma transação seja concluída de modo bem sucedido ou, então, que retroaja para um estado anterior mantendo a integridade do banco de dados). Controle do acesso simultâneo de múltiplos usuários. Interfaceamento com a Internet (capacidade de tradução em tempo real das requisições que chegam pela internet na linguagem do banco de dados e conversão dos dados aos protocolos usados na Internet) e outros sistemas de banco de dados. 3) É o de avançar no trabalho ao longo de sucessivos ciclos curtos (ao invés de um ciclo longo como era habitual no Método em Cascata). A cada ciclo se estabelecem as especificações desejadas mais importantes do software que se quer desenvolver no ciclo seguinte. E, a cada iteração,
pode-se
acrescentar
(incrementar)
novas
características
solicitadas pelos usuários.
Página 19
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
4) Reduzir ambiguidade de certos requisitos, especificar elementos de projeto,
demonstrar
algoritmos
ou
uma
interface,
entre
outros. Mostrou ser uma forma eficaz de diminuir a somatória dos tempos demandados pelas Etapas de Análise de Sistemas e resultados que seriam visíveis apenas após a Etapa de Testes e Implantação. 5) Prega a valorização de Indivíduos e interações mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos
Responder
a
mudanças
mais
que
seguir
um
plano.
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. O manifesto dificilmente pode ser considerado um novo Método. 6) Ágeis: Tendem a valorizar a relação com o stakeholder, enfatizando o caráter colaborativo e de parceria entre as partes, sendo receptivos a vários tipos de mudanças no decorrer do projeto. Anteriores: Tendiam gerenciar a relação na base do contrato e a enrijecer as definições
conforme
o
paradigma
do
Modelo
em
Cascata.
Um
stakeholder é alguém que é impactado pelo resultado financeiro do projeto. É um representante direto ou indireto dos usuários, dos financiadores, ou de alguém que trabalha para ele. 7) O CMMI é usado para classificar e certificar os processos usados pelas organizações conforme o estágio de evolução em que se encontram. Na certificação CMMI quanto menor a nota, pior a classificação da organização. A menor nota é 1 (um) e é usada para classificar processos (ou organizações) em estágio Inicial onde o caos predomina, nada é documentado, tudo muda reativamente e muito rapidamente, os ambientes são instáveis e assim por diante. A nota máxima é 5 e é
Página 20
ENGENHARIA DE SOFTWARE ATIVIDADES COMPLEMENTARES
usada para classificar processos (ou organizações) num estágio que se denomina Otimizado onde ocorre o aperfeiçoamento contínuo de processos que já foram padronizados e são otimizados (continuamente aperfeiçoados) num ambiente estável e controlado. 8) Apresentar modelos de acordo com opinião. 9) Pesquisar e apresentar custos de certificação 10) Apresentar relatório.
Página 21