1. Es el soporte lógico e inmaterial que permite que la computadora pueda
desempeñar tareas inteligentes dirigiendo a los componentes físicos
(hardware) con instrucciones y datos a través de diferentes tipos de
programas.
el concepto de software va más allá de los programas de computación
en sus distintos estados: código fuente, binario o ejecutable; también su
documentación, los datos a procesar e incluso la información de usuario
forman parte del software: es decir, abarca todo lo intangible, todo lo (no
físico).
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: programas y datos.
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.
2. Es un conjunto de instrucciones que una vez
ejecutadas realizarán una o varias tareas en una
computadora. Sin programas, estas máquinas no
pueden funcionar. Al conjunto general de programas,
se le denomina software, que más genéricamente se
refiere al equipamiento lógico o soporte lógico de una
computadora digital.
3. EL SOFTWARE PUEDE
SER CLASIFICADO EN:
•Software de sistema.
• Software de aplicación.
• Software de programación.
4. SOFTWARE DE SISTEMA. Es el
conjunto de programas que sirven para
interactuar con el sistema, confiriendo
control sobre el hardware, además de
dar soporte a otros programas. A su vez
el software de sistema se divide en:
• Sistema Operativo
•Controladores de Dispositivos
•Programas Utilitarios
5. Sistema Operativo. Es un conjunto de programas que
administra los recursos de la computadora y controla su
funcionamiento. El sistema operativo realiza 5 funciones
básicas las cuales son:
• Suministro de Interfaz al Usuario: Permiten al usuario
comunicarse con la computadora a través de interfaces que
se basan en comandos, interfaces que utilizan menús e
interfaces graficas de usuario.
• Administración de Recursos: Administra los recursos del
hardware
•Administración de Archivos: Controla la
creación, borrado, copiado y acceso de archivos de datos.
6. • Administración de Tareas: Administra la información sobre los
programas y procesos que se están ejecutando en la
computadora.
• Servicio de Soporte: Consiste en la inclusión de utilidades nuevas,
actualización de versiones, mejoras de seguridad, controladores de
nuevos periféricos o corrección de errores del software.
Controladores de Dispositivos: Son programas que permiten a
otros programas de mayor nivel como por ejemplo el Sistema
Operativo que interactué con los dispositivos del hardware.
Programas Utilitarios: Realizan diversas funciones para resolver
problemas específicos además de realizar tareas de
mantenimiento.
7. SOFTWARE DE APLICACIÓN. Son los programas
diseñados para o por el usuario para facilitar la realización de
tareas específicas en la computadora Ej. Aplicaciones
Ofimáticas (procesador de texto, hoja de cálculo, sistema de
base de datos, etc.). Este software equivale a la profesión
que se adquiere con los estudios: medico, ingeniero,
profesor, etc.
SOFTWARE DE PROGRAMACIÓN. Es el conjunto de
herramientas que permiten al programador desarrollar
programas informáticos, usando diferentes alternativas y
lenguajes de programación, de una manera práctica. Incluyen
básicamente: editores de texto, compiladores, interpretes,
enlazadores, depuradores, etc.
8. TIPOS DE SOFTWARE
• SOFTWARE LIBRE
• SOFTWARE DE PROPIETARIO
SOFTWARE LIBRE. El software libre es un programa o
secuencia de instrucciones usada por un dispositivo de
procesamiento digital de datos para llevar a cabo una tarea
específica o resolver un problema determinado, sobre el cual
su dueño renuncia a la posibilidad de obtener utilidades por
las licencias, patentes, o cualquier forma que adopte su
derecho de propiedad sobre él (o sea, el software libre puede
estar licenciado, o protegido por una patente autoral), por lo
que puede utilizarse o transferirse sin pago alguno al
licenciante, o a su creador. Otra característica es que se
encuentra disponible el código fuente del software, por lo que
puede modificarse el software sin ningún límite, y sin pago a
quien lo inventó o lanzó al mercado.
9. SOFTWARE PROPIETARIO. Es aquel que es imposible
de utilizar en otro hardware, o terminal modificar, o
transferir sin pagar derechos a su inventor o creador.
Para ello, quienes han patentado software libre, lo han
hecho permitiendo las actividades recién nombradas. Así
nace el Copyleft (el opuesto del Copyright de los derechos
autorales), que es básicamente el principio de que
cualquier modificación o cambio (Derivative Works), debe
quedar disponible para el resto de la comunidad bajo el
mismo licenciamiento original. Con ello se fomenta el
trabajo colaborativo en el desarrollo de la informática.
También es importante recalcar algunos puntos
importantes para un buen desarrollo del mismo
10. • El software se desarrolla o construye; no se manufactura en
el sentido clásico. A pesar de que existen similitudes entre el
desarrollo del software y la manufactura del hardware, las
dos actividades serian diferentes en lo fundamental. En
ambas la alta calidad se alcanza por medio del buen
diseño, la fase de manufactura del hardware puede incluir
problemas de calidad existentes en el software.
• El software no se desgasta. El software es inmune a los
males ambientales que desgasten el hardware. Por lo tanto la
curva de tasas de fallas para el software debería tener la
forma de la “curva idealizada”. Los defectos sin descubrir
causan tasas de fallas altas en las primeras etapas de vida
de un programa. Sin embargo, los errores se corrigen y la
curva se aplana: el software no se desgasta, pero si se
deteriora.
11. • A pesar de que la industria tiene una tendencia hacia la
construcción por componentes, la mayoría del software a un
se construye a la medida. Un componente de software se
debe diseñar e implementar de forma que puede utilizarse en
muchos programas diferentes.
FASES DEL DESARROLLO DE SOFTWARE
Planificación. La tarea más importante en la creación de un
producto de software es la extracción de los requisitos o las
necesidades de análisis. Los clientes suelen tener una idea
abstracta de lo que quieren como resultado final, pero no lo
que el software debe hacer. Su idea suele ser
incompleta, ambigua, cuando no contradictoria.
12. Aplicación, comprobación y documentación.
La implementación. Es la parte del proceso en el que los
ingenieros de software realmente programar el código para el
proyecto.
La comprobación del software. Es una parte integral e
importante del proceso de desarrollo de software. Esta parte del
proceso asegura que los defectos se reconocen tan pronto como
sea posible.
Documentar. El diseño interno de software con el propósito de
mantenimiento futuro y la mejora se realiza durante todo el
desarrollo. Esto también puede incluir la redacción de una API,
ya sea externa o interna. Es muy importante documentar todo lo
que se hizo en el proyecto.
13. Despliegue y mantenimiento. La implementación se
inicia después de que el código se prueba de forma
adecuada, está aprobado para su liberación y vendidos
o distribuidos de otra manera en un entorno de
producción. Por otro lado, el mantener y mejorar el
software para hacer frente a los problemas recién
descubiertos o nuevos requisitos puede tomar mucho
más tiempo que el desarrollo inicial del software. Puede
ser necesario añadir código que no encaja en el diseño
original para corregir un problema imprevisto o puede
ser que un cliente solicita una mayor funcionalidad y el
código se puede añadir a sus peticiones.
14. ESTRUCTURA Y ARQUITECTURA DE SOFTWARE.
A mediados de 1990, la arquitectura empezó a emerger como
una disciplina más amplia que implica el estudio de las
estructuras y las arquitecturas de software en una forma más
genérica, dando ideas interesantes sobre diseño del software
en diferentes niveles de abstracción.
Algunos de estos conceptos son muy útiles durante el diseño
arquitectónico (estilo de arquitectura), de software específico,
así como en su diseño de detalle (nivel inferior, patrones de
diseño). Así también para el diseño de sistemas genéricos lo
que lleva a la concepción de las familias de los programas
(conocidas como líneas de productos). La mayoría de estos
conceptos pueden verse como intentos de describir, por tanto
la reutilización del diseño genérico del conocimiento
15. El desarrollo de un sistema con gran cantidad de software
requiere que este sea visto desde diferentes perspectivas.
Diferentes usuarios (usuario final, analistas, desarrolladores,
integradores, jefes de proyecto) siguen diferentes actividades
en diferentes momentos del ciclo de vida del proyecto, lo que
da lugar a las diferentes vistas del proyecto, dependiendo de
qué interese más en cada instante de tiempo.