La forma es que se define el software Se define en la compresión de sus elementos, sus estándares de calidad reconocidos por la industria y cómo estos se pueden vincularse en la administración de proyectos para garantizar la calidad del producto. Fundamentos de la ingeniería de software La ingeniería de software es una disciplina que permite al desarrollador de calidad que solucione las necesidades de las empresas o de particulares. Principios de la ingeniería de software Rigor Dentro de la ingeniería de software, existen diversos métodos para desarrollarlo; en todo caso, se ajustan a los siguientes pasos: Planificación Administración de requerimientos Análisis Diseño Implementación Pruebas Despliegue Mantenimiento El rigor, entonces, es la realización de cada paso anterior con base en cualquier metodología para el desarrollo de software de calidad. Formalismo El formalismo consiste en establecer métricas que permitan identificar si la metodología seleccionada está dando resultados. Modularidad La división del software en módulos más pequeños permite evaluar más fácilmente su cumplimiento de los requisitos y funcionalidad. Abstracción Permite a los desarrolladores identificar las funciones y módulos principales que lo integrarán. Anticipación al cambio Diseñar el software de manera flexible pero robusta, es decir, que sea funcional y a la vez deje agregar funciones o realizar mantenimiento en sus componentes de forma transparente para los usuarios. Arquitectura de software La arquitectura de software se refiere al establecimiento de una estructura base que sirva como guía a los desarrolladores de software. Las 4 p de la ingeniería de software Personas Quienes participan dentro de un proyecto de software y sus interacciones. Procesos Proporciona un marco sobre el cual se puede establecer un plan claro para desarrollar software. Producto Elementos que se entregan y van más allá de la aplicación de software. Son los artefactos que se crean durante la vida del proyecto. Metodologías, técnicas y herramientas Metodología Una metodología propone una manera de resolver problemas empleando recursos, técnicas y herramientas de forma organizada. En general, se conforma de fases y procedimientos bien definidos que ayudan a los desarrolladores en la construcción del software de manera eficiente. Pressman afirma que “los métodos de la ingeniería de software nos indican cómo construir técnicamente el software” (2002, p. 14). Los diferentes métodos de la ingeniería de software abarcan desde la etapa de análisis de requisitos, diseño, desarrollo, pruebas, hasta la fase de mantenimiento. Técnica Como técnica se define la manera en que un conjunto de procedimientos, materiales o intelectuales es aplicado en una tarea específica, con base en el conocimiento de una ciencia o arte, para obtener un resultado determinado. También se conoce como técnica la destreza o habilidad particular de una persona para valerse de estos procedimientos o recursos. Por ejemplo, a nivel deportivo solemos valorar este tipo de cualidades en un atleta: “Nunca vi a nadie jugar fútbol con una técnica tan exquisita como la de Maradona”. En la ingeniería de software, la técnica permite a los desarrolladores de software seguir una metodología y establecer un marco de trabajo para la ejecución integral del proyecto. Herramientas Las herramientas son instrumentos para realizar de forma más eficiente una tarea específica. Asimismo, proporcionan al desarrollador enfoques automáticos o semiautomáticos para la construcción de software, y le permiten reutilizar código u otras herramientas que faciliten las actividades. A este enfoque se le suele denominar ingeniería de software asistida por computadora (CASE, por sus siglas en inglés).