Sunteți pe pagina 1din 29

Análisis y Diseño de

Software
Prof. Arturo Corichi Guerrero
Análisis de los sistemas de operación de la
organización
Toda organización requiere
generar productos y servicios con
valor para satisfacer las
necesidades de sus clientes
utilizando los recursos disponibles
de forma optima, de ahí la
importancia de contar analizar los
sistemas de operación para que
sus procesos sean mas eficaces y
eficientes.
Diagnóstico de los sistemas de operación de
la organización
La resolución de un problema por
medio de la computadora se
denomina: Sistematizar.

Sistematizar: Se refiere a la
integración y organización de la
información, de acuerdo a ciertas
ideas o criterios específicos,
creando jerarquías entre los
elementos que forman una
unidad o problema, con el
objetivo de integrarlos para
conocer su estructura y dinámica.
Diagnóstico de los sistemas de operación de
la organización
Motivos para sistematizar

Mejorar la eficiencia de los procesos ya existentes.

Mejorar la comunicación entre las personas.

Fortalecer la capacidad productiva y/o organizacional.

Integración de nuevos procesos

Aumentar la competitividad (reducir tiempos, costos, incrementar la


productividad y la calidad)
Diagnóstico de los sistemas de operación de
la organización
El proceso de sistematizar
permite comprender cada uno de
los elementos del problema, sus
características, relaciones,
restricciones así como el
comportamiento de cada
subprocesos del sistema a
resolver, por medio del análisis
causa efecto;

El análisis de estos aspectos lleva


relacionado íntimamente el
método científico.
Problemas a resolver con los sistemas de
información
Los problemas de posible sistematización deben poseer ciertas
características:
Observables.
• El hecho a puede ser observable directa o indirectamente, es decir que se tiene contacto
directo con el objeto de estudio o por medio de evidencia en fuentes de información.

Repetibles.
• Debe tener la capacidad de poder ser confirmados en todo momento, repitiendo una
experiencia similar manteniendo las circunstancias fundamentales

Verificables.
• Todo proceso puede ser explicado, pudiéndose comprobar en todo momento.

Resolubles.
• Existen los medios y recursos adecuados para encontrar una solución.

Orden.
• Los fenómenos no deben de ocurrir de forma caótica o aleatoria.

Sistemático.
• Debe de estar compuesto por procesos lógicos para llevar acabo un actividad especifica.
Problemas a resolver con los sistemas de
información
Ejemplos de problemas que no pueden sistematizarse

•Realizar ó calificar obras de arte


•Predecir emociones
•Desarrollar actividades creativas
•Pronosticar eventos sociales
•Generar conocimiento ???
Análisis de factibilidad de productos
comerciales contra desarrollos a la medida
 Es un estudio a fondo de las necesidades de información de los
usuarios finales, que genera los requerimientos funcionales que se
emplean como la base para el diseño de un nuevo sistema de
información.
 Determina si es posible o no ofrecer solución automatizada a los
problemas/situaciones actuales.
 Representa el primer paso a cumplirse dentro del ciclo de desarrollo.
 Los componentes de este estudio profundizan la investigación por
medio de 3 análisis: económico, técnico y operacional.
 En cada uno de los 3 tipos de análisis de factibilidad se detallan los
restricciones, riesgos, beneficios, ventajas y desventajas.
 La información contenida permitirán definir si el proyecto
 Puede o no realizarse
 Si existen condiciones para un proyecto exitoso
Análisis de factibilidad de productos
comerciales contra desarrollos a la medida
La factibilidad de un sistema propuesto puede evaluarse en términos
de 4 categorías:

Factibilidad Factibilidad
Factibilidad Técnica.
Económica. Operacional.
• Descripción de los • Demostrar si la • Es la disposición y la
costos de desarrollar empresa puede capacidad de la
u operar el sistema adquirir o desarrollar gerencia, empleados,
propuesto. en el tiempo proveedores clientes
requerido el software para operar o utilizar
y hardware un sistema
confiables para
satisfacer las
necesidades.
Análisis de factibilidad de productos comerciales
contra desarrollos a la medida
Beneficios del análisis de factibilidad

• Beneficios tangibles
 Aumento de productividad
 Mejor uso de los activos
 Mejor control
 Reducción de costos de operación (tiempo, dinero).

