domingo, diciembre 14, 2008

El Primer Software

El primer software

El término "software" primero fue utilizado en este sentido por Juan W. Tukey en 1957. En informática y la tecnología de dotación lógica, el software es todos los programas de computadora. El concepto de diversas secuencias de la lectura de instrucciones en la memoria de un dispositivo de controlar cómputos fue inventado por Charles Babbage como parte de su motor de diferencia. La teoría que es la base para la mayoría del software moderno primero fue propuesta por Alan Turing en 1935 con su ensayo: Los números computables, con una aplicación al Entscheidungsproblem.


La industria del software comenzó en los últimos años 50 en que el uso de las computadoras para los usos de negocio amplió rápidamente crear una demanda enorme para la gente con experiencia de programación. Un número de gente que había aprendido sus habilidades de programación que trabajaban para los fabricantes de computadora o para las compañías y las agencias de estatal grandes que eran los primeros usuarios de la computadora vio esto como oportunidad de comenzar sus propias compañías y de vender sus servicios bajo contrato.

El primer tal compañía, Computer Usage Corporation (CUC), fue fundado en 1955 por Elmer Kubie y Juan W. Sheldon, dos empleados anteriores de la IBM. Fundaron a la compañía con $40.000 en el capital del start-up que apoyó un personal de cinco además de los dos fundadores. Su primer proyecto era un programa escrito para California Research Corporation para simular el flujo del aceite. CUC sintió bien a una compañía pública en 1960 y por 1967 tenía un personal sobre de 700 personas en 12 oficinas alrededor de los ESTADOS UNIDOS y de réditos sobre $13 millones. Desafortunadamente, sufrió pérdidas financieras en los últimos años 70 y arruinaba eventual en 1986.

En 1959, siete programadores de UNIVAC fundaron la investigación aplicada de los datos (ADR) para poner sus habilidades de programación a los fabricantes de computadora tales como rand y Honeywell de Sperry para desarrollar software del sistema. ADR fue público en 1965 y, en los últimos años 60, se convirtió en una de las primeras compañías para vender con éxito productos de software. Continuó siendo una de las compañías más grandes del producto de software de ESTADOS UNIDOS hasta que fue adquirido por Ameritech para $215 millones de 1986.

Fletcher Jones y Roy Nutt, que habían ganado su experiencia de la computadora en la industria aeroespacial, la corporación fundada de la informática (CSC) en 1959 con $100 y un contrato de Honeywell para desarrollar un recopilador de la negocio-lengua llamaron a HECHO. Antes de 1963, CSC era la compañía más grande del software con los réditos cerca de $4 millones. CSC continúa prosperando hoy mientras que uno de la tecnología de información más grande del mundo mantiene las firmas con más de $10.2 mil millones en réditos.

Arquitectura y Diseño del Software

Arquitectura
• La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.
• Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco de referencia necesario para guiar la construcción del software para un sistema de información.
• La Arquitectura de Software establece los fundamentos para que analistas, diseñadores, programadores, etc. trabajen en una línea común que permita alcanzar los objetivos del sistema de información, cubriendo todas las necesidades.
• Una arquitectura de software se selecciona y diseña con base en objetivos y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.
• La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación ente ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.
Diseño de interfaz de usuario

El diseño de interfaz de usuario o ingeniería de la interfaz es el diseño de computadoras, aplicaciones, máquinas, dispostivos de comunicación móvil, aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción.
Normalmente es una actividad multidisciplinar que involucra a varias ramas del diseño y el conocimiento como el diseño gráfico, industrial, web, de software y la ergonomía; y está implicado en un amplio rango de proyectos, desde sistemas para computadoras, vehículos hasta aviones comerciales.
Su objetivo es que las aplicaciones o los objetos sean más atractivos y además, hacer que la interacción con el usuario sea lo más intuitiva posible, conocido como el diseño centrado en el usuario. En este sentido las disiciplinas del diseño industrial y gráfico se encargan de que la actividad a desarrollar se comunique y aprenda lo más rápidamente, a través de recursos como la gráfica, los pictogramas, los estereotipos y la simbología, todo sin afectar el funcionamiento técnico eficiente.

