Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fundamentos de Ingeniería de Software (Metodologías de desarrollo de…
Fundamentos de Ingeniería de Software
Conceptos básicos
Software
¿Qué es?
Parte lógica e intangible de un computador.
Tipos de software
:
De sistema
Por ejemplo:
Es el que interactúa con el sistema operativo
De aplicación
Por ejemplo:
Los utiliza el cliente cotidianamente
De programación
Por ejemplo:
Compiladores interpretes
Programas informáticos
Sistemas Operativos
Por ejemplo:
Ingeniería de software.
¿Qué es?
Es una disciplina conformada por diversos métodos, herramientas y técnicas.
¿Para qué sirve?
Se utiliza para el desarrollo de programas informáticos. (Creación de software).
Historia
Eventos
En los 40's y 50´s. No existían las licencias del software.
Finales de los 60's. Surge la 1ra. Comunidad del software sobre los derechos del software libre.
En los 80's. IBM Crea la 1ra. Computadora personal.
En 1935
Alan Turing
publicó el artículo “Sobre números computables.
Objetivo:
La toma de decisiones.
Entrevistas de consejos de ingenieros de software de Google
¿Cómo son las entrevistas de codificación?
Entender lo que te esta preguntado la pregunta.
Comprensión de estructuras de datos y algoritmos.
Piensa en como unir varias cosas para que la entrevista real funcione.
¿Cuál es tu mejor consejo para resolver preguntas de codificación?
Preguntas de aclaración. 2. Llame supuestos 3. Explica tus pensamientos antes de la codificación
¿Cuáles son tus consejos para prepararte para una entrevista?
Práctica y conoce tu código, La guia de desarrollo de Google Tech y Domina un idioma en ese sera la entrevista
Fases de la Ingeniería de software
SDLC
. Ciclo de vida de desarrollo de software.
¿Qué es?
Es el proceso del desarrollo de software, es decir, sus
fases
.
Fases
Diseño del software
Consiste en:
Detallar la solución al problema.
Codificación de software
Consiste en:
La traducción de los requisitos del problema a un lenguaje de programación.
Especificaciones de requisitos.
Consiste en:
Definir el proceso con presción.
Pruebas de software
Consiste en:
Las pruebas del software que se realizan para garantizar que el software este libre de errores, que funciona, se adapta y es una solución al problema.
Análisis de requerimientos
Consiste en:
Formular el problema y los requisitos generales del problema.
Mantenimiento del sofware.
Consiste en:
Corregir errores, recuperarse de fallas e incompatibilidad de hardware con el software.
Metodologías de desarrollo de software
Agiles
Scrum
Consiste en:
En las
"sesiones de Scrum"
o
"Sprints de 30 días"
se usan para determinar las tareas priorizadas en equipos pequeños.
Diagrama:
Kanban
Consiste en:
Gestionar de manera general cómo se van completando las tareas. Es una palabra japonesa que significa “tarjetas visuales”, donde Kan es “visual”, y Ban corresponde a “tarjeta”.
Diagrama:
Agile
Consiste en:
Consiste en ciclos de entrega cortos (sprints), realizar modificaciones al principio del desarrollo.
Diagrama:
eXtremme Programming (XP)
Consiste en:
Potenciar las relaciones interpersonales del equipo de desarrollo como clave del éxito mediante el trabajo en equipo, el aprendizaje continuo y el buen clima de trabajo.
Diagrama:
Otras filosofías
Lean
Consiste en:
Consiste en mejorar todos los procesos en la creación, puesta en marcha y desarrollo de una empresa,evitar desperdicios para obtener cada vez resultados más eficientes.
Diagrama:
Crystal
Consiste en:
Identificar con colores diferentes cada método, y su elección debe ser consecuencia del tamaño del proyecto, los de mayor tamaño, deben adoptar metodologías más pesadas.
Diagrama:
Clásicas
Cascada o Waterfall
Consiste en:
Sugiere un enfoque sistemático, secuencial, para el desarrollo del software
Diagrama
Espiral
Consiste en:
Un modelo evolutivo que conjuga la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencia
Diagrama
Prototipos
Consiste en:
Ofrece un enfoque mejor, con un diseño rápido, definiendo los requisitos y objetivos.
Diagrama:
Importancia de las herramientas CASE en la Ingeniería de Software
Importancia
La tecnología CASE supone la automatización del desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de información a la hora de construir software
Herramientas CASE
¿Qué son?
Aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero.
Componentes
¿Cuáles son?
Repositorio (diccionario)
Metamodelo (no siempre visible)
Carga o descarga de datos
Comprobación de errores
Interfaz de usuario