Iso2 Final
Iso2 Final
Iso2 Final
1. Actor.
2. Casos de Uso.
3. Relaciones.
Diagrama de Actividades
Permiten demostrar la lógica de un algoritmo. Se usan para
describir las actividades de negocios y la funcionalidad de
los sistemas. Componentes:
4.Vista de implementación
Los aspectos estructurales y de comportamiento se representan
aquí tal y como van a ser implementados.
El diagrama utilizado es: Diagrama de Componentes.
5. Vista del Entorno
Diagrama de Despliegue: representa los elementos básicos de
software y hardware del sistema.
Diseño Orientado a Objetos
El diseño orientado a objetos transforma el modelo de
análisis, en un modelo de diseño que sirve como
anteproyecto para la construcción de software.
Fq = c1 * m1 + c2 * m2 + …+ cn * mn
Camino 1: 1-2-5-8-9
Camino 2: 1-3-4-5-8-9
Camino 3: 1-3-6-7-8-9
Camino 4: 1-3-6-9
Complejidad Ciclomática
Es una métrica que proporciona una medición cuantitativa de la
complejidad lógica de un programa.
Define el número de caminos independientes de un programa y
nos da un límite superior para el número de pruebas que se
deben realizar para asegurar que se ejecuta cada sentencia al
menos una vez.
Determina el número de pruebas que se deben realizar para
asegurar que se ejecuta cada sentencia al menos una vez, (if,
else, for, while, etc)
Complejidad Ciclomática
El grafo permite observar los cuatro caminos básicos posibles:
Camino 1: 1-2-5-8-9
Camino 2: 1-3-4-5-8-9
Camino 3: 1-3-6-7-8-9
Camino 4: 1-3-6-9
1. Actor.
2. Casos de Uso.
3. Relaciones.
Diagrama de Actividades
Permiten demostrar la lógica de un algoritmo. Se usan para
describir las actividades de negocios y la funcionalidad de
los sistemas. Componentes:
4.Vista de implementación
Los aspectos estructurales y de comportamiento se representan
aquí tal y como van a ser implementados.
El diagrama utilizado es: Diagrama de Componentes.
5. Vista del Entorno
Diagrama de Despliegue: representa los elementos básicos de
software y hardware del sistema.
Diseño Orientado a Objetos
El diseño orientado a objetos transforma el modelo de
análisis, en un modelo de diseño que sirve como
anteproyecto para la construcción de software.
Fq = c1 * m1 + c2 * m2 + …+ cn * mn
Para que sea útil en el contexto del mundo real, una métrica
debe ser simple, calculable, consistente y objetiva.
Lecturas Recomendadas:
https://blog.innevo.com/metricas-de-calidad-del-software
La ley de Murphy: “lo que puede salir mal, saldrá mal”, y si hay
más cosas que pueden fallar, más cosas fallarán.
Técnicas de Estimación
1. La opinión de los expertos: se basa en la experiencia
profesional de los participantes de la estimación.
2. La analogía: Se basa en la comparación directa de uno o
más proyectos pasados.
Para poder utilizar esta técnica es necesario disponer de
una base de datos histórica de proyectos finalizados con
la que poder realizar la comparación.
Emular el Pasado
La disponibilidad de información histórica tiene fuerte
influencia sobre el riesgo de estimación.
➔ CPU
➔ dispositivos de red
➔ memoria RAM
➔ sistema de sonido
➔ conexión USB
➔ particiones de disco, etc
Inconvenientes virtualización
Uno de los inconvenientes de las máquinas virtuales es que
agregan complejidad al sistema en tiempo de ejecución.
Esto tiene como efecto la ralentización del sistema, es decir,
el programa no alcanzará la misma velocidad de ejecución
que si se instala directamente como sistema operativo
principal.
Sin embargo, a menudo la flexibilidad que ofrecen compensa
esta pérdida de eficiencia.
¿Qué es la Ingeniería inversa?
Es el proceso de descubrir los principios tecnológicos
de un dispositivo o sistema, a través del análisis de su
estructura, función y operación.
Estos secretos se podrán comprender más
fácilmente si se tienen las especificaciones.
Pero estos documentos podrían no estar disponibles.
Ingeniería inversa.
Tiene sus orígenes en el mundo del hardware.
Una compañía desensambla un producto de hardware en
un esfuerzo por comprender los secretos de fabricación.
Ing.Inversa en el SW
En la mayoría de los casos, el programa del cual hay que hacer
una ingeniería inversa no es el de un rival, sino, más bien, el
propio trabajo de la compañía.
Fq = c1 * m1 + c2 * m2 + …+ cn * mn
● Funcionalidad.
● Confiabilidad.
● Usabilidad.
● Eficiencia.
● Facilidad de mantenimiento.
● Portabilidad.
Factores de calidad ISO 9126
Características de las Métricas de
Sistemas O.O.
Berard define cinco características para las métricas
de Sistemas O.O.:
1. Localización
2. Encapsulación
3. Ocultamiento de información
4. Herencia
5. Abstracción de objetos.
1. Localización
Indica la manera en que la información
se concentra en el Sistema.
Generalmente la información se organiza
en forma de estructuras de datos.
(Bases de datos)
2. Encapsulación
Es el empaquetamiento de una colección de
elementos.
Engloba las responsabilidades de una clase,
incluyendo sus atributos y operaciones.
Eleva la medición a un nivel de abstracción más
alto, simplificando el análisis.
3. Ocultación de Información
Oculta detalles operacionales de un componente de programa,
simplificando el entendimiento.
Un sistema bien diseñado debe implementar ocultación de
información.
Las métricas que proporcionan una indicación del grado de
ocultación que se ha conseguido en la etapa de Diseño.
4. Herencia
Evalúa la propagación de características entre objetos.
La herencia ocurre a
través de todos los
niveles de una jerarquía
de clases.
Es una característica
vital en los sistemas O.O.
5. Abstracción de Objetos
Permite concentrarse en los detalles esenciales, prestando
poca atención a detalles de bajo nivel.
A medida que se mueve a niveles más altos de abstracción
se tiene una visión más general.
A medida que se mueve a niveles de abstracción más
bajos, se tiene una visión
más específica.
Resumen y Conclusiones.
➔ La preocupación por la calidad del software ha aumentado a
medida que éste se integra en cada aspecto de nuestras vidas
cotidianas.
➔ Pero es difícil hacer la descripción exhaustiva de la calidad del
software.
➔ Con el tiempo se han propuesto varias dimensiones y factores
de calidad del software.
➔ Todos ellos tratan de definir un conjunto de características que,
si se logran, llevarán a un software de alta calidad.
Resumen y Conclusiones.
➔ McCall y los factores de calidad de la norma ISO
9126 establecen características tales como
confiabilidad, usabilidad, facilidad de mantenimiento,
funcionalidad y portabilidad, como indicadores de la
existencia de calidad.
➔ Sin importar el enfoque que se elija, la calidad tiene
un costo que puede estudiarse en términos de
prevención, evaluación y falla.
Administración de la Seguridad
https://sitecheck.sucuri.net/
Netcraft
NETCRAFT: Proporciona información de 1 sitio web:
1. IP Address.
2. Sistema Operativo.
3. WebServer.
4. Fechas de cambios.
http://toolbar.netcraft.com/site_report
¿Qué es Google Hacking?
Es una técnica que utiliza el buscador Google para encontrar
datos de sitios.
Ejemplos:
Buscar en google: indexof[packet tracer]
Buscar en google: warning .com.py
Actividad opcional: Investigar un sitio.
Elegir una empresa de cualquier parte del mundo.
A esta altura del proyecto, usted ya identificó las tareas que deben
realizarse, estimó la cantidad de trabajo, conoce la fecha límite e
incluso consideró los riesgos.
Una vez creada la red, tiene que asignar responsables para cada
tarea, asegurarse de que se realizan y adaptar la red conforme los
riesgos que habrá cuando se convierta en realidad.
Razones por las que el software se entrega tarde
1. Fecha límite irreal establecida por alguien externo al equipo.
2. Requerimientos del cliente variables que no se reflejan en
cambios del calendario.
3. Mala estimación del esfuerzo que se requerirá.
4. Riesgos que no se consideraron cuando comenzó el proyecto.
5. Dificultades humanas que no podían preverse por anticipado.
6. Falta de comunicación entre el personal del proyecto.
Fechas Límites Agresivas
Las fechas límite agresivas (léase “irreales”) son un hecho de
la vida en el negocio del software.
Existe un mito común que todavía creen muchos: “Si nos atrasamos
en el calendario, siempre podemos agregar más programadores y
ponernos al día”.
Por desgracia, agregar personal tardíamente en un proyecto con
frecuencia tiene efectos negativos.
Definición del Conjunto de Tareas
Con la finalidad de desarrollar un calendario, en la línea de tiempo del
proyecto debe distribuirse un conjunto de tareas.
https://gantter.com/
Microsoft Project
https://www.ganttproject.biz/
Conclusiones
La calendarización comienza con la descomposición del
proceso. Las características del proyecto se usan para
adaptar un conjunto de tareas adecuado para el trabajo que
se va a realizar.
Una red de tareas muestra cada tarea de ingeniería, su
dependencia de otras tareas y su duración proyectada.
La red de tareas se usa para calcular la ruta crítica, un
cronograma y otra información del proyecto.
Al usar el calendario como guía, puede monitorearse y
controlar cada paso en el proceso de software.