ENGENHARIA DE SISTEMAS

Engenharia de Sistemas é um processo interdisciplinar que assegura que todas as necessidades do cliente serão satisfeitas durante a totalidade do ciclo de vida do sistema. Este processo compreende as sete seguintes tarefas:

  • 1. Situar (definir) o problema (State the problem). Definir o problema é a tarefa mais importante da engenharia de sistemas. Abrange identificar os clientes, compreender suas necessidades, estabelecer a necessidade de mudança, identificar os requisitos e definir as funções do sistema.
  • 2. Investigar alternativas (Investigate alternatives). As alternativas são investigadas e avaliadas baseadas em desempenho, custos e riscos.
  • 3. Modelar o sistema (Model the system). O uso de modelos torna os requisitos mais claros, revela pontos de estrangulamento e atividades fragmentadas, reduz custos e expõe duplicidades de esforços.
  • 4. Integrar (Integrate). Integração significa projetar interfaces e agrupar os elementos de um sistema de modo a funcionarem como um todo. Tal requer uso intensivo das comunicações e muita coordenação.
  • 5. Lançar o sistema (Launch the system). Lançar o sistema significa fazê-lo funcionar e produzir saídas - é fazer com que o sistema faça aquilo para que foi projetado fazer.
  • 6. Avaliar o desempenho (Assess performance). O desempenho é medido usando critérios de avaliação, medidas técnicas de desempenho  e medidas -- a mensuração é a chave. Se não se pode medir um sistema, também não se pode controlá-lo. E se não se pode controlá-lo, também não se pode aperfeiçoá-lo.
  • 7. Reavaliar (Reevaluation). Reavaliação deve ser um processo diuturno e iterativo, segundo muitos laços paralelos.

Este processo é conhecido pelo acrônimo SIMILAR (Bahill and Gissing, 1998).

NOTA: O material deste texto foi compilado de trabalhos de experientes engenheiros de Engenharia de Sistemas da BAE Systems; da Sandia National Laboratories; da Hughes Missile Systems; da Lockheed Martin Tactical Defense Systems; da The Boeing Company e da Idaho National Engineering and Environmental Laboratories e, também, segundo as referências gerais: Chapman, Bahill and Wymore (1992); Wymore (1993); IEEE P1220 (1994); Grady (1994, 1995); Hughes Aircraft Company (1994); Martin-Marietta (1994); Shishko and Chamberlain (1995); Martin (1997); Blanchard and Fabrycky (1998); EIA-632 (1999); Sage and Rouse (1999); DSMC (1999); Buede (2000); Rechtin (2000); Proceedings of the IEEE SystemsMan e Cybernetics International Conferences; NCOSE e INCOSE Symposia e Proceedings.

As primeiras versões do texto foram publicadas no IEEE Systems, Man and Cybernetics Newsletter Dezembro 1994, pg. 11-12, e nos Proceedings of the Sixth Annual Symposium of the International Council on Systems Engineering (INCOSE), Julho, 1996, Boston, Vol. 1, pg. 503-508.

O ciclo de vida do sistema

O ciclo de vida de um sistema é composto de cinco fases: (1) levantamento dos requistos do sistema, (2) avaliação das alternativas, (3) projeto de engenharia para produção plena, (4) implementação, (5) integração e testes do sistema, (6) operação, manutenção e avaliação e (7) retirada de serviço, eliminação e substituição. 

       Contudo, devemos levar em conta que o ciclo de vida dos sistemas é diferente para diferentes indústrias, produtos e clientes. Chapman, Bahill and Wymore (1992); Wymore (1993); Kerzner (1995); Shishko and Chamberlain (1995).

1. Situar o problema (State the problem)

Situar ou definir o problema tem início com a descrição da(s) função(ões) que o sistema deve desempenhar ou da deficiência que deve ser eliminada. Isto impõe que os requisitos do sistema devam ser declarados em termos do que deve ser feito, e não de como deve ser feito. Isto pode ser expresso por palavras ou por modelos. Os diferentes Inputs derivam dos utilizadores finais, dos operadores, de quem paga as contas, dos proprietários, das agências reguladoras, das vítimas, dos patrocinadores, do  Marketing, das manufaturas, etc. No ambiente empresarial moderno a declaração do problema  começa com uma razão para a mudança, seguido da declaração da visão e da missão da empresa. A declaração do problema é um dos mais importantes produtos da Engenharia de Sistemas. Não tem nenhum valor uma elegante solução para o problema errado.

Na definição do problema não utilizar a palavra ótimo.

