Está en la página 1de 16

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENERÍA DE SISTEMAS


COMPUTACIONALES
DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN,
CONTROL Y EVALUACIÓN DE RECURSOS INFORMÁTICOS

INTRODUCCIÓN A LA INGENIERÍA DE SOFTWARE

OTROS CONCEPTOS DEL MÓDULO II. CICLO DE VIDA DE DESARROLLO DEL


SOFTWARE.

GRUPO:
CASTRO, JUAN DAVID – 8-997-1566
GOMEZ, ROGER
HERRERA, JORGE – 8-998-1216
MOLINAR, RODRIGO – 3-752-865

PROFESORA: CARMEN ORTEGA

GRUPO 1SF111 – II SEMESTRE

27/09/2022

Introducción
En esta investigación se hablarán sobre el Microsoft Solution Framework y los
paradigmas de desarrollo del software.

Para iniciar, se debe saber que una metodología de este tipo se refiere al conjunto de
métodos y técnicas que se utilizan para lograr soluciones a problemas de desarrollo de
software. Hay una gran cantidad de metodologías que tienen diferentes funciones y
objetivos. Una de estas metodologías es el Microsoft Solution Framework que ya se
mencionó anteriormente.

También se profundizará en el tema de los paradigmas de programación, que son


modelos utilizados por muchos programadores profesionales a lo largo del mundo para
desarrollar software.

Contenido
1. MSF (Microsoft Solution Framework)
Microsoft Solution Framework es una metodología para el desarrollo de software
orientado a la planificación, gestión y desarrollo de proyectos tecnológicos. Se
centra en los procesos y modelos de equipo, dejando otros aspectos en un segundo
plano.
Microsoft Solution Framework proporciona prácticas comprobadas en la
planificación, construcción e implementación de diversas soluciones tecnológicas.
MSF combina las mejores prácticas de diseño y desarrollo de software con la
creación e implementación de infraestructura en un solo ciclo de vida del proyecto
para impulsar cualquier solución tecnológica. MSF ayuda a las organizaciones a
encontrar un buen equilibrio entre resiliencia, cumplimiento y mitigación de riesgos.
 Características de la metodología
Una forma de seguir este enfoque paso a paso es usar herramientas de
Microsoft como Visual Studio. MSF es flexible porque permite agregar y ampliar
nuevas funciones, y no es rígido porque sabe que no existe una estructura única
que se pueda adaptar a cada tipo de proyecto. Es una metodología integrada
porque combina muchos elementos y características, y también es una
metodología eficaz porque aumenta la productividad de toda la plantilla.
Los modelos de proceso que maneja MSF son rápidos y formales. Los modelos
de procesos ágiles fueron desarrollados por un grupo de profesionales llamado
Agile Alliance, quienes rechazaron la noción de que los procesos son más
importantes que las personas. La eficacia de los modelos de procesos se centra
más en las habilidades y cualidades de las personas. MSF se basa en las
mejores prácticas del mundo real basadas en las prácticas de Microsoft.
Un elemento fundamental de la gestión de proyectos es el control de los riesgos
inherentes a un proyecto. La mayoría de las personas asocian el concepto de
riesgo con la posibilidad de pérdida, incluido el valor, la capacidad de control, la
funcionalidad, la calidad o el tiempo. Sin embargo, el riesgo también surge de la
incertidumbre que rodea las decisiones del proyecto y sus resultados, lo que
puede conducir a la incapacidad de maximizar los beneficios de la oportunidad.
MSF participa en la gestión activa de riesgos mediante la planificación de
estrategias de mitigación y planes de contingencia antes de que estos riesgos se
conviertan en un problema real o un obstáculo para el éxito. Para que los
profesionales de las tecnologías de la información comprendan mejor los riesgos
que pueden enfrentar al considerar la implementación de esta solución, se
deriva una evaluación de riesgos de muestra de este enfoque de MSF y se basa
en la implementación de la solución. Está disponible en la descarga de
Herramientas y recursos.

 Principios del modelo de proceso o metodología


 Administración de factores o variables
