Introducción al Software
Se conoce como software al equipamiento lógico o soporte lógico de una computadora; 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 del sistema, llamados hardware.
Clasificación del software
Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios.
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.
Software de sistema: Denominado también software de base, consiste en programas informáticos que sirven para controlar e interactuar con el sistema operativo, siendo este el más importante dentro de este grupo, proporcionando control sobre el hardware y dando soporte a otros programas. Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de operación. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.
Se conoce como software al equipamiento lógico o soporte lógico de una computadora; 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 del sistema, llamados hardware.
Clasificación del software
Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios.
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.
Software de sistema: Denominado también software de base, consiste en programas informáticos que sirven para controlar e interactuar con el sistema operativo, siendo este el más importante dentro de este grupo, proporcionando control sobre el hardware y dando soporte a otros programas. Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de operación. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.
Ingeniería de software
Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas
para desarrollar y mantener software de calidad.
Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación,
tales como:
• Construcción de compiladores.
• Construcción de sistemas operativos.
• Desarrollos Intranet/Internet.
Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo,
operación y mantenimiento del software; es decir, la aplicación de la ingeniería al
software.
Implicaciones Socioeconómicas
Económicamente: la ingeniería de software contribuye en el crecimiento económico y productividad de un determinado país.
Socialmente: la ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora.
Metodología
Un objetivo de décadas ha sido el encontrar procesos y metodologías, que sean sistemáticas,
predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del
producto software.
Etapas del proceso
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. Asimismo, se define un DER
Diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán
en el desarrollo del software.
Especificación
La Especificación de Requisitos describe el comportamiento esperado en el software una vez
desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de
las necesidades del negocio (definidas por la alta dirección), así como la interacción con los
usuarios funcionales para la recolección, clasificación, identificación, priorización y
especificación de los requisitos del software.
Arquitectura
La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas
gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y
proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas
estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que añade valor
a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Sistemas en general, es una actividad de planeación, ya sea a nivel de
infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el
diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando
patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre
las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas
de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una
aplicación de software. Para ello se documenta utilizando diagramas.
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á íntimamente 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 del problema (etapa de especificaciones). Una técnica de prueba es probar por
separado cada módulo del software, y luego probarlo de forma integral, para así 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:
a. El primer enfoque 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 están descritas.
b. El segundo enfoque es tener un área de pruebas conformada por programadores con
experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar
una aplicación 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, 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.
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.
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.
La responsabilidad en la Ingeniería del Software es un concepto complejo, sobre todo porque
al estar los sistemas informáticos fuertemente caracterizados por su complejidad, es difícil
apreciar sus consecuencias.
En la Ingeniería del Software la responsabilidad será compartida por un grupo grande de
personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y
contando con el diseñador, o el encargado de realizar las pruebas. Por encima de todos ellos
destaca el director del proyecto. El software demanda una clara distribución de la
responsabilidad entre los diferentes roles que se dan en el proceso de producción.
El ingeniero del Software tiene una responsabilidad moral y legal limitada a las consecuencias
directas, esa formación se da a través de una educación ética.







Comentarios
Publicar un comentario