• Beneficios intangibles
 Optimización o simplificación de procedimientos.
 Mayor entusiasmo en los trabajadores.
 Imagen de la organización.
 Mejora en la precisión de las operaciones
Modelo preliminar para la solución del
problema de tecnología de información

Modelo preliminar Beneficios de un modelo conceptual

Poseen un enfoque
• Para el desarrollo de cualquier especifico de análisis
Poseen una
producto de software se requieren de la realidad
nomenclatura clara.
realizar una serie de actividades
entre la idea inicial y el producto
final.
• Un modelo conceptual es una Definen un proceso de Definen herramientas
abstracción lógico-matemática del desarrollo para cada fase
mundo real que facilita la
interpretación de la realidad.
• Establece el orden en el que se harán
las cosas en el proyecto, nos provee Facilita la
de requisitos de entrada y salida para Establece un orden de
comunicación con el
cada una de las actividades. las actividades
equipo
• Se trata de ofrecer una visión de alto
nivel, sin descender a explicar
detalles concretos del mismo. Facilitar la verificación
Facilitar la
• Indica QUÉ hace el sistema y no comprensión del
del cumplimiento de
CÓMO lo debe hacer. problema
los objetivos del
sistema.
Modelo preliminar para la solución del
problema de tecnología de información
De acuerdo con el enfoque de análisis de la realidad y del modo de solución, se pueden reconocer tres
principales tipos de modelos:
• Modelos Secuenciales. Se busca desarrollar descomposición funcional (horizontal) o bien se
descompone en función a la estructura(vertical).
 Lineal
 Fases solapadas
 DRA
• Modelos Evolutivos. Podemos tomar como partida el modelo de un sistema similar, y luego mediante la
experiencia del analista y el conocimiento del problema que proporciona el experto se irán proponiendo
modelos intermedios, discutiendo sus ventajas e inconvenientes.
 Espiral
 Por etapas
 En V
 Incremental
 Concurrente

• Modelos Agiles. Se centra en la interacción, comunicación, y en la reducción de la creación de


artefactos intermedios. Reconocer a las personas como principales patrocinadoras para que un proyecto
triunfe. Dar una orientación a la efectividad y la manejabilidad. Es algo más que seguir las guías que se
suponen hacen un proyecto ágil; la verdadera agilidad es más que un conjunto de prácticas, es un
estado de ánimo.
 XP (Extrem Programming)
 Scrum
 Agile
 Lean
 Crystal Clear
 Kan Ban
Modelo preliminar para la solución del problema
de tecnología de información
Modelo en cascada (Waterfall)
Este es el modelo en el cual se ordenan
rigurosamente las etapas del desarrollo del
software, de esto se obtiene que el inicio de
una etapa de desarrollo deba de esperar el
fin de la etapa anterior. De esto se obtiene
que cualquier error detectado lleve al
rediseño del área de código afectado, lo cual
aumenta de costo el desarrollo del proyecto. Análisis
• Análisis. Determinar las especificaciones
de qué debe hacer el software.
• Diseño. Descomponer y organizar el Diseño
sistema para que los módulos puedan ser
desarrollados por separado.
• Codificación. Escribir el código fuente de Codificación
cada módulo y realizar sobre ellos
las pruebas necesarias.
• Pruebas. Combinar todos los módulos y Pruebas
probar el sistema completo antes de pasar
a su explotación.
Mantenimie
• Mantenimiento. Durante la explotación es nto
necesario realizar cambios ocasionales bien
para corregir errores o para introducir
mejoras, Se trata de aislar cada fase de las
otras, lo que facilita la especialización de
los desarrolladores.
Modelo preliminar para la solución del problema
de tecnología de información
Modelo en V

Incluye fases similares a las del


modelo en cascada pero de forma
jerárquica.
En horizontal se representa el
avance en el desarrollo y en
vertical el nivel de detalle.

• Verificación. Comprobación de
que una parte del sistema
cumple con sus especificaciones.

• Validación. Comprobación de
que un elemento satisface las
necesidades del usuario
identificadas durante el análisis.
Modelo preliminar para la solución del problema
de tecnología de información
Prototipos

Debe de ser construido


