SlideShare una empresa de Scribd logo
1 de 40
Análisis del Proyecto
de Software
Unidad 4
1Ramirez Salazar Maricela T42
4.1 MODELADO, ANALISIS,
DISEÑO Y DOCUMENTACION
2
4.1.1 MODELADO
 El modelado es una actividad de definición formal de aspectos del mundo
físico y social que nos rodea con el propósito de entender y comunicar, para lo
cual es una actividad de modelado que permite combinar problemas:
 Empíricos: especificaciones ligadas al mundo real
 Formales: abstracción, estructura y representación del conocimiento del
problema.
 De ingeniería: métodos formales de construcción
3
Tipos de Modelado
 Se puede elegir entre una variedad de esquemas
1. Lenguaje natural. Muy expresivo y flexible, Pobre al intentar
captar la semántica del modelo, mejor para la toma de
requerimientos
2. Notación semi formal. Captura estructura y alguna semántica,
puede llevar a cabo algún razonamiento, chequeo de
consistencia y animación.
3. Notación formal. Semántica muy precisa y son muy complejos.
4
Técnicas de Modelado
a) Modelado de empresa
o Metas y objetivos
o Estructura organizacional
o Actividades, procesos y productos
o Roles y trabajos de agentes
a) Modelo de requerimientos funcionales
o Vistas estructurales (de datos)
o Vistas de comportamiento
o Requerimientos de tiempo
a) Modelo de requerimientos no funcionales
o De productos, de procesos y externos
5
4.1.2 ANALISIS
 Proveer un marco de trabajo para modelar de forma detallada el sistema
como parte de la obtención y análisis de requerimientos:
 Aproximación al modelo conceptual orientada en los datos
 El diagrama de flujo de datos (DFD) es el elemento mas representativo
 Se deben entender los requerimientos necesarios para continuar en la
evolución del sistema
DEBILIDADES
 No provee métodos efectivos para tratar con requerimientos no
funcionales
 No ayuda al usuario a decidir el mejor matoso para cada caso
 Produce demasiada documentación
6
 Conceptos centrales del análisis
1. TRANSFORMACIÓN DE DATOS
 Actividades que transforman los datos
2. FLUJO DE DATOS
 Indica el paso de datos de la entrada del mismo hacia la salida
 Representa grupos de datos o elementos de datos
3. ALMACENAMIENTO DE DATOS
 Lugar donde se deja información para su uso posterior
 Los almacenes de datos son pasivos, no transforman los datos
7
4.1.3 DISEÑO EN LA INGENIERIA DEL
SOFTWARE
 El diseño del software se sitúa en el núcleo técnico del proceso de
ingeniería del software y se aplica independientemente del paradigma
del desarrollo utilizado. El diseño del software es la primera de las
tres actividades técnicas: diseño, codificación y prueba: necesarias
para construir y verificar el software.
 La importancia del diseño del software se puede decir con una sola
palabra: calidad.
 El diseño externo de software requiere de concebir, planear y
especificar sus características de un producto de programación.
8
I. CONCEPTOS FUNDAMENTALES DEL
DISEÑO
 ABSTRACCIÓN:
Cuando consideramos una solución modular para cualquier problema, se puede
plantear muchos NIVELES DE ABSTRACCIÓN. Al NIVEL SUPERIOR DE ABSTRACCIÓN
se establece una solución en términos amplios usando el lenguaje del entorno
del problema. A NIVELES MAS BAJOS, se conjuga la terminología orientada al
problema con la terminología orientada a la implementación es un esfuerzo
para plantear una solución. A medida que nos movemos a través del proceso del
diseño, se reduce el nivel de abstracción. Finalmente, al NIVEL INFERIOR DE
ABSTRACCIÓN la solución se establece de manera que pueda implementarse
directamente, se construye el código.
9
 REFINAMIENTO.
El refinamiento paso a paso (Stepwise) es una estrategia de diseño
descendente. En cada paso (del refinamiento), se descomponen una o
varias instrucciones del programa en cuestión en instrucciones mas
detalladas. Esta descomposición sucesiva o refinamiento de
especificaciones termina cuando todas las instrucciones se expresan en
términos de cualquier lenguaje subyacente de programación.
 MODULARIDAD.
Es el atributo del software que permite a un programa se manejable
intelectualmente. Se divide el software en componentes identificables y
tratables por separado, denominados módulos, que están integrados para
satisfacer los requisitos del programa, con el fin de imponer un
ordenamiento jerárquico en el uso de las funciones. Puede ser utilizada
para aislar a las dependencias funcionales; para mejorar el desempeño
de un producto o para facilitar la depuración, las pruebas, la integración,
el ajuste y la modificación de un sistema.
10
 Concurrencia.
Los sistemas de programación pueden ser categorizados como secuenciales o
concurrentes. En un sistema secuencial solo una porción del sistema se
encuentra activa en un momento dado; los sistemas concurrentes tienen
procesos independientes que pueden ser actividades en forma simultanea, si
existen procesadores múltiples.
 Verificación.
Un diseño es verificable si puede demostrarse que el diseño general del producto
que satisface los requerimientos del cliente.
 Estética.
