Você está na página 1de 69

Introdução sobre o

Software Engineering

Apresenta pelo:

Antonio Soare Martins, B.Gi, L.Gi, MTI


atoy.iob@gmail.com

January 3, 2024 Preparei por : António Soares Martins 1


Os objectivos deste capítulo são introduzir a engenharia de
software e fornecer uma estrutura para a compreensão do
resto do livro.
Depois de ler este capítulo, você terá:

Compreender que o
Compreender o que é a desenvolvimento de diferentes Compreender as questões Ter sido apresentado a quatro
engenharia de software e tipos de sistemas de software éticas e profissionais que sistemas, de diferentes tipos,
porque é importante; podem exigir diferentes técnicas são importantes para os que são utilizados como
de engenharia de software; engenheiros de software; exemplos ao longo do livro.

January 3, 2024 Preparei por : António Soares Martins 2


Conteudos de aprendisagem

PROFESSIONAL SOFTWARE SOFTWARE ENGINEERING CASE STUDIES


DEVELOPMENT ETHICS

January 3, 2024 Preparei por : António Soares Martins 3


Razões de aprender a engenharia de software

A engenharia de software é essencial para o funcionamento do governo, da sociedade e das empresas e instituições
nacionais e internacionais.

Não é possível gerir o mundo moderno sem software.

As infra-estruturas e os serviços públicos nacionais são controlados por sistemas informáticos e a maioria dos
produtos eléctricos inclui um computador e software de controlo.

A indústria transformadora e a distribuição estão completamente informatizadas, tal como o sistema financeiro.

O entretenimento, incluindo a indústria musical, os jogos de computador, o cinema e a televisão, é intensivo em


software.

Mais de 75% da população mundial tem um telemóvel controlado por software e, até 2016, quase todos eles estarão
equipados com Internet

January 3, 2024 Preparei por : António Soares Martins 4


Os sistemas de software são abstractos e intangíveis. Não são limitados pelas propriedades dos materiais, nem são regidos por leis
físicas ou por processos de fabrico.

Este facto simplifica a engenharia de software, uma vez que não existem limites naturais para o potencial do software.

No entanto, devido à falta de restrições físicas, os sistemas de software podem rapidamente tornar-se extremamente complexos,
difíceis de compreender e dispendiosos de alterar.

Existem muitos tipos diferentes de sistemas de software, desde sistemas simples incorporados até sistemas de informação
complexos e mundiais. Não existem noções, métodos ou técnicas universais para a engenharia de software porque diferentes tipos
de software requerem abordagens diferentes.

O desenvolvimento de um sistema de informação organizacional é completamente diferente do desenvolvimento de um


controlador para um instrumento científico. Nenhum destes sistemas tem muito em comum com um jogo de computador com
gráficos intensivos. Todas estas aplicações necessitam de engenharia de software, mas nem todas necessitam dos mesmos
métodos e técnicas de engenharia de software.

January 3, 2024 Preparei por : António Soares Martins 5


Dois factores Fracassos de software
1. Aumento da complexidade do sistema
À medida que as novas técnicas de engenharia de software nos ajudama construir sistemas maiores e
mais complexos, as exigências mudam. Os sistemas têm de ser construídos e entregues mais
rapidamente; são necessários sistemas maiores e ainda mais complexos; e os sistemas têm de ter
novas capacidades que anteriormente que se pensava serem impossíveis. Têm de ser desenvolvidas
novas técnicas de engenharia de software para responder aos novos desafios da entrega de software
mais complexo.
2. Não utilização de métodos de engenharia de software
É bastante fácil escrever programas de computador sem utilizar métodos e técnicas de engenharia de
software.
Muita sempresas passaram a dedicar-se ao desenvolvimento de software à medida que os seus
produtos e serviços foram evoluindo. Não utilizam métodos de engenharia de software no seu trabalho
quotidiano. Consequentemente, o seu software é muitas vezes mais caro e menos fiável do que
deveria ser. Precisamos de melhor educação e formação em engenharia de software para para resolver
este problema.

January 3, 2024 Preparei por : António Soares Martins 6


História da engenharia de software

