Está en la página 1de 7

Diego Briscón de la Torre

Conceptos básicos de la ingeniería de software


¿Qué es un software?
Programas de cómputo y su documentación asociada: requerimientos, modelos de diseño
y manuales de usuario.
Es el producto del desarrollo que realizan los ingenieros de software resultado de
requerimientos de información.
El software puede ser:

 Genérico: desarrollado para venderse a múltiples clientes (Excel, Word, etc.)


 A la medida: desarrollado bajo demanda del cliente a un desarrollador específico
El software nuevo puede ser creado desarrollando nuevos programas, configurando
sistemas de software genérico o reutilizando software existente.
¿Qué es la ingeniería de software?
Una disciplina de la Ingeniería que concierne a todos los aspectos de la producción de
software
Los Ingenieros de Software deben:

 Adoptar un enfoque sistemático para llevar a cabo su trabajo


 Utilizar las herramientas y técnicas apropiadas para resolver el problema planteado,
de acuerdo a las restricciones de desarrollo y a los recursos disponibles
Es una disciplina de la Ingeniería que comprende todos los aspectos de la producción del
software desde las etapas iníciales de la especificación del sistema hasta el mantenimiento
de éste después de que se libera.
La Ingeniería de Software incluye:

 Personas (quién lo hace)


 Proceso (la manera en que se hace)
 Proyecto (la realización)
 Producto (la aplicación de artefactos)
¿Cuál es la diferencia entre ingeniería de software e ingeniería de sistemas?
La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas
basados en cómputo incluyendo hardware, software y la ingeniería de procesos.
La Ingeniería de Software es una parte de este proceso que comprende el desarrollo de
software, control, aplicaciones y bases de datos del sistema.
Los ingenieros de software son los encargados de la especificación del sistema, del diseño
de la arquitectura, la integración y la puesta en marcha.
Diego Briscón de la Torre

¿Qué es un proceso de software?


Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un
software
Algunas actividades genéricas en todos los procesos de software son:

 Especificación, qué debe hacer el software y cuáles son sus especificaciones de


desarrollo
 Desarrollo, producción del sistema de software
 Validación, verificar que el software cumple con lo solicitado por el cliente
 Evolución, cambiar/adaptar el software a las nuevas demandas
Estas actividades varían dependiendo de la organización y del tipo de sistema a
desarrollarse.
¿Qué es un modelo de proceso de software?
Representación formal y simplificada de un proceso de software, presentada desde una
perspectiva específica
Ejemplos de perspectivas del proceso de software:

 Flujo de trabajo, secuencia de actividades


 Flujo de datos, flujo de la información
 Rol/acción, quién realiza qué
Modelos Genéricos:

 Cascada, separar en distintas fases de especificación y desarrollo


 Desarrollo Iterativo, la especificación, desarrollo y validación están interrelacionados
 Prototipado, un modelo sirve de prototipo para la construcción del sistema final
 Basado en componentes, asume que partes del sistema ya existen y se enfoca a su
integración
Modelo de cascada:
Diego Briscón de la Torre

Modelo de desarrollo iterativo:

¿Cuáles son los costos de la ingeniería de software?


El costo total de un software está dividido aproximadamente de la siguiente forma:

 60 % costos de desarrollo
 40 % costos de pruebas
En el software a la medida los costos de evolución a menudo exceden los costos de
desarrollo.
Los costos dependen del tipo de sistema que se desarrolla y de los requerimientos del
mismo tales como desempeño y confiabilidad.
La distribución de los costos depende del modelo de desarrollo empleado.
Diego Briscón de la Torre

Distribución de costos por actividad:

Costos de desarrollo:

¿Qué son los métodos de ingeniería de software?


Enfoques estructurados para el desarrollo de software que incluye:

 Descripciones del modelo, descripciones de modelos gráficos que deben ser


producidos.
 Reglas, restricciones aplicadas a los modelos de sistemas.
 Recomendaciones, para realizar un diseño efectivo.
 Administración del proceso, que actividades deben realizarse y en qué orden.
Diego Briscón de la Torre

¿Qué es CASE?
CASE es Computer-Aided Software Engineering
Programas que son usados para dar soporte automatizado a las actividades del proceso de
software:

 Análisis de requerimientos, modelado del sistema, pruebas y depuración