A palavra ótimo não deve aparecer na declaração de um problema, uma vez que não há uma simples solução ótima para um problema referente à sistemas complexos. A maioria dos projetos têm diversos critérios de desempenho e de custos. A Engenharia de Sistemas cria várias alternativas de projeto que satisfazem a esses critérios, nos mais variados graus. Passar de uma para outra alternativa normalmente otimiza pelo menos um dos critérios, enquanto que simultaneamente piora, pelo menos, um outro, dando origem à negociações, ou soluções de compromisso.  Provavelmente nenhuma das alternativas exequíveis otimizará todos os critérios. Deste modo a Engenharia de Sistemas provavelmente chegará a um resultado quase ótimo.  Não é muito provável que algum sistema complexo possa ser otimizado segundo a ótica de todas as pessoas, por todo o tempo.  Pode ser que seja possível otimizar algum subsistema, mas quando forem interconectados, o sistema global pode não ser otimizado. O melhor sistema possível pode ser aquele que não seja o resultado da interconexão de subsistemas otimizados. Um time de estrelas pode ter pessoal cobra em todas as posições, mas se pode afirmar ser provável que tal time vença os campeões do mundo? Mesmo que os requisitos do sistema  demandem um sistema ótimo, não haverá dados que possam provar que o sistema resultante seja realmente ótimo. Em geral, pode ser provado que um sistema é localmente ótimo, mas não que ele é globalmente ótimo.

Entender as necessidades do cliente

Raramente os clientes sabem o que querem ou desejam. Os Engenheiros de Sistemas devem adentrar o ambiente do consumidor e verificar como ele usa o sistema. Deve-se exceder, e não somente atender, as expectativas do cliente. Projetos flexíveis e prototipagem rápida ajudam a identificar aspectos que possam ter sido relevados. Falar com os clientes do seu cliente e os fornecedores do seu fornecedor pode ser de muita utilidade.  Os termos customer e stakeholder abrangem todas as pessoas que tenham o direito de impor algum tipo de requisito para o sistema: são os utilizadores finais, operadores, proprietários, pagadores de contas, agências reguladoras, beneficiários, vítimas, etc. Chapman, Bahill e Wymore (1992); Wymore (1993).

Levantar os requisitos do sistema

Há dois tipos de requisitos dos sistemas: os mandatórios e os acessórios: (Bahill and Dean, 1999). Requisitos mandatórios asseguram que o sistema satisfaça a necessidade operacional do cliente. Requisitos mandatórios (1) especificam as condições necessárias e suficientes que um sistema mínimo deva ter a fim de ser aceitável (eles são usualmente escritos com as palavras  deve ou é necessário.), (2) devem ser aceitos ou recusados, não havendo meio termo (i.e. eles não usam funções de valores para graduá-los.), e (3) não devem ser suscetíveis de negociações entre dois requisitos. Requisitos mandatórios típicos devem ter a seguinte forma: "O sistema não deve violar leis federais, estaduais ou locais". Requisitos mandatórios estabelecem os requisitos mínimos necessários para satisfazer a necessidade do cliente.

Uma vez compreendidos os requisitos mandatórios, os Engenheiros de Sistemas propõe projetos alternativos candidatos, todos satisfazendo àqueles requisitos. Os requisitos acessórios são, então, avaliados, a fim de ser selecionado o projeto preferido. Os requisitos acessórios (1) devem estabelecer as condições que possam fazer o cliente mais feliz (eles são frequentemente escritos com a palavra podem), (2) podem usar funções de valores para graduá-los (Daniels, Werner and Bahill, 2001: Wymore, 1993) na avaliação do critério e (3) devem ser avaliados com o auxílio de técnicas de decisão multicritério (Szidarovszky, Gershon e Duckstein, 1986; Daniels, Werner e Bahill, 2001) devido ao fato de que ocorrerão conflitos entre eles. Requisitos acessórios típicos devem ter a seguinte forma: "O jantar pode conter itens de cada um dos quatro principais grupos de alimentos".