1. A noção de engenharia de software foi proposta pela primeira vez em 1968, numa
conferência realizada para discutir aquilo a que se chamou a crise do software (Naur e
Randell 1969). Tornou-se claro que as abordagens individuais ao desenvolvimento de
programas não se adaptavam a sistemas de software grandes e complexos. Estes não eram
fiáveis, custavam mais do que o previsto e eram entregues com atraso.
2. Ao longo das décadas de 1970 e 1980, uma variedade de novas técnicas e métodos de
engenharia de software foi desenvolvida, como programação estruturada, ocultação de
informações e desenvolvimento orientado a objetos. Foram desenvolvidas ferramentas e
notações normalizadas que constituem a base da atual engenharia de software

http://software-engineering-book.com/web/history/

January 3, 2024 Preparei por : António Soares Martins 7


Desenvolvimento profissional de software
1. A maior parte do desenvolvimento de software é uma atividade
profissional em que o software é desenvolvido para fins comerciais,
para inclusão noutros dispositivos ou como produtos de software,
tais como sistemas de informação e sistemas de desenho assistido
por computador.
2. As principais distinções são que o software profissional se destina a
ser utilizado por alguém para além do seu criador e que,
normalmente, o software é desenvolvido por equipas e não por
indivíduos. É mantido e alterado ao longo da sua vida.

January 3, 2024 Preparei por : António Soares Martins 8


January 3, 2024 Preparei por : António Soares Martins 9
January 3, 2024 Preparei por : António Soares Martins 10
Existem dois tipos de produtos de
software:
1. Generic products
Trata-se de sistemas autónomos que são produzidos por umae vendidos no mercado livre a qualquer cliente que os possa comprar capaz de os comprar.
Exemplos:
1. Aplicações para dispositivos móveis,
2. software para PC, como bases de dados,
3. Processadores de texto,
4. Pacotes de desenho e
5. Ferramentas de gestão de projectos.
Este tipo de software também inclui aplicações "verticais" concebidas para um mercado específico, como sistemas de informação para bibliotecas, sistemas de contabilidade
ou sistemas de manutenção de registos dentários.
2. Customized (or bespoke) software
Trata-se de sistemas que são encomendados e desenvolvidos para um determinado cliente. Um contratante de software concebe e implementa o software especialmente
para esse cliente. Exemplos deste tipo dede software incluem sistemas de controlo para dispositivos electrónicos, sistemas escritos para sistemas escritos para apoiar um
determinado processo comercial e sistemas de controlo de tráfego aéreo

January 3, 2024 Preparei por : António Soares Martins 11


Software engineering / A Enginharia de Software
A engenharia de software é uma disciplina de engenharia que se ocupa de todos os aspectos da produção
de software, desde as fases iniciais de especificação do sistema até à manutenção do sistema após a sua
utilização.
Nesta definição, há duas frases-chave:
1. Engineering discipline
Os engenheiros fazem as coisas funcionar. Aplicam teorias, métodos e ferramentas sempre que
necessário. No entanto, utilizam-nos de forma selectiva e tentam sempre descobrir soluções para os
problemas, mesmo quando não existem teorias e métodos aplicáveis. Os engenheiros também
reconhecem que devem trabalhar dentro de restrições organizacionais e financeiras e devem procurar
soluções dentro dessas restrições.
2. All aspects of software production
A engenharia de software não se preocupa apenascom os processos técnicos de desenvolvimento de
software. Inclui também actividades como a gestão de projectos de software e o desenvolvimento de
ferramentas, métodose teorias para apoiar o desenvolvimento de software.
January 3, 2024 Preparei por : António Soares Martins 12
Atributos essenciais do bom software

January 3, 2024 Preparei por : António Soares Martins 13


A engenharia de Cada vez mais, os indivíduos
software é importante
por duas razões: e a sociedade dependem de
sistemas de software
avançados.

Normalmente é mais barato

January 3, 2024 Preparei por : António Soares Martins 14


Quatro actividades fundamentais de processos de software.

Especificação do Desenvolvimento Validação do Evolução do


software de software software software

January 3, 2024 Preparei por : António Soares Martins 15


A engenharia de software está relacionada com as
ciências informáticas e a engenharia de
sistemas.

A CIÊNCIA DA COMPUTAÇÃO OCUPA-SE DAS TEORIAS E DOS MÉTODOS SUBJACENTES AOS A ENGENHARIA DE SISTEMAS ESTÁ, POR CONSEGUINTE, RELACIONADA COM O
COMPUTADORES E AOS SISTEMAS DE SOFTWARE, ENQUANTO A ENGENHARIA DE SOFTWARE DESENVOLVIMENTO DE HARDWARE, A CONCEÇÃO DE POLÍTICAS E PROCESSOS E A
SE OCUPA DOS PROBLEMAS PRÁTICOS DA PRODUÇÃO DE SOFTWARE. IMPLANTAÇÃO DE SISTEMAS, BEM COMO A ENGENHARIA DE SOFTWARE