rápidamente y con la utilización Recolección
escasa de recursos. El prototipo es de requisitos
construido para mostrárselo al
cliente, obtener criticas y Producto de
retroalimentación, hasta que el Diseño rápido
ingeniería
usuario quede satisfecho. Además
el prototipo debe ser construido
en poco tiempo, usando los
programas adecuados y no se
debe utilizar mucho dinero pues a Refinamiento Construcción
partir de que este sea aprobado del prototipo del prototipo
nosotros podemos iniciar el
verdadero desarrollo del software Evaluación
del prototipo
Modelo preliminar para la solución del problema
de tecnología de información
Modelo en espiral

Puede considerarse como un


refinamiento del modelo evolutivo
general que introduce el análisis de
riesgo como elemento fundamental
para guiar la evolución del proceso de Evaluación Análisis
desarrollo.
En la dimensión radial se representa el
esfuerzo realizado en el desarrollo
(siempre creciente), en cada iteración 4
fases:
• Planificación Determina que parte del
desarrollo se abordará en ese ciclo.
• Análisis. Evaluar diferentes
alternativas para esa parte del
desarrollo seleccionando la más
ventajosa y tomando precauciones
para evitar los posibles
inconvenientes. Planificación Desarrollo
• Desarrollo. Las actividades de los Autor: BOEHM en 1976
modelos clásicos
• Evaluación, se analizan los resultados
de la fase de ingeniería.
Modelo preliminar para la solución del problema
de tecnología de información
Modelo por etapas

El modelo de desarrollo de software


por etapas es similar al Modelo de
Prototipos ya que se muestra al
cliente el software en diferentes
estados sucesivos de desarrollo, se
diferencia en que las especificaciones Definición del
problema
no son conocidas en detalle al inicio
del proyecto y por tanto se van
desarrollando simultáneamente con
las diferentes versiones del código. Análisis del
requerimiento
Pueden distinguirse las siguientes
fases:
• Definición de problemas •Diseño
Diseño Global detallado
• Análisis de requerimiento •Codificación
•Prueba y
• Diseño global entrega

 Diseño detallada
 Codificación y depuración
 Prueba y entrega.
Modelo preliminar para la solución del problema
de tecnología de información
Modelo DRA (Desarrollo Rápido de Aplicaciones)

• Es una adaptación a alta velocidad del


modelo lineal secuencial.
• Permite al equipo de desarrollo crear
un sistema completamente funcional
dentro de periodos muy cortos de
tiempo
• Los desarrolladores de RAD deben ser
analistas, diseñadores y
programadores en uno.
• Debido a que el software o aplicación
se requiere lo más pronto posible no
existe una especificación del sistema
detallada.
• El software se desarrolla en una serie
de incrementos, donde en cada
incremento se incluyen nuevas
funcionalidades al sistema.
• Se utilizan herramientas de desarrollo
visual para agilizar el proceso.
• Las funciones secundarias son
eliminadas como sea necesario para
cumplir con el calendario.
Modelo preliminar para la solución del problema
de tecnología de información
Modelo incremental
Consiste en la realización de programas de
manera incremental, la cual sirve para
obtener ventaja de lo que se ha realizado a lo
largo del proyecto.
Se realizan varias iteraciones con las cuales
se obtendrá el software final y a su vez, se le
agregaran nuevas funcionalidades a cada
etapa.
Se puede dividir en los siguientes procesos:

• Etapa de inicialización. La meta de esta