Em certas ocasiões poderá ocorrer o relacionamento entre requisitos mandatórios e os acessórios, por exemplo, um requisito mandatório pode ter um limite menor do que o valor de um requisito acessório. As palavras, otimizar, maximizar, minimizar e simultâneo não devem ser usadas quando declarando requisitos (Grady, 1993). A Função de Desenvolvimento da Qualidade (Quality Function Deployment (QFD) é útil na identificação dos requisitos de sistemas: (Bahill e Chapman, 1993; Bicknell e Bicknell, 1994).

Validar os requisitos

Validar os requisitos significa assegurar que (1) a solução recomendada satisfaz a necessidade real do consumidor, (2) a descrição dos requisitos é consistente e completa, (3) um modelo do sistema pode satisfazer os requisitos e (4) uma solução real pode ser testada de modo a provar que ela satisfaz aos requisitos. Se os Engenheiros de Sistemas descobrirem que o cliente solicitou uma máquina de movimento perpétuo, o projeto deve ser interrompido. Os requisitos são frequentemente validados tomando-se como referência um sistema já existente,  o qual satisfaça a sua maioria.

2. Investigar alternativas

Projetos alternativas são avaliados baseados em critérios de desempenho, custos, programação e riscos. Provavelmente nenhum projeto  será o melhor em todos os critérios, de modo que o auxílio de técnicas de decisão multicritério deve ser usado  de modo a revelar quais alternativas serão as preferidas. Tal análise deve ser repetida sempre que mais dados forem disponibilizados. Por exemplo, o critério deve ser, inicialmente, computado na base de estimativas feitas pelos engenheiros projetistas, sendo, então, elaborados e avaliados modelos. Uma nova simulação dos dados deve derivar daí. Protótipos subsequentes devem ser medidos e finalmente os dados devem ser testados num modelo real do sistema. Para o projeto de sistemas complexos o estudo de projetos alternativos serve para reduzir os riscos de projeto envolvidos. A investigação de alternativas bizarras  ajuda a clarear a definição do problema. Este é um dos principais processos usados para definir a arquitetura dos sistemas.

Definir medidas quantitativas

Os critérios de avaliação, as medidas de desempenho técnico e as medidas de um modo geral são todas usadas para quantificar o desempenho do sistema. Esses termos são frequentemente usados de modo intercambiável, mas acreditamos que seja necessário diferenciá-los: Critérios de avaliação (frequentemente referidos como números de mérito) são usados para quantificar requisitos. Medidas de desempenho técnico são usadas para reduzir o risco durante o projeto e a fabricação. Medidas (ou métricas) são usadas para auxiliar o gerenciamento dos processos de uma empresa. (Moody, et al., 1997).

Critérios de desempenho e de custo

Esses critérios mostram quanto adequadamente o sistema atende aos seus requisitos, como por exemplo - neste teste o carro acelera de 0 a 60 em 6.5 segundos. Os critérios de avaliação são frequentemente chamados de Medidas de Eficácia. Tais medidas são realizadas ao longo da evolução dos sistema: primeiramente baseadas em estimativas feitas pelos engenheiros de projeto, a seguir em modelos, simulações, protótipos e, finalmente, no sistema real. Os critérios de avaliação são usados a fim de auxiliar na seleção de um projeto, entre os projetos alternativas, e são usados para quantificar os requisitos dos sistemas. Durante a seleção conceitual,  os critérios permitem negociações, isto é, passando de uma para outra alternativa aumenta um determinado número de mérito enquanto diminui outro. Os critérios de avaliação devem servir de base para a maioria dos requisitos.

Medidas técnicas de desempenho (Technical performance measures TPM)

As medidas técnicas de desempenho (TPM's) são usadas para acompanhar o progresso do projeto e da fabricação. Elas são medidas feitas durante os processo de projetar e de fabricar/produzir  a fim de permitirem a avaliação da probabilidade de satisfação dos requisitos do sistema. Nem todos os requisitos têm TPMs. TPMs são, usualmente, associadas somente a requisitos de altíssimo risco, de vez que são dispendiosas de manter e acompanhar. Protótipos iniciais não atenderão as metas de TPM. Deste modo requer-se, somente, que os valores de TPM permaneçam dentro de uma faixa de tolerância. Espera-se que na medida em que avancem os processos de projeto e de fabricação/produção os valores de TPM se tornem cada vez mais próximos das metas estabelecidas.

Medidas

As medidas, ou métricas, são frequentemente relacionadas aos processos, não ao produto. (Moody et al., 1997). Deste modo, elas nem sempre se relacionam com requisitos específicos do sistema. Muitas vezes algumas medidas se relacionam à declaração da missão da empresa e metas subsequentes. Uma medida útil é a percentagem dos requisitos que mudaram depois de procedida a Revisão dos Requisitos do Sistema.

3. Modelar o sistema

Serão desenvolvidos modelos para a maioria das alternativas de projeto. O modelo da alternativa selecionada será expandido e usado para auxiliar no gerenciamento do sistema durante todo seu ciclo de vida. Serão usados muitos tipos diferentes de modelos , tais como os físicos analógicos, as equações analíticas, as state machines, diagramas de bloco, diagramas de fluxo funcional, modelos orientados à objetos, simulações computacionais e modelos mentais. A Engenharia de Sistemas é responsável pela criação de um produto e, também, de um processo para concretizá-lo. Deste modo, os modelos devem ser construídos para representar a realidade tanto do produto como dos processos. Os modelos de processo permitem, por exemplo, o estudo de alterações de programação, criar cartas dinâmicas PERT, e realizar análise de sensibilidade a fim de mostrar as consequências de atrazos e acelerações em certos subprojetos. Colocar para funcionar os modelos de processo revela gargalos e atividades fragmentadas,  reduz custos e expões duplicidades de esforços. Os modelos de produtos ajudam a explicar o sistema. Esses modelos são usados em estudos de negociações e gerenciamento de riscos.

Projetar (Design) o sistema

O sistema global deve ser particionado em subsistemas, os subsistemas particionados em conjuntos, etc. A reusabilidade deve ser considerada na criação dos subsistemas. Para novos projetos, os subsistemas devem ser criados de modo a poderem ser re-usados em produtos futuros. Para reprojetos, os subsistemas devem ser criados de modo a maximizarem o uso de produtos já existentes, particularmente os disponíveis comercialmente. Os Engenheiros de Sistema devem igualmente decidir entre construir/fabricar ou comprar  os subsistemas, tentando em primeiro lugar a utilização de subsistemas comercialmente disponíveis. Se não houver nenhum deles que satisfaça a todos os requisitos, deve ser considerada, então, a possibilidade de modificação de um subsistema já existente. Se mesmo assim for insatisfatório, então alguns subsistemas terão que ser desenvolvidos em casa. Os engenheiros ao projetarem um subsistema devem ter perfeita compreensão dos demais subsistemas com os quais o seu sistema vai interagir.  A flexibilidade é mais importante do que a otimização. Devem ser considerados o hardware, o software e o  bioware. Bioware (ou wetware) significa organismos humanos e outros biológicos que sejam parte do sistema. Por exemplo, projetar uma pista de corridas para cavalos ou cachorros faz parte do bioware. Instalações para seus cuidados e manuseio devem ser consideradas, do mesmo modo que provisões para educação, fatores humanos e segurança. Essas atividades são conhecidas como Projeto de Sistemas (System Design) para novos sistemas e Análise de Sistemas (Systems Analysis) para os sistemas já existentes. 

Criar diagramas de sequências

Indubitavelmente o primeiro passo ao projetar um sistema deve ser a criação de diagramas de sequência de eventos. Em outras palavras, isto quer dizer colecionar sequências típicas de eventos que o sistema proposto irá desempenhar. As sequências podem ser a descrição de comportamentos históricos ou podem ser baseadas em modelos mentais para comportamento futuro. Tais descrições de comportamentos de entrada e de saída como funções do tempo são chamadas de diagramas de sequências , cenários comportamentais, cenários operacionais, conceitos operacionais, sequências operacionais, trilhas, trajetórias de entradas e saídas, diagramas de colaboração, diagramas logísticos ou de interações. Os diagramas de sequências são fáceis de serem descritos e discutidos, sendo fácil, igualmente, convertê-los em um projeto de sistema. Sequências adicionais  podem ser adicionadas incrementalmente à coleção. (Bahill and Dean, 1999; Bahill and Daniels, 2003).

Definir a arquitetura do sistema

Decomposição funcional versus física
Função Componente física da aeronave Componente física da  ave
Decolar e aterrisar Rodas, skis ou pontões Pernas
Determinar posição e velocidade Visão ou radar Olhos
Navegar Cérebro ou computador Cérebro
Produzir propulsão horizontal Hélice ou jato Asas
Produzir propulsão vertical Asas Asas
 

As aves usam um componente físico para duas funções: força de deslocamento horizontal e sustentação. O homem teve que usar dois componentes físicos para executar estas duas funções. Como este exemplo mostra, é perfeitamente aceitável assinalar duas ou mais funções a um componente físico. Contudo, provavelmente será um equívoco assinalar uma função a dois componentes físicos.

Identificar as funções que um sistema tem que desempenhar é somente uma parte da sua descrição: os objetos (Fowler e Scott, 2000; Jacobson, Booch e Rumbaugh, 1999; Douglas, 2000; Gomaa, 2000; Cockburn, 2001; Bahill and Daniels, 2003) e estados devem ser, também, descritos (Bahill, et al., 1998; Wymore e Bahill, 2000).

Análise de sensibilidade

Numa análise de sensibilidade cada parâmetro ou requisito é variado e os efeitos de saída são observados. A análise de sensibilidade pode ser usada para apontar quais parâmetros e requisitos têm os efeitos mais pronunciados sobre custos, programação e desempenho. Eles auxiliam na alocação de recursos. Karnavas, Sanchez e Bahill (1993).

Avaliar e gerenciar riscos

Existem dois tipos de riscos: risco da falha do projeto (devido a estouro dos gastos, estouro no tempo ou falha em atender as especificações de desempenho) e riscos de acidentes pessoais (usualmente chamado de segurança do pessoal). Deve ser realizada uma análise de modo de falha e seus efeitos e providenciada um modo de redução dos  riscos (Bahill and Karnavas, 2000). O risco de falha do projeto pode ser reduzido pela supervisão da qualidade e o fornecimento oportuno dos itens comprados. Kerzner (1995).

Análise de confiabilidade

Os principais modos de falhas devem ser analisados quanto à probabilidade de ocorrência e severidade de ocorrência. Kapur e Lamberson (1977); O'Connor (1991).

4. Integrar os componentes do sistema

Integração significa colocar tudo junto de modo a funcionar como um todo. Integração do sistema significa colocar juntos os subsistemas de modo a produzirem o resultado desejado e assegurar que eles interajam de modo a satisfazer as necessidades do cliente. Os utilizadores finais e engenheiros necessitam saber operar o sistema  por meio de cursos, manuais e treinamentos em protótipos. Grady (1994).

Projetar (design) e gerenciar interfaces

Interfaces entre subsistemas e interfaces entre o sistema principal e o mundo externo devem ter seus limites naturais perfeitamente definidos. Os subsistemas devem ser definidos segundo limites naturais. Quando uma mesma informação vai e volta entre diferentes subsistemas uma atividade natural pode ter sido fragmentada. Os subsistemas devem ser definidos de modo a minimizar a quantidade de informações a ser trocada entre eles. Subsistemas bem desenvolvidos enviam produtos acabados aos demais subsistemas. Laços de realimentação entre subsistemas individuais são mais fáceis de administrar do que laços de realimentação entre subsistemas inter-conectados. Quando projetando subsistemas e suas interfaces assegure-se de considerar a possibilidade de re-usá-los.

5. Lançar o sistema

Lançar o sistema significa fazê-lo funcionar da maneira como foi projetado para fazê-lo, isto é, fazendo-o operar produzindo suas saídas desejadas (Bahill e Gissing, 1998). Engenheiros de Projeto produzem projetos para produtos e processos para tal.

Gerenciar a configuração

O Gerenciamento da Configuração (também chamado de gerenciamento das alterações) assegura que quaisquer mudanças nos requisitos, projeto ou implementações, são controladas, cuidadosamente identificadas e registradas com precisão. Todos os interessados no projeto (stakeholders) devem ter a oportunidade de opinar sobre as mudanças propostas. As decisões de adotar uma alteração devem ser registradas numa base de dados referencial. Uma configuração de referência  é um projeto congelado em determinado instante no tempo com registro dos requisitos para as funções, desempenho, interfaces, verificações, testes, custos, etc. Tais referências só podem ser alteradas em determinados pontos específicos no ciclo de vida. Todas as partes concernentes devem ser notificadas das alterações de modo a garantir que trabalhem no mesmo projeto. A expressão acompanhamento dos requisitos (requirements tracking) está sendo agora usada como um importante subconjunto do Gerenciamento da Configuração.

Gerenciar o projeto

Gerenciamento do projeto é o planejamento, organização, direção e controle dos recursos da instituição a fim de alcançar metas e objetivos específicos num tempo e custo pré-determinado, e num nível de desempenho desejado. (Kerzner, 1995: Tichy e Sherman, 1993). O gerenciamento de projetos cria uma estrutura analítica de decomposição, na forma de uma árvore de hardware, software, dados, instalações e serviços orientada-ao-produto. Tal estrutura mostra e define os produtos a serem desenvolvidos e relaciona os elementos do trabalho a serem realizados entre si e com o produto final. Esta decomposição analítica provê estrutura para guiar as atribuições das equipes e controle de custos e acompanhamento. (Martin, 1997).

Documentação

Todos essas atividades de Engenharia de Sistemas devem ser documentadas num repositório comum, freqüentemente chamado de Caderno de Engenharia (Engineering Notebook) As informações armazenadas devem indicar a localização, plataforma e apresentação independente: o que quer dizer que qualquer pessoa ou qualquer computador usando qualquer ferramenta deve ser capaz de trabalhar com os dados fundamentais. Assunções, resultados de estudos de compromisso e razões para a tomada de decisões críticas devem ser registradas. Esses documentos devem estar em vigor e serem dinâmicos. Por exemplo, ao final do ciclo de vida do sistema deve existir um  modelo preciso do sistema existente, a fim de auxiliar na sua baixa. Chapman, Bahill e Wymore (1992); Wymore (1993).

Equipes líderes

Sistemas complexos não podem ser projetados por uma única pessoa. Conseqüentemente, os engenheiros trabalham em Equipes Integradas de Desenvolvimento de Produtos (Integrated Product Development Teams (IPDTs)). Essas equipes são  interdisciplinares com membros especialistas em Negócios, Engenharia, Manufatura,Testes, etc. IPDTs são freqüentemente dirigidos por Engenheiros de Sistemas, formal ou informalmente. Katzenback and Smith, (1993).

6. Avaliar o desempenho

Durante as fases de operação e manutenção do ciclo de vida do sistema, seu desempenho deve ser medido. Inicialmente, essas medidas servirão para verificar se o sistema se comporta conforme seus requisitos. Mais tarde serão usadas para detectar deterioração e iniciar a manutenção.

Prescrever testes

Logo nos primórdios do ciclo de vida de um sistema a Engenharia de Sistemas deve descrever os testes que serão usados para provar o aderência do sistema aos seus requisitos. Contudo, muitos testes devem ser realizados por equipamentos de testes embutidos (built-in self-test equipment). Esses auto-testes devem ser usados como testes de instalação inicial, testes de pós-instalação, diagnósticos de energização (power-up diagnostics), serviços de campo e reparos de nível depot. O destinatário de cada resultado de teste realizado e a ação a ser tomada se o sistema passar ou falhar em cada teste devem estar claramente indicados.

Conduzir revisões

Os Engenheiros de Sistemas devem assegurar que serão conduzidas e documentadas revisões adequadas. A definição exata de cada revisão depende do tamanho, complexidade e do cliente do projeto. O seguinte conjunto é comum: Revisão do Conceito da Missão (Mission Concept Review), Revisão dos Requisitos do Sistema (System Requirements Review (SRR)), Revisão de Definição do Sistema (System Definition Review), Revisão de Projeto Preliminar (Preliminary Design Review (PDR)), Revisão Crítica do Projeto (Critical Design Review (CDR)), Revisão de Prontificação para Construção (Production Readiness Review (PRR)), e Testes do Sistema (System Test). O projeto de engenharia para produção em série começa depois da Revisão de Projeto Preliminar. A construção/fabricação começa depois da Revisão Crítica do Projeto. (Shishko e Chamberlain, 1995; Bahill e Dean, 1999).

Verificar requisitos

A Engenharia de Sistemas deve provar que o sistema final atende a cada um dos requisitos de sistema. Os requisitos devem ser verificados por inspeção, análise, demonstração, testes, argumentação lógica, modelagem ou simulação.

Testar o sistema global

O sistema que finalmente for construído deve ser testado para ver se (1) satisfaz os requisitos mandatórios, e (2) qual o grau com que satisfaz os requisitos acessórios. A fim de economizar dinheiro não foi feito um teste global  antes do lançamento do telecópio espacial Hubble. Como conseqüência despendeu-se $850,000,000 para reparar o erro do sistema.

7. Reavaliar

Reavaliação é inegavelmente a mais importante tarefa da Engenharia de Sistemas. Por séculos, os engenheiros vêm usando realimentação para controlar os sistemas e melhorar o desempenho. Esta é uma das mais fundamentais ferramentas de engenharia.  Reavaliar significa observar saídas e usando as informações, modificar as entradas para o sistema , o produto ou o processo. A reavaliação deve ser um processo contínuo com muitos laços paralelos. Cada um deve reavaliar continuamente aspectos do sistema de modo a melhorar sua qualidade.  As principais ferramentas usadas nesse processo abrangem a engenharia concorrente básica, os conceitos de melhoria da qualidade de Deming,  a função de desenvolvimento da qualidade (quality function deployment (QFD)), os princípios da Gestão pela Qualidade Total, bem como as técnicas de engenharia da qualidade de Taguchi. Deming (1982); Bicknell and Bicknell (1994); Latzko and Saunders (1995).

Categorias de Engenheiros de Sistemas

Muitas empresas dividem a Engenharia de Sistemas que praticam em trêss categorias, de acordo com seus fluxos principais de trabalhos: Definição de Requisitos, Projeto Arquitetônico e Testes e Verificações.

Criando Engenheiros de Sistema

O método tradicional de criar Engenheiros de sistemas era o de selecionar engenheiros bem organizados e cheios de senso comum e deixá-los adquirir cerca de  30 anos de diversas experiências em engenharia. Porém, recentemente, esses tradicionais Engenheiros de Sistemas escreveram livros e padrões que explicam o que eles fazem e como fazem. Desse modo, agora que foram formalizadas ferramentas, conceitos e procedimentos, em quatro anos de ensino no nível de graduação podem ser formados Engenheiros de Sistemas que terão nível de desempenho de 50% com relação aos tradicionais Engenheiros de Sistemas mais antigos (Esses números se baseiam em dados de média salarial nos EUA, de modo que quem quiser, pode desacreditá-los). Dez anos de experiência em Engenharia de Sistemas melhoram o desempenho em 80% e outros dez anos mais aumentarão tal experiência para 100%.

Conclusão

Será que o dr. Victor Frankenstein foi um bom Engenheiro de Sistemas? A resposta é SIM. Ele construiu um sistema complexo com muitos componentes, e seu sistema funcionou! Além do mais, marcou pontos quanto aos baixos custos, alto desempenho, respeito à programação  e grande re-usabilidade. Contudo, pagou mico quanto à análise de riscos, análise do ciclo de vida  e testes finais do sistema. A discussão que se segue é baseada numa novela de  Mary Shelley, em 1818, e não em filmes.

Definindo o problema: Frankenstein entrou em depressão quando sua mãe morreu. Em conseqüência passou a querer dominar a morte por meio da infusão de vida num corpo inanimado.

Entendendo as necessidades do cliente: Penso que aqui ele explodiu, sendo que a compaixão e o consolo da tristeza são o que melhor pode atender às necessidades desse consumidor.

Levantando os requisitos do sistema: O único requisito que Victor considerou foi o de criar vida, de modo que seu trabalho em levantar requisitos foi extremamente pobre.

Validando os requisitos: Com validar requisitos se não foram levantados requisitos?

Investigando alternativas: Quando o monstro dialogou com  Frankenstein, ele disse que estava solitário e queria que o dr. lhe construísse uma companheira. Ao projetar esta companhia Frankenstein considerou várias alternativas.

Definindo medidas quantitativas: Ele não tinha medidas de eficácia.

Modelando o sistema: Victor Frankstein tinha modelos mentais e desenhos em seu livro, mas não um modelo formal. Conseqüentemente, ficou surpreso com a feiura alcançada para sua criatura: embora vendo que já era feia [durante a construção]; mas quando juntou aqueles músculos e articulações e os cobriu de pele, tornando-a capaz de movimento, a criatura tornou-se uma coisa que nem mesmo Dante poderia ter concebido.

Decomposição funcional: Victor procedeu uma decomposição analítica física  (não funcional).

Produzindo o Design do Sistema: Ele projetou um sistema muito bom. E obteve nota muito alta quanto à re-usabilidade!

Análise de sensibilidade: Ele nada sabia sobre análise de sensibilidade. Este é uma ferramenta moderna.

Gerenciamento de riscos: Ele teve nota muito baixa no gerenciamento de riscos. De fato o monstro culminou por matar seu irmão, seu melhor amigo e sua noiva. Mas antes de Frankenstein terminar seu segundo monstro, ele considerou os riscos envolvidos e destruiu seu trabalho.

Análise de confiabilidade: Seu monstro era muito robusto. Não precisava de alimentos, não sentia frio congelante e nem ferimentos a bala, tudo por sua constituição.

Integrando o sistema: Este foi seu feito máximo, ao colocar todas as partes juntas, e fazê-las funcionar.

Lançando o sistema: Frankenstein não lançou seu monstro no mundo. De fato, o monstro é que fugiu imediatamente após ganhar vida.

Gerenciamento da configuração: Ele não poderia gerenciar a configuração uma vez que não tinha requisitos.

Gerenciamento do Projeto: Ele fez um excelente trabalho de gerenciamento de projeto: seu sistema tinha custo baixo, alto desempenho e foi produzido como programado.

Documentação: O dr. Frankenstein mantinha um livro de notas com registros, no laboratório.Este livro de notas foi o que permitiu ao monstro seguir sua pista e capturá-lo um ano e mais tarde, num país diferente.

Equipes líderes: Frankenstein trabalhou sozinho e nunca disse, a ninguém, o que tinha feito.

Avaliando o desempenho: o que inclui realizar testes, conduzir revisões, verificar requisitos e testar o sistema globalmente.  Frankenstein não realizou nenhuma dessas tarefas.

Reavaliando e melhorando a qualidade. A razão por que Frankenstein foi para a Inglaterra foi a consultar filósofos, por que ele queria que seu segundo monstro fosse melhor do que o primeiro.

Engenharia de sistemas é a disciplina responsável por assegurar que todas essas tarefas  são realizadas num ambiente de engenharia concorrente. Contudo, o processo de Engenharia de Sistemas deve ser dimensionado adequadamente segundo cada projeto. Frequentemente isto significa omitir determinadas tarefas, o que reduz custos, mas em compensação aumenta os riscos. Se você escolher omitir uma dessas tarefas, você deve se questionar - Por quê? 

Referências:

ANSI/EIA 632, Standard, Process for Engineering a System, January 1999.

Bahill, A.T. and Briggs, C, The systems engineering started in the middle process: a consensus of system engineers and project managers, Systems Engineering, 4(2): 156-167, 2001.

Bahill, A.T. and Daniels, J, Using object-oriented and UML tools for hardware design: a case study, Systems Engineering, 6(1): 28-48, 2003.

Bahill, A.T. and Karnavas, W.J, Risk analysis of a Pinewood Derby: A case study, Systems Engineering, 3(3): 143-155, 2000.

Bahill, A.T., Alford, M., Bharathan, K., Clymer, J.R., Dean, D.L., Duke, J., Hill, G., LaBudde, E.V., Taipale, E.J. and Wymore, A.W., The design-methods comparison project, IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews28(1), 80-103, February 1998.

Bahill, A.T. and Dean, F.F., Discovering system requirements, in A.P. Sage and W.B. Rouse (Eds), Handbook of Systems Engineering, John Wiley & Sons, 175-220, 1999.

Bahill A.T. and Chapman, W.L., A tutorial on quality function deployment, Engr Management J5(3):24-35, 1993.

Bahill, A.T. and Gissing, B., Re-evaluating systems engineering concepts using systems thinking, IEEE Transactions on Systems, Man and Cybernetics, Part C: Applications and Reviews, Volume 28, Number 4, pp. 516-527, November 1998.

Bicknell, K.D. and Bicknell, B.A., The Road Map to Repeatable Success: Using QFD to Implement Changes, CRC Press, Boca Raton, 1994.

Blanchard, B.S. and Fabrycky, W.J., Systems Engineering and Analysis, Prentice-Hall, 1998.

Buede, D. M., The Engineering Design of Systems, John Wiley, New York, 2000.

Chapman, W.L., Rozenblit, J. and Bahill, A.T., Systems design is an NP-complete problem, Systems Engineering, 4(3): 222-229, 2001.

Chapman, W.L., Bahill, A.T. and Wymore, W., Engineering Modeling and Design, CRC Press, Boca Raton, 1992.

Cockburn, A., Writing Effective Use Cases, Addison-Wesley, 2001.

Daniels, J., Werner, P.W., and Bahill, A.T., Quantitative Methods for Tradeoff Analyses, Systems Engineering, 4(3), pp. 199-212, 2001.

Deming, W.E., Out of the Crisis, MIT Center for Advanced Engineering Study, Cambridge MA, 1982.

DSMC, Systems Engineering Fundamentals, Defense System Management College, http://www.dsmc.dsm.mil/pubs/gdbks/pdf/systengfund.pdf 1999.

Douglas, B.P., Real-Time UML, Addison-Wesley, Reading, 2000.

Fowler, M. and Scott K., UML Distilled: A brief guide to the standard object modeling language, Addison-Wesley, 2000.

Grady, J.O., System Requirements Analysis, McGraw Hill Inc., 1993.

Grady, J.O., System Integration, CRC Press, Boca Raton, 1994.

Grady, J.O., System Engineering Planning and Enterprise Identity, CRC Press, Boca Raton, 1995.

Gomaa, H., Designing Concurrent, Distributed, and Real-Time Applications with UML, Addison-Wesley, Reading, 2000.

Hooks, I. F. and Farry, K. A., Customer Centered Products: Creating Successful Products Through Smart Requirements Management, American Management Association, 2001.

Hughes Aircraft Co., Systems Engineering Handbook, 1994.

IEEE 1220 Standard, Application and Management of the Systems Engineering Process, IEEE Standards Dept., NY, December 1998.

ISO/IEC 15288, System Life Cycle Processes, October 2002.

Jacobson, I., Ericsson, M. and Jacobson, A., The Object Advantage: Business Process Reengineering with Object Technology, Addison-Wesley, New York, 1995.

Jacobson, I. Booch, G. and Rumbaugh J., The Unified Software Development Process, Addison-Wesley, 1999.

Kapur, K.C. and L.R. Lamberson, Reliability in Engineering Design, John Wiley and Sons, New York, 1977.

Karnavas, W.J., Sanchez, P. and Bahill A.T., Sensitivity analyses of continuous and discrete systems in the time and frequency domains, IEEE Trans Syst Man Cybernetics, SMC-23:488-501, 1993.

Katzenbach, J.R. and Smith, D.K., The Wisdom of Teams, HarperCollins Publishers, 1993.

Kerzner, H., Project Management: a Systems Approach to Planning, Scheduling, and Controlling, Van Nostrand Reinhold, New York, 1995.

Latzko, W.J. and Saunders, D.M., Four Days with Dr. Deming, Addison-Wesley, Reading, Mass, 1995.

Martin, J., Systems Engineering Guidebook: A Process for Developing Systems and Products, CRC Press, Boca Raton, 1997.

Martin-Marietta, Systems Engineering Methodology Handbook EPI 270-01, 1994.

MIL-STD-499B, Draft Military Standard for Systems Engineering, AFSC/EN, 1992. This standard was not signed by the Department of Defense. Spokesmen said that the government should not be in the business of writing standards and therefore they would adopt standards written by professional societies.

Moody, J.A., Chapman, W.L., Van Voorhees, F.D. and Bahill, A.T., Metrics and Case Studies for Evaluating Engineering Designs, Prentice Hall PTR, Upper Saddle River, NJ, 1997.

O'Connor, P.D.T., Practical Reliability Engineering, 3rd Edition, John Wiley and Sons, 1991.

Rechtin, E., Systems Architecting of Organizations: Why Eagles Can't Swim, CRC Press, Boca Raton, 2000.

Rechtin, E. and Maier, M.W., The Art of Systems Architecting, CRC Press, Boca Raton, 1997.

Rumbaugh J., Jacobson, I. and Booch, G., The Unified Modeling Language Reference Manual, Addison-Wesley, 1999.

Sage, A.P., Systems Engineering, John Wiley and Sons Inc., 1992.

Sage, A.P. and Rouse, W.B. (Eds), Handbook of Systems Engineering, John Wiley & Sons, 1999.

Shelley, M.W., Frankenstein, Barnes and Nobel Books, New York, 1993.

Shishko, R. and Chamberlain, R.G., NASA Systems Engineering Handbook, SP-6105, 1995.

Szidarovszky, F., Gershon, M. and Duckstein, L., Techniques for Multiobjective Decision Making in Systems Management, Elsevier Science Publishers, Amsterdam, 1986.

Tichy, M. and Sherman, S. Control Your Destiny or Someone Else Will, Currency Doubleday, New York, 1993.

Wymore, W., Model-Based Systems Engineering, CRC Press, Boca Raton, 1993.

Wymore, A.W., and Bahill, A.T., When can we safely reuse systems, upgrade systems, or use COTS components? Systems Engineering, 3(2): 82-95, 2000.

O que é Engenharia de Sistemas?
(Segundo o consenso de experientes Engenheiros de Sistemas Seniors)
Extraído e adaptado de um texto do
site de A. Terry Bahill
Systems and Industrial Engineering
University of Arizona
Tucson, AZ 85721-0020, por
terry@sie.arizona.edu
e Frank F. Dean
Sandia National Laboratories
Albuquerque, NM 87185
fdean@ktech.com

Clicar para Bahill's main Systems Engineering page.

contato