Tanto en las artes como en las ingenierías las condiciones estéticas son
fundamentales para el diseño; así como la simplicidad, elegancia y claridad de
un propósito distingue de un producto de alta calidad de los mediocres. Se
refiere aquellas propiedades que van mas allá de la satisfacción de los
requerimientos. 11
II. PROCESO DEL DISEÑO
 Es un proceso mediante el que se traducen los requisitos en una
representación del software. Desde el punto de vista de gestión del proyecto,
el diseño del software se realiza en tres pasos:
 DISEÑO PRELIMINAR:
Se centra en la transformación de los requisitos en los datos y la arquitectura del
software
 DISEÑO DETALLADO:
Se ocupa del refinamiento de la representación arquitectónica que lleva a una
estructura de datos detallada y las representaciones algorítmicas del software
 DISEÑO DE LA INTERFAZ:
Establece la disposición y los mecanismos para la interacción hombre-maquina
12
III. DOCUMENTACION DEL DISEÑO
 Es el esquema de documentación presenta una descripción completa del diseño del
software y esta formada por varias secciones:
a) Ámbito.
b) Documentos de referencia.
c) Descripción del diseño.
d) Módulos, para cada módulo.
e) Estructura de archivos y datos globales.
f) Referencias cruzadas para los requisitos.
g) Provisiones de prueba.
h) Empaquetamiento.
i) Notas especiales.
j) Apéndices. 13
4.2 CONSTRUCCION,
CODIFICACION, PRUEBAS Y
EVALUACION, MANUAL DEL
USUARIO Y MANUAL TECNICO
14
 El desarrollo de una visión conceptual de un sistema de
programación incluye la determinación del tipo de sistema a
desarrollar. Este puede ser un sistema de base de datos, un
sistema de graficas, un sistema de telecomunicaciones, un
sistema de control de proceso o bien un sistema de
procesamiento de datos; igualmente, el sistema puede combinar
aspectos de diversos tipos. En cada una de estas aplicaciones
existen diversos puntos de vista, así como terminologías,
herramientas y notaciones adecuadas para esa clase de
aplicaciones; resulta esencial que el grupo
15
4.2.1 CONSTRUCCION DEL SOFTWARE POR PASOS
 La construcción del software por pasos es una técnica para descomposición
del software mediante sus especificaciones de alto nivel hasta sus niveles
más elementales; esta técnica también se denomina “desarrollo a pasos
de un programa” y “refinamiento sucesivo”. Esta técnica requiere las
siguientes actividades
1) Descomposición en niveles elementales.
2) Aislamiento de los aspectos de diseño que no sean totalmente
interdependientes.
3) Proposición al máximo de las decisiones que conciernen a los detalles de
representación.
4) Demostración cuidadosa de que en cada paso sucesivo, el refinamiento es
solo una expresión fiel de los pasos anteriores.
16
4.2.2 CODIFICACION MEDIANTE LOS
NIVELES DE ABSTRACCIÓN
 Auxilia de la ingeniería de software asistida por computadora.
a. Herramientas (CASE). Son un conjunto de métodos, utilidades y
técnicas que facilitan la automatización del ciclo de vida del
desarrollo de sistemas de información.
 La principal ventaja de la utilización de una herramienta CASE, es la
mejora de la calidad de los desarrollos realizados y, en segundo
término, el aumento de la productividad. Para conseguir estos dos
objetivos es conveniente contar con una organización y una
metodología de trabajo además de la propia herramienta.
17
Tipos de CASE
 No existe una única clasificación de herramientas CASE y, en
ocasiones, es difícil incluirlas en una clase determinada. Podrían
clasificarse atendiendo a:
 Las plataformas que soportan.
 Las fases del ciclo de vida del desarrollo de sistemas que cubren.
 La arquitectura de las aplicaciones que producen.
 Su funcionalidad.
18
4.2.3 PRUEBA DEL SOFTWARE
 Un programa no solamente debe estar libre de errores, sino que
es igualmente importante que el rendimiento del programa final
no sea mayor o menor a lo proyectado originalmente. Escribir un
programa que se ejecute como se planeó no es una tarea simple.
 Este proceso tiene tres etapas bien definidas:
1) Pruebas de desarrollo e ingeniería
2) Pruebas de aseguramiento de calidad internas
3) Pruebas con usuarios
19
4.2.4 EVALUACION DEL PROYECTO DE
SOFTWARE
A. Prueba de Caja Negra. Los datos de prueba se escogerán
atendiendo a las especificaciones del problema, sin importar los
detalles internos del programa, a fin de verificar que el programa
corra bien. Con este tipo de pruebas se intenta encontrar:
 Funciones incorrectas o ausentes.
 Errores de interfaz.
 Errores en estructuras de datos o en accesos a la bases de datos
externas
 Errores de rendimiento.
20
B. Prueba de la Caja de Cristal. Principia con la observación de que
un programa difícilmente puede considerarse como probado por
completo si su código contiene partes que nunca han sido
ejecutadas. Este método analiza la estructura lógica del
programa y, para cada alternativa que puede presentarse, los
datos de prueba ideados conducirán a ella. Se procura escoger los
que verifiquen cada posibilidad en las proposiciones case, las
cláusulas de cada proposición if y la condición de terminación de
cada ciclo.
 Prueba de la Caja de Pandora. Consiste en abstenerse de
realizar pruebas de depurar bastante bien un proyecto; se deja al
cliente que lo ensaye y acepte. El resultado es una bomba de
tiempo.
21
 Otros tipos de pruebas. Hay cuatro tipos de pruebas que un