January 3, 2024 Preparei por : António Soares Martins 16


Quatro questões relacionadas que afectam
muitos tipos diferentes de software

HETEROGENEIDADE CADA VEZ MAIS, É MUDANÇA EMPRESARIAL E SOCIAL, AS SEGURANÇA E CONFIANÇA, COMO O ESCALA, O SOFTWARE TEM DE SER
NECESSÁRIO QUE OS SISTEMAS EMPRESAS E A SOCIEDADE ESTÃO A SOFTWARE ESTÁ LIGADO A TODOS OS DESENVOLVIDO NUMA GAMA MUITO
FUNCIONEM COMO SISTEMAS MUDAR DE FORMA INCRIVELMENTE ASPECTOS DA NOSSA VIDA, É ESSENCIAL VASTA DE ESCALAS, DESDE SISTEMAS
DISTRIBUÍDOS EM REDES QUE INCLUEM RÁPIDA À MEDIDA QUE AS ECONOMIAS QUE POSSAMOS CONFIAR NELE. INCORPORADOS MUITO PEQUENOS EM
DIFERENTES TIPOS DE COMPUTADORES E EMERGENTES SE DESENVOLVEM E AS DISPOSITIVOS PORTÁTEIS OU PORTÁTEIS
DISPOSITIVOS MÓVEIS. NOVAS TECNOLOGIAS SE TORNAM ATÉ SISTEMAS BASEADOS NA NUVEM À
DISPONÍVEIS. ESCALA DA INTERNET QUE SERVEM UMA
COMUNIDADE GLOBAL.

January 3, 2024 Preparei por : António Soares Martins 17


Diversidade na engenharia de software

Interactive
Stand-alone Embedded control Batch processing
transaction-based
applications systems systems
applications

Systems for Data collection


Entertainment Systems of
modeling and and analysis
systems systems
simulation systems

January 3, 2024 Preparei por : António Soares Martins 18


1. Stand-alone applications
Trata-se de sistemas de aplicações que funcionam num computador pessoal ou
de aplicações que funcionam num dispositivo móvel. Incluem todas as
funcionalidades necessárias e podem não precisar de estar ligados a uma rede.
Exemplos de tais aplicações são as aplicações de escritório num PC, programas
CAD, software de manipulação de fotografias, aplicações de viagem, aplicações
de produtividade, etc.

January 3, 2024 Preparei por : António Soares Martins 19


2. Interactive transaction-based applications
São aplicações que são executadas num computador remoto e que são acedidas pelos
utilizadores a partir dos seus próprios computadores, telemóveis ou tablets. Esta classe
de aplicações também inclui sistemas empresariais, em que uma empresa fornece acesso
aos seus sistemas através de um navegador Web ou de um programa cliente para fins
especiais, e serviços baseados na nuvem, como a partilha de correio e de fotografias. As
aplicações interactivas incorporam frequentemente um grande armazenamento de dados
que é acedido e atualizado em cada transação.

January 3, 2024 Preparei por : António Soares Martins 20


Trata-se de sistemas de controlo de software que controlam e gerem
3. Embedded control systems dispositivos de hardware. Numericamente, existem provavelmente mais
sistemas incorporados do que qualquer outro tipo de sistema. Exemplos de
sistemas incorporados incluem o software de um telemóvel, o software que
controla a travagem antibloqueio de um automóvel e o software de um forno
de micro-ondas que controla o processo de cozedura.

January 3, 2024 Preparei por : António Soares Martins 21


Trata-se de sistemas empresariais concebidos para processar
4. Batch dados em grandes lotes. Processam um grande número de
processing entradas individuais para criar as saídas correspondentes.
systems Exemplos de sistemas batch são os sistemas de faturação
periódica, como os sistemas de faturação telefónica, e os sistemas
de pagamento de salários.

January 3, 2024 Preparei por : António Soares Martins 22


5. Entertainment
systems

Trata-se de sistemas para uso pessoal que se


destinam a entreter o utilizador. A maior
parte destes sistemas são jogos de um ou
outro tipo, que podem ser executados em
hardware de consolas especiais. A qualidade
da interação oferecida ao utilizador é a
caraterística distintiva mais importante dos
sistemas de entretenimento.

