Fundamentos de Ingeniería de Software

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Fundamentos de Ingeniería de Software por Mind Map: Fundamentos de Ingeniería de Software

1. ¿Quiénes intervienen en un desarrollo de software?

1.1. CIO (Chief Information Officer)

1.1.1. Asegura los beneficios que puede sacar la empresa con las nuevas tecnologías.

1.1.1.1. gestión de equipo de computo

1.1.1.2. provisión de servicios de telecomunicaciones

1.1.1.3. implementación y mantenimiento de sistemas de software empresarial (ERP)

1.1.1.4. desarrollo y mantenimiento de aplicaciones ad-hoc

1.1.1.5. habilitación de infraestructura y herramientas para inteligencia de negocio

1.1.1.6. protección de la información

1.2. CTO (Chief Technical Officer)

1.2.1. innovar y reportar a la empresa

1.2.2. entendimiento de la operación del negocio con conocimiento tecnológico y capacidad de análisis

1.2.3. desarrollo correcto del funcionamiento de los sistemas de información

1.3. Roles de desarrollo de aplicaciones

1.3.1. lider de proyecto

1.3.2. analista

1.3.3. programador

1.3.4. tester

1.3.5. diseñador gráfico

1.3.6. diseñador de interfaces

1.3.7. diseñador de la experiencia del usuario

1.3.8. aseguramiento de calidad de software

1.3.9. administrador de bases de datos

1.3.10. administrador de sitios web

2. El desarrollo de Software

2.1. Sistema de información computacional

2.1.1. Conjunto de partes (hardware, software y los que las utilizan) que se relacionan entre sí con un objetivo preciso.

2.2. Pautas básicas para el desarrollo de un sistema de información computacional

2.2.1. Conocimiento de la organización

2.2.2. Problemas y oportunidades

2.2.3. Necesidades: requerimientos e información detallada

2.2.4. Diagnóstico: Elaborar un informe (aspectos, positivos y negativos)

2.2.5. Propuesta donde detalle el presupuesto y costo beneficio.

2.3. El desarrollo de software

2.3.1. Análisis: Implica estudiar un sistema actual, analizar los hechos, determinar cuales son los requerimientos de los usuarios.

2.3.2. Diseño: Establecer la forma en la que el sistema cumpla con los requerimientos identificados durante la fase de análisis.

2.3.3. Construcción: Consiste en elaborar los programas considerados en el diseño para cumplir con lo especificado con el usuario.

2.3.4. Pruebas: Consiste en verificar si el sistema cumple con las especificaciones del usuario y su correcto funcionamiento, es decir probar que haga lo que el usuario desea y que lo haga bien.

2.3.5. Implantación: consiste en instalar el sistema en el ambiente en que opera y en realizar los procesos necesarios para que opere correctamente.

2.4. Objetivo central

2.4.1. Cumplir con las expectativas en un principio planteadas.

3. Tecnologías Emergentes

3.1. Redes Neuronales

3.1.1. Toman decisiones de sentido común

3.1.1.1. Entrada: reciben información exterior

3.1.1.2. Ocultas: procesan la información entrante

3.1.1.3. Salida: transmiten el trabajo de la red exterior

3.2. BlockChain

3.2.1. Protocolo de transferencia de información mas segura

3.2.1.1. Bloques entrelazados para evitar la modificación de datos

3.2.1.2. Reduce costos y eliminando burocracia

3.2.1.3. Una vez ingresada la información no hay manera de borrarla

3.3. Industria 4.0

3.3.1. Un conjunto de tecnologías para mejorar la producción de una empresa

3.4. Cloud Computing

3.4.1. Un conjunto de servidores y aplicaciones

3.4.1.1. Autoservicio bajo demanda

3.4.1.2. Múltiples accesos de red

3.4.1.3. Uso común de recursos

3.4.1.4. Elasticidad

3.4.1.5. Servicio medido

3.4.2. Tipos de servicios

3.4.2.1. Infraestructura como servicio (IaaS)

3.4.2.2. Plataforma como servicio (PaaS)

3.4.2.3. Software como servicio (SaaS)

3.5. Seguridad y Ciberseguridad

3.5.1. Salvaguardar la información de una forma segura y privada.

3.5.1.1. Confidencialidal: protección contra el acceso no autorizado

3.5.1.2. Integridad: protección contra modificaciones no autorizadas

3.5.1.3. Disponibilidad: protección contra interrupciones de acceso

4. Ingeniería de Software

4.1. Aplica métodos, técnicas y herramientas para la producción de software.

4.1.1. Software

4.1.1.1. Suma total de programas, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo

4.1.1.1.1. Es desarrollado para un cliente en particular o para un mercado en general

4.2. Se preocupa por la administración del proyecto.

5. Ingeniería de Requerimientos

5.1. Es la disciplina para desarrollar una especificación completa, en donde se describen las funciones que realizará el sistema

5.2. Requerimientos

5.2.1. Representan los mandamientos del desarrollo del sistema

5.2.2. Son las características del sistema

5.2.3. Describen lo que el usuario quiere o necesita

5.3. Casos:

5.3.1. El producto se entrega sin cumplir con los requerimientos necesarios sin identificar varios de ellos.

5.3.2. La entrega final es un producto que no satisface al cliente aunque a tiempo y dentro del presupuesto.

5.3.3. El proyecto incorpora requerimientos que no deben estar en el alcance.

5.3.4. La estimación de costo/esfuerzo se hace en base a un alcance equivocado ya que no considera algunas áreas funcionales y procesos de negocios.

5.3.5. Fallas de comunicación sobre requisitos, lo que resulta en la entrega de un producto defectuoso.

5.3.6. Cambios innecesarios debido a la falta de atención por comprender correctamente las necesidades del cliente al principio.

5.4. Cuestionario:

5.4.1. Permiten recoger la información y las opiniones de las personas que los responden.

5.4.2. Puedes ser abiertos o cerrados.

5.5. Tipos de requerimientos:

5.5.1. Producto: validar los pre requisitos

5.5.2. Funcionales: que funciones ejecutara el software-registrar usuarios ¿Qué debería de hacer?

5.5.3. No-Funcionales: aspectos del sistema visibles para el usuario.

5.5.4. seudorequerimientos: impuestos por el cliente y restringen la la implementación del sistema