producto de programación debe satisfacer:
A. Pruebas funcionales.
B. Pruebas de desempeño
C. Pruebas de tensión
D. Pruebas estructurales
22
4.3 MEDIDA, METRICAS E
INDICADORES
23
A) MEDIDA
 Una medida proporciona una indicación cuantitativa de la extensión, cantidad,
dimensiones, capacidad o tamaño de algunos atributos de un proceso o
producto.
 Hay cuatro razones para medir:
 Caracterizar.
 Evaluar.
 Predecir.
 Mejorar.
24
B) METRICA
 Una métrica es una medida cuantitativa del grado en que un
sistema, componente o proceso posee un atributo dado. Las
métricas son el fundamento de los indicadores.
25
C) INDICADORES
 Un indicador es una métrica o combinación de métricas que proporcionan una
visión profunda el proceso del software, del proyecto de software o del
producto en si. Los indicadores del proceso permiten, Al gestor, evaluar lo que
funciona y lo que no. Los principales objetivos en un indicador permiten
establecer:
a) Métricas del proyecto = indicadores del proyecto.
b) Métricas del proceso = indicadores del proceso.
 Los indicadores del proyecto permiten al gestor:
a) Evaluar el estado del proyecto en curso.
b) Seguir la pista de riesgos potenciales.
26
 Para facilitar el proceso de estimación se han establecido a lo largo del
tiempo, métricas que ayudan a dar una idea aproximada del tamaño del
software:
 Medidas relacionadas con el tamaño del código ( LOC - Lines of code).
Esta forma de medir el tamaño de un software era utilizado cuando los
lenguajes de programación, patrones de desarrollo y entornos de desarrollo
(IDE), no estaban ampliamente desarrollados.
 Medidas relacionadas con la función (UFC – Puntos de Función). El total
de puntos de función no es una característica simple sino que es una
combinación de características del software a las cuales se les asigna un
valor que cambia dependiendo de su complejidad.
 Los Puntos de Objeto (PO). Los PO se utilizan en el modelo de estimación
COCOMO II con el nombre de Puntos de Aplicación. Estos son una alternativa
a los UFC, y son usados en los lenguajes orientados a objetos y de scripts.
27
 Modelo Constructivo de Costo: COCOMO II.
Cocomo II provee niveles que nos permiten hacer estimaciones en diferentes
momentos del desarrollo ya que la estimación de costos debe de ser un
proceso dinámico a lo largo del desarrollo, actualizando constantemente las
variables, la evolución del equipo de desarrollo, las herramientas y lenguajes
involucrados. Los distintos niveles son:
 Construcción de prototipos. Las estimaciones de tamaño están basadas en
puntos de aplicación con base en componentes reutilizables, prototipos y la
fórmula para estimar el esfuerzo requerido es muy simple: tamaño /
productividad.
 Diseño inicial. Está basado en los requerimientos originales del sistema a un
alto nivel (pantallas, reportes, procesos, transacciones) lo que son traducidos
a puntos de aplicación, esto nos sirve para hacer una predicción temprana
del costo.
28
 Reutilización. Este nivel se utiliza para calcular el esfuerzo requerido
para integrar el código generado por los IDE’s o herramientas de
generación de código reutilizable como Spring Roo o Genexus por ejemplo,
tomando en cuenta componentes reutilizables que facilitan el desarrollo
como Apache Commons.
 Post-arquitectura. Ya diseñado el sistema se pueden hacer estimaciones
más precisas del tamaño del software, aquí es importante señalar que el
software tiene una tasa de crecimiento de los requerimientos del sistema
entre el 2 y el 5 por ciento mensual, por lo cual no es posible hacer una
estimación exacta pero las predicciones de costo se pueden acercar
mucho a la realidad gracias a la aplicación de métricas que nos permiten
tener una variación muy pequeña con respecto al producto final.
29
4.4 TIPOS DE METRICAS. METRICAS DE
PROCESO, METRICAS DE PROYECTO,
METRICAS ORIENTAS A AL PUNTO DE
FUNCION.
30
I. Medidas de Tamaño
II. Long. del Código / Tokens / Long. de especificación y diseño
III. Medidas de Funcionalidad
IV. Medidas de Estructura Lógica:
 De Estructura de Código
 De Estructura de Diseño
V. Acoplamiento / Cohesión / Flujo de Información Modular
31
4.4.1 METRICAS EN EL PROCESO Y
METRICAS DEL PROYECTO
1) ¿Qué es? El proceso del software y las métricas del producto son una
medida cuantitativa que permite a la gente del software tener una visión
profunda de la eficacia del proceso del software y de los proyectos que
dirigen utilizando el proceso como un marco de trabajo.
2) ¿Quién lo hace? Las métricas del software son analizadas y evaluadas por
los administradores del software. A menudo las medidas son reunidas por
los ingenieros del software.
3) ¿Por qué es importante? Si no mides, sólo podrás juzgar basándote en una
evaluación subjetiva. Mediante la medición, se pueden señalar las
tendencias (buenas o malas), realizar mejores estimaciones, llevar a cabo
una verdadera mejora sobre el tiempo.
32
4) ¿Cuáles son los pasos? Comenzar definiendo un conjunto
limitado de medidas de procesos, proyectos y productos que
sean fáciles de recoger.
5) ¿Cuál es el producto obtenido? Es un conjunto de métricas del
software que proporcionan una visión profunda del proceso y de
la comprensión del proyecto.
6) ¿Cómo puedo estar seguro de que lo he hecho correctamente?
Aplicando un plan de medición sencillo pero consistente.
33
4.4.2 METRICAS ORIENTAS A AL PUNTO
DE FUNCION
 La medida de punto de función se diseñó originalmente
