|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/ingenieria-de-software-y-principios-de-arquitectura/
课程评论:没有评论
课程名称:软件工程与软件架构 课程概述:本课程旨在为学员奠定高质量软件开发的基础,使他们能够成为优秀的软件工程师,并具备领导团队的能力。课程内容深入探讨如何创建用户满意且吸引人的软件产品,而不仅仅是编写代码。学习将以理论为基础,重点关注项目生命周期、开发方法、代码和应用设计的清晰原则、UML图建模、需求规格、风险管理、软件测试、文档编制等关键工具。 学习软件工程的优势包括: 1. 软件工程专注于高质量软件的开发,区分于单纯的编码,确保产品在质量上具备竞争力。 2. 适当的需求收集和规划可以减少开发中的错误和成本,提高项目的成功率。 3. 优化用户界面和系统架构设计,使软件不仅具备强大功能,还能提升用户体验。 4. 风险管理是成功项目的关键,可以通过监控和应对计划来减少错误。 5. 有效的开发流程和实践可以显著减少成本和开发时间,提升项目效率。 在本课程中,学员将掌握以下内容: - 软件工程的基本概念、目标与范围 - 技术债务与遗留软件的定义 - 项目生命周期与传统及敏捷开发方法 - 需求捕获技术及IEEE 830标准要求的需求规格 - UML图在应用建模中的应用 - 软件架构、用户界面与系统组件设计 - 代码质量的原则(如SOLID原则)及清晰代码的开发原则 - 风险管理及测试计划的制定 - 项目的文档管理与工具使用(如JIRA、Star UML、Figma等) 通过本课程的学习,学员将获得扎实的软件开发基础,并能有效管理软件项目,确保最终用户的满意度。
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 alcance2)¿Qué es la deuda técnica?3)¿Qué es el Software de legado?4)Ciclo de vida del proyecto5)Metodologías de desarrollo tradicionales6)Metodologías de desarrollo Ágil7)Técnicas para la captura de requisitos8)Especificación de requerimientos según el estándar IEEE 8309)Diagramas UML para el modelado de la aplicación10)Diseño de la arquitectura de Software11)Diseño de la interfaz de usuario12)Diseño de los componentes del sistema13)Principios para el desarrollo de software14)Principios SOLID15)Principio para el desarrollo limpio de aplicaciones16)Principios de código limpio17)Principios de Jacob Nielsen para el desarrollo de paginas Web e interfaces atractivas18)Gestión de riesgos19)Definición de riesgos y tipos de riesgos en un proyecto20)Plan de pruebas21)Pruebas y macro tipos22)Pruebas de caja negra y caja blanca23)Requisitos funcionales y no funcionales en un proyecto24)Tipos de prueba unitarias , de integración, de sistema , etc25)Documentación del proyecto26)Plan general del proyecto27)Especificación de requerimientos28)Temporización29)Como documentar la gestión de riesgos y plan de pruebas30)Herramientas útiles para el desarrollo de Software; JIRA, Star uml, figma, etc31)Técnicas para la recabación de requerimientos32)Revisión técnica33)Técnicas para la obtención de métricas y mejoramiento del producto34)Focus Group35)Eso y mas