January 3, 2024 Preparei por : António Soares Martins 23


6. Systems for modeling and simulation

Trata-se de sistemas desenvolvidos por cientistas e engenheiros


para modelar processos ou situações físicas, que incluem muitos
objectos separados e em interação. Estes sistemas são muitas
vezes computacionalmente intensivos e requerem sistemas
paralelos de elevado desempenho para a sua execução.

January 3, 2024 Preparei por : António Soares Martins 24


7. Data collection and analysis systems
Os sistemas de recolha de dados são sistemas que recolhem dados do seu ambiente e
enviam esses dados para outros sistemas para processamento. O software pode ter de
interagir com sensores e é frequentemente instalado num ambiente hostil, como o interior
de um motor ou num local remoto. A análise de "bigdata" pode envolver sistemas
baseados na nuvem que efectuam análises estatísticas e procuram relações nos dados
recolhidos.

January 3, 2024 Preparei por : António Soares Martins 25


8. Systems of systems
Trata-se de sistemas, utilizados em empresas
e outras grandes organizações, que são
compostos por uma série de outros sistemas
de software. Alguns deles podem ser
produtos de software genéricos, como um
sistema ERP. Outros sistemas do conjunto
podem ser especialmente concebidos para
esse ambiente.

January 3, 2024 Preparei por : António Soares Martins 26


Existem fundamentos de engenharia de software que
se aplicam a todos os tipos de sistemas de software

1. Devem ser desenvolvidos através de um processo de desenvolvimento


gerido e compreendido. A organização que desenvolve o software deve
planear o processo de desenvolvimento e ter ideias claras sobre o que
será produzido e quando será concluído. Naturalmente, o processo
específico que deve ser utilizado depende do tipo de de software que está
a desenvolver.
2. A fiabilidade e o desempenho são importantes para todos os tipos de
sistemas. O software deve comportar-se como esperado, sem falhas, e
deve estar disponível para utilizaçãoquando for necessário. Deve ser
seguro no seu funcionamento e, tanto quanto possível, deve estar
protegido contra ataques externos. O sistema deve ter um desempenho
eficiente e não deve desperdiçar recursos.

January 3, 2024 Preparei por : António Soares Martins 27


Continua.......

Compreender e gerir a especificação e os


requisitos do software (o que o software
Deve utilizar eficazmente os recursos
deve fazer) são importantes. Tem de
existentes. Isto significa que, quando
saber o que os diferentes clientes e
adequado, deve reutilizar software que
utilizadores do sistema esperam dele e
já tenha sido desenvolvido em vez de do
tem de gerir as suas expectativas para
que escrever novo software.
que um sistema útil possa ser entregue
dentro do orçamento e do prazo

January 3, 2024 Preparei por : António Soares Martins 28


Engenharia de
software para a
Internet
O desenvolvimento da Internet e da World Wide Web teve um efeito profundo na
vida de todos nós. Inicialmente, a Web era principalmente uma loja de informações
universalmente acessível e tinha pouco efeito nos sistemas de software. Estes
sistemas funcionavam em computadores locais e só eram acessíveis a partir de
dentro de uma organização. Por volta de 2000, a Web começou a evoluir e foram
adicionadas cada vez mais funcionalidades aos browsers. Isto significava que
podiam ser desenvolvidos sistemas baseados na Web em que, em vez de uma
interface de utilizador especial, se podia aceder a esses sistemas utilizando um
navegador Web. Isto levou ao desenvolvimento de uma vasta gama de novos
produtos de sistemas que forneciam serviços inovadores, acedidos através da Web.
Estes são frequentemente financiados por anúncios que são apresentados no ecrã
do utilizador e não envolvem o pagamento direto dos utilizadores.

January 3, 2024 Preparei por : António Soares Martins 29


Efeito na engenharia de software para sistemas baseados na
Web.

A reutilização de software tornou-se a Atualmente, é geralmente reconhecido O software pode ser implementado Surgiram tecnologias de
abordagem dominante para a construção que é impraticável especificar utilizando engenharia de software desenvolvimento de interfaces como o
de sistemas baseados na Web. antecipadamente todos os requisitos orientada para os serviços, em que os AJAX (Holdener 2008) e o HTML5
para esses sistemas. Os sistemas componentes de software são serviços (Freeman 2011) que suportam a criação
baseados na Web são sempre Web autónomos de interfaces ricas num um navegador
desenvolvidos e fornecidos de forma Web.
progressiva

