Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

TECNM - Ensayo de Conceptos Básicos de Ingeniería en Software, Guías, Proyectos, Investigaciones de Introducción a Ingeniería Software

Ensayo sobre los conceptos básicos que se tratan en la ingeniería en software. Por ejemplo, definición, aplicaciones, modelos de procesos, herramientas CASE, etc.

Tipo: Guías, Proyectos, Investigaciones

2022/2023

A la venta desde 16/06/2024

mayra-mendez-17
mayra-mendez-17 🇲🇽

26 documentos

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Ensenada
Fundamentos de Ingeniería en Software
Nombre: Mayra Dayana Méndez Robles.
No. Control: 21760616.
Profesor: Luleyka Aurora Carrillo Balderrama.
Tema: Ensayo de Conceptos Básicos de Ingeniería en Software.
Fecha: 28 de agosto de 2023
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga TECNM - Ensayo de Conceptos Básicos de Ingeniería en Software y más Guías, Proyectos, Investigaciones en PDF de Introducción a Ingeniería Software solo en Docsity!

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico de Ensenada

Fundamentos de Ingeniería en Software

Nombre: Mayra Dayana Méndez Robles.

No. Control: 21760616.

Profesor: Luleyka Aurora Carrillo Balderrama.

Tema: Ensayo de Conceptos Básicos de Ingeniería en Software.

Fecha: 28 de agosto de 2023

Introducción

La ingeniería en software es una disciplina que ha cobrado una importancia creciente en la sociedad moderna. A medida que la tecnología se ha vuelto omnipresente en nuestras vidas, la necesidad de desarrollar software confiable, eficiente y seguro se ha convertido en una prioridad. En este ensayo, exploraremos los conceptos básicos de la ingeniería en software, su importancia y su evolución a lo largo del tiempo.

Desarrollo

La ingeniería en software es la aplicación de principios de ingeniería al diseño, desarrollo, prueba y mantenimiento de software. A diferencia de la programación, que se centra en la escritura de código, la ingeniería en software abarca un proceso más amplio que incluye la planificación, el diseño, la documentación y la gestión de proyectos relacionados con el software. Su objetivo principal es producir software de alta calidad que cumpla con los requisitos del usuario de manera eficiente y confiable. El software debe proveer la funcionalidad y desempeño requeridos por el usuario y debe ser mantenible, confiable y aceptable. Los atributos más comunes de un buen software son:

  1. Desplegabilidad (facilidad de despliegue).
  2. Disponibilidad.
  3. Escalabilidad.
  4. Interoperabilidad.
  5. Modificabilidad.
  6. Rendimiento.
  7. Seguridad.
  8. Testeabilidad (facilidad de probar el sistema).
  9. Usabilidad. Cuando se toma la decisión de crear o desarrollar un producto de software , varios aspectos entran en juego: el concepto, tipo de producto que se necesita, el diseño, equipo de desarrolladores y, muy importante, el modelo de proceso de desarrollo de software que se utilizará para su creación. Un modelo de proceso de software puede definirse como una “abstracción” del proceso de desarrollo de software. El modelo de proceso de software funciona para especificar las etapas y el orden de todas las actividades que se realizan, así como también las secuencias. En la actualidad, hay varios modelos de procesos de software que son utilizados por los equipos de desarrollo o las empresas de desarrollo de software para crear los distintos productos, pero los más usados son:
  1. Análisis: Todo proyecto de software comienza con una fase de análisis que incluye un estudio de viabilidad y una definición de los requisitos. En el estudio de viabilidad se evalúan los costes, la rentabilidad y la factibilidad del proyecto de software.
  2. Diseño: La fase de diseño sirve para formular una solución específica en base a las exigencias, tareas y estrategias definidas en la fase anterior. En esta fase, los desarrolladores de software se encargan de diseñar la arquitectura de software , así como un plan de diseño detallado del mismo , centrándose en componentes concretos, como interfaces, entornos de trabajo o bibliotecas.
  3. Implementación: La arquitectura de software concebida en la fase de diseño se ejecuta en la fase de implementación , en la que se incluye la programación del software , la búsqueda de errores y las pruebas unitarias. En la fase de implementación, el proyecto de software se traduce al correspondiente lenguaje de programación.
  4. Prueba (Verificación): La fase de prueba incluye la integración del software en el entorno seleccionado. Las pruebas de aceptación desarrolladas en la fase de análisis permiten determinar si el software cumple con las exigencias definidas con anterioridad.
  5. Servicio (Mantenimiento): Una vez que la fase de prueba ha concluido con éxito, se autoriza la aplicación productiva del software. La última fase del modelo en cascada incluye la entrega , el mantenimiento y la mejora del software.  Modelo iterativo El proceso iterativo es la práctica de elaborar, refinar y mejorar un proyecto, producto o iniciativa. Los equipos que usan procesos de desarrollo iterativos crean, prueban y hacen revisiones hasta que se sienten satisfechos con el resultado final. Figura 2. Esquema del procedimiento del modelo iterativo.