para aplicarse a aplicaciones de sistemas de información
de gestión. Para acomodar estas aplicaciones, se enfatizó
la dimensión de datos (los valores de dominios de
información) para la exclusión de dimensiones (control)
funcionales y de comportamiento.
34
 Los valores de los dominios de información se definen de la forma
siguiente:
a) Número de entradas de usuario. Se cuenta cada entrada de usuario
que proporciona diferentes datos orientados a la aplicación. Las
entradas se deberían diferenciar de las peticiones, las cuales se cuentan
de forma separada.
b) Número de salidas de usuario. Se cuenta cada salida que proporciona
al usuario información orientada a la aplicación. En este contexto la
salida se refiere a informes, pantallas, mensajes de error, etc. Los
elementos de datos particulares dentro de un informe no se cuentan de
forma separada.
35
a) Número de peticiones de usuario. Una petición se define como
una entrada interactiva que produce la generación de alguna
respuesta del software inmediata en forma de salida interactiva.
Se cuenta cada petición por separado.
b) Número de archivos. Se cuenta cada archivo maestro lógico
(esto es, un grupo lógico de datos que puede ser una parte de
una gran base de datos o un archivo independiente).
c) Número de interfaces externas. Se cuentan todas las interfaces
legibles por la máquina (por ejemplo: archivos de datos de cinta
o disco) que se utilizan para transmitir información a otro
sistema.
36
 Las métricas orientadas a Puntos de Función se caracterizan por:
A. Tener un componente empírico, basado en la experiencia de
muchos proyectos.
B. Tener en cuenta la complejidad, aunque es muy difícil de
determinar en un proyecto
C. Ser independientes del entorno tecnológico y de las
metodologías aplicadas.
D. Utilizar medidas indirectas, que se caracterizan por ser
subjetivas y difíciles de calcular, sin embargo el resultado
obtenido es fácilmente comparable.
37
4.5 IMPLEMENTACION Y
MANTENIMIENTO DEL SOFTWARE
38
 Diversos productos como software a la medida, sistema bolsa de
trabajo, registro de usuarios, sistema de reservaciones, de gestión,
motor bienes raíces, outsourcing programadores, mapas geográficos,
servidores, aplicación server provider, Visual Studio, on line, AJAX,
SQL server, renta tiendas en línea, administrador de contenidos,
carrito de compras, cotizador, inventarios en línea, optimización y
posicionamiento web de sitios, portales o páginas en la red.
 La importancia de la implementación y mantenimiento de software
radica en brindarle la capacitación necesaria para el correcto manejo
del sistema y por otro lado permite que se cumpla la finalidad de
todo programa de software: dejar que el sistema haga todo el
trabajo pesado, brindándole el tiempo para trabajar sobre otras
áreas de su negocio.
39
 Dos características principales del mantenimiento de Software:
1. El mantenimiento del software puede llevar hasta el 70% de todo el
esfuerzo gastado por una organización de desarrollo.
2. El mantenimiento es mas que una “Corrección de errores”
 Las 4 actividades que se llevan a cabo para describir el
mantenimiento de software:
1. Mantenimiento Correctivo
2. Mantenimiento Adaptativo
3. Mantenimiento Perfectivo
4. Ingeniería Inversa o Reingeniería.
40

Más contenido relacionado

La actualidad más candente

Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 
Tsp (Team Software Process )
Tsp (Team Software Process )Tsp (Team Software Process )
Tsp (Team Software Process )silviachmn
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del softwareaagalvisg
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegueElvisAR
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos DistribuidasMiguel Serrano E
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónYare LoZada
 
Análisisde requerimientos
Análisisde requerimientosAnálisisde requerimientos
Análisisde requerimientosmayrapeg
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareDaniel Guaycha
 
Unidad 2. metodologias de desarrollo de software tema1
Unidad 2. metodologias de desarrollo de software tema1Unidad 2. metodologias de desarrollo de software tema1
Unidad 2. metodologias de desarrollo de software tema1ROSA IMELDA GARCIA CHI
 
Proceso del software
Proceso del softwareProceso del software
Proceso del softwareTensor
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareJesús Navarro
 
Estandares de calidad aplicadas al software
Estandares de calidad aplicadas al softwareEstandares de calidad aplicadas al software
Estandares de calidad aplicadas al softwareAngel Canul Cruz
 

La actualidad más candente (20)

Etapa de estudio de viabilidad de un proyecto informático c4
Etapa de estudio de viabilidad de un proyecto informático c4Etapa de estudio de viabilidad de un proyecto informático c4
Etapa de estudio de viabilidad de un proyecto informático c4
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 
Requerimientos norma ieee830
Requerimientos norma ieee830Requerimientos norma ieee830
Requerimientos norma ieee830
 
Tsp (Team Software Process )
Tsp (Team Software Process )Tsp (Team Software Process )
Tsp (Team Software Process )
 