personajes importantes de la informatica

1. Adam Osborne
Fundó la compañía de ordenadores Osborne en 1981; hasta ese momento, Osborne venía publicando libros técnicos sobre informática.
El Osborne 1 fue el primer ordenador que sacó al mercado.
La Osborne 1 fue la primera microcomputadora portátil con éxito comercial. Fue lanzada en abril de 1981 por Osborne Computer Corporation. Este ordenador pesaba 10,7 kg, costaba US$ 1795 y corría el entonces popular sistema operativo CP/M 2.2.
Sus principales defiencias eran la diminuta pantalla de 5 pulgadas (13 cm) y los discos flexibles que no tenían suficiente capacidad para aplicaciones de negocios. Su diseño le debe mucho al de la Xerox NoteTaker, un prototipo desarrollado en el Xerox PARC en 1976.
Era “portátil”, ya que pesaba 11 kg, y poseía dos unidades de 5,25” y 184 kB de capacidad cada una. Así mismo, poseía un monitor, un teclado profesional, puertos RS232 e IEEE488 así como sistema operativo CP/M. La computadora era entregado con un paquete de software creado por Microsoft CBASIC, Wordstar (procesador de textos), SuperCalc (hoja de cálculo), MailMerge (programa para correos electrónicos) y dBase II (base de datos).
El ordenador tuvo un éxito relativo ya que se empezó a vender muy bien. De hecho, la compañía Osborne fue la que más medró en cuanto a cifras económicas durante el año 1982 en EE. UU., pero el siguiente modelo que tenía que sustituir al Osborne-1, el Osborne Executive, llegó tarde a un mercado de ordenadores profesionales que ya empezaban a acaparar las máquinas compatiles de IBM.
Osborne se encontró con un stock de Osbornes-1 que no podía liquidar, ya que la gente estaba a la espera del nuevo Executive. Estos stocks que no podían vender fueron la causa de que la empresa tuviera que realizar una suspensión de pagos en 1983.
Como curiosidad, el distribuidor en España de este ordenador fue Investronica, más conocida en ese país por la distribución de dos ordenadores, el Sinclair y el Atari.
En marzo de 2003, Adam Osborne murió en India a los 64 años de edad, como consecuencia de una enfermedad cerebral contra la que llevaba luchando más de 10 años.

2. Alvin Toffler
(nacido el 3 de octubre de 1928) es un escritor y futurista estadounidense doctorado en Letras, Leyes y Ciencia, conocido por sus discusiones acerca de la revolución digital, la revolución de las comunicaciones y la singularidad tecnológica. Sus primeros trabajos están enfocados a la tecnología y su impacto (a través de efectos como la sobrecarga de información). Más tarde se centró en examinar la reacción de la sociedad y los cambios que ésta sufre. Sus últimos trabajos han abordado el estudio del poder creciente del armamento militar del siglo XXI, las armas y la proliferación de la tecnología y el capitalismo. Entre sus publicaciones más famosas se destacan La revolución de la riqueza, El cambio de poder, El shock del futuro y La tercera ola. Está casado con Heidi Toffler, también escritora y futurista.

3. John Naisbitt
John Naisbitt (n. 15 de enero de 1929 en Salt Lake City, Utah) es un autor y orador público en el ámbito de los estudios sobre el futuro. Su primer libro Megatendencias se publicó en 1982. Es el resultado de casi diez años de investigación y es uno de los mayores éxitos en el mundo editorial. Fue en el New York Times best-seller lista por dos años, principalmente como # 1. Megatendencias se publicó en 57 países y vendido más de 9 millones de copias.

