Beruflich Dokumente
Kultur Dokumente
Sistemas
Jorge H C Fernandes
Sistema de
Computador
(Estendido Saída
Pelo Software) (output)
Entrada
(input)
Usuário
Linguagem B
(Conversar com Paint)
Linguagem C
(Conversar com Calculadora)
Uso
Máquina n+1
Interpretação do Software
Software em Execução
Interpretação
...
Máquina 2 (MCSW)
Uso
Software em Execução
Interpretação
Software Carga Máquina 1 (MCSW)
... Uso
Software em Execução
Software Carga
Interpretação
Máquina 0
Software Carga
MPU Uso
usuário Interpretation
Loading
echo.txt
(software) Loader vc0
input
(machine) (machine)
output
Interpretation
Loader.class
(software) input JVM – Java Virtual Machine
output (machine)
java.exe Interpretation
(software) input cmd Loading
(machine) Sistema Operacional
output
(machine)
Natureza do Software e dos Sistemas, por Jorge H C Fernandes
Uma Máquina explorer criada
pelo sistema operacional
input
Usuário do output
Explorer
explorer.exe Read
explorer
(software) (machine)
Interpretation
private int estadoInteracao; public class CalcVisual extends Frame { button_2.addActionListener(new java.awt.event.ActionListener() {
// Cria os painéis
Panel panelTeclas = new Panel(); public void actionPerformed (ActionEvent e) {
private int operacaoSelecionada ; Panel panelTeclasTopo = new Panel();
Panel panelTeclasNumericas = new Panel();
button_2_actionPerformed (e);
private long acumulador0; }
// cria os gerenciadores de layout dos painéis
private long acumulador1; BorderLayout BorderLayoutPrincipal = new BorderLayout(); });
private static final int NENHUMA = 0; BorderLayout BorderLayoutTodasAsTeclas = new BorderLayout(); // cria o tratador de evento para o botão "+"
GridLayout gridLayoutClearCEBackSpace = new GridLayout();
GridLayout gridLayoutTeclasNumericasEOperacoes = new GridLayout(); button_soma.addActionListener(new java.awt.event.ActionListener() {
private static final int SOMA = 1;
// cria a área de display da calculadora public void actionPerformed (ActionEvent e) {
private static final int SUBTRACAO = 2; TextField textFieldDisplay = new TextField(); button_soma_ actionPerformed (e);
private static final int ACUMULANDO_0 = 0; // cria os botões da calculadora }
private static final int ACUMULANDO_1 = 1; Button buttonBackspace = newButton(); button_9.setLabel("9"); });
Button buttonC = new Button();
public Calc () {} Button buttonCE= new Button(); button_soma.setLabel ("+"); // cria o tratador de evento para o botão "-"
Button button_0 = new Button();
Button button_1 = new Button(); button_igual.setLabel("="); button_subtracao.addActionListener(new java.awt.event.ActionListener() {
long soma() { Button button_2 = new Button();
Button button_3 = new Button(); public void actionPerformed (ActionEvent e) {
operacaoSelecionada = SOMA; Button button_4 = new Button(); // adiciona alguns botões no painel de teclas superior button_subtracao _actionPerformed (e);
Button button_5 = new Button();
estadoInteracao = ACUMULANDO_1; Button button_6 = new Button(); gridLayoutClearCEBackSpace.setColumns (3); }
return acumulador0; Button button_7 = new Button(); panelTeclasTopo.setLayout(gridLayoutClearCEBackSpace); });
Button button_8 = new Button();
Button button_9 = new Button(); panelTeclasTopo.add(buttonBackspace, null); // cria o tratador de evento para o botão "*"
} Button button_pontoDecimal = new Button();
Button button_igual = new Button(); panelTeclasTopo.add(buttonCE, null); button_mult.addActionListener(new java.awt.event.ActionListener() {
long um() { return numeroDigitado(1);} Button button_soma = new Button(); panelTeclasTopo.add(buttonC, null); public void actionPerformed (ActionEvent e) {
Button button_subtracao = new Button();
long dois() {return numeroDigitado(2);} Button button_mult = new Button( ) ; button_mult_actionPerformed (e);
Button button_divisao = new Button();
long numeroDigitado(int valor) { Button button_percento = new Button();
// adiciona alguns botões no painel de teclas inferior }
if (estadoInteracao == ACUMULANDO_0) { Button button_raiz = new Button(); gridLayoutTeclasNumericasEOperacoes.setRows (4); });
Button button_inverteSinal = new Button();
Button button_reciproco = new Button(); gridLayoutTeclasNumericasEOperacoes.setColumns (5); // cria o tratador de evento para o botão "/"
acumulador0 = acumulador0 * 10 + valor;
// cria o "modelo de dados", isto é, o próprio objeto calculadora gridLayoutTeclasNumericasEOperacoes.setHgap (4); button_divisao .addActionListener(new java.awt.event.ActionListener() {
estadoInteracao = ACUMULANDO_0; gridLayoutTeclasNumericasEOperacoes.setVgap (4);
// que irá efetivamente realizar os cálculos
Calc calc = new Calc();
public void actionPerformed (ActionEvent e) {
return acumulador0; panelTeclasNumericas.setLayout(gridLayoutTeclasNumericasEOperacoes); button_divisao_actionPerformed (e);
} else if (estadoInteracao == ACUMULANDO_1) // construtor da parte visual da calculadora
public CalcVisual() {
panelTeclasNumericas.add(button_7, null ); }
{ try { panelTeclasNumericas.add(button_8, null ); });
buildGUI();
acumulador1 = acumulador1 * 10 + valor; } catch (Exception e) { panelTeclasNumericas.add(button_9, null ); // cria o tratador de evento para o botão "="
e.printStackTrace( ) ;
panelTeclasNumericas.add(button_divisao, null ); button_igual.addActionListener(new java.awt.event.ActionListener() {
estadoInteracao = ACUMULANDO_1; }
} panelTeclasNumericas.add(button_raiz, null); public void actionPerformed (ActionEvent e) {
return acumulador1; /**
panelTeclasNumericas.add(button_4, null );
* Constroi os elementos da interface grafica da calculadora button_igual_ actionPerformed (e);
} */ panelTeclasNumericas.add(button_5, null ); }
private void buildGUI() throws Exception {
return 0; panelTeclasNumericas.add(button_6, null ); });
// ajusta as propriedades display
} textFieldDisplay.setText("0"); panelTeclasNumericas.add(button_mult, null); // cria o tratador de evento para o comando de janelas windowclose
panelTeclasNumericas.add(button_percento , null); // (ALT+F4 no windows)
long igual() { // modifica cores de alguns botões
Programador
Linguagem
máquina
desejada Problemas e
Restrições Necessidades
Descrição
De tempo e
Construtiva de Máquina possuída
custo
máquina
Satisfação final
desenvolvedor usuário
Satisfação final
Satisfação final
desenvolvedor usuário desenvolvedor usuário
Tempo 0 Tempo 1
Novos problemas e necessidades
A linguagem da máquina desejada é expandida
Novas descrições são construídas, sobre as antigas