Se requiere un saldo entre recursos (personas y dinero), programas (tiempo)
y características (rango). Si necesita cambiar uno de estos factores, debe
cambiar algunos otros factores.
 Orientado a hitos
Los hitos son importantes para MSF. Se utilizan para planificar, realizar un
seguimiento del progreso del proyecto y actuar como hitos del proyecto,
garantizar la sincronización con las expectativas del cliente, coordinar
componentes con otros miembros del equipo y analizar el progreso y la
dirección del proyecto con las partes interesadas o los donantes.
 Enfoque iterativo
MSF recomienda que las soluciones se desarrollen creando, probando e
implementando primero la funcionalidad básica y luego agregando
periódicamente conjuntos de funciones. Este enfoque se basa en
documentos "en vivo" que se actualizan regularmente a medida que se
agregan nuevos conjuntos de funciones. Se basa en el uso diario para crear
soluciones, medir el progreso regularmente y monitorear y controlar
continuamente los elementos del proyecto.
 Ciclo de vida
Su ciclo de vida se compone de cinco principales fases: estrategia, planeación,
desarrollo, estabilización y despliegue. Estas fases a su vez tienen tareas
concretas dentro de sí.
 Estrategia y alcance del proyecto
 Elaboración y aprobación del documento de alcances del proyecto.
 Formación del equipo de trabajo y distribución de competencias y
responsabilidades.
 Elaboración del plan de trabajo.
 Elaboración de la matriz de riesgos y plan de contingencia.
 Conceptualización y planeación
 Documentos de diseño y arquitectura.
 Documentos de pruebas de conceptos.
 Desarrollo
 Prueba del concepto completo.
 Lanzamiento interno.
 Estabilización
 Selección del entorno de pruebas piloto.
 Gestión de incidencias.
 Revisión de la documentación final de la arquitectura.
 Elaboración de plan de despliegue.
 Despliegue
 Registro de mejoras y sugerencias.
 Revisión de las guías y manuales de usuario.
 Entrega del proyecto y cierre de este.

2. Paradigmas de desarrollo del software


 Conceptualización
Un paradigma de programación es una manera o estilo de programación de
software. Existen diferentes formas de diseñar un lenguaje de programación y
varios modos de trabajar para obtener los resultados que necesitan los
programadores. Se trata de un conjunto de métodos sistemáticos aplicables en
todos los niveles del diseño de programas para resolver problemas
computacionales. Estos paradigmas, como todo dentro del campo de la
informática, cambian día a día y nuevos paradigmas y lenguajes de
programación que emplean paradigmas, se van formando y actualizando
conforme se vayan alterando las necesidades de los desarrolladores y clientes.

 Características
 Reducen la complejidad de los programas. Cada programador debe seguir
un enfoque paradigmático al implementar su código.
 Pueden ser unidos o crearse uno nuevo de acuerdo con las necesidades del
desarrollador.
 Aplicables en todos los niveles del diseño de programas para resolver
problemas computacionales.
 Modelan el proceso de diseño y determinan, al final, la estructura de un
programa.
 Hay diversos paradigmas de desarrollo de software y cada uno tiene su
objetivo y función que lo diferencian de los demás.
 Determinan la forma correcta de los programas y controlan el modo en que
pensamos y formulamos soluciones.
 Pueden ser adoptados por lenguajes de programación.
 Permite producir programas con unas normas específicas, tales como:
estructura modular, fuerte cohesión, alta rentabilidad y más.

 Clasificación
Existen varios tipos de paradigmas de programación y de desarrollo web.
 Web
 Paradigmas declarativos de desarrollo web
La programación declarativa es un paradigma de programación en el que
el programador define lo que debe lograr el programa sin establecer cómo
debe implementarse. En otras palabras, el enfoque se centra en lo que se
necesita lograr en lugar de instruir cómo lograrlo.
Dentro del paradigma declarativo encontramos los siguientes lenguajes
informáticos: Common Lisp, Scheme, Haskell, R, Julia, Nimrod, C++,
Java, JavaScript, Python y Scala. Existen dos tipos.
 Funcional