4. Edward Feigenbaum
Edward Albert Feigenbaum (nacido el 20 de enero de 1936, Weehawken, Estados Unidos) es un científico de la computación que trabaja en el área de la inteligencia artificial. Frecuentemente se le llama "El Padre de los Sistemas Expertos".
Se doctoró en la Universidad de Carnegie Mellon.
Recibió el galardón más prestigioso de las ciencias de la computación, el premio Turing de la ACM junto a Raj Reddy en 1993 "Por ser pionero en el diseño y construcción de sistemas de inteligencia artificial a gran escala, demostrando la importancia práctica y el potencial impacto comercial de la tecnología de la inteligencia artificial".
Fue jefe del departamento científico de la Fuerza Aérea de Estados Unidos y recibió el galardón de Servicio Civil Excepcional de dicha rama en 1997.
Fundó el Laboratorio de Sistemas de Conocimiento en la Universidad de Stanford. Actualmente es profesor emérito de ciencias de la computación en dicha universidad.
5. Pamela Mccorduck

Pamela McCorduck es autor o co-autor de nueve libros publicados. Tres son las novelas y seis se centran en el impacto intelectual de la informática, sobre todo los aspectos de la inteligencia artificial. Entre sus libros están: Máquinas que piensan, la quinta generación, la máquina universal, el futuro de la mujer, y Aarón del Código. Su primera novela en muchos años, The Edge del Caos, acaba de ser publicado.

Sus libros han sido traducidos en todos los grandes de Europa y Asia idiomas, y su trabajo ha aparecido en revistas que van desde la cosmopolita y Omni para el New York Times, Daedalus, y la Revista Trimestral de Michigan. Ha sido un editor que contribuyen a Wired.
En marzo de 2004, una edición 25 º aniversario de Máquinas que piensan que salió, que incluye una sustancial Epílogo a la historia de la inteligencia artificial hasta la fecha.
6. Clifford Stoll
Clifford Stoll (o Cliff Stoll) es un físico estadounidense, astrónomo, experto en ordenadores, y escritor. Se licenció por la Universidad de Arizona en 1980. Durante los años 60 y 70, Stoll fue ingeniero jefe ayudante1 en la WBFO, una emisora pública de radio en Buffalo, New York.
Stoll ha escrito tres libros así como artículos sobre tecnología en la prensa no especializada (e.g., en Scientific American sobre la calculadora mecánica Curta).
Stoll participó en la captura del hacker Markus Hess durante los años 1986 y 1987, cuando trabajaba en el Lawrence Berkeley National Laboratory en California. Sobre ello escribió en el libro "El huevo del cuco" y en el trabajo "Stalking the Wily Hacker", publicado en el "Professional Journal Communications of the ACM". También actuó como experto en la investigación del primer ejemplar de malware auto replicable que afectó a Internet, el Gusano Morris
En su libro de 1995, "Silicon Snake Oil", Stoll plantea preguntas sobre la infuencia de Internet en la sociedad futura, y si ésta será beneficiosa. Realiza varias predicciones, como la inviabilidad el comercio electrónico debida a la falta de contacto personal.
La Ventana de Johari