(debugging)
Las herramientas CASE son comúnmente usadas para dar soporte a los métodos de
software

 Editores para la notación del método


 Módulos de análisis que verifican que las reglas del método se cumplan
 Generadores de reportes que facilitan la creación de la documentación del sistema
 Generadores de código a partir del modelo del sistema
¿Cuáles son los atributos del software de calidad?
El software debe proveer la funcionalidad y desempeño requeridos por el usuario y debe
ser mantenible, confiable y aceptable

 Mantenible, el software debe poder evolucionar para continuar cumpliendo con las
especificaciones
 Confiable, el software no debe causar daños físicos o económicos en el caso de que
falle
 Eficiente, el software no debe desperdiciar los recursos del sistema
 Aceptable, el software debe ser aceptado por los usuarios para los que fue diseñado.
Debe ser entendible, utilizable y compatible con otros sistemas
¿Cuáles son los retos de la ingeniería de software?
Heterogeneidad

 Desarrollar técnicas para construir software que pueda hacer frente a plataformas y
ambientes de ejecución heterogéneos (diferentes tipos de Hw y Sw)
Tiempos de entrega

 Desarrollar técnicas que permitan reducir los tiempos de entrega del software sin
comprometer la calidad
Confianza

 Desarrollar técnicas que permitan que los usuarios confíen plenamente en el


software
Diego Briscón de la Torre

Fases de la ingeniería de software


1. Análisis de requerimientos: Se extraen los requisitos del producto de software. En esta
etapa la habilidad y experiencia en la ingeniería del software es crítica para reconocer
requisitos incompletos, ambiguos o contradictorios. Usualmente el cliente/usuario tiene una
visión incompleta/inexacta de lo que necesita y es necesario ayudarle para obtener la visión
completa de los requerimientos. El contenido de comunicación en esta etapa es muy
intenso ya que el objetivo es eliminar la ambigüedad en la medida de lo posible.

2. Especificación: Es la tarea de describir detalladamente el software a ser escrito, de una


forma rigurosa. Se describe el comportamiento esperado del software y su interacción con
los usuarios y/o otros sistemas.

3. Diseño y arquitectura: Determinar cómo funcionará de forma general sin entrar en


detalles incorporando consideraciones de la implementación tecnológica, como el
hardware, la red, etc. Consiste en el diseño de los componentes del sistema que dan
respuesta a las funcionalidades descritas en la segunda etapa también conocidas como las
entidades de negocio. Generalmente se realiza en base a diagramas que permitan describir
las interacciones entre las entidades y su secuenciado.

4. Programación: Se traduce el diseño a código. Es la parte más obvia del trabajo de


ingeniería de software y la primera en que se obtienen resultados “tangibles”. No
necesariamente es la etapa más larga ni la más compleja, aunque una especificación o
diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se
tengan que realizarse en esta.

5. Prueba: Consiste en comprobar que el software responda/realice correctamente las


tareas indicadas en la especificación. Es una buena praxis realizar pruebas a distintos
niveles (por ejemplo, primero a nivel unitario y después de forma integrada de cada
componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre los
programadores o realizadas por un área de test independiente).

6. Documentación: Realización del manual de usuario, y posiblemente un manual técnico


con el propósito de mantenimiento futuro y ampliaciones al sistema. Las tareas de esta
etapa se inician ya en la primera fase, pero sólo finalizan una vez terminadas las pruebas.

7. Mantenimiento: En esta etapa se realizan un mantenimiento correctivo (resolver errores)


y un mantenimiento evolutivo (mejorar las funcionalidades y/o dar respuesta a nuevos
requisitos).
Diego Briscón de la Torre

Referencias:

RODRÍGUEZ TELLO, E. A. (2011, 31 agosto). Conceptos básicos de Ingeniería de

Software. Instituto Tecnológico Superior de Hopelchén. Recuperado 22 de agosto

de 2022, de

https://hopelchen.tecnm.mx/principal/sylabus/fpdb/recursos/r87978.PDF

Unidad I: Fundamentos de Ingeniería de Software. (s. f.). ITPN. Recuperado 22 de agosto

de 2022, de

http://www.itpn.mx/recursosisc/5semestre/fundamentoseningenieriadesoftware/Uni

dad%20I.pdf

Pérez Domínguez, A. A. (2017, 12 septiembre). Fases de la ingeniería de software.

Fundamentos de ingeniería de software. Recuperado 22 de agosto de 2022, de

https://andoniandresperezdominguezfis.blogspot.com/2017/09/12-fases-de-la-

ingenieria-de-software.html

También podría gustarte