Ingeniería de Software y Arquitectura de Software
Aprende Sobre Ingeniería de Software, Ingeniería de requisitos, Arquitectura de Software , Software Testing y mas!

Ingeniería de Software y Arquitectura de Software udemy course free download
Aprende Sobre Ingeniería de Software, Ingeniería de requisitos, Arquitectura de Software , Software Testing y mas!
Este curso esta diseñado para que aprenda las bases como ingeniero de Software para crear productos de alta calidad. Este curso cimenta las bases para que pueda liderar equipos de trabajo y distinguirse de ingenieros que si bien saben como codificar e implementar la solución desconocen las herramientas necesarias para llevar adelante un proyecto teniendo en cuenta la satisfacción final del cliente y los usuarios finales que utilizaran la aplicación. ¿Cómo creo un software de calidad?,¿Como puedo construir una aplicación atractiva para el usuario final?.
Para este programa no es necesario que conozca como programar dado que se aborda la programación desde la teoría teniendo su eje central en el ciclo de vida del proyecto , metodologías de desarrollo , técnicas y principios para el diseño limpio de código y aplicaciones , diagramas UML para el desarrollo del modelado del proyecto , especificación de requerimientos , gestión de riesgos, software testing , documentación y herramientas imperativas que como programador usted necesitara conocer cuando trabaje en la industria.
Ventajas de aprender sobre ingeniería de software:
1)La ingeniería de Software es una disciplina que se centra en crear software de muy alta calidad , diferenciándolo de un programador y técnico cuya área se centra en la implementación de código. Si bien todo programador puede crear un programa esto no significa que lo haga bien , ¿Cómo saber si su producto es de calidad?.¿Cómo minimizo los costos y tiempos de desarrollo?, ¿Qué técnicas puedo utilizar para este propósito?, ¿De que forma organizo mis avances en el proyecto?
2)Recabación de requisitos. Si bien la mayoría de los programadores tienden a querer programar de forma directa los requerimientos de un cliente o sus propias ideas esto por norma general es una mala practica. Todo proyecto tiene un ciclo de desarrollo que guía las actividades que usted debe realizar para optimizar el desarrollo , disminuir costos y minimizar errores. Si usted intenta implementar un sistema sin una correcta planificación corre el enorme riesgo de omitir características importantes en su proyecto y deba dar vuelta atrás cuando ya lleva una parte importante de su trabajo y deba o bien reestructurar código que ya había comenzado o bien comenzar desde cero, ¿No le resulta esto costoso?, ¿No hay formas mas eficientes de lograr lo que quiero?,¿No seria mas fácil detectar mis errores y tomaría menos tiempo planificando y modificando mi planificación antes de haber escrito código?.
3)Diseño de la arquitectura , interfaz y de componentes. Usted puede crear el mejor Software del mundo con las mejores funcionalidades para la problemática que desea solucionar. No obstante si usted crea un sistema poco atractivo , difícil de entender para el usuario , con problemas de rendimiento y en definitiva con problema en la usabilidad poco importara si su proyecto es el mejor del mundo. Si otro programa es mas simple de utilizar y mas atractivo , resuelve su mismo problema , incluso si esa aplicación no es tan buena como la suya el usuario optara por dicha solución y escogerá su competencia en lugar de su aplicación. ¿Cómo creo un software atractivo para el usuario final?,¿Que aspectos debería considerar para mejorar la interfaz de usuario?,¿Que debería considerar para mejorar la experiencia de usuario y por ende su satisfacción al utilizar mi aplicación para que me recomiende a otros usuarios?
4)Gestión de riesgos. En todo proyecto de Software existen riesgos asociados, no es posible , al menos en proyectos serios de mediana o gran envergadura construirlos de una sola vez. Incluso el mejor programador comete errores. La cuestión es como puedo minimizar los errores, establecer planes de contingencia, monitoreo y mitigación para los proyectos. La ingeniería de Software es una diciplina que lo distingue del resto centrándose en la calidad de los productos finales. Sin este conocimiento es muy probable que cree software sin un proceso de desarrollo estructurado , genere directamente el código y por ende la posibilidades de integrar errores en sistema incrementa en forma exponencial. Esta disciplina integra otras diciplinas como Software Testing para desarrollar planes de prueba para la identificación de errores antes que terminar el producto final.
5)Minimización de costos y optimización del tiempo de desarrollo. Si bien es posible desarrollar código sin un proceso de desarrollo planificado , es extremadamente probable que introduzca errores en el producto que ofrecerá, problemas en la planificación de actividades, responsabilidades en el equipo de trabajo, problemas en los tiempos estimados de desarrollo , problema en el diseño , los requerimientos que había pensado o en el propio código. Si usted no contempla buenas practicas de desarrollo no solo desperdiciara tiempo sino que será mas costoso el proyecto dada la necesidad de volver atrás mas de lo necesario para la corrección de estos errores.
En este curso aprenderá una fuerte base teórica del proceso de desarrollo de software de calidad, consejos de desarrollo y algunos ejemplos prácticos para que aprenda a llevar a cabo adelante el proyecto con herramientas y documentación adecuada tanto para usted como para el cliente, veremos lo siguiente:
1)introducción a ingeniería de Software , meta , objetivos y alcance
2)¿Qué es la deuda técnica?
3)¿Qué es el Software de legado?
4)Ciclo de vida del proyecto
5)Metodologías de desarrollo tradicionales
6)Metodologías de desarrollo Ágil
7)Técnicas para la captura de requisitos
8)Especificación de requerimientos según el estándar IEEE 830
9)Diagramas UML para el modelado de la aplicación
10)Diseño de la arquitectura de Software
11)Diseño de la interfaz de usuario
12)Diseño de los componentes del sistema
13)Principios para el desarrollo de software
14)Principios SOLID
15)Principio para el desarrollo limpio de aplicaciones
16)Principios de código limpio
17)Principios de Jacob Nielsen para el desarrollo de paginas Web e interfaces atractivas
18)Gestión de riesgos
19)Definición de riesgos y tipos de riesgos en un proyecto
20)Plan de pruebas
21)Pruebas y macro tipos
22)Pruebas de caja negra y caja blanca
23)Requisitos funcionales y no funcionales en un proyecto
24)Tipos de prueba unitarias , de integración, de sistema , etc
25)Documentación del proyecto
26)Plan general del proyecto
27)Especificación de requerimientos
28)Temporización
29)Como documentar la gestión de riesgos y plan de pruebas
30)Herramientas útiles para el desarrollo de Software; JIRA, Star uml, figma, etc
31)Técnicas para la recabación de requerimientos
32)Revisión técnica
33)Técnicas para la obtención de métricas y mejoramiento del producto
34)Focus Group
35)Eso y mas