República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación
Universitaria
Ciencia y Tecnología
Universidad Territorial de Monagas “Ludovico Silva”
Sede Punta de Mata
Programa Nacional de Formación en Informática
Fundamentos del Software
Profesora: Alumnos:
Astrid Rodríguez Samuel figuera
Engeli Malaver
José Marín
Iván Caraballo
Software
El software es un conjunto de instrucciones, datos o programas utilizados
para operar ordenadores y ejecutar tareas específicas. A diferencia del
hardware, que se refiere a los componentes físicos de un sistema
informático, el software es intangible y existe en forma de códigos y datos.
Cualidades del software
Funcionalidad: El software debe cumplir con las Mantenibilidad: La facilidad con la que se puede
necesidades y expectativas del usuario, ofreciendo modificar el software para corregir errores, mejorar
las funciones necesarias para realizar tareas su rendimiento o adaptarlo a cambios en el
específicas. entorno. Incluye la modularidad y la claridad del
código.
Fiabilidad: Se refiere a la capacidad del software
para funcionar bajo condiciones específicas Portabilidad: La capacidad del software para ser
durante un período determinado. Incluye la utilizado en diferentes entornos o plataformas sin
disponibilidad, la tolerancia a fallos y la capacidad necesidad de reescribirlo. Esto incluye la facilidad
de recuperación. de instalación y configuración en distintos sistemas
operativos.
Usabilidad: Esta cualidad se refiere a lo fácil que
es para los usuarios aprender a utilizar el software Seguridad: Se refiere a la protección del software
y su eficiencia en el uso. Incluye aspectos como la contra accesos no autorizados, así como la
interfaz de usuario, la documentación y la integridad y confidencialidad de los datos que
accesibilidad. maneja.
Eficiencia: Se relaciona con el uso óptimo de
recursos, como tiempo de procesamiento y
memoria. Un software eficiente debe realizar sus
funciones sin desperdiciar recursos.
Factores de la calidad del software
La Calidad de Software se entiende
como la combinación de una serie de
factores externos:
Eficiencia. Portabilidad.
Portabilidad. Facilidad de uso.
Facilidad de uso. Funcionalidad.
Oportunidad. Corrección.
Robustez. Extensibilidad.
Reusabilidad. Compatibilidad.
Factores internos:
Modularidad y legibilidad (percibidos por los
que tienen acceso al código fuente). En
principio, sólo importan los externos, pero la
clave para conseguirlos radica en los
factores internos.
Ingeniería del software
La ingeniería del software es una disciplina esencial que combina
conocimientos técnicos con habilidades de gestión para crear soluciones
efectivas y eficientes. A medida que el mundo se vuelve cada vez más
dependiente del software, la importancia de aplicar principios sólidos de
ingeniería se hace más evidente. La capacidad para desarrollar software
confiable y de alta calidad será crucial para el éxito en un futuro cada vez más
digital.
Papel del usuario dentro del desarrollo del software
A medida que avanzamos, la
integración de la experiencia del
usuario en el desarrollo de software
seguirá siendo una prioridad. Las
empresas que se dedican al diseño y
desarrollo de software, páginas web,
y aplicaciones para móviles tienen la
oportunidad de liderar el camino,
utilizando la tecnología para crear
experiencias que no solo satisfagan
las necesidades de los usuarios sino
que también las anticipen.El papel
del usuario en el desarrollo de
software es crucial para asegurar
que el producto final cumpla con las
necesidades y expectativas de
quienes lo utilizarán.
Ética y responsabilidad
Son los Ingenieros de Software
quienes contribuyen, mediante
participación directa o enseñanza, al
análisis, especificación, diseño,
desarrollo, certificación,
mantenimiento y pruebas de
sistemas de software. Debido a su
papel en el desarrollo de estos
sistemas,tienen suficientes
oportunidades para aportar
beneficios u ocasionar daños, para
influir en otros o permitir a otros
hacer esto mismo Para garantizar,
en la medida de lo posible, que sus
esfuerzos se utilizarán de buena
forma, los Ingenieros de Software
deben obligarse a hacer de su
disciplina una profesión respetada y
beneficiosa
Ciclo de vida del software
El ciclo de vida del software es un
marco que describe las etapas y
actividades involucradas en el desarrollo
y mantenimiento de sistemas de
software. Este ciclo se puede ver como
una serie de fases que guían a los
equipos de desarrollo desde la
concepción de la idea hasta el retiro del
software.
Principios en el desarrollo del software
Claridad y Simplicidad: El código debe ser tan simple
como sea posible. Esto facilita la comprensión, el
mantenimiento y la reducción de errores.
Reusabilidad: Desarrollar con reusabilidad en mente
ayuda a reducir la duplicación del código y facilita el
mantenimiento y la expansión futuros del software.
Modularidad: Dividir el software en módulos o
componentes que puedan desarrollarse, probarse y
depurarse de manera independiente.
Documentación: Mantener una documentación
adecuada es vital tanto para el desarrollo interno como
para el uso externo por parte de los usuarios y otros
desarrolladores.
Pruebas: Implementar pruebas exhaustivas (unitarias,
de integración, de sistema, de aceptación) para
asegurar que el software funcione correctamente bajo
todas las condiciones previstas.
Metodologia en el desarrollo del software
Desarrollo Ágil: Enfatiza la flexibilidad y la entrega
iterativa de características. Los métodos ágiles, como
Scrum y Kanban, permiten adaptaciones rápidas a los
cambios de requisitos y fomentan una colaboración
continua entre todos los stakeholders.
Desarrollo en Cascada: Un enfoque más tradicional
que sigue una progresión lineal a través de las etapas
de análisis de requisitos, diseño, implementación,
prueba y mantenimiento. Aunque es menos flexible que
los métodos ágiles, puede ser efectivo en proyectos con
requisitos bien definidos y estables.
Desarrollo de Software Lean: Se centra en minimizar
el desperdicio de recursos y maximizar el valor para el
cliente. Implica eliminar actividades que no agregan
valor al cliente final.
Modelos en el desarrollo del software
Modelo en espiral: El modelo en espiral incorpora ciclos iterativos,
en los que cada iteración consta de cuatro fases principales:
planificación, análisis de riesgos, desarrollo y evaluación. Es uno de
los modelos de desarrollo de software especialmente útiles para
proyectos a gran escala en los que la evaluación de riesgos, la
creación de prototipos y la evaluación constante desempeñan un
papel crucial.
Modelos iterativos e incrementalesEstos modelos tipos de
desarrollo de software implican dividir el proyecto en pequeñas
iteraciones o incrementos, y cada iteración abarca todas las fases de
desarrollo necesarias. Los modelos iterativo e incremental permiten
una retroalimentación temprana, una comercialización más rápida y
una mayor adaptabilidad a los requisitos cambiantes.
Actividades en el desarrollo del software
Codificación: Los desarrolladores
transforman los requerimientos en código,
asegurando la funcionalidad y coherencia
con el diseño original. Esta etapa es
fundamental, ya que determina la
estructura y la lógica del software.
Pruebas Unitarias: Durante la
codificación, se realizan pruebas a nivel
de módulo para identificar y corregir
errores. Estas pruebas permiten que cada
componente funcione de manera
independiente y adecuada.
Herramientas en el desarrollo del software
El uso de herramientas adecuadas es fundamental en
cada fase del ciclo de vida del software.
Gestión de Proyectos: Jira y Trello facilitan la
asignación de tareas y el seguimiento del progreso,
mejorando la colaboración y la transparencia.
Entornos de Desarrollo Integrado (IDE): Eclipse y
Visual Studio proporcionan un entorno completo para
codificación, pruebas y depuración, facilitando la labor
de los desarrolladores.
Control de Versiones: Git permite el control y
seguimiento de cambios, promoviendo la colaboración y
manteniendo un registro detallado de las modificaciones
realizadas.
Automatización de Pruebas: Herramientas como
Selenium y JUnit ayudan a realizar pruebas
automatizadas y a identificar errores de manera rápida y
efectiva.
Modelos apropiados segun las caracteristicas
de los proyectos de software
Modelo en Cascada Software Development
Este modelo funciona bien cuando los requisitos Este enfoque es adecuado para proyectos
son bien definidos desde el principio y no se espera que buscan optimizar procesos y eliminar
que cambien. Permite una planificación secuencial desperdicios, ideal para equipos que buscan
y una documentación clara. mejorar continuamente.
Modelo V
Modelo Ágil
Este modelo enfatiza la verificación y validación
Los métodos ágiles son ideales para proyectos
en cada fase del desarrollo, lo cual es crucial
donde los requisitos pueden evolucionar con el
para proyectos donde la calidad y la seguridad
tiempo. Permiten adaptaciones rápidas y entregas
son prioritarias.
frecuentes, lo que facilita la incorporación de
feedback.
Modelo de Prototipado
Este modelo permite la creación de prototipos para
explorar conceptos y obtener retroalimentación
temprana, lo que es útil cuando los requisitos no
están claros.
Gracias por su Atención