January 3, 2024 Preparei por : António Soares Martins 30


Software engineering ethics

1. Tal como outras disciplinas de engenharia, a engenharia de software é efectuada num quadro
social e jurídico que limita a liberdade das pessoas que trabalham nessa área. Como
engenheiro de software, deve aceitar que o seu trabalho envolve responsabilidades mais
vastas do que a simples aplicação de competências técnicas. Deve também comportar-se de
uma forma ética e moralmente responsável se quiser ser respeitado como engenheiro
profissional.
2. É evidente que os candidatos devem respeitar os padrões normais de honestidade e
integridade. Não deve usar as suas competências e capacidades para se comportar de uma
forma desonesta ou de uma forma que traga descrédito à profissão de engenheiro de software.

January 3, 2024 Preparei por : António Soares Martins 31


Os padrões de comportamento aceitável não estão vinculados por leis, mas pela noção
mais ténue de responsabilidade profissional. Algumas dessas áreas são:

Confidentiality Competence Intellectual Computer misuse


property rights

January 3, 2024 Preparei por : António Soares Martins 32


1. Confidentiality
Normalmente, deve respeitar a
confidencialidade dos seus
empregadores ou clientes,
independentemente de ter ou não
sido assinado um acordo formal de
confidencialidade tenha sido
assinado

January 3, 2024 Preparei por : António Soares Martins 33


2. Competence
Não deve deturpar o seu nível de
competência. Não deve não aceitar
conscientemente trabalhos que não
sejam da sua competência.

January 3, 2024 Preparei por : António Soares Martins 34


3. Intellectual property
rights
O utilizador deve estar ciente das leis
locais que regem autilização de
propriedade intelectual, como
patentes e direitos de autor. Deve ter
o cuidado de para garantir a
proteção da propriedade intelectual
dos empregadores e dos clientes.

January 3, 2024 Preparei por : António Soares Martins 35


4. Computer misuse
Não deve utilizar as suas
competências técnicas para utilizar
indevidamente os computadores de
outras pessoas. O uso indevido de
computadores varia de
relativamente trivial (jogar na
máquina de um empregador) a
extremamente grave (disseminação
de vírus ou outro malware)

January 3, 2024 Preparei por : António Soares Martins 36


Código de Ética e Prática Profissional
da Engenharia de Software

Grupo de Trabalho Conjunto ACM/IEEE-CS sobre Ética e Práticas


Profissionais de Engenharia de Software
(ACM = Association for Computing Machinery e IEEE-CS =
Institute of Electrical and Electronics Engineers-Computer
Society)

January 3, 2024 Preparei por : António Soares Martins 37


PREAMBLE
A versão curta do código resume as aspirações a um nível elevado de abstração; as cláusulas que estão
incluídas na versão completa dão exemplos e detalhes de como estas 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 se tornar sonoras, mas vazias; juntos, as
aspirações e os detalhes formam um código coeso.
Os engenheiros de software devem comprometer-se a fazer da análise, especificação, conceção,
desenvolvimento, teste e manutenção de software uma profissão benéfica e respeitada. De acordo com
o seu compromisso para com a saúde, segurança e bem-estar do público, os engenheiros de software
devem aderir aos Oito Princípios seguintes:

January 3, 2024 Preparei por : António Soares Martins 38


CLIENT AND EMPLOYER — Os PRODUCT — Os engenheiros de
PUBLIC — Os engenheiros de engenheiros de software devem atuar software devem garantir que os seus
software devem atuar de forma no melhor interesse do seu cliente e produtos e as modificações conexas
coerente com o interesse público. empregador, em conformidade com o satisfazem os mais elevados padrões
interesse público. profissionais possíveis.

MANAGEMENT — Os gestores e
PROFESSION — Os engenheiros de
JUDGMENT — Os engenheiros de líderes da engenharia de software
software devem promover a
software devem manter a integridade devem subscrever e promover uma
integridade e a reputação da
e a independência no seu julgamento abordagem ética à gestão do
profissão de acordo com o interesse
profissional. desenvolvimento e manutenção de
público.
software.

SELF — Os engenheiros de software