La ventana de JoHari es un modelo que resulta extremadamente útil para realizar una aproximación al fenómeno de la comunicación y analizar la dinámica de las relaciones interpersonales, JoHari no es más que una palabra inventada por los autores de esta teoría que corresponde a las primeras letras de sus nombres. Estos investigadores fueron Joseph Luft y Harry Ingham.
La ventana de JoHari es una herramienta efectiva que permite revisar el proceso de interacción humana explorando como fluye la comunicación entre los protagonistas y así mejorar la comunicación interpersonal.
Se trata de un modelo que intenta explicar el flujo de información desde dos ópticas o puntos de vista; el primero la exposición (cuanto se muestra a los demás) y el segundo la retroalimentación (cuanto se acepta de los demás), mostrando de esta manera la interacción entre dos fuentes de emisión; los demás y el yo.
De este modo se define lo que los autores denominan “espacio interpersonal” al que dividen en cuatro áreas, las que representan diferentes situaciones que se presentan en el proceso de transferencia de información entre los protagonistas y que impactan directamente en la calidad de su interacción, sus actividades y sentimientos.
Los demás Exposición Yo - Retroalimentación Joseph Luft – Harry Ingham ConocidoConocidoDesconocidoDesconocidoI - Abierta IV - Desconocida II - Oculta III - Ciega Espacio interpersonal - Áreas
Por consiguiente en función del grado de conocimiento existen:
- 2 áreas que yo conozco, la I y la II
- 2 áreas que los demás conocen de mi, la I y la III
- 2 áreas que yo desconozco de mi mismo, la III y la IV
- 2 áreas que los demás ignoran de mi, la II y la IV
- 1 área que Yo conozco de mi pero que los demás ignoran, la II
- 1 área que los demás conocen de mi pero que yo Ignoro, la III
- 1 área que ni yo conozco de mi ni os demás conocen de mi, la IV
Descripción de las Áreas
I – Abierta
Incluye todo lo que conocemos de nosotros mismos y lo que los demás conocen de nosotros.
- Las cosas que son evidentes: sexo, raza, cualidades externas, formas de realizar sus actividades cotidianas, etc.
- Todo aquello que comunicamos sin dificultad a los demás: sentimientos, ideas, opiniones públicas, gustos, etc.
El área Abierta es la única clara y libre. En ella se encuentran las experiencias y los datos conocidos por la propia persona y por quienes la rodean. Se caracteriza por el intercambio libre y abierto de información entre el yo y los demás.
En ella, el comportamiento es público y accesible a todos.
Por ejemplo: nuestro modo de trabajar en cualquier actividad que desempeñemos, nuestra manera habitual de comportarnos, etc. El área Abierta aumenta o evoluciona de tamaño en la medida en que crece el nivel de confianza entre los participantes o entre el participante y su grupo; y también en la medida en que se comparte más información, especialmente si se trata de información importante de carácter personal.

II – Oculta
Incluye todo lo que yo conozco de mí, pero los demás ignoran.
- Sentimientos, vivencias, experiencias íntimas, etc.
- Todo aquello nos presenta dificultad de comunicar: opiniones privadas, gustos no conocidos por los demás, etc.
El área Oculta abarca el mundo de todo aquello que Yo concientemente no comunico a los demás. Los contenidos de esta zona pueden pasar con mayor o menor facilidad al área Abierta, pero es la relación interpersonal la que tiende a reducirlos.
Es en este área donde se encuentra gran parte de lo que conocemos de nosotros mismos y que ocultamos a los demás. Es probable que tengamos miedo que si el grupo llegara a saber nuestros sentimientos, percepciones y opiniones respecto del propio grupo, de sus integrantes o respecto de nosotros mismos tal vez el grupo podría rechazarnos, atacarnos o ejercer respecto de nosotros algún tipo de acción. Consiguientemente, no revelamos tales informaciones.
Muchas veces una de las posibles razones por las que mantenemos el secreto es porque no encontramos elementos de apoyo en el grupo. Suponemos que si reveláramos nuestros sentimientos, pensamientos y reacciones, los integrantes del grupo podrían juzgarnos de manera negativa. Sin embargo, a menos que revelemos algo sobre nosotros y verifiquemos si es cierta nuestra suposición, no tendremos posibilidad de saber cómo van a reaccionar realmente los integrantes del grupo. Es decir, que si no asumimos ciertos riesgos, jamás sabremos nada acerca de la realidad o la irrealidad de nuestras suposiciones.
Por otra parte, también tratamos de mantener el secreto cuando nos motiva el deseo de controlar o manipular a los demás.
III – Ciega
Incluye todo aquello que los demás ven en nosotros y nosotros no vemos
- Sentimientos de inferioridad, superioridad, frustraciones, miedos, etc.
- Todo aquello que conforma la impresión que causamos a los demás y que comunicamos en nuestro modo de ser, de comportarnos, en gestos y expresiones, etc.
El área Ciega es en la que se representan todas nuestras limitaciones de las que no somos concientes, pero que los demás pueden observar y experimentar en el proceso de interacción.
La relación interpersonal puede hacernos concientes de los contenidos de área Ciega, aun cuando con frecuencia nos resistamos a admitir que somos así o tenemos tal o cual defecto o limitación. En esta zona actúan con gran fuerza nuestros mecanismos de defensa, pero este área puede ser reducida a favor del área Abierta en la medida en que aceptemos la retroalimentación que proviene de los demás en el proceso de interacción desarrollando una actitud de receptividad tal que incite a los miembros del grupo a darnos esa retroalimentación o lo comúnmente conocido como «feedback».
IV – Desconocida
Incluye todo aquello que nosotros ignoramos y también ignoran los demás
- Vivencias, instintos, contenidos de conciencia, experiencias reprimidas u olvidadas, etc.
- Todo aquello que conforma el mundo del inconciente.
El área Desconocida representa aquellos factores de nuestra personalidad de los que no somos conscientes y que consecuentemente son desconocidos para las personas que se relacionan con nosotros. Es el área de nuestras motivaciones inconscientes; área que representa nuestro aspecto “desconocido” o “inexplorado”, y que puede incluir cosas como la dinámica interpersonal, acontecimientos de nuestra primera infancia y que algunos teóricos de la Psicología Laboral lo denominan como “el potencial” o todas aquellas potencialidades latentes y recursos aún por descubrir.

