Software, castellano

McAfee Total Protection 2024

Descubre lo último en tecnología, software y hardware en Microsoft Store. el primero en encontrar lo más avanzado en Surfacetabletssmartphones, accesorios.

Microsoft Store


Hewlett-PackardHPes una de las compañías líderes en productos de tecnología.
Descubre increíbles cámarasordenadoresescáneresimpresoras y todo tipo de accesorios tecnológicos a la última.

Hewlett-Packard, HP
Panda Security
Panda Security es una de las grandes compañías proveedoras de soluciones de software de antivirusProtege tus dispositivos con la máxima seguridad.
BitDefender
BitDefender es una marca de seguridad antivirus establecida a nivel internacional que ha logrado reconocimiento mundial tanto por la efectividad de sus productos como por la calidad de sus servicios
Kaspersky
Kasperskyes uno de los mayores desarrolladores de productos y soluciones de seguridad informática, sistemas de protección contra virusspam y ataques de hackers, con más de 250 Millones de clientes repartidos por todo el Mundo. Sus productos se adaptan a las necesidades del usuario pudiendo ofrecer packs tanto como para uso domestico como para enterprise.
Symantec Corporation, Norton,antivirus
Norton es una de las empresas de seguridad más grandes del mundo, utiliza tecnologías de última generación para hacer frente a los ciberataques en tiempo real. Norton propiedad de Symantec Corporation, una corporación internacional que desarrolla y comercializa software para computadoras opera en más de cuarenta países.
McAfee Total Protection 2024
Malware Forensics Field Guide for Windows Systems
Ashampoo PDF Pro 4 Ashampoo uninstaller free
tablet, smartphone, ordenador libre de virus con Avira
Mantén tu tablet, smartphone, ordenador libre de virus con Avira, la mejor apuesta para la seguridad de tu equipo informático.
BullGuard
BullGuard ofrece una amplia gama de marcas de antivirus y productos de seguridad en internet que garantizan una efectiva protección de datos combinando la excelencia técnica con un preciso entendimiento de las necesidades de los usuarios.
Cyberlink
Encuentra una variada cartera de productos multimedia y diferentes gamas de aplicaciones de software de creatividad y entretenimiento en Cyberlink
Eduard Kucera y Pavel Baudis, antivirus, avast
Avast es una de las empresas de seguridad más grandes del mundo, utiliza tecnologías de última generación para hacer frente a los ciberataques en tiempo real. Fundada en 1988 por los investigadores checos Eduard Kucera Pavel Baudis. La misión de Avast ha sido siempre, desde sus inicios, evitar los ciberataques para lograr que Internet sea siempre un lugar seguro y accesible para todo el mundo.
G DATA Software AG
G DATA Software AG es una innovadora multinacional con basta experiencia en el desarrollo de soluciones de seguridad informática. Fundada en 1985, está especializada en protección online y ha sido pionera en el desarrollo de programas antivirus. Entre sus distintas ofertas encontrarás el paquete que mejor se adapta a tus necesidades.
Nuance
Nuance es el proveedor líder en soluciones de imagen y voz para empresas y consumidores de todo el mundo. Diseñan y ofrecen tecnologías intuitivas que ayudan a las personas a vivir y a trabajar de una forma más inteligente. Nuance proporciona las herramientas necesarias para informar, conectar y facultar a las personas para que sean más productivas y creativas.


Se conoce como software​ al soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.
La interacción entre el Software y el Hardware hace operativa una computadora (u otro dispositivo), es decir, el Software envía instrucciones que el Hardware ejecuta, haciendo posible su funcionamiento.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
El software en su gran mayoría, está escrito en lenguajes de programación de alto nivel, ya que son más fáciles y eficientes para que los programadores los usen, porque son más cercanos al lenguaje natural respecto del lenguaje de máquina.​ Los lenguajes de alto nivel se traducen a lenguaje de máquina utilizando un compilador o un intérprete, o bien una combinación de ambos. El software también puede estar escrito en lenguaje ensamblador , que es de bajo nivel y tiene una alta correspondencia con las instrucciones de lenguaje máquina; se traduce al lenguaje de la máquina utilizando un ensamblador.
El anglicismo software es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; en tanto que el término sinónimo «logicial», derivado del término francés logiciel, es utilizado mayormente en países y zonas de influencia francesa. Su abreviatura es Sw.
Software es una palabra proveniente del inglés, que en español no posee una traducción adecuada al contexto, por lo cual se la utiliza asiduamente sin traducir y así fue admitida por la Real Academia Española (RAE).​ Aunque puede no ser estrictamente lo mismo, suele sustituirse por expresiones tales como programas (informáticos) o aplicaciones (informáticas) o soportes lógicos.
Software es lo que se denomina producto en ingeniería de software.
Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
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.


Extraído del estándar 729 del IEEE​


Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuentebinario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decirabarca todo lo intangible, todo lo «no físico» relacionado.
El término software fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programasdatos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres tipos:


Se define como «proceso» al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr un producto software que resuelva un problema específico.
El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en tres categorías según su tamaño (líneas de código) o costo: de «pequeño», «mediano» y «gran porte». Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una aproximación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).
Considerando los de gran porte, es necesario realizar complejas tareas, tanto técnicas como de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), la complejidad de ello ha llevado a que desarrolle una ingeniería específica para tratar su estudio y realización: es conocida como ingeniería de Software.
En tanto que en los de mediano porte, pequeños equipos de trabajo (incluso un avezado analista-programador solitario) pueden realizar la tarea. Aunque, siempre en casos de mediano y gran porte (y a veces también en algunos de pequeño porte, según su complejidad), se deben seguir ciertas etapas que son necesarias para la construcción del software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicación, de acuerdo a la metodología o proceso de desarrollo escogido y utilizado por el equipo de desarrollo o por el analista-programador solitario (si fuere el caso).
Los «procesos de desarrollo de software» poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP), y variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Extrema (en inglés eXtreme Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP), Feature Driven Development (FDD), etc.
Cualquiera sea el «proceso» utilizado y aplicado al desarrollo del software (RUP, FDD, XP, etc), y casi independientemente de él, siempre se debe aplicar un «modelo de ciclo de vida».​
Se estima que, del total de proyectos software grandes emprendidos, un 28 % fracasan, un 46 % caen en severas modificaciones que lo retrasan y un 26 % son totalmente exitosos.​
Cuando un proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de fallos y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es mejorar las metodologías o procesos de desarrollo, o crear nuevas y concientizar a los profesionales de la informática a su utilización adecuada. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines (tales como modelos y hasta la gestión misma de los proyectos) son los ingenieros en software, es su orientación. Los especialistas en cualquier otra área de desarrollo informático (analista, programador, Lic. en informática, ingeniero en informática, ingeniero de sistemas, etc.) normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya elaborados.
Es común para el desarrollo de software de mediano porte que los equipos humanos involucrados apliquen «metodologías propias», normalmente un híbrido de los procesos anteriores y a veces con criterios propios.
El proceso de desarrollo puede involucrar numerosas y variadas tareas,​ desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero, casi rigurosamente, siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:


En las anteriores etapas pueden variar ligeramente sus nombres, o ser más globales, o contrariamente, ser más refinadas; por ejemplo indicar como una única fase (a los fines documentales e interpretativos) de «análisis y diseño»; o indicar como «implementación» lo que está dicho como «codificación»; pero en rigor, todas existen e incluyen, básicamente, las mismas tareas específicas.
En el apartado 4 del presente artículo se brindan mayores detalles de cada una de las etapas indicadas.
Durante esta etapa se realizan las tareas que comúnmente se conocen como programación; que consiste, esencialmente, en llevar a código fuente, en el lenguaje de programación elegido, todo lo diseñado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los lineamientos impuestos en el diseño y en consideración siempre a los requisitos funcionales y no funcionales (ERS) especificados en la primera etapa.
Es común pensar que la etapa de programación o codificación (algunos la llaman implementación) es la que insume la mayor parte del trabajo de desarrollo del software; sin embargo, esto puede ser relativo (y generalmente aplicable a sistemas de pequeño porte) ya que las etapas previas son cruciales, críticas y pueden llevar bastante más tiempo. Se suele hacer estimaciones de un 30% del tiempo total insumido en la programación, pero esta cifra no es consistente ya que depende en gran medida de las características del sistema, su criticidad y el lenguaje de programación elegido. ​En tanto menor es el nivel del lenguaje mayor será el tiempo de programación requerido, así por ejemplo se tardaría más tiempo en codificar un algoritmo en lenguaje ensamblador que el mismo programado en lenguaje C.
Mientras se programa la aplicación, sistema, o software en general, se realizan también tareas de depuración, esto es la labor de ir liberando al código de los errores factibles de ser hallados en esta fase (de semántica, sintáctica y lógica). Hay una suerte de solapamiento con la fase siguiente, ya que para depurar la lógica es necesario realizar pruebas unitarias, normalmente con datos de prueba; claro es que no todos los errores serán encontrados sólo en la etapa de programación, habrá otros que se encontrarán durante las etapas subsiguientes. La aparición de algún error funcional (mala respuesta a los requisitos) eventualmente puede llevar a retornar a la fase de diseño antes de continuar la codificación.
Durante la fase de programación, el código puede adoptar varios estados, dependiendo de la forma de trabajo y del lenguaje elegido, a saber:

  • Código ejecutable: Es el código binario resultado de enlazar uno o más fragmentos de código objeto con las rutinas y bibliotecas necesarias. Constituye uno o más archivos binarios con un formato tal que el sistema operativo es capaz de cargarlo en la memoria RAM (eventualmente también parte en una memoria virtual), y proceder a su ejecución directa. Por lo anterior se dice que el código ejecutable es directamente «inteligible por la computadora». El código ejecutable, también conocido como código máquina, no existe si se programa con modalidad de «intérprete puro».
  1. Diccionario de la lengua española 2005 (2010). wordreference.com, ed. «software» (diccionario). Espasa-Calpe. 
  2. «SYSTEM SOFTWARE». 30 de mayo de 2001. Consultado el 10 de febrero de 2018.
  3.  «Onderwijs Informatica en Informatiekunde | Department of Information and Computing Sciences». www.cs.uu.nl. Consultado el 10 de febrero de 2018.
  4. Real Academia Española. «Significado de la palabra Software». Diccionario de la Lengua Española, XXIIº Edición. Consultado el 14 de marzo de 2008.
  5. Real Academia Española. «Uso de la palabra Software». Diccionario panhispánico de dudas, 1.° Edición (octubre de 2005). Consultado el 8 de febrero de 2009.
  6. Pressman, Roger S. (2003). «El producto». Ingeniería del software, un enfoque práctico, Quinta edición edición. México: Mc Graw Hill.
  7. IEEE Std, IEEE Software Engineering Standard: Glossary of Software Engineering Terminology. IEEE Computer Society Press, 1993
  8.  «Ciclo de Vida del Software». Grupo Alarcos – Escuela Superior de Informática de Ciudad Real. Archivado desde el original el 14 de junio de 2013.
  9. Pressman, Roger S. (2003). «El proceso». Ingeniería del Software, un enfoque Práctico, Quinta edición edición. México: Mc Graw Hill.
  10.  «Término “Elicitar”». 1ra. acepción – Wiktionary. Consultado el 15 de diciembre de 2008.
  11.  «Leyes de evolución del Software». Connexions – Educational content repository.
  12.  «Ciclo de vida del Software y Modelos de desarrollo». Instituto de Formación ProfesionalLibros Digitales. Archivado desde el original el 15 de febrero de 2010Texto «lugar: Asunción del Paraguay» 
  13.  «Evolución del Software». Connexions – Educational content repository.
  14.  Software Requirements Engineering, 2nd Edition, IEEE Computer Society. Los Alamitos, CA, 1997 (Compendio de papers y artículos en ingeniería de requisitos)
  15.  «III Workshop de Engenharia de Requisitos». WER 2000, Río de Janeiro, 2000.
  16.  «Recommended Practice for Software Requirements Specification». IEEE-SA Standards Board.
  17.  «LEL y Escenarios como metodología en Ingeniería de Requisitos». Univ. de Morón, Buenos Aires.
  18.  «Metodología para el análisis de Requisitos de Sistemas Software». Univ. de Sevilla, 2001.
  19. ↑ Sommerville, Ian (2005). «21-Evolución del software». Ingeniería del Software. España: Pearson Educación S.A.
  20. ↑ «ACM Fellow Profile for Meir M. (Manny) Lehman». ACM. 31 de mayo de 2007. Consultado el 27 de noviembre de 2011
  • JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James (2000). El Proceso Unificado de Desarrollo de Software. Pearson Addisson-Wesley.
  • Pressman, Roger S. (2003). Ingeniería del Software, un enfoque Práctico (Quinta edición edición). Mc Graw Hill. ISBN 84-481-3214-9.
  • JACOBSON; BOOCH; RUMBAUGH (1999). UML – El Lenguaje Unificado de Modelado. Pearson Addisson-Wesley. Rational Software Corporation, Addison Wesley Iberoamericana. ISBN 84-7829-028-1.
  • Haeberer, A. M.; P. A. S. Veloso, G. Baum (1988). Formalización del proceso de desarrollo de software (Ed. preliminar edición). Buenos Aires: Kapelusz. ISBN 950-13-9880-3.
  • Fowler, Martin; Kendall Sccott (1999). UML Gota a Gota. Addison Wesley. ISBN 9789684443648.
  • Loucopoulos, Pericles; Karakostas, V. (1995). System Requirements Engineering (en inglés). London: McGraw-Hill Companies. pp. 160 p. ISBN 978-0077078430.
  • Sommerville, Ian; P. Sawyer (1997). Requirements Engineering: A Good Practice Guide (en inglés) (1ra. edition edición). Wiley & Sons. pp. 404 p. ISBN 978-0471974444.
  • Weitzenfeld – «El Proceso para Desarrollo de Software» – 2002
  • Carlos Reynoso – «Métodos Heterodoxos en Desarrollo de Software» – 2004
  • Grupo ISSI – Univ. Politécnica de Valencia – «Metodologías Ágiles en el Desarrollo de Software» – 2003
  • Martin Fowler – «La Nueva Metodología» – 2003
  • Cutter IT Journal – «Requirements Engineering and Management». August 25, 2000. Cutter Consortium.
  • «Software Requirements Engineering», 2nd Edition, IEEE Computer Society. Los Alamitos, CA, 1997 (Compendio de papers y artículos en ingeniería de requisitos).
  • Lehman, M.M. – «Laws of Software Evolution Revisited», pos. pap., EWSPT96, Oct. 1996, LNCS 1149, Springer Verlag, 1997, pp. 108-124