devem participar na aprendizagem ao
COLLEAGUES — Os engenheiros de
longo da vida relativamente ao
software devem ser justos e apoiar os
exercício da sua profissão e devem
seus colegas.
promover uma abordagem ética ao
exercício da profissão.

January 3, 2024 Preparei por : António Soares Martins 39


Estudos de casos
Para ilustrar os conceitos de engenharia de software, utilizo exemplos de
quatro tipos diferentes de sistemas. Não utilizei deliberadamente um único
caso de estudo, uma vez que uma das principais mensagens deste livro é que
a prática da engenharia de software depende do tipo de sistemas que estão
a ser produzidos. Assim, escolho um exemplo apropriado quando discuto
conceitos como segurança e dependabilidade, modelação de sistemas,
reutilização, etc

January 3, 2024 Preparei por : António Soares Martins 40


An embedded system

An information system
Os tipos de sistemas que
utilizo como estudos de
caso são
A sensor-based data collection system

A support environment

January 3, 2024 Preparei por : António Soares Martins 41


1. An embedded system
Trata-se de um sistema em que o software controla um
dispositivo de hardware e está incorporado nesse
dispositivo. Os problemas dos sistemas incorporados
incluem normalmente a dimensão física, a capacidade de
resposta, a gestão da energia, etc. O exemplo de um
sistema integrado que utilizo é um sistema de software para
controlar uma bomba de insulina para pessoas com
diabetes
January 3, 2024 Preparei por : António Soares Martins 42
1. An insulin pump control system
(An embedded system)

Uma bomba de insulina é um sistema médico que simula o


funcionamento do pâncreas (um órgão interno). O software
que controla este sistema é um sistema incorporado que
recolhe informações de um sensor e controla uma bomba que
fornece uma dose controlada de insulina a um utilizador.

January 3, 2024 Preparei por : António Soares Martins 43


Insulin pump hardware architecture

January 3, 2024 Preparei por : António Soares Martins 44


Activity
model of the
insulin
pump

January 3, 2024 Preparei por : António Soares Martins 45


Este sistema deve, por conseguinte, satisfazer dois
requisitos essenciais de alto nível:

O sistema deve estar disponível para administrar insulina quando necessário.

O sistema deve funcionar de forma fiável e administrar a quantidade correcta de insulina para
contrariar o nível atual de açúcar no sangue.

January 3, 2024 Preparei por : António Soares Martins 46


Um sistema de informação do paciente para apoiar os
cuidados de saúde mental (o sistema Mentcare) é um
sistema de informação médica que mantém
informações sobre pacientes que sofrem de
2. A patient problemas de saúde mental e os tratamentos que
receberam. A maior parte dos doentes de saúde
informatio mental não necessita de tratamento hospitalar
n system específico, mas tem de frequentar regularmente
clínicas especializadas, onde pode encontrar um
for mental médico com um conhecimento pormenorizado dos
health care seus problemas. Para facilitar a participação dos
doentes, estas clínicas não funcionam apenas em
hospitais. Podem também ser realizadas em
consultórios médicos locais ou em centros
comunitários.

January 3, 2024 Preparei por : António Soares Martins 47


The organization of the Mentcare
system

January 3, 2024 Preparei por : António Soares Martins 48


Gerar informações de gestão que
permitam aos gestores dos serviços de
saúde avaliar o desempenho em relação
Este sistema aos objectivos locais e governamentais.

tem dois
objectivos Fornecer ao pessoal médico
informações atempadas para apoiar o
tratamento dos doentes.

January 3, 2024 Preparei por : António Soares Martins 49


1. Gestão de cuidados individuais
2. Monitorização dos doentes
As principais 3. Relatórios administrativos
características
do sistema são

January 3, 2024 Preparei por : António Soares Martins 50


1. Gestão de Os médicos podem criar registos para os
cuidados doentes, editar asinformações no sistema,

individuais visualizar o histórico do paciente, etc. O


sistema suporta resumos de dados para que
os médicos que não conheceram
previamente um doente possam podem
rapidamente informar-se sobre os principais
problemas e tratamentos que foram
prescritos.

January 3, 2024 Preparei por : António Soares Martins 51


2. Monitorização dos
doentes
O sistema monitoriza regularmente os registos dos
doentes que estão envolvidos no tratamento e emite
avisos se forem detectados possíveis problemas.
Assim, se um doente não consultar um médico
durante algum tempo, pode ser emitido um aviso.
Um dos elementos mais importantes do sistema de
monitorização é o acompanhamento dos doentes
que foram seccionados e a garantia de que os
controlos legalmente exigidos são efectuados no
momento certo. legalmente exigidos sejam
efectuados no momento certo.