miércoles, octubre 22, 2008

Diferencia entre software y programa

Teóricamente es lo mismo.
Un programa es desarrollado mediante otro programa, llámese Visual Studio, Java, Delphi, C++, Ensamblador, etc. que son Software de Programación.
Las versiones de Windows, Linux, Office, Flash, Acrobat, etc. son Software de Aplicación.

Todos ellos son programas, la parte "blanda" de la computadora (o intangible) llamada Software.

Si alguien te dice que son aspectos distintos está completamente equivocado, porque puede ser un programa hecho para aplicaciones de manufactura o robótica y sigue siendo un software desarrollado por otro programa como C, Basic, Ensamblador, etc.
Programa: Conjunto de instrucciones, que ejecutará la computadora.

Software: Conjunto de programas diseñados para resolver una misma tarea en conjunto.

Software

¿Qué es Software?

Software[1] (pronunciación AFI:[ˈsɔft.wɛɻ]), palabra proveniente del inglés (literalmente: partes blandas o suaves), que en nuestro idioma no posee una traducción adecuada al contexto, por lo cual se la utiliza asíduamente sin traducir y fue adoptada por la Real Academia Española (RAE). Se refiere al equipamiento lógico o soporte lógico de un computador digital, comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Tales componentes lógicos incluyen, entre otras, aplicaciones informáticas tales como procesador de textos, que permite al usuario realizar todas las tareas concernientes a edición de textos; software de sistema, tal como un sistema operativo, el que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de las aplicaciones, también provee una interface ante el usuario.

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Software

¿Qué es Software?

Software, palabra proveniente del inglés (literalmente: partes blandas o suaves), que en nuestro idioma no posee una traducción adecuada al contexto, por lo cual se la utiliza asíduamente sin traducir y fue adoptada por la Real Academia Española (RAE). Se refiere al equipamiento lógico o soporte lógico de un computador digital, comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Tales componentes lógicos incluyen, entre otras, aplicaciones informáticas tales como procesador de textos, que permite al usuario realizar todas las tareas concernientes a edición de textos; software de sistema, tal como un sistema operativo, el que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de las aplicaciones, también provee una interface ante el usuario.

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Diferencia entre software y programa

Teóricamente es lo mismo.
Un programa es desarrollado mediante otro programa, llámese Visual Studio, Java, Delphi, C++, Ensamblador, etc. que son Software de Programación.
Las versiones de Windows, Linux, Office, Flash, Acrobat, etc. son Software de Aplicación.

Todos ellos son programas, la parte "blanda" de la computadora (o intangible) llamada Software.

Si alguien te dice que son aspectos distintos está completamente equivocado, porque puede ser un programa hecho para aplicaciones de manufactura o robótica y sigue siendo un software desarrollado por otro programa como C, Basic, Ensamblador, etc.

Programa: Conjunto de instrucciones, que ejecutará la computadora.