Los procesos que se describen en el siguiente modelo son los siguientes:

  1. Planificación y requisitos: Se define el plan del proyecto que deberá estar alineado con los objetivos generales del mismo. En esta etapa también se especificarán los requisitos esenciales que deben cumplirse.
  2. Análisis y diseño: Se centrarán las necesidades comerciales y los requisitos técnicos de tu proyecto. Si en el primer paso se han definido los objetivos, durante el segundo paso se llevará a cabo una lluvia de ideas para definir el diseño que eventualmente te ayudará a alcanzar esos objetivos.
  3. Implementación: Se creará la primera iteración del entregable del proyecto. Esta iteración se basará en el análisis y diseño, y debería funcionar para alcanzar el objetivo final del proyecto. El nivel de detalle y el tiempo que se le dedique a esta iteración dependerán del proyecto.
  4. Pruebas: Se iniciarán las pruebas de la forma que mejor funcione para el proyecto. Además de las pruebas, también se recomienda consultar con las partes interesadas del proyecto para que así se involucren en la iteración y brinden comentarios.
  5. Evaluación y revisión: Después de las pruebas, el equipo puede evaluar el éxito de la iteración y centrarse en todo aquello que se necesite cambiar. ¿Esta iteración cumple con los objetivos del proyecto? ¿Por qué o por qué no? Si es necesario cambiar algo, se puede volver a iniciar el proceso iterativo y repetir el paso dos para diseñar la iteración siguiente. Por otro lado, las herramientas CASE son un conjunto de aplicaciones informáticas, usadas para automatizar actividades del ciclo de vida de desarrollo de sistemas (SDLC). Las herramientas CASE son usadas por los directores de proyectos de software, analistas e ingenieros para desarrollar sistemas de software. El propósito principal de las herramientas CASE es aumentar la productividad, mejorar la calidad del software y facilitar la colaboración entre los miembros del equipo de desarrollo. Esto se logra a través de la automatización de tareas repetitivas, la generación de documentación, la creación de modelos visuales y la gestión eficiente de datos y recursos relacionados con el proyecto de software. Las herramientas CASE más comunes para dar soporte a los métodos de software son las siguientes:
  6. Microsoft Visio: Aunque es conocido principalmente como una herramienta de diagramación, Microsoft Visio incluye características de modelización que pueden ser útiles para diseñar diagramas UML y otros modelos durante la fase de diseño de software.