January 3, 2024 Preparei por : António Soares Martins 52


3. Relatórios
administrativos
O sistema gera relatórios de gestão mensais mensais
que indicam o número de pacientes tratados em
cada clínica, o número de pacientes doentes que
entraram e saíram do sistema de cuidados, o número
de doentes seccionados, os medicamentos prescritos
e respectivos custos, etc.

January 3, 2024 Preparei por : António Soares Martins 53


3. A wilderness weather
station
• Para ajudar a monitorizar as alterações climáticas e
melhorar a precisão das previsões meteorológicas em
zonas remotas, o governo de um país com grandes áreas
de natureza selvagem decide instalar várias centenas de
estações meteorológicas em zonas remotas. Estas
estações meteorológicas recolhem dados de um
conjunto de instrumentos que medem a temperatura e a
pressão, a insolação, a precipitação, a velocidade e a
direção do vento.
• As estações meteorológicas da natureza fazem parte de
um sistema mais vasto (Figura 1.7), que é um sistema de
informação meteorológica que recolhe dados das
estações meteorológicas e os disponibiliza a outros
sistemas para processamento

January 3, 2024 Preparei por : António Soares Martins 54


The weather
station’s
environmen
t

January 3, 2024 Preparei por : António Soares Martins 55


1. The weather Este sistema é responsável pela recolha de dados
station system meteorológicos, pelo processamento inicial dos
dados e pela sua transmissão ao sistema de
gestão de dados. sistema de gestão de dados.

January 3, 2024 Preparei por : António Soares Martins 56


2. The data management
and archiving system

Este sistema recolhe os dados de todas as estações


meteorológicas da natureza, efectua o
processamento e a análise dos dados e arquiva os
dados num formato que pode ser recuperado por
outros sistemas, como os sistemas de previsão
meteorológica.

January 3, 2024 Preparei por : António Soares Martins 57


3. The station
maintenance system

Este sistema pode comunicar por satélite com todas as


estações meteorológicas da região selvagem para
monitorizar o estado destes sistemas e fornecer
relatórios de problemas. Pode atualizar o software
incorporado nestes sistemas. Em caso de problemas no
sistema, este sistema pode também ser utilizado para
controlar remotamente a estação meteorológica.
January 3, 2024 Preparei por : António Soares Martins 58
O software da estação não se limita, portanto, à recolha de
dados. Deve também:

Monitorizar os instrumentos, a energia e o hardware de comunicação e comunicar as


falhas para o sistema de gestão.

Gerir a energia do sistema, assegurando que as baterias são carregadas sempre que as
condições ambientais o permitam, mas também que os geradores sejam desligados em
condições climatéricas potencialmente prejudiciais, como o vento forte.

Permitir a reconfiguração dinâmica, em que partes do software são substituídas por


novas versões e em que os instrumentos de reserva são comutados para o sistema em
caso de falha do sistema.

January 3, 2024 Preparei por : António Soares Martins 59


Muitos professores defendem que a utilização de
sistemas de software interactivos para apoiar a
educação pode conduzir a uma maior motivação
dos alunos e a um nível mais profundo de
conhecimento e compreensão. No entanto, não
4. A digital existe um consenso geral sobre a "melhor"
learning estratégia para a aprendizagem apoiada por
computador e, na prática, os professores utilizam
environmen uma série de diferentes ferramentas interactivas
t for schools baseadas na Web para apoiar a aprendizagem. As
ferramentas utilizadas dependem da idade dos
alunos, do seu contexto cultural, da sua
experiência com computadores, do equipamento
disponível e das preferências dos professores
envolvidos.
January 3, 2024 Preparei por : António Soares Martins 60
The
architecture of
a digital
learning
environment
(iLearn)

January 3, 2024 Preparei por : António Soares Martins 61


Existem três tipos de serviços no
sistema

SERVIÇOS DE UTILIDADE SERVIÇOS DE APLICATIVOS SERVIÇOS DE CONFIGURAÇÃO


PÚBLICA

January 3, 2024 Preparei por : António Soares Martins 62


1. Serviços de utilidade pública

Serviços de utilidade pública que fornecem uma funcionalidade básica