Software: Conjunto de programas diseñados para resolver una misma tarea en conjunto.

Reingenieria



REINGENIERIA
El término reingeniería se deriva de la práctica del desarrollo de sistemas de información. Durante algún tiempo, quizás desde cuando los computadores incursionaron en los negocios, los profesionales de la tecnología han sabido que la mejor manera de utilizar los computadores consiste en usarlos para facilitar nuevos y mejores procesos de negocios antes que emplearlos para automatizar los antiguos procesos. Por una afortunada coincidencia, los encargados de desarrollar los sistemas de información comenzaron a hacer progresos al implementar la reingeniería de los procesos de negocios cuando la necesidad de la misma se convertía en una prioridad. No obstante, la aplicación de la reingeniería no se basa necesariamente en la implantación de un nuevo sistema de tecnología de información, por ejemplo tenemos que:
Cuando Chrysler decidió construir su automóvil experimental Viper como un auto de su línea de producción, dio un nuevo aspecto a su ciclo de desarrollo del producto. Quiso aplicar el proceso de reingeniería de modo que se necesitaran menos tiempo y gastos para lanzar un nuevo vehículo al mercado.
El éxito del proyecto Viper, desde el punto de vista de negocio, fue mucho más importante en términos del proceso de reingeniería que en términos de un nuevo producto. Como es obvio, este proyecto no estaba motivado por la tecnología de la información. Lo cierto es que la tecnología de información se empleó para apoyar el proceso, pero el rediseño del mismo comenzó primero y las consideraciones tecnológicas llegaron después.
El término reingeniería puede ser erróneo porque implica que los procesos de negocios fueron producto del trabajo de ingeniería. Sin embargo, la mayor parte de los procesos de negocios es producto de una compleja serie de decisiones deliberadas y de evolución informal. Éstos no se han visto relacionado con un proceso de ingeniería en el sentido de ser un diseño creado por profesionales, y cuyo proceso haya estado determinado por las especificaciones del diseño mismo. Quizás ingeniería administrativa es una mejor expresión pero, de hecho, no es de uso general.
POSICIONAMIENTO Y REINGENIERÍA
Para evitar la proliferación de nuevas definiciones de reingeniería, es mejor limitar el uso del término al rediseño de procesos de trabajo de negocios y a la Implementación de los nuevos diseños. Sin embargo, debe emplearse otro término para abarcar el alcance de esta definición y analizar las otras actividades necesarias, encaminadas a hacer que el trabajo de reingenieria produzca su principal beneficio, la ventaja competitiva. Este término es posicionamiento o reposicionamiento y está dirigido a una visión de más alto nivel y al conjunto de intereses y aplicaciones de la reingeniería para implementar sus directrices. El posicionamiento determina el área donde se debe aplicar el proceso de reingeniería e inicia las demás actividades necesarias para hacer dicho trabajo.
La reingeniería es un enfoque para planear y controlar el cambio. La reingeniería de negocios significa rediseñar los procesos de negocios y luego implementarlos. Si se ha determinado con anticipación el reposicionamiento, la reingeniería tendrá preparado el conjunto de sus metas y su ambiente.
La separación de los dos conceptos, posicionamiento y reingeniería, es Importante por varias razones. Primero, es mejor determinar de manera muy amplia el alcance del posicionamiento: toda la empresa o una división independiente son objetivos óptimos.
La reingeniería funciona mejor cuando se limita a un proceso o grupo de procesos. Segundo, la reingeniería ya ha comenzado a tener connotaciones atemorizantes entre los niveles de trabajo de las empresas.
Posicionamiento y reingeniería son dos conceptos bastante flexibles para utilizarlos en toda una empresa o en parte de ella. Teniendo en cuenta que ambos dividen el negocio en partes administrables, no existe limitación para el tamaño de las empresas en las cuales puedan aplicarse. Por razones prácticas, las compañías muy pequeñas no quieren utilizar los métodos formales de la reingeniería, siendo que en una gran compañía, un proceso simple de negocios constituiría la unidad más pequeña que pueda emplear tales métodos. Sin embargo y por lo general, cualquier proceso de negocios atraviesa líneas organizacionales y toca muchas de las unidades de una empresa: esto ocasiona que el alcance de cualquier proyecto de reingeniería de un proceso simple sea independiente desde el punto de vista organizacional.
LA BASE DEL ÉXITO EN LA REINGENIERÍA
Existen siete condiciones que deben, formar parte del proceso de reingeniería para que llegue a un término bueno:
1. Habilidad para orientar el proceso de reingeniería de acuerdo con una metodología sistemática y amplia.
2. Administración coordinada del cambio para todas las funciones del negocio que se vean afectadas.
3. Habilidad para evaluar planear e implementar el cambio sobre una base continúa.
4. Habilidad para analizar el impacto total de los cambios propuestos.
5. habilidad para visualizar y simular los cambios propuestos.
6. Habilidad para utilizar estos modelos sobre una base continua.
7. Habilidad para asociar entre sí todos los parámetros administrativos de la compañía.
Sin el cumplimiento de algunas de estas siete condiciones, la reingeniería se hace difícil de pronosticar y administrar, al igual que se restringe a disponer solamente de una pequeña fracción de sus beneficios potenciales.