Heterogeneidad: Desarrollar técnicas para construir software que pueda hacer frente a plataformas y ambientes de ejecución heterogéneos.  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. De igual forma, el costo del desarrollo de software dependerá del producto que quieras crear, la complejidad y duración del proyecto, así como de la cantidad de desarrolladores que contrates temporalmente y la experiencia que tengan. Dependiendo de lo que necesite la compañía y presupuesto, puedes decidir qué proyecto emprender. El costo total de un software está dividido aproximadamente de la siguiente forma:  6 0% costos de desarrollo.  40% costos de pruebas. Y por otro lado se tiene el costo de un desarrollado. Estos se dividen como:  Desarrollador de software: El costo por hora de un desarrollador de software con experiencia básica o media, oscila entre 27 y 60 dólares. Un desarrollador de software senior, experimentado, puede costar entre 80 y 100 dólares.  Diseñador UX/UI: El costo de contratación por hora de un diseñador UX/UI varía de acuerdo a sus habilidades y años de experiencia. Si tiene entre 1 y 5 años, puede costar $50/hora, de acuerdo a datos del UX Design Institute. Si tiene entre 5 y 10 años, el precio asciende a $ 75/hora. Si tiene más de 11 años de experiencia, el costo por hora se eleva a 100 dólares.  Ingeniero QA: Un ingeniero QA puede costar entre 30 y 55 dólares por hora.  Servicio de mantenimiento y soporte: La contratación de un ingeniero básico puede costar entre 90 y 140 dólares por hora, un ingeniero mide entre 100 y 175 dólares y un ingeniero experimentado puede costar entre 200 y 300, dependiendo de la complejidad del trabajo por hacer. Para concluir, ahora que se tiene más conocimiento sobre el proceso para desarrollo de proyectos de software, hay que destacar que, como otras disciplinas de la ingeniería, la Ingeniería del Software se lleva a cabo dentro de un marco legal y social que limita la libertad de los ingenieros de software , quienes deben aceptar que su trabajo comprende responsabilidades más amplias que simplemente la aplicación de habilidades técnicas.

Los ingenieros de software deben adherirse a ocho principios del Código de Ética y Práctica Profesional:

  1. Público: Los Ingenieros de Software deberán actuar consistentemente con el interés público.
  2. Cliente y empleador: Los Ingenieros de Software deberán actuar de una forma determinada que esté en los mejores intereses de su cliente y empleador consistente con el interés público.
  3. Producto: Los Ingenieros de Software deberán asegurar que sus productos y modificaciones relacionadas logren el más alto estándar profesional posible.
  4. Juicio: Los Ingenieros de Software deberán mantener integridad e independencia al emitir su juicio profesional.
  5. Gerencia: Los gerentes y líderes de Ingeniería de Software deberán suscribirse y promocionar un enfoque ético para la gerencia de desarrollo y mantenimiento de software.
  6. Profesión: Los Ingenieros de Software deberán fomentar la integridad y reputación de la profesión consistente con el interés público.
  7. Colegas: Los Ingenieros de Software deberán ser justos y comprensivos con sus colegas.
  8. Personal: Los Ingenieros de Software deberán participar en el aprendizaje de por vida del ejercicio de su profesión y deberán promover un enfoque ético para el ejercicio de la misma.

Conclusión

En conclusión, la Ingeniería de Software es una disciplina que abarca diversas áreas y desafíos cruciales en el desarrollo de software en la sociedad actual. Permite la creación de software confiable y eficiente que impulsa la tecnología en todos los aspectos de nuestras vidas. Comprender los conceptos básicos de la ingeniería en software, como el proceso de desarrollo, la calidad y la gestión de proyectos, es fundamental para abordar los desafíos actuales y futuros en este campo en constante evolución. La búsqueda de la excelencia en la ingeniería en software es crucial para garantizar que el software que utilizamos sea seguro, efectivo y beneficioso para la sociedad. La responsabilidad de los profesionales de la ingeniería de software va más allá de la simple creación de código; implica considerar el impacto en la sociedad y garantizar que el software sea de alta calidad y seguro. En resumen, la Ingeniería de Software es esencial en la era digital y sigue siendo un campo en constante desarrollo y transformación.