Ingeniera de software
Disciplina que se ocupa del estudio y generación de soluciones lógicas para una amplia diversidad de problemas, mediante el diseño,desarrollo y mantenimiento de software bajo criterios de estabilidad y calidad.
Componentes de la ingenieria de Software
Técnico
Análisis
comprender las necesidades de gestión y los
imperativos de procesamiento de la información del nuevo sistema.
Actividades
Recolección de
información
Especificaciones
del sistema
Prototipos
Priorizar
Especificaciones
Valorar las Alternativas
seleccionadas
Concepción
Consiste en la elaboración de un diseño general y
detallado de los diferentes componentes del futuro sistema.
Actividades
Redes de
Comunicación
Arquitectura de
la aplicación
Controles del sistema
Interfaz Usuario
Interfaz Sistema
Creación base de Datos
Prototipo del
sistema de Información
Desarrollo
Consiste en plasmar toda la concepción en líneas
de código y finalmente la puesta en producción de un sistema de información fácil de usar y
administrar.
Actividades
Construcción del
software
Verificación y Pruebas
Interfaz Usuario
Interfaz Sistema
Prototipo del
sistema de Información
Implementación
Consiste en el proceso de ejecutar o llevar a cabo el nuevo sistema operativo o software, incluyendo todas sus pruebas de funcionamiento y ciberseguridad. En esta etapa también se lleva a cabo del proceso social de los usuarios para orientarlos hacia el cambio y que se adueñen del nuevo sistema.
Soporte y Mantenimiento
El soporte y mantenimiento tiene como principal objetivo garantizar la continuidad de la operación del sistema durante el tiempo acordado o revisto en las etapas de concepción.
Actividades
Mantenimiento del
sistema
Actualización y mejoramiento del sistema
Soporte a los usuarios
No técnico
Es el conjunto de tareas o actividades encargadas de realizar una adecuada gestión del proyecto, aplicable para la ingeniería de software en la realización o construcción de cualquier sistema operativo. Estas pautas permitirán la correcta administración del proyecto a planear, implementar y mantener durante su vida.
Definir el Alcance
Delimitar de las fronteras del proyecto por parte del cliente o usuario principal.
Identificar Tareas
Consiste en establecer una estructura jerárquica del proyecto en fases, actividades y tareas.
Estimar la Duración de las tareas
Se basa en la estimación de tiempo en que se tardara realizar las tareas identificadas, basándose en su dificultad e importancia en la ejecución del proyecto. Para ello en vital planificar la ejecución en un cronograma de actividades.
Especificar interdependencias entre las tareas
determinar cuales actividades o tareas depende de otras y que tipo de dependencia suceden entre ellas. la mas comunes son:
- FS (Finish-to-Start) El fin de una tarea provoca el comienzo de otra.
- SS (Start-to-Start) El comienzo de una tarea provoca el comienzo de otra.
- FF (Finish-to-Finish) Dos tareas deben finalizar al mismo tiempo.
- SF (Start-to- Finish) El comienzo de una tarea significa el fin de otra.
Asignar Recursos
Planeación y asignación de los recursos financieros, humanos, muebles e inmuebles necesarios para ejecutar nuestro proyecto.
Monitoreo y control del proyecto
Reportar el progreso en la ejecución del proyectos y cuando sea necesario ajustar el alcance, el cronograma y los recursos asignados.
Resultado del proyecto y evaluación
Antecedentes en
el contexto social
(1989) que Tim Berners Lee es encargado por el CERN para definir las líneas generales del Estándar HTML (Hyper Text Markup Lenguaje) y publicar la primera versión de un nuevo protocolo de difusión de información de manera global (Estándar HTML 1.0).
(1993) Lanzamiento de la primera versión del
navegador MOSAIC, escrito por Marc Andreesen en . La combinación del estándar HTML, el protocolo de comunicación HTTP y la disponibilidad y fácil acceso al navegador MOSAIC constituyeron la piedra angular para los cimientos de unas nuevas formas de comunicación entre las personas.
(1950-1965) Procesamiento por lotes, sistemas no distribuidos y creación de software a la medida
(1965-1975) Procesamiento por lotes, sistemas no distribuidos y creación de software a la medida.
(1975-1988) Sistemas distribuidos, incorporación de inteligencia al software, hardware de bajo costo y aumento en el consumo de software.
(1988-2000) Incremento en la potencia de los equipos, aplicación del paradigma orientado a objetos, aplicación al software de las Redes Neuronales y la Inteligencia Artificial, computación en paralelo y crecimiento de las redes de computadores.
(2000 ...) En la primera década
del siglo XXI vio la aparición vertiginosa de nuevas tecnologías: Computación Móvil, Geolocalización, redes sociales, computación en la nube (cloud computing), sistemas de
colaboración en línea, protocolos de comunicación inalámbricos, gobierno en línea,
teletrabajo etc.
el 59.6% de la población mundial son usuarios
de Internet que representan una penetración global (Internet World Stats, 2020), lo cual evidencia la oportunidad y masificación de los servicios en la nube a nivel de infraestructura como servicio (IaaS), plataforma como servicio (PaaS) y software como servicio (SaaS).
Desde la perspectiva de la Asociación Colombiana de Ingenieros - ACIEM, algunas de las tendencias tecnológicas para 2019 serán: inteligencia artificial (IA), Internet industrial de las cosas (IIoT), sistemas ciberfísicos (CPS), robótica colaborativa (Cobot), Big Data
(macrodatos), impresión 3D, realidad virtual y realidad aumentada, desarrollo de nuevas
aplicaciones con mayor énfasis en la salud y Blockchain.
Surgimiento de la Ingeniería
de Software en la organizaciones
El diseño y el desarrollo de software se han convertido en una actividad compleja y de misión crítica para muchas organizaciones. Sin embargo, la forma de enfrentar y asumir el proceso de desarrollo de software varía de acuerdo con el tipo de organización.
Se presenta un alto interés en:
- Inteligencia Artificial
- Seguridad Informática
- Internet de las cosas (IoT), BlockClain - Gemelos digitales
- Conocimiento en vehículos autónomos
- Interfaces conversacionales (CUI)
- Impresión en 3D
- Robótica
- Realidad aumentada
Satisfacer Necesidades organizacionales
Gestionar proyectos
Conseguir logros y objetivos
Busca desarrollar software eficientes y efectivos