Engenharia software

Page 1


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



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.