Cleanroom Software Engineering

Cleanroom Software Engineering

El proceso de limpiar de Ingeniería de Software es un proceso de desarrollo de software destinado a producir software con un nivel certificable de fiabilidad.
El proceso de limpiar fue desarrollado originalmente por Harlan Mills y varios de sus colegas incluyendo a Alan Hevner IBM [1].
EL objetivo del proceso de limpiar esta en prevención de defectos, en lugar de la eliminación de defectos.
El nombre de limpiar fue elegido para evocar las limpias utilizadas en la industria electrónica para evitar la introducción de defectos en la fabricación de circuitos integrados.
El proceso de limpiar se vio por primera vez en uso a fines de los años 80. Proyectos de demostración dentro de los militares comenzó en el decenio de 1990.
Los últimos trabajos sobre el proceso de limpiar ha examinado la fusión limpia con la capacidad de verificación automatizada proporcionada por las especificaciones expresadas en CSP.
Los principios básicos del proceso de limpiar son:
1. Desarrollo de software basado en métodos formales:

El proceso de Limpiar de desarrollo hace uso de la caja Estructura Método para especificar y diseñar un producto de software. Verifica que el diseño se aplique correctamente y la especificación se realiza a través de equipo de revisión.

2. Incrementar la ejecución, en el marco estadístico de control de calidad

El proceso de Limpiar utiliza un desarrollo interactivo enfocado en la que el producto ha sido desarrollado en incrementos para aumentar gradualmente la aplicación de la funcionalidad. La calidad de cada incremento se mide contra lo pre-establecido por las normas para verificar que el proceso de desarrollo se está llevando a cabo aceptablemente. Un incumplimiento de normas de calidad de los resultados en la cesación de los ensayos para el actual incremento, y un retorno a la fase de diseño.

Software de pruebas en el proceso de limpiar se lleva a cabo como un experimento estadístico. Sobre la base de la especificación formal, un subconjunto representativo de software de entrada / salida de las trayectorias está seleccionado y probado. Esta muestra es entonces analizada estadísticamente para producir una estimación de la fiabilidad del software, y un nivel de confianza en esa estimación.

Ingenieria de software

Bienvenidos!

Ingeniería de software

Ingeniería de software es la disciplina dentro de la informática encargada de la creación de software de calidad. El software es el conjunto de instrucciones que permite al hardware de la computadora desempeñar trabajo útil. En las últimas décadas del siglo XX, las reducciones de costo en hardware llevaron a que el software fuera un componente que participa en muchos de los dispositivos usados por las sociedades industrializadas. Asimismo, se considera parte del software a la documentación generada durante el desarrollo del proyecto.

En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor Statistics) contó 760.840 ingenieros de software de computadora con trabajo.[1] El término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente empresarial, y no todos los ingenieros de software poseen realmente títulos de Ingeniería de universidades reconocidas.