Este tipo de programación también divide al sistema en varios
pedazos, cada pedazo (función) hace una sola cosa como multiplicar
un número, solicitar un dato, etc.
Por ejemplo, si usuario inicia sesión en una web, habría una función
que valide los datos, esta retornaría un valor y se la enviaría a otra
función para saber que página mostrar, luego esta función enviara los
datos a otra función para saber si el usuario tiene notificaciones, pero
cada función hace una sola cosa.
 Lógica
El paradigma de software lógico, denominado también como
programación predicativa, se basa en la lógica matemática. En lugar
de una sucesión de instrucciones, un software programado según este
principio contiene un conjunto de principios que se pueden entender
como una recopilación de hechos y suposiciones. Todas las
solicitudes al programa se procesan de forma que el intérprete recurre
a estos principios y les aplica reglas definidas previamente para
alcanzar el resultado deseado.
 Paradigmas imperativos de desarrollo web
En este paradigma se trata de escribir una lista de instrucciones para
indicarle a la computadora qué hacer paso a paso. Por lo que, la
programación imperativa consta de varios enunciados, y luego de la
ejecución de todos ellos, se obtiene el resultado esperado. En un
paradigma de programación imperativa, el orden de los pasos es crucial,
porque un paso dado tendrá diferentes consecuencias dependiendo de
los valores actuales de las variables cuando se ejecuta el paso.
La programación imperativa es esencialmente lo opuesto a la
programación declarativa. En primer lugar, con la programación
imperativa, el usuario suele interactuar directamente con el estado de la
computadora y decide cómo se calcularán las cosas. Algunos ejemplos
de este tipo de paradigma son:
 Estructurado
La programación estructurada es un tipo de programación imperativa
donde el flujo de control se define mediante secuencias, condicionales
y bucles.
- Secuencias. La estructura secuencial es la que se da de forma
natural en el lenguaje, porque las sentencias se ejecutan en el
orden en el que aparecen en el programa, es decir, una detrás de
la otra.
- Selecciones o condicionales. La estructura condicional se basa
en que una sentencia se ejecuta según el valor que se le atribuye a
una variable booleana (aquella que tiene dos valores posibles:
verdadero o falso). Por tanto, esta estructura se puede ejecutar de
dos formas distintas, dependiendo del valor que tenga su variable.
Los lenguajes de programación usan la estructura if y else.
- Iteración (ciclo o bucle). La estructura de repetición ejecuta una o
un conjunto de sentencias siempre que una variable booleana sea
verdadera. Para los bucles o iteraciones, los lenguajes de
programación usan las estructuras while y for.
A grandes rasgos, busca imponer restricciones a la transferencia
directa de control, con el propósito de establecer una estructura
más flexible a las diferentes estructuras que trabajan con el GOTO.
Para ello, implementa la modularización para organizar el
programa de forma que cada parte de este tenga una función
específica. Junto con la programación orientada a objetos, es uno
de los paradigmas de programación más populares que ejecuta
lenguajes como Java, C, Python y C++.
 Objeto
En este modelo de paradigma se construyen modelos de objetos que
representan elementos (objetos) del problema a resolver, que tienen
características y funciones. Permite separar los diferentes
componentes de un programa, simplificando así su creación,
depuración y posteriores mejoras. La programación orientada a
objetos disminuye los errores y promociona la reutilización del código.
Es una manera especial de programar, que se acerca de alguna
manera a cómo expresaríamos las cosas en la vida real.
Podemos definir un objeto como una estructura abstracta que, de
manera más fiable, describe un posible objeto del mundo real y su
relación con el resto del mundo que lo rodea a través de interfaces.
Ejemplos de lenguajes de programación orientados a objetos serían
Java, Python o C#.
La programación orientada a objetos se sirve de diferentes conceptos
como:
- Abstracción de datos
- Encapsulación
- Eventos
- Modularidad
- Herencia
- Polimorfismo
 Procedimental
