ingeniería de software, herramientas, métodos y procesos

 Ingeniería de software, herramientas, métodos y procesos


La ingeniería de software está compuesta por varias capas

Herramientas

Métodos

Procesos

Compromiso con calidad

Proceso de software: Son las acciones y tareas que se ejecutan con la intención de lograr un objetivo, este se conoce como ciclo de vida de software. Este comprende diferentes etapas por las que pasa el desarrollo de software.

Los métodos: Proporcionan un enfoque organizado y sistemático para desarrollar software los cuales facilitan la producción de software de acuerdo al presupuesto y tiempo estimado.

Herramientas: Proporcionan un apoyo para los procesos y los métodos estas ayudan en la planeación de actividades, supervisan los procesos y ayudan a brindar calidades técnicas y productos de software.

Procesos de software

Es un conjunto de actividades, acciones que llevan a cabo.

Metodologías Tradicionales:

·         Modelo en cascada aplica en modelo sistemático y secuencial, este va desde la comunicación con el cliente hasta el despliegue y el soporte de proyecto.

§  Análisis y definición de requisitos, se especifican las características del sistema para suplir las necesidades del cliente

§  Diseño del sistema del software, Establece la arquitectura del software por medio del lenguaje de programación

§  Integración de pruebas, Se realiza también en la integración del software de parte de este con el sistema completo. Se ejecutan las pruebas correspondientes para validar que si se cumpla con los requisitos del cliente

§  Operación y Mantenimiento, en esta etapa es posible detectar y organizar los errores que se encuentran en el proyecto, se hace un seguimiento al funcionamiento y se garantiza la estabilidad.

1.       Proceso incremental: aborda grandes desarrollos donde es posible entregas parciales de software, este proceso aplica en forma escalonada

2.       Modelo proceso evolutivo: Se comprende bien los requisitos solicitados por el cliente, pero estos pueden llegar a cambiar durante el proceso de elaboración del proyecto

 

Prototipado

Se plasman los requerimientos básicos, es incompleta, no posee estándares de calidad, se realiza de forma rápida con el fin de obtener una retroalimentación con el cliente para un mejor entendimiento de los requisitos para entender más los requisitos del sistema.

 

Modelo espiral

Es un generador de modelos de procesos impulsado por el riesgo se usa para guiar la ingeniería concurrente con participantes múltiples de sistemas intensivos de software.

 

Estrategias y métodos del desarrollo de software

Diseño estructurado orientado a funciones: Se centra en identificar las principales funciones e implementarlas y refinarlas

Diseño orientado a objetos:  es uno de los métodos más utilizados se destacan los objetos, métodos y atributos y juegan u papel muy importante las herencias y polimorfismos.

Metodologías Agiles: Se rige por el manifiesto agil en el cual se acuerdan cuatro principios básicos que diferencian los proyectos agiles con los proyectos tradicionales.

Principios de metodologías agiles:

·         Prioridad de satisfacer al cliente mediante tempranas y continuas entregas de software que le aporta un valor.

·         Dar la bienvenida a los cambios incluso al final del desarrollo, los cambios les darán las ventajas competitivas a nuestro cliente.

·         Hacer entregas frecuentes de software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible de entregas.

·         Las personas de negocio y los desarrolladores deben de trabajar juntos diariamente a lo largo de todo el proyecto.

·         Construir el proyecto entorno a los individuos motivados. Darle un entorno de apoyo, que necesiten confiar en ellos.

·         El dialogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.

·         El software que funciona es la principal medida del progreso.

·         Los procesos agiles promueven un desarrollo sostenido. Los promotores, usuarios y los desarrolladores deben poder mantener un ritmo de trabajo constante de forma indefinida.

·         La atención continua a la calidad técnica y al buen diseño mejoran la agilidad.

·         La simplicidad es esencial. Se ha de maximizar al trabajo que no se puede realizar.

·         Las mejores arquitecturas, requisitos y diseño surgen de los equipos que se han organizado de ellos mismos.

·         En intervalos regulares, el equipo debe de reflexionar con respecto a cómo llegar a ser efectivo y ajustar su comportamiento para conseguirlo.

 

Las herramientas:

Proporcionan un apoyo al proceso y los métodos, estas ayudan en la planeación de actividades, supervisan los procesos y ayudan a brindar calidad técnica de los procesos de software

Herramientas de requisitos de software y de gestión de proyectos: 

·         Jira Software

·         Trello

·         Redmine

Herramientas de pruebas de Software:

·         Selenium

·         Visual Studio Test profesional

·         JUnit

Herramientas de gestión de la configuración del software

·         Git

·         Subversion

·         Jenkins

Roles del equipo de desarrollo de Software

Cualidades que debe de tener un equipo de desarrollo de Software

·         Buena comunicación

·         Respeto mutuo

·         Compromiso

·         Capacidad de trabajo en equipo

·         Capacidad de auto formación

Roles comunes en el equipo de desarrollo de software

·         Gerente del proyecto, administra los recursos del proyecto

·         Analista, se encarga de identificar la necesidad del cliente y los requisitos del sistema.

·         Arquitecto, Realiza el diseño arquitectónico de la herramienta basado en los requisitos del sistema.

·         Desarrolladores, lleva a cabo la codificación del software y según el requisito y el diseño arquitectónico

·         Diseñador grafico

·         Tester, Se asegura de la calidad del software, se realizan las pruebas necesarias para valida el correcto funcionamiento.

·         Administradores de infraestructura o de configuración de software, se encarga de administrar el hadware o de diferentes herramientas necesarias para que el software funcione correctamente.

·         Soporte y mantenimiento, persona que se encarga de mantener el software cuando se encuentra en producción.

 


Comentarios

Entradas populares de este blog

Presentación Bases de Datos II

SQLite