etapa es la construcción de un producto en
el cual se pueda obtener retroalimentación
de parte del usuario final.
• Etapa de iteración. Consiste en el análisis,
rediseño e implementación del producto
de las iteraciones anteriores.
• Lista de control del proyecto. Son las
tareas que se crean que describen las
partes que conforman el proyecto, son
implementadas y rediseñadas en cada
etapa de iteración del producto.
Modelo preliminar para la solución del problema
de tecnología de información
XP (eXtreme Programming)
El Extreme Programming es el as bajo la
manga de las metodologías ágiles. Apareció
como una prueba, positiva, logrando
prácticas que ayuden en la ejecución de
proyectos.
Actividades que se realizan:
• El juego de la planificación.
• Historias de usuario.
• Cortas y pequeñas iteraciones.
• Metáforas.
• Diseño simple.
• Pruebas.
• Refactorizar.
• Programación por pares.
• Propiedad colectiva.
• Integración continúa.
• 40 horas a la semana. Autor: Kent Beck
• Disponibilidad del cliente.
• Estándares de codificación.
Modelo preliminar para la solución del problema
de tecnología de información
• XP (eXtreme Programming)
• Equipo completo: Forman parte del equipo todas las personas incluido el cliente y el responsable
del proyecto.
• Planificación: Se hacen las historias de usuario y se planifica en qué orden se van a hacer y las
mini-versiones. La planificación se revisa continuamente.
• Test del cliente: El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para
validar las mini-versiones.
• Versiones pequeñas: Las mini-versiones deben ser lo suficientemente pequeñas como para
poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo útil al usuario final
y no trozos de código que no pueda ver funcionando.
• Diseño simple: Hacer siempre lo mínimo imprescindible de la forma más sencilla posible.
Mantener siempre sencillo el código.
• Desarrollo guiado por las pruebas automáticas: Se deben realizar programas de prueba
automática y deben ejecutarse con mucha frecuencia. Cuantas más pruebas se hagan, mejor.
• Integración continua: Deben tenerse siempre un ejecutable del proyecto que funcione y en
cuanto se tenga una nueva pequeña funcionalidad, debe recompilarse y probarse. Es un error
mantener una versión congelada dos meses mientras se hacen mejoras.
• El código es de todos: Cualquiera puede y debe tocar y conocer cualquier parte del código. Para
eso se hacen las pruebas automáticas.
• Normas de codificación: Debe haber un estilo común de codificación (no importa cual), de forma
que parezca que ha sido realizado por una única persona.
• Metáforas: Hay que buscar unas frases o nombres que definan cómo funcionan las distintas
partes del programa, Un ejemplo claro es el "recolector de basura" de java. Ayuda a que todos
sepan de qué estamos hablando y que no existan mal entendidos.
• Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Esto
quiere decir que no debe haber días muertos en que no se sabe qué hacer y que no se deben
hacer un exceso de horas otros días.
Modelo preliminar para la solución del problema
de tecnología de información
Scrum

Es un proceso en el que se aplican de manera regular un conjunto de


buenas prácticas para trabajar colaborativamente (en equipo), y
obtener el mejor resultado posible de un proyecto. Estas prácticas se
apoyan unas a otras y su selección tiene origen en un estudio de la
manera de trabajar de equipos altamente productivos.
Modelo preliminar para la solución del problema
de tecnología de información
Scrum

• Mediante iteraciones, denominadas sprints, con una duración de 30 días. El


resultado de cada sprint es un incremento ejecutable que se muestra al
cliente
• La segunda característica importante son las reuniones a lo largo proyecto.
Una reunión diaria de 15 minutos del equipo de desarrollo para
coordinación e integración.
• El modelo Scrum se compone de una lista de Requerimientos llamada
Product Backlog, de esta lista se selecciona un número acotado de
requerimientos, también llamados Historias de Usuario, este listado de
requerimientos conforma el Sprint Backlog, el cual se usa durante un Sprint.
• Un Sprint es una iteración del ciclo, en ella se realiza una serie de reuniones
y se desarrolla el software según los requerimientos seleccionados.
• Este proceso se repite hasta que el cliente está satisfecho con el software
creado, ya que cada Sprint entrega un incremento de software.
Modelo preliminar para la solución del problema
de tecnología de información
Crystal clear

El nombre Crystal deriva de la Metodologías Crystal:


caracterización de los proyectos • Crystal Yellow.
según 2 dimensiones, tamaño y • Crystal Orange.
complejidad. Se trata de un • Crystal Orange Web.
conjunto de metodologías para el • Crystal Red.
desarrollo de software • Crystal Magenta.
caracterizadas por estar centradas • Crystal Blue.
en las personas que componen el
equipo (de ellas depende el éxito
del proyecto) y la reducción al
máximo del número de artefactos
producidos.
• Características:
 Aspecto humano del equipo.
 Tamaño de un equipo.
 Comunicación entre los
desarrolladores.
 Políticas a seguir.
 Espacio físico de trabajo. Autor: Alistair Cockbum
Adecuación de modelos de la solución de
tecnología de información
Modelo Enfoque Ventajas / Desventajas Aplicabilidad
Modelo en • El inicio de cada etapa • No todos los requisitos son Utilizado cuando existen
cascada debe esperar a la expuestos, al principio, de forma especificaciones amplias de
finalización de la explícita como requiere este los requerimientos del cliente
inmediatamente anterior modelo.
• Cualquier error conduce • El cliente debe tener paciencia, ya
necesariamente al que la aplicación sólo estará
rediseño y nueva disponible en un estado muy
programación del código avanzado del proyecto.
afectado, aumentando los • Ampliamente criticado desde el
costes del desarrollo ámbito académico y la industria