El paradigma de programación procedimental amplía el enfoque
imperativo con la posibilidad de desglosar algoritmos en porciones
manejables. Estos se denominan procedimientos, dependiendo del
lenguaje de programación, o también como subprogramas, rutinas o
funciones. El sentido y el propósito de esta distribución es hacer que el
código de programa sea más claro y evitar las repeticiones
innecesarias de código. Mediante la abstracción de los algoritmos, el
paradigma de software procedimental representa un paso decisivo
desde los lenguajes ensambladores simples hasta los lenguajes
estándar complejos.
 Modular
La programación modular también se clasifica como un subtipo del
paradigma de programación imperativo. En principio, es muy similar al
enfoque procedimental, o más bien lo adapta a los requerimientos de
proyectos de software mayores y más amplios. En este sentido, el
código fuente se divide específicamente en bloques parciales lógicos
independientes los unos de los otros para proporcionar más
transparencia y facilitar el proceso de debugging (resolución de
errores). Los bloques parciales individuales, denominados módulos, se
pueden probar por separado antes de vincularlos posteriormente a
una aplicación conjunta.
 Paradigmas de programación reactiva
En la programación reactiva observamos cambios en un flujo de datos,
por ejemplo, un chat en vivo que recibe cientos de comentarios por
segundo, o Google Maps enviándonos nuestra ubicación en tiempo real,
etc.
Entonces lo que hace la programación reactiva es observar estos flujos
datos y cuando estos cambian hacemos algo.
 Métodos formales
Son aquellos modelos que nos permitirán programar y simular el sistema en
un computador. También son un refinamiento del modelo mental, basado en
la precisión más que en la exactitud, en la cual su examen de grado es que
sea comprendido por todos los actores humanos que participan en la
modelación del sistema (y, si los hubiese, por las personas que serán
afectadas por las decisiones basadas en este modelo formal). Tenemos la
clasificación según Ackoff (1962) que hace una distinción entre tres formas
de modelos:
 Icónico. Esto implica que el modelo es una versión en miniatura (aunque
algunas veces es una ampliación) del artículo real y las propiedades
relevantes del artículo real se representan por medio de las propiedades
mismas, pero, por lo general, con un cambio de escala. Así, se construye
una réplica, con la que se espera reproducir el comportamiento del
original, de manera bastante confiable. Los ejemplos son los siguientes:
una planta piloto para una nueva sustancia química; un modelo de tensión
de un puente; un modelo de aeroplano que sea útil probar en un túnel de
aire, una maqueta.
 Analógico. Puede construirse un modelo de aspecto físico bastante
diferente que, sin embargo, se espera reproduzca el comportamiento
representativo. Por ejemplo, el flujo del agua a través de pequeños
tanques plásticos a la temperatura ambiente se usa para investigar la
conducta del vidrio de fundición en grandes hornos a temperaturas de
alrededor de 1000 grados centígrados. Puede usarse una red eléctrica
para representar el flujo de agua a través de conductos o el flujo de calor
entre superficies. De manera más general, puede usarse una
computadora analógica para modelar una gran variedad de situaciones,
obteniendo los valores de las variables físicas con la medición de voltajes
en puntos adecuados de la red análoga.
 Analítico o matemático. Las relaciones matemáticas o lógicas pueden
desarrollarse de manera que representen las leyes físicas que rigen la
conducta de la situación bajo investigación. Dicho desarrollo, por lo
regular, precederá a un modelo análogo. Un ejemplo simple sería la
representación del promedio de enfriamiento de un cuerpo caliente.
Según Newton, el promedio de descenso de la temperatura de un cuerpo
caliente es proporcional al exceso de temperatura sobre la temperatura
del medio cercano. Existen cuatro clases de modelos analíticos:
- Determinísticos (predecibles) y estáticos: Ecuaciones algebraicas.
- Determinísticos (predecibles) y dinámicos: Ecuaciones diferenciales.
- Estocásticos (aleatorios, probabilísticos) y estáticos: Relaciones de
probabilidad y estadística.
- Estocásticos (aleatorios, probabilísticos) y dinámicos: Simulación de
eventos discretos.
 Conceptual. Son aquellas representaciones del sistema por medio de
