domingo, 17 de febrero de 2013

Código de Reingeniería

Como una solución del ejercicio se podría encontrar el siguiente código en donde se ha cambiado solo parte de la interfaz de calculadora que solo sumaba agregando funcionalidad otras operaciones pero basándose en los métodos de la Clase Ingeniería e implementándolos en la Clase ReIngeniería, como se darán cuenta tuvo que modificarse la clase de ejecución principal; (esto sucede en una calculadora programable), pero cumple con los requisitos de no haber cambiado la clase ya hecha.
public class Calculadora {
   public static void main (String args[]) {
      ReIngenieria instIng = new ReIngenieria();
      instIng.inicia();
   }
}

import java.util.Scanner;
public class ReIngenieria {
   public int resultado, A, B;
   public void inicia() {
      Ingenieria instancia = new Ingenieria();
      int oper = 0; //inicia la Operación
      Scanner dato = new Scanner(System.in);
      System.out.print("Primer entero = ");
      A = dato.nextInt(); //espera el primer entero
      boolean salir = false;
      while(!salir) {
         System.out.println(" Operaciones\n 1. Sumar a \n 2. Cambiar De Signo \n "+
         "3. Resta \n 4. Multiplicacion \n 5. Division \n 6. Residuo");
         oper = dato.nextInt();
         switch(oper){
          case 1: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            instancia.Suma(A, B);
            System.out.println("Resultado = " + instancia.Igual());
            salir=true;
          break; }
          case 2: {
            System.out.print(A);
            A = instancia.Signo(A);
            System.out.println(" ahora es "+A);
            salir = false;
          }
          case 3: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Resta(A, B));
            salir=true;
          break; }
          case 4: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Multiplicacion(A, B));
            salir=true;
          break; }
          case 5: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Division(A, B));
            salir=true;
          break; }
          case 6: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Residuo(A, B));
            salir=true;
          break; }
         }
      }
   }
   public int Resta(int valorA, int valorB) {
      Ingenieria instancia = new Ingenieria();
      instancia.Suma(valorA, instancia.Signo(valorB));
      return instancia.Igual();
   }
   public int Multiplicacion(int valorA, int valorB) {
      int producto = 0;
      Ingenieria instancia = new Ingenieria();
      for(int i = 0 ; i < valorA; i++) {
         instancia.Suma(producto, valorB);
         producto = instancia.Igual();
      }
      producto = instancia.Igual();
      return producto;
   }
   public int Division(int valorA, int valorB) {
      int cociente = 0;
      Ingenieria instancia = new Ingenieria();
      for(int x = 0; x < valorA; x += valorB) {
         instancia.Suma(cociente,1);
         cociente = instancia.Igual();
      }
      return cociente;
   }
   public int Residuo(int valorA, int valorB) {
      Ingenieria instancia = new Ingenieria();
      resultado = Resta(valorA,Multiplicacion(Division(valorA,valorB),valorB));
      return resultado;
   }
}


Código

Aplicación de la Reingeniería de Software

Del ejemplo de la calculadora podemos explicar como funciona la Reingeniería  para cambiar la funcionalidad de un sistema viejo usando algunos de sus elementos para hacer uno nuevo. 

Fíjese el código inherente a la calculadora, consta de dos partes:


  1. Sistema Principal en donde se encuentra cargada la clase Principal

  2. public class Calculadora {
       public static void main (String args[]) {
          Ingenieria instIng = new Ingenieria();
          instIng.inicia();
       }
    }

  3. Además de la parte de la lógica que conoceremos como Ingeniería

  4. import java.util.Scanner;
    public class Ingenieria {
       public int resultado, A, B;
       public void inicia() {
          int oper = 0; //inicia la Operación
          Scanner dato = new Scanner(System.in);
          System.out.print("Primer entero = ");
          A = dato.nextInt(); //espera el primer entero
          boolean salir = false;
          while(!salir) {
             System.out.println(" Operaciones\n 1. Sumar a \n 2. Cambiar De Signo");
             oper = dato.nextInt();
             switch(oper){
              case 1: {
                System.out.print("Segundo entero = ");
                B = dato.nextInt(); //espera el segundo entero
                Suma(A, B);
                System.out.println("Resultado = " + Igual());
                salir=true;
              break; }
              case 2: {
                System.out.print(A);
                A = Signo(A);
                System.out.println(" ahora es "+A);
                salir = false;
              }
             }
          }
       }
       public void Suma(int valorA, int valorB) {
          resultado = valorA + valorB;
       }
       public int Signo(int valor) {
          return valor * (-1);
       }
       public int Igual() {
          return resultado;
       }
    }