independente da aplicação e que podem ser utilizados por outros serviços do
sistema. Os serviços de utilidade pública são normalmente desenvolvidos ou
adaptados especificamente para este sistem

January 3, 2024 Preparei por : António Soares Martins 63


2. Serviços de aplicativos

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 científico filmes ou recursos históricos. Os serviços de
aplicativos são serviços externos que são
adquiridos especificamente para o sistema ou disponíveis gratuitamente na
Internet.

January 3, 2024 Preparei por : António Soares Martins 64


3. Serviços de Configuração

Serviços de configuração que são usados ​para adaptar o ambiente com um conjunto
específico de serviços de aplicativos e definir como os serviços são compartilhados
entre os alunos, professores e seus pais.

January 3, 2024 Preparei por : António Soares Martins 65


Dois níveis de integração de serviços

1. Serviços integrados são serviços que oferecem uma API (programação de aplicativos interface) e que pode ser
acessado por outros serviços através dessa API. Direto a comunicação serviço a serviço é, portanto, possível. Um
serviço de autenticação é um exemplo de serviço integrado. Em vez de usar os seus próprios mecanismos de
autenticação, um serviço de autenticação pode ser chamado por outros serviços para autenticar usuários. Se os
usuários já estiverem autenticados, então a autenticação serviço pode passar informações de autenticação
diretamente para outro serviço, através de um API, sem necessidade de os usuários se autenticarem novamente.
2. Serviços independentes são serviços que são simplesmente acessados ​através de um navegador interface e que
operam independentemente de outros serviços. A informação só pode ser compartilhado 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.

January 3, 2024 Preparei por : António Soares Martins 66


Resúmo
Engenharia de software é uma disciplina de engenharia que se preocupa com todos os aspectos do software Produção.

Software não é apenas um programa ou programas, mas também inclui toda a documentação eletrônica que é necessário para usuários do sistema,
equipe de garantia de qualidade e desenvolvedores. Produto de software essencial atributos são manutenibilidade, confiabilidade e segurança, eficiência
e aceitabilidade.

O processo de software inclui todas as atividades envolvidas no desenvolvimento de software. O alto nível atividades de especificação, desenvolvimento,
validação e evolução fazem parte de todos os processos de software.

Existem muitos tipos diferentes de sistema e cada um requer engenharia de software apropriada ferramentas e técnicas para o seu desenvolvimento.
Poucos, ou nenhum, design e implementação específicos técnicas são aplicáveis ​a todos os tipos de sistema.

As ideias fundamentais da engenharia de software são aplicáveis ​a todos os tipos de sistemas de software. Esses fundamentos incluem processos de
software gerenciados, confiabilidade e segurança de software, engenharia de requisitos e reutilização de software.

Os engenheiros de software têm responsabilidades perante a profissão de engenharia e a sociedade. Eles deviam não se preocupar apenas com
questões técnicas, mas deve estar ciente das questões éticas que afetar seu trabalho.

As sociedades profissionais publicam códigos de conduta que incorporam padrões éticos e profissionais. Estes estabelecem os padrões de
comportamento esperados de seus membros.

January 3, 2024 Preparei por : António Soares Martins 67


Leitura adicional
1. “Software Engineering Code of Ethics Is Approved.” An article that discusses the background to the development of the
ACM/IEEE Code of Ethics and that includes both the short and long form of the code. ( Comm. ACM, D. Gotterbarn, K.
Miller, and S. Rogerson, October 1999). http://dx.doi. org/10.1109/MC.1999.796142
2. “A View of 20th and 21st Century Software Engineering.” A backward and forward look at software engineering from one of
the first and most distinguished software engineers. Barry Boehm identifies timeless software engineering principles but also
suggests that some commonly used practices are
3. obsolete. (B. Boehm, Proc. 28th Software Engineering Conf., Shanghai. 2006). http://dx.doi. org/10.1145/1134285.1134288
4. “Software Engineering Ethics.” Special issue of IEEE Computer, with several papers on the topic (IEEE Computer, 42 (6),
June 2009).
5. Ethics for the Information Age. This is a wide-ranging book that covers all aspects of information technology (IT) ethics, not
simply ethics for software engineers. I think this is the right approach as you really need to understand software engineering
ethics within a wider ethical framework (M. J. Quinn, 2013, Addison-Wesley).

January 3, 2024 Preparei por : António Soares Martins 68


Obrigado

January 3, 2024 Preparei por : António Soares Martins 69

Você também pode gostar