definiciones organizadas en forma estructurada. Estos incluyen los
modelos pictográficos/simbólicos, en referencia a la definición, que cubre
los aspectos cualitativos de la situación. De hecho, el modelo conceptual
que puede construirse puede preceder a cualquiera de las otras clases de
modelado, y seguir siendo una forma de modelado por derecho propio.
Ejemplo: Un diagrama causal. Los modelos de sistemas de actividad
humana son una clase particular de modelo conceptual y son los más
usados.
Conclusión del trabajo

Como ya se mencionó en la introducción, los paradigmas de programación sirven de


guía para muchos programadores a lo largo del mundo, de manera que cualquier
persona que quiera adentrarse en el mundo de la programación tenga una guía para
iniciar su carrera.

Ya se mostró un ejemplo con Microsoft Solution Framework, que es un paradigma de


desarrollo de software expuesto por una de las compañías de software más exitosas de
todos los tiempos. La industria del software todavía está en auge, por lo que el futuro
nos brindará metodologías mucho más pulidas y eficientes. Debemos usar la base que
tenemos ahora.
Consideraciones finales

- Juan David: En esta investigación logramos aprender sobre el Microsoft Solution


Framework y sobre los paradigmas del desarrollo de software que nos permite
entender mejor algunos conceptos que habíamos dado previamente y vincularlos a
este tema lo que resulta interesante.
- Jorge: En este proyecto se detalla información relevante con respecto al Microsoft
Solution Framework y su funcionamiento para su uso e implementación. Un modelo
de proceso del que personalmente no había escuchado hablar y que resulta
interesante por su gran cuidado de riesgos y administración de los factores a
considerar antes de desarrollar el proyecto de software.
- Rodrigo: Ver estos diferentes tipos de modelos o paradigmas de programación me
ha abierto los ojos a los términos correctos de los métodos que utilizo para realizar
esta actividad. Me puedo organizar mejor a la hora de participar en el proceso de
desarrollo de software.
Bibliografía

Microsoft. (12 de octubre de 2022). Apéndice C: Guía de Entrega. Recuperado el 26 de

septiembre de 2022, desde

https://learn.microsoft.com/es-es/security-updates/security/apndicecguadeentrega

Microsoft Solutions Framework | Desarrollo de Aplicaciones Móviles, Servicios Web,

Arquitectura SOA. (18 de septiembre de 2010) Desarrollo de Aplicaciones Móviles,

Servicios Web, Arquitectura SOA. Recuperado el 26 de septiembre de 2022, desde

https://justindeveloper.wordpress.com/2010/09/18/microsoft-solutions-framework/

Apuntes. Ingenieria del software. Metodologias. Paradigmas de programación. Informática

Aplicada a la Gestión Pública. IAGP 2005/06-3. Universidad de Murcia. Rafael

Barzanallana. (10 de mayo de 2007). Capítulo 3. IAGP 2005/06. Metodologías usadas en

ingeniería del software. https://www.um.es/docencia/barzana/IAGP/Iagp3.html

Canelo, M. M. (9 de junio de 2022). ¿Qué son los paradigmas de programación? Profile

Software Services. https://profile.es/blog/que-son-los-paradigmas-de-programacion/

Los modelos formales. (10 de enero de 2013). Blogspot.com. Recuperado el 25 de septiembre de

2022, desde https://engineerdesistemas.blogspot.com/2013/10/los-modelos-formales.html

Los paradigmas de programación. (18 de agosto de 2022). KeepCoding Tech School.

https://keepcoding.io/blog/paradigmas-de-programacion/
Paradigmas de programación: principios básicos de programación. (20 de abril de 2020).

IONOS Digital Guide. Recuperado el 25 de septiembre de 2022, desde

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/paradigmas-de-

programacion/

¿Qué es la programación estructurada? (14 de julio de 2021). Edix España.

https://www.edix.com/es/instituto/programacion-estructurada/

También podría gustarte