Proyecto Final - Calidad de Software
Proyecto Final - Calidad de SoftwareProyecto Final - Calidad de Software
Proyecto Final - Calidad de Software
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del software
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegue
 
2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos Distribuidas
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
 
Análisisde requerimientos
Análisisde requerimientosAnálisisde requerimientos
Análisisde requerimientos
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
 
Unidad 2. metodologias de desarrollo de software tema1
Unidad 2. metodologias de desarrollo de software tema1Unidad 2. metodologias de desarrollo de software tema1
Unidad 2. metodologias de desarrollo de software tema1
 
Proceso del software
Proceso del softwareProceso del software
Proceso del software
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del software
 
Estandares de calidad aplicadas al software
Estandares de calidad aplicadas al softwareEstandares de calidad aplicadas al software
Estandares de calidad aplicadas al software
 

Destacado

Destacado (6)

Conceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseñoConceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseño
 
introduccion metododologias de analisis y diseño de software
 introduccion metododologias de analisis y diseño de software introduccion metododologias de analisis y diseño de software
introduccion metododologias de analisis y diseño de software
 
Analisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de informaciónAnalisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de información
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 

Similar a Análisis del Proyecto de Software

Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Lucero Mtz
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcanoGalderIL057
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareJesús Molleda
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del softwaregenesisptc_
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwaremichellvillegas3
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoDascorp
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicionEvelin Oña
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 
presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelynHebelynBravo
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un softwaressalzar
 

Similar a Análisis del Proyecto de Software (20)

Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcano
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
Unidad 4 aldo moreno
Unidad 4 aldo morenoUnidad 4 aldo moreno
Unidad 4 aldo moreno
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Modelo
ModeloModelo
Modelo
 
Presentaciondefundamentosdesoftware
PresentaciondefundamentosdesoftwarePresentaciondefundamentosdesoftware
Presentaciondefundamentosdesoftware
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Fasesdedesarrollodeunprograma
FasesdedesarrollodeunprogramaFasesdedesarrollodeunprograma
Fasesdedesarrollodeunprograma
 
presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelyn
 
Fasesdedesarrollodeunprograma 130929181547-phpapp02
Fasesdedesarrollodeunprograma 130929181547-phpapp02Fasesdedesarrollodeunprograma 130929181547-phpapp02
Fasesdedesarrollodeunprograma 130929181547-phpapp02
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Inf 162
Inf 162Inf 162
Inf 162
 

