Buscar

ch1_introducao

Prévia do material em texto

Universidade Federal Rural do Semi-Árido – UFERSA
Departamento de Ciências Exatas e Tecnologia – DCETI
Campus Angicos
PRINCÍPIOS DE ENGENHARIA DE SOFTWARE
Professor: Ramiro de Vasconcelos dos Santos Júnior, MSc.
Angicos/RN, 05 de julho de 2023.
Capítulo 1 - Introdução
2
Assuntos abordados
Ø Desenvolvimento de software profissional
Ø O que se entende por engenharia de software.
Ø Ética da engenharia de software
Ø Uma breve introdução às questões éticas que afetam a engenharia
de software.
Ø Estudos de caso
Ø Uma introdução a três exemplos que são usados em capítulos
posteriores do livro:
Ø (SOMMERVILLE, Ian. Engenharia de Software. 10ª ed. São
Paulo: Pearson Education do Brasil, 2018.)
3
Engenharia de software
Ø As economias de TODAS as nações desenvolvidas
dependem de software.
Ø Mais e mais sistemas são controlados por software
Ø A engenharia de software está preocupada com teorias, métodos e
ferramentas para o desenvolvimento profissional de software.
Ø Os gastos com software representam uma
fração significativa do PIB em todos os países desenvolvidos.
4
custos de software
Ø Os custos de software geralmente dominam os custos do sistema de
computador. Os custos do software em um PC geralmente são maiores
do que o custo do hardware.
Ø Software custa mais para manter do que para desenvolver. Para
sistemas com vida útil longa, os custos de manutenção podem ser
várias vezes os custos de desenvolvimento.
Ø A engenharia de software está preocupada com o desenvolvimento de
software econômico.
5
Falha no projeto de software
Ø Aumentando a complexidade do sistema
Ø À medida que novas técnicas de engenharia de software nos
ajudam a construir sistemas maiores e mais complexos, as
demandas mudam. Os sistemas precisam ser construídos e
entregues mais rapidamente; sistemas maiores e ainda mais
complexos são necessários; os sistemas precisam ter novos
recursos que antes eram considerados impossíveis.
Ø Falha ao usar métodos de engenharia de software
Ø É bastante fácil escrever programas de computador sem usar
métodos e técnicas de engenharia de software. Muitas empresas se
dedicaram ao desenvolvimento de software à medida que seus
produtos e serviços evoluíram. Eles não usam métodos de
engenharia de software em seu trabalho diário. Consequentemente,
seu software costuma ser mais caro e menos confiável do que
deveria ser. 6
Desenvolvimento de software profissional
7
Perguntas frequentes sobre engenharia 
de software
8
Pergunta Responder
O que é software? Programas de computador e documentação associada. Os
produtos de software podem ser desenvolvidos para um cliente
específico ou para um mercado geral.
Quais são os atributos de um bom software? Um bom software deve entregar a funcionalidade e o
desempenho necessários ao usuário e deve ser sustentável,
confiável e utilizável.
O que é engenharia de software? A engenharia de software é uma disciplina de engenharia que se
preocupa com todos os aspectos da produção de software.
Quais são as atividades fundamentais da
engenharia de software?
Especificação de software, desenvolvimento de software,
validação de software e evolução de software.
Qual é a diferença entre engenharia de software
e ciência da computação?
A ciência da computação se concentra na teoria e nos
fundamentos; A engenharia de software preocupa-se com os
aspectos práticos do desenvolvimento e entrega de software útil.
Qual é a diferença entre engenharia de software
e engenharia de sistemas?
A engenharia de sistemas está preocupada com todos os aspectos
do desenvolvimento de sistemas baseados em computador,
incluindo hardware, software e engenharia de processos. A
engenharia de software faz parte desse processo mais geral.
Perguntas frequentes sobre engenharia de 
software
Pergunta Responder
Quais são os principais desafios enfrentados
pela engenharia de software?
Lidando com o aumento da diversidade, demandas por prazos de
entrega reduzidos e desenvolvimento de software confiável.
Quais são os custos da engenharia de software? Aproximadamente 60% dos custos de software são custos de
desenvolvimento, 40% são custos de teste. Para software
personalizado, os custos de evolução geralmente excedem os
custos de desenvolvimento.
Quais são as melhores técnicas e métodos de
engenharia de software?
Embora todos os projetos de software devam ser gerenciados e
desenvolvidos profissionalmente, diferentes técnicas são
apropriadas para diferentes tipos de sistema. Por exemplo, os
jogos devem sempre ser desenvolvidos usando uma série de
protótipos, enquanto os sistemas de controle críticos de segurança
requerem uma especificação completa e analisável para serem
desenvolvidos. Você não pode, portanto, dizer que um método é
melhor que outro.
Que diferenças a web trouxe para a engenharia
de software?
A web levou à disponibilidade de serviços de software e à
possibilidade de desenvolver sistemas baseados em serviços
altamente distribuídos. O desenvolvimento de sistemas baseados
na Web levou a avanços importantes em linguagens de
programação e reuso de software.
9
produtos de software
Ø produtos genéricos
Ø Sistemas autónomos que são comercializados e vendidos a
qualquer cliente que os pretenda adquirir.
Ø Exemplos – software para PC, como programas gráficos,
ferramentas de gerenciamento de projetos; Software CAD;
software para mercados específicos como sistemas de marcação de
consultas para dentistas.
Ø Produtos customizados
Ø Software encomendado por um cliente específico para atender às
suas próprias necessidades.
Ø Exemplos – sistemas de controle embarcados, software de controle
de tráfego aéreo, sistemas de monitoramento de tráfego.
10
Especificação do produto
Ø produtos genéricos
Ø A especificação do que o software deve fazer é de propriedade do
desenvolvedor de software e as decisões sobre alterações de
software são feitas pelo desenvolvedor.
Ø Produtos customizados
Ø A especificação do que o software deve fazer é de propriedade do
cliente do software e ele toma as decisões sobre as alterações de
software necessárias.
11
Atributos essenciais de um bom software
12
Característica do produto Descrição
Manutenibilidade O software deve ser escrito de tal forma que possa evoluir para atender
às necessidades em constante mudança dos clientes. Este é um atributo
crítico porque a mudança de software é um requisito inevitável de um
ambiente de negócios em mudança.
Confiabilidade e segurança Confiabilidade de software inclui uma variedade de características,
incluindo confiabilidade, segurança e proteção. Software confiável não
deve causar danos físicos ou econômicos em caso de falha do sistema.
Usuários mal-intencionados não devem conseguir acessar ou danificar o
sistema.
Eficiência O software não deve desperdiçar recursos do sistema, como memória e
ciclos do processador. Eficiência, portanto, inclui capacidade de resposta,
tempo de processamento, utilização de memória, etc.
Aceitabilidade O software deve ser aceitável para o tipo de usuário para o qual foi
projetado. Isso significa que deve ser compreensível, utilizável e
compatível com outros sistemas que eles usam.
Engenharia de software
Ø A engenharia de software é uma disciplina de engenharia que se
preocupa com todos os aspectos da produção de software, desde os
estágios iniciais da especificação do sistema até a manutenção do
sistema após sua entrada em uso.
Ø Disciplina de engenharia
Ø Utilizar teorias e métodos adequados para a resolução de
problemas tendo em conta os condicionalismos organizacionais e
financeiros.
Ø Todos os aspectos da produção de software
Ø Não apenas processo técnico de desenvolvimento. Também
gerenciamento de projetos e desenvolvimento de ferramentas,
métodos etc. para apoiar a produção de software.
13
Importância da engenharia de software
Ø Cada vez mais, os indivíduos e a sociedade dependem de sistemas de
software avançados. Precisamos ser capazes de produzir sistemas
confiáveis e confiáveis de forma econômica e rápida.
Ø Geralmente é mais barato,a longo prazo, usar métodos e técnicas de
engenharia de software para sistemas de software em vez de apenas
escrever os programas como se fosse um projeto de programação
pessoal. Para a maioria dos tipos de sistema, a maioria dos custos são
os custos de mudança do software depois que ele entra em uso.
14
Atividades de processo de software
Ø Especificação de software, onde clientes e engenheiros definem o
software a ser produzido e as restrições de operação.
Ø Desenvolvimento de software, onde o software é projetado e
programado.
Ø Validação de software, onde o software é verificado para garantir que é
o que o cliente exige.
Ø Evolução do software, onde o software é modificado para refletir as
mudanças nos requisitos do cliente e do mercado.
15
Problemas gerais que afetam o software
Ø Heterogeneidade
Ø Cada vez mais, os sistemas são obrigados a operar como sistemas
distribuídos em redes que incluem diferentes tipos de
computadores e dispositivos móveis.
Ø Negócios e mudanças sociais
Ø Os negócios e a sociedade estão mudando incrivelmente rápido à
medida que as economias emergentes se desenvolvem e novas
tecnologias se tornam disponíveis. Eles precisam ser capazes de
mudar seu software existente e desenvolver rapidamente um novo
software.
16
Problemas gerais que afetam o software
Ø Segurança e confiança
Ø Como o software está interligado com todos os aspectos de nossas
vidas, é essencial que possamos confiar nesse software.
Ø Escala
Ø O software deve ser desenvolvido em uma ampla gama de escalas,
desde sistemas incorporados muito pequenos em dispositivos
portáteis ou vestíveis até sistemas baseados em nuvem em escala
de Internet que atendem a uma comunidade global.
17
Diversidade de engenharia de software
Ø Existem muitos tipos diferentes de sistemas de software e não existe
um conjunto universal de técnicas de software que seja aplicável a
todos eles.
Ø Os métodos e ferramentas de engenharia de software usados dependem
do tipo de aplicativo que está sendo desenvolvido, dos requisitos do
cliente e do histórico da equipe de desenvolvimento.
18
Tipos de aplicativos
Ø Aplicativos autônomos
Ø São sistemas de aplicativos executados em um computador local,
como um PC. Eles incluem todas as funcionalidades necessárias e
não precisam estar conectados a uma rede.
Ø Aplicativos interativos baseados em transações
Ø Aplicativos executados em um computador remoto e acessados
pelos usuários a partir de seus próprios PCs ou terminais. Isso
inclui aplicativos da Web, como aplicativos de comércio eletrônico
.
Ø Sistemas de controle embutidos
Ø Estes são sistemas de controle de software que controlam e
gerenciam dispositivos de hardware. Numericamente,
provavelmente existem mais sistemas embarcados do que qualquer
outro tipo de sistema.
19
Tipos de aplicativos
Ø Sistemas de processamento em lote
Ø Esses são sistemas de negócios projetados para processar dados em
grandes lotes. Eles processam um grande número de entradas
individuais para criar saídas correspondentes.
Ø Sistemas de entretenimento
Ø Estes são sistemas que são principalmente para uso pessoal e que
se destinam a entreter o usuário.
Ø Sistemas de modelagem e simulação
Ø Esses são sistemas desenvolvidos por cientistas e engenheiros para
modelar processos ou situações físicas, que incluem muitos objetos
separados e interativos.
20
Tipos de aplicativos
Ø Sistemas de coleta de dados
Ø São sistemas que coletam dados de seu ambiente por meio de um
conjunto de sensores e enviam esses dados para outros sistemas
para processamento.
Ø sistemas de sistemas
Ø Estes são sistemas compostos por vários outros sistemas de
software.
21
Fundamentos da engenharia de software
Ø Alguns princípios fundamentais se aplicam a todos os tipos de sistema
de software, independentemente das técnicas de desenvolvimento
utilizadas:
Ø Os sistemas devem ser desenvolvidos usando um processo de
desenvolvimento gerenciado e compreendido. Claro, diferentes
processos são usados para diferentes tipos de software.
Ø Confiabilidade e desempenho são importantes para todos os tipos
de sistema.
Ø É importante entender e gerenciar a especificação e os requisitos
do software (o que o software deve fazer).
Ø Quando apropriado, você deve reutilizar o software que já foi
desenvolvido em vez de escrever um novo software.
22
engenharia de software internet
Ø A Web é agora uma plataforma para execução de aplicativos e as
organizações estão cada vez mais desenvolvendo sistemas baseados na
Web em vez de sistemas locais.
Ø Os serviços da Web (discutidos no Capítulo 19) permitem que a
funcionalidade do aplicativo seja acessada pela Web.
Ø A computação em nuvem é uma abordagem para o fornecimento de
serviços de computador onde os aplicativos são executados
remotamente na 'nuvem'.
Ø Os usuários não compram software, compram e pagam de acordo
com o uso.
23
Engenharia de software baseada na web
Ø Os sistemas baseados na Web são sistemas distribuídos complexos,
mas os princípios fundamentais da engenharia de software discutidos
anteriormente são tão aplicáveis a eles quanto a qualquer outro tipo de
sistema.
Ø As ideias fundamentais da engenharia de software aplicam-se a
software baseado na web da mesma forma que se aplicam a outros
tipos de sistema de software.
24
engenharia de software web
Ø reutilização de software
Ø A reutilização de software é a abordagem dominante para a construção
de sistemas baseados na web. Ao construir esses sistemas, você pensa
em como pode montá-los a partir de componentes e sistemas de
software pré-existentes.
Ø Desenvolvimento incremental e ágil
Ø Os sistemas baseados na Web devem ser desenvolvidos e entregues de
forma incremental. Agora é geralmente reconhecido que é impraticável
especificar todos os requisitos para tais sistemas com antecedência.
25
engenharia de software web
Ø Sistemas orientados a serviços
Ø O software pode ser implementado usando engenharia de software
orientada a serviços, em que os componentes de software são
serviços da Web independentes.
Ø Interfaces ricas
Ø Surgiram tecnologias de desenvolvimento de interface , como
AJAX e HTML5 , que suportam a criação de interfaces avançadas
em um navegador da web.
26
Ética da engenharia de software
27
Ética da engenharia de software
Ø A engenharia de software envolve responsabilidades mais amplas do
que simplesmente a aplicação de habilidades técnicas.
Ø Os engenheiros de software devem se comportar de maneira honesta e
eticamente responsável se quiserem ser respeitados como profissionais.
Ø O comportamento ético é mais do que simplesmente cumprir a lei, mas
envolve seguir um conjunto de princípios que são moralmente corretos.
28
Questões de responsabilidade profissional
Ø Confidencialidade
Ø Os engenheiros normalmente devem respeitar a confidencialidade
de seus empregadores ou clientes, independentemente de um
acordo formal de confidencialidade ter sido assinado ou não.
Ø Competência
Ø Os engenheiros não devem deturpar seu nível de competência. Eles
não devem aceitar conscientemente trabalho que esteja fora de sua
competência.
29
Questões de responsabilidade profissional
ØDireito de propriedade intelectual
Ø Os engenheiros devem estar cientes das leis locais que regem o uso de
propriedade intelectual, como patentes, direitos autorais, etc. Eles devem
ter cuidado para garantir que a propriedade intelectual de empregadores e
clientes seja protegida.
Ø uso indevido do computador
Ø Os engenheiros de software não devem usar suas habilidades técnicas
para fazer mau uso dos computadores de outras pessoas. O uso indevido
do computador varia de relativamente trivial (jogo na máquina de um
empregador, digamos) a extremamente grave (disseminação de vírus).
30
Código de Ética ACM/IEEE
Ø As sociedades profissionais nos Estados Unidos cooperaram para
produzir um código de prática ética.
Ø Os membros dessas organizações se inscrevem no código de prática
quando se associam.
Ø O Código contém oito Princípios relacionados ao comportamentoe às
decisões tomadas por engenheiros de software profissionais, incluindo
profissionais, educadores, gerentes, supervisores e formuladores de
políticas, bem como estagiários e estudantes da profissão.
31
Justificativa do código de ética
Ø Os computadores têm um papel central e crescente no comércio,
na indústria, no governo, na medicina, na educação, no
entretenimento e na sociedade em geral. Os engenheiros de
software são aqueles que contribuem, por participação direta ou
por ensino, para a análise, especificação, projeto,
desenvolvimento, certificação, manutenção e teste de sistemas de
software.
Ø Por causa de suas funções no desenvolvimento de sistemas de
software, os engenheiros de software têm oportunidades de fazer o
bem ou causar dano, permitir que outros façam o bem ou causem
dano, ou influenciar outros a fazerem o bem ou causarem dano.
Para garantir, tanto quanto possível, que seus esforços sejam
usados para o bem, os engenheiros de software devem se
comprometer a tornar a engenharia de software uma profissão
benéfica e respeitada.
32
O Código de Ética da ACM/IEEE
33
Código de Ética e Prática Profissional da Engenharia de Software
Força-Tarefa Conjunta ACM/IEEE-CS sobre Ética em Engenharia de Software e Práticas 
Profissionais
PREÂMBULO
A versão curta do código resume as aspirações em um alto nível de abstração; as cláusulas incluídas 
na versão completa dão exemplos e detalhes de como essas aspirações mudam a forma como agimos 
como profissionais de engenharia de software. Sem as aspirações, os detalhes podem se tornar 
legalistas e tediosos; sem os detalhes, as aspirações podem tornar-se sonoras mas vazias; juntos, as 
aspirações e os detalhes formam um código coeso.
Os engenheiros de software devem se comprometer a fazer da análise, especificação, projeto, 
desenvolvimento, teste e manutenção de software uma profissão benéfica e respeitada. De acordo 
com seu compromisso com a saúde, segurança e bem-estar do público, os engenheiros de software 
devem aderir aos seguintes Oito Princípios:
Princípios éticos
34
1. PÚBLICO - Os engenheiros de software devem agir de forma consistente com o interesse público.
2. CLIENTE E EMPREGADOR - Os engenheiros de software devem agir de maneira que atenda aos 
melhores interesses de seus clientes e empregadores, consistente com o interesse público.
3. PRODUTO - Os engenheiros de software devem garantir que seus produtos e modificações 
relacionadas atendam aos mais altos padrões profissionais possíveis.
4. JULGAMENTO - Os engenheiros de software devem manter integridade e independência em seu 
julgamento profissional.
5. GERENCIAMENTO - Os gerentes e líderes de engenharia de software devem subscrever e 
promover uma abordagem ética para o gerenciamento de desenvolvimento e manutenção de 
software.
6. PROFISSÃO - Os engenheiros de software devem promover a integridade e a reputação da 
profissão de forma consistente com o interesse público.
7. COLEGAS - Os engenheiros de software devem ser justos e solidários com seus colegas.
8. AUTO - Os engenheiros de software devem participar na aprendizagem ao longo da vida no 
exercício da sua profissão e devem promover uma abordagem ética no exercício da profissão.
Estudos de caso
35
Dilemas éticos
Ø Desacordo de princípio com as políticas da alta administração .
Ø Seu empregador age de maneira antiética e libera um sistema crítico de
segurança sem concluir o teste do sistema.
Ø Participação no desenvolvimento de sistemas de armas militares ou
sistemas nucleares.
36
Estudos de caso
Ø Uma bomba de insulina pessoal
Ø Um sistema embutido em uma bomba de insulina usada por
diabéticos para manter o controle da glicemia.
Ø Um sistema de gerenciamento de casos de saúde mental
Ø Mentcare. Um sistema usado para manter registros de pessoas que
recebem cuidados para problemas de saúde mental.
Ø Uma estação meteorológica selvagem
Ø Um sistema de coleta de dados que coleta dados sobre as condições
climáticas em áreas remotas.
Ø iLearn : um ambiente digital de aprendizagem
Ø Um sistema para apoiar a aprendizagem nas escolas
37
Sistema de controle da bomba de insulina
Ø Coleta dados de um sensor de açúcar no sangue e calcula a quantidade
de insulina necessária para ser injetada.
Ø Cálculo baseado na taxa de variação dos níveis de açúcar no sangue.
Ø Envia sinais para uma microbomba para fornecer a dose correta de
insulina.
Ø Sistema crítico de segurança, pois o baixo nível de açúcar no sangue
pode levar ao mau funcionamento do cérebro, coma e morte; níveis
elevados de açúcar no sangue têm consequências a longo prazo, como
danos nos olhos e nos rins.
38
Arquitetura de hardware da bomba de 
insulina
39
Needle
assembly
Sensor
Display1 Display2
Alarm
Pump Clock
Controller
Power supply
Insulin reservoir
Modelo de atividade da bomba de insulina
40
Analyse sensor
reading
Blood
sensor
Insulin
pump
Blood
sugar
Compute
insulin
Insulin
dose
Insulin
log
Log doseCompute pump
commands
Pump
data
Control insulin
pump
Requisitos essenciais de alto nível
Ø O sistema deve estar disponível para fornecer insulina quando
necessário.
Ø O sistema deve funcionar de forma confiável e fornecer a quantidade
correta de insulina para neutralizar o nível atual de açúcar no sangue.
Ø O sistema deve, portanto, ser projetado e implementado para garantir
que o sistema sempre atenda a esses requisitos.
41
Mentcare: um sistema de informação do 
paciente para cuidados de saúde mental
Ø Um sistema de informação do paciente para apoiar os cuidados de
saúde mental é um sistema de informação médica que mantém
informações sobre pacientes que sofrem de problemas de saúde mental
e os tratamentos que receberam.
Ø A maioria dos pacientes de saúde mental não requer tratamento
hospitalar dedicado, mas precisa frequentar clínicas especializadas
regularmente, onde podem encontrar um médico que tenha
conhecimento detalhado de seus problemas.
Ø Para facilitar o atendimento dos pacientes, essas clínicas não
funcionam apenas em hospitais. Eles também podem ser realizados em
práticas médicas locais ou centros comunitários.
42
Mentcare
Ø Mentcare é um sistema de informação que se destina a ser utilizado em
clínicas.
Ø Ele faz uso de um banco de dados centralizado de informações do
paciente, mas também foi projetado para ser executado em um PC,
para que possa ser acessado e usado em sites que não possuem
conectividade de rede segura.
Ø Quando os sistemas locais têm acesso seguro à rede, eles usam as
informações do paciente no banco de dados, mas podem baixar e usar
cópias locais dos registros do paciente quando estão desconectados.
43
Objetivos de cuidado mental
Ø Gerar informações gerenciais que permitam aos gestores dos serviços
de saúde avaliar o desempenho em relação às metas locais e
governamentais.
Ø Fornecer à equipe médica informações oportunas para apoiar o
tratamento dos pacientes.
44
A organização do sistema Mentcare
45
Mentcare
client
Mentcare server
Patient database
Mentcare
client
Mentcare
client
Network
Principais características do sistema 
Mentcare
Ø Gerenciamento de cuidados individuais
Ø Os médicos podem criar registros para os pacientes, editar as
informações no sistema, visualizar o histórico do paciente, etc. O
sistema suporta resumos de dados para que os médicos possam
aprender rapidamente sobre os principais problemas e tratamentos
prescritos.
Ø Monitoramento do paciente
Ø O sistema monitora os registros dos pacientes envolvidos no
tratamento e emite alertas caso sejam detectados possíveis
problemas.
Ø Relatórios administrativos
Ø O sistema gera relatórios gerenciais mensais mostrando o número de
pacientes atendidos em cada clínica, o número de pacientes que
entraram e saíram do sistema de atendimento, o número de pacientes
internados, os medicamentos prescritos e seus custos, etc. 46
Preocupações com o sistema Mentcare
Ø Privacidade
Ø É essencial que as informações do paciente sejam confidenciais e
nunca sejam divulgadas a ninguém além da equipemédica
autorizada e do próprio paciente.
Ø Segurança
Ø Algumas doenças mentais fazem com que os pacientes se tornem
suicidas ou um perigo para outras pessoas. Sempre que possível, o
sistema deve alertar a equipe médica sobre pacientes
potencialmente suicidas ou perigosos.
Ø O sistema deve estar disponível quando necessário, caso contrário,
a segurança pode ser comprometida e pode ser impossível
prescrever a medicação correta para os pacientes.
47
estação meteorológica selvagem
Ø O governo de um país com grandes áreas selvagens decide implantar
várias centenas de estações meteorológicas em áreas remotas.
Ø As estações meteorológicas coletam dados de um conjunto de
instrumentos que medem temperatura e pressão, sol, chuva, velocidade
e direção do vento.
Ø A estação meteorológica inclui vários instrumentos que medem
parâmetros climáticos, como velocidade e direção do vento,
temperatura do solo e do ar, pressão barométrica e precipitação
pluviométrica durante um período de 24 horas. Cada um desses
instrumentos é controlado por um sistema de software que faz
leituras de parâmetros periodicamente e gerencia os dados
coletados dos instrumentos.
Ø
48
Ambiente da estação meteorológica
49
«system»
Data management
and archiving
«system»
Station maintenance
«system»
Weather station
Sistema de informações meteorológicas
Ø O sistema da estação meteorológica
Ø Este é responsável por coletar dados meteorológicos, realizar algum
processamento inicial de dados e transmiti-los ao sistema de
gerenciamento de dados.
Ø O sistema de gerenciamento e arquivamento de dados
Ø Este sistema coleta os dados de todas as estações meteorológicas
selvagens, realiza processamento e análise de dados e arquiva os
dados.
Ø O sistema de manutenção da estação
Ø Este sistema pode se comunicar por satélite com todas as estações
meteorológicas selvagens para monitorar a saúde desses sistemas e
fornecer relatórios de problemas.
50
Funcionalidade de software adicional
Ø Monitore os instrumentos, energia e hardware de comunicação e relate
falhas ao sistema de gerenciamento.
Ø Gerenciar a energia do sistema, garantindo que as baterias sejam
carregadas sempre que as condições ambientais permitirem, mas
também que os geradores sejam desligados em condições climáticas
potencialmente prejudiciais, como vento forte.
Ø Suporta reconfiguração dinâmica onde partes do software são
substituídas por novas versões e onde os instrumentos de backup são
trocados no sistema em caso de falha do sistema.
51
iLearn : um ambiente de aprendizagem 
digital
Ø Um ambiente digital de aprendizagem é uma estrutura na qual um
conjunto de ferramentas de uso geral e especialmente projetadas para o
aprendizado pode ser incorporado, além de um conjunto de aplicativos
voltados para as necessidades dos alunos que usam o sistema.
Ø As ferramentas incluídas em cada versão do ambiente são escolhidas
por professores e alunos para atender às suas necessidades específicas.
Ø Podem ser aplicativos gerais, como planilhas , aplicativos de
gerenciamento de aprendizado, como um Ambiente Virtual de
Aprendizagem (AVA) para gerenciar o envio e avaliação de tarefas
de casa, jogos e simulações.
52
Sistemas orientados a serviços
Ø O sistema é um sistema orientado a serviços com todos os
componentes do sistema considerados um serviço substituível .
Ø Isso permite que o sistema seja atualizado gradualmente à medida que
novos serviços se tornam disponíveis.
Ø Também permite configurar rapidamente o sistema para criar versões
do ambiente para diferentes grupos, como crianças muito pequenas que
não sabem ler, alunos do último ano, etc.
53
serviços 
Ø Serviços utilitários que fornecem funcionalidade básica independente
de aplicativo e que podem ser usados por outros serviços no sistema.
Ø Serviços de aplicativos que fornecem aplicativos específicos, como e-
mail, conferência, compartilhamento de fotos etc. e acesso a conteúdo
educacional específico, como filmes científicos ou recursos históricos.
Ø Serviços de configuração que são usados para adaptar o ambiente com
um conjunto específico de serviços de aplicativos e definem como os
serviços são compartilhados entre alunos, professores e seus pais.
54
arquitetura 
55
Authentication
Browser-based user interface
Configuration services
Group
management
Application
management
Identity
management
User storage
Logging and monitoring
Application storage
Interfacing
Search
Utility services
Application services
iLearn app
Email Messaging Video conferencing Newspaper archive
Word processing Simulation Video storage Resource finder
Spreadsheet Virtual learning environment History archive
Integração do serviço 
Ø Serviços integrados são serviços que oferecem uma API (interface de
programação de aplicativos) e que podem ser acessados por outros
serviços por meio dessa API. A comunicação direta serviço a serviço é,
portanto, possível.
Ø Serviços independentes são serviços que são simplesmente acessados
por meio de uma interface de navegador e que operam
independentemente de outros serviços. As informações só podem ser
compartilhadas com outros serviços por meio de ações explícitas do
usuário, como copiar e colar; a reautenticação pode ser necessária para
cada serviço independente.
56
Pontos chave
Ø A engenharia de software é uma disciplina de engenharia que se
preocupa com todos os aspectos da produção de software.
Ø Os atributos essenciais do produto de software são manutenibilidade,
confiabilidade e segurança, eficiência e aceitabilidade.
Ø As atividades de alto nível de especificação, desenvolvimento,
validação e evolução fazem parte de todos os processos de software.
Ø As noções fundamentais da engenharia de software são universalmente
aplicáveis a todos os tipos de desenvolvimento de sistemas.
57
Pontos chave
Ø Existem muitos tipos diferentes de sistema e cada um requer
ferramentas e técnicas de engenharia de software apropriadas para seu
desenvolvimento.
Ø As ideias fundamentais da engenharia de software são aplicáveis a
todos os tipos de sistemas de software.
Ø Os engenheiros de software têm responsabilidades com a profissão de
engenharia e com a sociedade. Eles não devem se preocupar apenas
com questões técnicas.
Ø As sociedades profissionais publicam códigos de conduta que
estabelecem os padrões de comportamento esperados de seus
membros.
58

Continue navegando