lunes, 11 de febrero de 2013

Calculadora

Reingeniería de Software - Calculadora

Escenario
      Imagina que te contratan en una empresa desarrolladora de software muy innovadora, pero el gerente pone a prueba tu creatividad, te da una calculadora a la cual solo se le ha programado la función de sumar y la de invertir el signo, tu prueba consiste en programar las siguientes operaciones usando solamente la clase que ellos te proporcionan, es decir NO puedes usar los signos (*, %, /, etc.):
  • Resta
  • Multiplicación
  • División
  • Resto

Fuentes



Actividades
      Después de leer un poco acerca del tema realiza un guion radiofónico por equipo, explicando las ventajas, desventajas, puntos fuertes y débiles de la reingeniería en comparación con la ingeniería inversa.

      Haz el esquema de un proceso que haga uso de la reingeniería fuera del software.
Recursos de Evaluación
No olvides realizar tu Evaluación de Calculadora en este enlace.

jueves, 7 de febrero de 2013

Evaluación del MiniQuest

En la actividad pasada se elaboro material para desarrollar un MiniQuest, ahora te toca a ti demostrar lo que aprendiste...
Realiza ahora mismo la PRUEBA

martes, 5 de febrero de 2013

Soporte y Mantenimiento de Software

En esta actividad (MiniQuest):




  • Se seleccionará información útil de algunas fuentes digitales acerca del tema en cuestión.
  • Se realizará en equipos una actividad integradora en donde a partir de los conocimientos adquiridos en la investigación se obtenga un aprendizaje dinámico.
  • La actividad integradora se presentara a otros equipos y se discutirán los diferentes puntos expuestos mediante un debate
  • Se llegará a una conclusión grupal en donde se abarquen todos los conceptos.
La importancia del soporte técnico y el mantenimiento de software radica en que forman parte de las etapas en el ciclo de vida del software y abarcan los aspectos de capacitación  asistencia, manuales, etc. para demostrar la importancia consulta las siguientes fuentes: (Puedes Usar de Guía las preguntas, Recuerda que ademas de las fuentes que se te recomiendan puedes encontrar otras para complementar tu investigación)
  1. ¿Cuál es la diferencia entre las definiciones de Soporte Técnico y Mantenimiento de Software?
  2. Justifica la importancia del Soporte tanto para el cliente como para el desarrollador.
  3. ¿De que forma se pueden reducir los costos de soporte y mantenimiento?
  4. En la Actualidad, ¿Que nuevas formas de Soporte Técnico existen?
Fuentes Recomendadas:
Archivos Recomendados:
Al finalizar tu investigación realiza un video en donde expliques la Importancia del Soporte Técnico, el video puede durar hasta 15 min., debes grabarte usando un material de apoyo como una presentación en PowerPoint o imágenes  cualquier ayuda visual que consideres necesaria para una mejor comprensión.
El video es tu Actividad Integradora, ahora preséntala a otros equipos y observa el video de ellos, después en el pizarrón elaboren una tabla de los puntos de controversia que tiene este tema, por ejemplo, las ventajas y desventajas, las diferencias entre soporte y mantenimiento; entre otros, comiencen un debate defendiendo cada uno sus fuentes de información.
Al finalizar el tiempo acordado de debate lleguen a definir un concepto en el que todo el grupo este de acuerdo y guárdenlo para futuras consultas.

Bienvenida

DouxMerce

Integrantes:

CABALLERO PAZ JAEL ALEJANDRA
CALDERÓN PÉREZ JUAN LEONARDO
MONTIEL DOMINGUEZ CARLOS DAVID
MUNGUÍA CRUZ ANTONIO DE JESÚS
SÁNCHEZ HERNÁNDEZ JOSÉ RAMIRO