Análisis del Proyecto de Software

  • 1. Análisis del Proyecto de Software Unidad 4 1Ramirez Salazar Maricela T42
  • 3. 4.1.1 MODELADO  El modelado es una actividad de definición formal de aspectos del mundo físico y social que nos rodea con el propósito de entender y comunicar, para lo cual es una actividad de modelado que permite combinar problemas:  Empíricos: especificaciones ligadas al mundo real  Formales: abstracción, estructura y representación del conocimiento del problema.  De ingeniería: métodos formales de construcción 3
  • 4. Tipos de Modelado  Se puede elegir entre una variedad de esquemas 1. Lenguaje natural. Muy expresivo y flexible, Pobre al intentar captar la semántica del modelo, mejor para la toma de requerimientos 2. Notación semi formal. Captura estructura y alguna semántica, puede llevar a cabo algún razonamiento, chequeo de consistencia y animación. 3. Notación formal. Semántica muy precisa y son muy complejos. 4
  • 5. Técnicas de Modelado a) Modelado de empresa o Metas y objetivos o Estructura organizacional o Actividades, procesos y productos o Roles y trabajos de agentes a) Modelo de requerimientos funcionales o Vistas estructurales (de datos) o Vistas de comportamiento o Requerimientos de tiempo a) Modelo de requerimientos no funcionales o De productos, de procesos y externos 5
  • 6. 4.1.2 ANALISIS  Proveer un marco de trabajo para modelar de forma detallada el sistema como parte de la obtención y análisis de requerimientos:  Aproximación al modelo conceptual orientada en los datos  El diagrama de flujo de datos (DFD) es el elemento mas representativo  Se deben entender los requerimientos necesarios para continuar en la evolución del sistema DEBILIDADES  No provee métodos efectivos para tratar con requerimientos no funcionales  No ayuda al usuario a decidir el mejor matoso para cada caso  Produce demasiada documentación 6
  • 7.  Conceptos centrales del análisis 1. TRANSFORMACIÓN DE DATOS  Actividades que transforman los datos 2. FLUJO DE DATOS  Indica el paso de datos de la entrada del mismo hacia la salida  Representa grupos de datos o elementos de datos 3. ALMACENAMIENTO DE DATOS  Lugar donde se deja información para su uso posterior  Los almacenes de datos son pasivos, no transforman los datos 7
  • 8. 4.1.3 DISEÑO EN LA INGENIERIA DEL SOFTWARE  El diseño del software se sitúa en el núcleo técnico del proceso de ingeniería del software y se aplica independientemente del paradigma del desarrollo utilizado. El diseño del software es la primera de las tres actividades técnicas: diseño, codificación y prueba: necesarias para construir y verificar el software.  La importancia del diseño del software se puede decir con una sola palabra: calidad.  El diseño externo de software requiere de concebir, planear y especificar sus características de un producto de programación. 8
  • 9. I. CONCEPTOS FUNDAMENTALES DEL DISEÑO  ABSTRACCIÓN: Cuando consideramos una solución modular para cualquier problema, se puede plantear muchos NIVELES DE ABSTRACCIÓN. Al NIVEL SUPERIOR DE ABSTRACCIÓN se establece una solución en términos amplios usando el lenguaje del entorno del problema. A NIVELES MAS BAJOS, se conjuga la terminología orientada al problema con la terminología orientada a la implementación es un esfuerzo para plantear una solución. A medida que nos movemos a través del proceso del diseño, se reduce el nivel de abstracción. Finalmente, al NIVEL INFERIOR DE ABSTRACCIÓN la solución se establece de manera que pueda implementarse directamente, se construye el código. 9
  • 10.  REFINAMIENTO. El refinamiento paso a paso (Stepwise) es una estrategia de diseño descendente. En cada paso (del refinamiento), se descomponen una o varias instrucciones del programa en cuestión en instrucciones mas detalladas. Esta descomposición sucesiva o refinamiento de especificaciones termina cuando todas las instrucciones se expresan en términos de cualquier lenguaje subyacente de programación.  MODULARIDAD. Es el atributo del software que permite a un programa se manejable intelectualmente. Se divide el software en componentes identificables y tratables por separado, denominados módulos, que están integrados para satisfacer los requisitos del programa, con el fin de imponer un ordenamiento jerárquico en el uso de las funciones. Puede ser utilizada para aislar a las dependencias funcionales; para mejorar el desempeño de un producto o para facilitar la depuración, las pruebas, la integración, el ajuste y la modificación de un sistema. 10
  • 11.  Concurrencia. Los sistemas de programación pueden ser categorizados como secuenciales o concurrentes. En un sistema secuencial solo una porción del sistema se encuentra activa en un momento dado; los sistemas concurrentes tienen procesos independientes que pueden ser actividades en forma simultanea, si existen procesadores múltiples.  Verificación. Un diseño es verificable si puede demostrarse que el diseño general del producto que satisface los requerimientos del cliente.  Estética. Tanto en las artes como en las ingenierías las condiciones estéticas son fundamentales para el diseño; así como la simplicidad, elegancia y claridad de un propósito distingue de un producto de alta calidad de los mediocres. Se refiere aquellas propiedades que van mas allá de la satisfacción de los requerimientos. 11
  • 12. II. PROCESO DEL DISEÑO  Es un proceso mediante el que se traducen los requisitos en una representación del software. Desde el punto de vista de gestión del proyecto, el diseño del software se realiza en tres pasos:  DISEÑO PRELIMINAR: Se centra en la transformación de los requisitos en los datos y la arquitectura del software  DISEÑO DETALLADO: Se ocupa del refinamiento de la representación arquitectónica que lleva a una estructura de datos detallada y las representaciones algorítmicas del software  DISEÑO DE LA INTERFAZ: Establece la disposición y los mecanismos para la interacción hombre-maquina 12
  • 13. III. DOCUMENTACION DEL DISEÑO  Es el esquema de documentación presenta una descripción completa del diseño del software y esta formada por varias secciones: a) Ámbito. b) Documentos de referencia. c) Descripción del diseño. d) Módulos, para cada módulo. e) Estructura de archivos y datos globales. f) Referencias cruzadas para los requisitos. g) Provisiones de prueba. h) Empaquetamiento. i) Notas especiales. j) Apéndices. 13
  • 14. 4.2 CONSTRUCCION, CODIFICACION, PRUEBAS Y EVALUACION, MANUAL DEL USUARIO Y MANUAL TECNICO 14
  • 15.  El desarrollo de una visión conceptual de un sistema de programación incluye la determinación del tipo de sistema a desarrollar. Este puede ser un sistema de base de datos, un sistema de graficas, un sistema de telecomunicaciones, un sistema de control de proceso o bien un sistema de procesamiento de datos; igualmente, el sistema puede combinar aspectos de diversos tipos. En cada una de estas aplicaciones existen diversos puntos de vista, así como terminologías, herramientas y notaciones adecuadas para esa clase de aplicaciones; resulta esencial que el grupo 15
  • 16. 4.2.1 CONSTRUCCION DEL SOFTWARE POR PASOS  La construcción del software por pasos es una técnica para descomposición del software mediante sus especificaciones de alto nivel hasta sus niveles más elementales; esta técnica también se denomina “desarrollo a pasos de un programa” y “refinamiento sucesivo”. Esta técnica requiere las siguientes actividades 1) Descomposición en niveles elementales. 2) Aislamiento de los aspectos de diseño que no sean totalmente interdependientes. 3) Proposición al máximo de las decisiones que conciernen a los detalles de representación. 4) Demostración cuidadosa de que en cada paso sucesivo, el refinamiento es solo una expresión fiel de los pasos anteriores. 16
  • 17. 4.2.2 CODIFICACION MEDIANTE LOS NIVELES DE ABSTRACCIÓN  Auxilia de la ingeniería de software asistida por computadora. a. Herramientas (CASE). Son un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información.  La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los desarrollos realizados y, en segundo término, el aumento de la productividad. Para conseguir estos dos objetivos es conveniente contar con una organización y una metodología de trabajo además de la propia herramienta. 17
  • 18. Tipos de CASE  No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:  Las plataformas que soportan.  Las fases del ciclo de vida del desarrollo de sistemas que cubren.  La arquitectura de las aplicaciones que producen.  Su funcionalidad. 18
  • 19. 4.2.3 PRUEBA DEL SOFTWARE  Un programa no solamente debe estar libre de errores, sino que es igualmente importante que el rendimiento del programa final no sea mayor o menor a lo proyectado originalmente. Escribir un programa que se ejecute como se planeó no es una tarea simple.  Este proceso tiene tres etapas bien definidas: 1) Pruebas de desarrollo e ingeniería 2) Pruebas de aseguramiento de calidad internas 3) Pruebas con usuarios 19
  • 20. 4.2.4 EVALUACION DEL PROYECTO DE SOFTWARE A. Prueba de Caja Negra. Los datos de prueba se escogerán atendiendo a las especificaciones del problema, sin importar los detalles internos del programa, a fin de verificar que el programa corra bien. Con este tipo de pruebas se intenta encontrar:  Funciones incorrectas o ausentes.  Errores de interfaz.  Errores en estructuras de datos o en accesos a la bases de datos externas  Errores de rendimiento. 20
  • 21. B. Prueba de la Caja de Cristal. Principia con la observación de que un programa difícilmente puede considerarse como probado por completo si su código contiene partes que nunca han sido ejecutadas. Este método analiza la estructura lógica del programa y, para cada alternativa que puede presentarse, los datos de prueba ideados conducirán a ella. Se procura escoger los que verifiquen cada posibilidad en las proposiciones case, las cláusulas de cada proposición if y la condición de terminación de cada ciclo.  Prueba de la Caja de Pandora. Consiste en abstenerse de realizar pruebas de depurar bastante bien un proyecto; se deja al cliente que lo ensaye y acepte. El resultado es una bomba de tiempo. 21
  • 22.  Otros tipos de pruebas. Hay cuatro tipos de pruebas que un producto de programación debe satisfacer: A. Pruebas funcionales. B. Pruebas de desempeño C. Pruebas de tensión D. Pruebas estructurales 22
  • 23. 4.3 MEDIDA, METRICAS E INDICADORES 23
  • 24. A) MEDIDA  Una medida proporciona una indicación cuantitativa de la extensión, cantidad, dimensiones, capacidad o tamaño de algunos atributos de un proceso o producto.  Hay cuatro razones para medir:  Caracterizar.  Evaluar.  Predecir.  Mejorar. 24
  • 25. B) METRICA  Una métrica es una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado. Las métricas son el fundamento de los indicadores. 25
  • 26. C) INDICADORES  Un indicador es una métrica o combinación de métricas que proporcionan una visión profunda el proceso del software, del proyecto de software o del producto en si. Los indicadores del proceso permiten, Al gestor, evaluar lo que funciona y lo que no. Los principales objetivos en un indicador permiten establecer: a) Métricas del proyecto = indicadores del proyecto. b) Métricas del proceso = indicadores del proceso.  Los indicadores del proyecto permiten al gestor: a) Evaluar el estado del proyecto en curso. b) Seguir la pista de riesgos potenciales. 26
  • 27.  Para facilitar el proceso de estimación se han establecido a lo largo del tiempo, métricas que ayudan a dar una idea aproximada del tamaño del software:  Medidas relacionadas con el tamaño del código ( LOC - Lines of code). Esta forma de medir el tamaño de un software era utilizado cuando los lenguajes de programación, patrones de desarrollo y entornos de desarrollo (IDE), no estaban ampliamente desarrollados.  Medidas relacionadas con la función (UFC – Puntos de Función). El total de puntos de función no es una característica simple sino que es una combinación de características del software a las cuales se les asigna un valor que cambia dependiendo de su complejidad.  Los Puntos de Objeto (PO). Los PO se utilizan en el modelo de estimación COCOMO II con el nombre de Puntos de Aplicación. Estos son una alternativa a los UFC, y son usados en los lenguajes orientados a objetos y de scripts. 27
  • 28.  Modelo Constructivo de Costo: COCOMO II. Cocomo II provee niveles que nos permiten hacer estimaciones en diferentes momentos del desarrollo ya que la estimación de costos debe de ser un proceso dinámico a lo largo del desarrollo, actualizando constantemente las variables, la evolución del equipo de desarrollo, las herramientas y lenguajes involucrados. Los distintos niveles son:  Construcción de prototipos. Las estimaciones de tamaño están basadas en puntos de aplicación con base en componentes reutilizables, prototipos y la fórmula para estimar el esfuerzo requerido es muy simple: tamaño / productividad.  Diseño inicial. Está basado en los requerimientos originales del sistema a un alto nivel (pantallas, reportes, procesos, transacciones) lo que son traducidos a puntos de aplicación, esto nos sirve para hacer una predicción temprana del costo. 28
  • 29.  Reutilización. Este nivel se utiliza para calcular el esfuerzo requerido para integrar el código generado por los IDE’s o herramientas de generación de código reutilizable como Spring Roo o Genexus por ejemplo, tomando en cuenta componentes reutilizables que facilitan el desarrollo como Apache Commons.  Post-arquitectura. Ya diseñado el sistema se pueden hacer estimaciones más precisas del tamaño del software, aquí es importante señalar que el software tiene una tasa de crecimiento de los requerimientos del sistema entre el 2 y el 5 por ciento mensual, por lo cual no es posible hacer una estimación exacta pero las predicciones de costo se pueden acercar mucho a la realidad gracias a la aplicación de métricas que nos permiten tener una variación muy pequeña con respecto al producto final. 29
  • 30. 4.4 TIPOS DE METRICAS. METRICAS DE PROCESO, METRICAS DE PROYECTO, METRICAS ORIENTAS A AL PUNTO DE FUNCION. 30
  • 31. I. Medidas de Tamaño II. Long. del Código / Tokens / Long. de especificación y diseño III. Medidas de Funcionalidad IV. Medidas de Estructura Lógica:  De Estructura de Código  De Estructura de Diseño V. Acoplamiento / Cohesión / Flujo de Información Modular 31
  • 32. 4.4.1 METRICAS EN EL PROCESO Y METRICAS DEL PROYECTO 1) ¿Qué es? El proceso del software y las métricas del producto son una medida cuantitativa que permite a la gente del software tener una visión profunda de la eficacia del proceso del software y de los proyectos que dirigen utilizando el proceso como un marco de trabajo. 2) ¿Quién lo hace? Las métricas del software son analizadas y evaluadas por los administradores del software. A menudo las medidas son reunidas por los ingenieros del software. 3) ¿Por qué es importante? Si no mides, sólo podrás juzgar basándote en una evaluación subjetiva. Mediante la medición, se pueden señalar las tendencias (buenas o malas), realizar mejores estimaciones, llevar a cabo una verdadera mejora sobre el tiempo. 32
  • 33. 4) ¿Cuáles son los pasos? Comenzar definiendo un conjunto limitado de medidas de procesos, proyectos y productos que sean fáciles de recoger. 5) ¿Cuál es el producto obtenido? Es un conjunto de métricas del software que proporcionan una visión profunda del proceso y de la comprensión del proyecto. 6) ¿Cómo puedo estar seguro de que lo he hecho correctamente? Aplicando un plan de medición sencillo pero consistente. 33
  • 34. 4.4.2 METRICAS ORIENTAS A AL PUNTO DE FUNCION  La medida de punto de función se diseñó originalmente para aplicarse a aplicaciones de sistemas de información de gestión. Para acomodar estas aplicaciones, se enfatizó la dimensión de datos (los valores de dominios de información) para la exclusión de dimensiones (control) funcionales y de comportamiento. 34
  • 35.  Los valores de los dominios de información se definen de la forma siguiente: a) Número de entradas de usuario. Se cuenta cada entrada de usuario que proporciona diferentes datos orientados a la aplicación. Las entradas se deberían diferenciar de las peticiones, las cuales se cuentan de forma separada. b) Número de salidas de usuario. Se cuenta cada salida que proporciona al usuario información orientada a la aplicación. En este contexto la salida se refiere a informes, pantallas, mensajes de error, etc. Los elementos de datos particulares dentro de un informe no se cuentan de forma separada. 35
  • 36. a) Número de peticiones de usuario. Una petición se define como una entrada interactiva que produce la generación de alguna respuesta del software inmediata en forma de salida interactiva. Se cuenta cada petición por separado. b) Número de archivos. Se cuenta cada archivo maestro lógico (esto es, un grupo lógico de datos que puede ser una parte de una gran base de datos o un archivo independiente). c) Número de interfaces externas. Se cuentan todas las interfaces legibles por la máquina (por ejemplo: archivos de datos de cinta o disco) que se utilizan para transmitir información a otro sistema. 36
  • 37.  Las métricas orientadas a Puntos de Función se caracterizan por: A. Tener un componente empírico, basado en la experiencia de muchos proyectos. B. Tener en cuenta la complejidad, aunque es muy difícil de determinar en un proyecto C. Ser independientes del entorno tecnológico y de las metodologías aplicadas. D. Utilizar medidas indirectas, que se caracterizan por ser subjetivas y difíciles de calcular, sin embargo el resultado obtenido es fácilmente comparable. 37
  • 39.  Diversos productos como software a la medida, sistema bolsa de trabajo, registro de usuarios, sistema de reservaciones, de gestión, motor bienes raíces, outsourcing programadores, mapas geográficos, servidores, aplicación server provider, Visual Studio, on line, AJAX, SQL server, renta tiendas en línea, administrador de contenidos, carrito de compras, cotizador, inventarios en línea, optimización y posicionamiento web de sitios, portales o páginas en la red.  La importancia de la implementación y mantenimiento de software radica en brindarle la capacitación necesaria para el correcto manejo del sistema y por otro lado permite que se cumpla la finalidad de todo programa de software: dejar que el sistema haga todo el trabajo pesado, brindándole el tiempo para trabajar sobre otras áreas de su negocio. 39
  • 40.  Dos características principales del mantenimiento de Software: 1. El mantenimiento del software puede llevar hasta el 70% de todo el esfuerzo gastado por una organización de desarrollo. 2. El mantenimiento es mas que una “Corrección de errores”  Las 4 actividades que se llevan a cabo para describir el mantenimiento de software: 1. Mantenimiento Correctivo 2. Mantenimiento Adaptativo 3. Mantenimiento Perfectivo 4. Ingeniería Inversa o Reingeniería. 40