Algunas personas piensan que Desarrollo de Software es un término más apropiado que Ingeniería de Software para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

Implicaciones socioeconómicas

La ingeniería de software afecta a la economía y las sociedades de muchas maneras.

Económicamente

En los EEUU, el software contribuyó a 1/4 de todo el incremento del PIB durante los 90's (alrededor de 90,000 millones de dólares por año), y 1/6 de todo el crecimiento de productividad durante los últimos años de la década (alrededor de 33,000 millones de dólares por año). La ingeniería de software contribuyó a $1 billón de crecimiento económico y productividad en esa década. Alrededor del globo, el software contribuye al crecimiento económico en formas similares, aunque es difícil de encontrar estadísticas fiables.

Socialmente

La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrónico (E-mail), la WWW y la mensajería instantánea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado métodos de ingeniería de software incluyen a Linux, el software del transbordador espacial, los cajeros automáticos y muchos otros.

La ingeniería de software se puede considerar como la ingeniería aplicada al software, esto es en base a herramientas preestablecidas, la aplicación de las mismas de la forma más eficiente y óptima; objetivos que siempre busca la ingeniería. No es sólo de la resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más apropiada.

Metodología

Un objetivo de décadas ha sido el encontrar procesos o metodologías predecibles y repetibles que mejoren la productividad y la calidad.

Etapas del proceso

La ingeniería de software requiere llevar a cabo numerosas tareas, dentro de etapas como las siguientes:

Análisis de requisitos

Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software.

La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aun no está formalizada, ya se habla de la Ingeniería de Requisitos.

La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification).

Especificación

Es la tarea de describir detalladamente el software a ser escrito, en una forma matemáticamente rigurosa. En la realidad, la mayoría de las buenas especificaciones han sido escritas para entender y afinar aplicaciones que ya estaban desarrolladas. Las especificaciones son más importantes para las interfaces externas, que deben permanecer estables.

Diseño y arquitectura

Se refiere a determinar como funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. Se definen los Casos de Uso para cubrir las funciones que realizará el sistema, y se transforman las entidades definidas en el análisis de requisitos en clases de diseño, obteniendo un modelo cercano a la programación orientada a objetos.

Programación

Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está intimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.

Prueba

Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral,para asi llegar al objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como estan descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en que condiciones puede fallar una aplicacion y que pueden poner atención en detalles que personal inexperto no consideraría.

Documentación

Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Mantenimiento

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es dar mantenimiento.

Modelos de desarrollo de software

La ingeniería de software tiene varios modelos o paradigmas de desarrollo en los cuales se puede apoyar para la realización de software, de los cuales podemos destacar a éstos por ser los más utilizados y los más completos:

Naturaleza de la IS

La Ingeniería de Software tiene que ver con varios campos en diferentes formas:

Matemáticas

Los programas tienen muchas propiedades matemáticas. Por ejemplo la corrección y la complejidad de muchos algoritmos son conceptos matemáticos que pueden ser rigurosamente probados. El uso de matemáticas en la IS es llamado métodos formales. Edsger Dijkstravistas pragmáticos y las características esperadas de los ingenieros. Análisis, documentación, y código comentado son signos de un ingeniero. Bazzano y Ostrichi han argumentado que es una ingeniería.

Creación

Los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una línea de ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas. Este punto de vista inspira los diferentes procesos y metodologías que encontramos en la IS.

Gestión de Proyectos

El software comercial (y mucho no comercial) requiere gestión de proyectos. Hay presupuestos y establecimiento de tiempos. Gente para liderar. Recursos (espacio de oficina, computadoras) por adquirir. Todo esto encaja apropiadamente con la visión de la Gestión de Proyectos.

Arte

Los programas contienen muchos elementos artísticos. Las interfaces de usuario, la codificación, etc. Incluso la decisión para un nombre de una variable o una clase. Donald Knuth es famoso porque ha argumentado que la programación es un arte.

Organizaciones