Prototipos • No posee la funcionalidad • El cliente creer que el prototipo es • Se utiliza si en el mercado


total del sistema pero si una versión acabada. no se encuentra el
condensa la idea principal • Pueden llegar a pasarse por alto la producto pero el cliente
del mismo calidad del software. desea resultados
• Paso a Paso crece su • Las herramientas elegidas pueden inmediatos.
funcionalidad ser inadecuadas. • Para sistemas interactivos
• La clave del éxito de este modelo pequeños o de tamaño
consiste en definir bien, desde el pequeño.
principio, las reglas del juego. • Para sistemas con vida
• Alto grado de participación del corta.
usuario
Adecuación de modelos de la solución de
tecnología de información
Modelo Enfoque Ventajas / Desventajas Aplicabilidad

Modelo en • Cada vuelta en la espiral • Requiere comunicación Utilizado para el


espiral representa una fase del proceso. permanente con el cliente desarrollo de
• No hay fases fijas, cada vuelta en por lo tanto si se cambia el aplicaciones complejas
la espiral determina las contacto con le cual se realiza y/o específicas.
actividades a realizar. desarrollo es necesario que
• La dimensión radial representa el esté al tanto de lo realizado y
coste acumulado en la lo pendiente, cliente debe
financiación de las fases. ser gran conocedor del
• La dimensión angular representa sistema.
el progreso hecho en completar
cada ciclo de la espiral.
• Un ciclo a través de la espiral es
simular un paso a través de un
modelo en cascada
Modelo basado Cascada con entregas grandes en • Debe entregarse una etapa • Desarrollos robustos.
en etapas diferentes etapas del desarrollo. para continuar con la • Depende del
siguiente presupuesto
directamente
Adecuación de modelos de la solución de
tecnología de información
Modelo Enfoque Ventajas / Desventajas Aplicabilidad
Modelo Aumenta la • Los sistemas pueden ser desarrollados • Es recomendable emplearlo solo en
DRA productividad a más rápidamente con gran ahorro de proyectos a corto plazo.
la hora de costos • Altas comisiones en caso de fallar.
desarrollar y • Enfoque en detalles del sistema y no
promoviendo hace hincapié en las necesidades
el trabajo en estratégicas de la empresa
equipo. • Podría permitir menos tiempo para
desarrollar la calidad, consistencia y
estándares de diseño
Modelos Entregas • Rápida respuesta a cambios de • Problemas derivados de la
agiles interactivas e requisitos a lo largo del desarrollo. comunicación oral.
incrementales • Entrega continua y en plazos cortos de • Probar el código de forma constante
software funcional. no genera productos de calidad, sólo
• Trabajo conjunto entre el cliente y el revela falta de análisis y diseño.
equipo de desarrollo. • Fuerte dependencia de las personas.
• Mejora continua de los procesos y el • Si un proyecto ágil fracasa no hay
equipo de desarrollo. documentación o hay muy poca; lo
• Evita malentendidos de requerimientos mismo ocurre con el diseño.
entre el cliente y el equipo. • La comprensión del sistema se queda
• Cada componente del producto final ha en las mentes de los desarrolladores.
sido probado y satisface los
requerimientos.
Esquema de arquitectura del sistema
La arquitectura de un sistema de
software es la estructura o
estructuras del sistema, que incluye
elementos de software, las
propiedades externamente visibles
de esos elementos y la relación entre
ellos. (IEEE 1471)
Dentro de la arquitectura del sistema
deben estar identificados y definidos:
• Elementos y los principales
componentes del sistema.
• Capas del sistema.
• Mecanismos arquitecturales
necesarios para el sistema.
• Tecnologías elegidas.
• Componentes de software.
• Métodos de acceso a sistemas
Esquema de arquitectura del sistema
Toda arquitectura de software
debe describir diversos aspectos
del software, cada uno de estos
aspectos se pueden describir
utilizando distintos modelos o
vistas:
• Estática: describe qué
componentes tiene la
arquitectura.
• Funcional: describe qué hace
cada componente.
• Dinámica: describe cómo se
comportan los componentes a
lo largo del tiempo y como
interactúan entre sí.

S-ar putea să vă placă și