Tipos de Software y Lenguajes de Programación: UML y Más
Tipos de Software y sus Funciones
Software de Aplicación
El software de aplicación realiza tareas de procesamiento de información para el usuario final. Se divide en:
- Programas de propósito general: Realizan tareas comunes de procesamiento de información para una amplia variedad de usuarios.
- Programas de aplicación específica: Diseñados para realizar tareas específicas de un sector o usuario en particular.
Software de Sistemas
El software de sistemas gestiona y apoya las operaciones de los sistemas de computación en red. Se clasifica en:
- Programas de gestión de sistemas: Administran el hardware, software, redes y recursos de datos de un sistema informático.
- Programas de desarrollo de sistemas: Ayudan a los programadores a crear nuevos sistemas y aplicaciones.
Metodologías de Desarrollo de Software
Análisis y Diseño de Software
El análisis de software es un método de investigación del problema, que define qué debe hacer el sistema y cómo definir una solución. El diseño de software se centra en la solución lógica, es decir, cómo el sistema cumple los requisitos.
Análisis y Diseño Orientado a Objetos (OO)
El análisis OO se enfoca en descubrir y describir los objetos o conceptos del dominio del problema. El diseño OO define los elementos de la lógica del software, que se implementará en un lenguaje de programación orientado a objetos.
Estrategias para la Complejidad del Software
Para abordar la complejidad de los proyectos de software, se utiliza la descomposición (división W/win), dividiendo el problema en unidades más manejables.
Herramientas CASE
Las herramientas CASE (Computer-Aided Software Engineering) automatizan las actividades de gestión de proyectos y asisten a los ingenieros en el análisis, diseño, codificación y prueba del software.
Definición del Proceso de Software
El proceso de software consiste en un conjunto de tareas necesarias para construir software de alta calidad. Proporciona estabilidad, control y organización. Los indicadores clave de eficacia de un proceso de software son la puntualidad y la viabilidad a largo plazo del producto de software. Según Sommerville, un proceso de software produce productos de software a partir de una serie de actividades y resultados asociados.
Conceptos Clave en el Desarrollo de Software
- Software de Sistemas: Programas que gestionan y ayudan a las operaciones de las computadoras.
- Software de Aplicación: Realiza tareas de procesamiento de la información para los usuarios finales.
- Sistema Operativo: Programa del sistema que administra las operaciones de la computadora.
- Herramientas CASE: Herramientas integradas de software que facilitan el desarrollo de aplicaciones.
- Software COTS: Commercial-Off-The-Shelf, software listo para su comercialización.
- Multitarea: Capacidad de realizar simultáneamente diferentes tareas de cómputo.
- HTML: Hypertext Markup Language, el lenguaje de marcas más común utilizado en la web.
- Traductor: Convierte instrucciones de alto nivel en instrucciones en lenguaje máquina.
- Programas de Utilidades: Realizan tareas de mantenimiento de equipos.
- Software de Aplicación con Funciones Específicas: Software creado internamente para uso por una organización o un grupo específico de usuarios.
- Navegador Web: Ayuda a navegar por la web.
- E-mail: Usa una computadora en red para enviar o recibir mensajes.
- Paquete de Hojas de Cálculo: Crea y muestra una hoja de cálculo para análisis.
- Software de Procesamiento de Textos: Permite crear y editar documentos.
- Gestor de Información Personal: Ayuda a controlar las citas y tareas.
- Lenguaje de Máquina: Instrucciones en forma de secuencias codificadas en ceros y unos.
- Lenguaje de Alto Nivel: Instrucciones en forma de frases cortas o notación matemática.
- Lenguaje Orientado a Objetos: Combina datos y las acciones a tomar sobre la base de los datos.
- Lenguaje Natural: Fácil de usar, similar a la lengua materna.
- Ambiente de Programación: Incluye editores, depuradores y generadores de código.
- XML: Extensible Markup Language, lenguaje de descripción de contenido para documentos web.
- Java: Popular lenguaje orientado a objetos para aplicaciones basadas en web.
- Servicios Web: Enlaces dentro de las funciones de las aplicaciones empresariales para el intercambio de datos entre empresas en la web.
- UML: Unified Modeling Language, una notación (principalmente diagramas) para modelar sistemas utilizando conceptos orientados a objetos.
Lenguaje de Modelado Unificado (UML)
UML es una familia de notaciones gráficas (principalmente diagramas) que ayuda en el modelado, la descripción y el diseño de sistemas de software, especialmente aquellos construidos con un estilo orientado a objetos.
Tipos de Diagramas UML
Diagramas Estructurales
- Diagrama de Clases
- Diagrama de Objetos
- Diagrama de Componentes
- Diagrama de Implementación
- Diagrama de Paquetes
Diagramas de Comportamiento
- Diagrama de Actividad
- Diagrama de Casos de Uso
- Diagramas de Interacción
- Diagrama de Secuencia
- Diagrama de Colaboración/Comunicación