Análisis y Diseño Flashcards
Jmeter
Herramienta de Apache que permite realizar pruebas de rendimiento inyectando carga a la aplicación a evaluar
SonarQube
Herramienta de SW libre para evaluar la calidad del código fuente de una aplicación, que proporciona información del nivel de mantenimiento
FURPS
5 Características como factores de calidad: Funcionality, Usability, Reliability, Performance, Support
MTTF, MTTR, MTBF
Medidas de disponibilidad Mean Time to: -Failure -Recovery -Between failure
MDT (Mean Down Time)
Tiempo medio de parada tras fallo
Complejidad Ciclomática
Nº de bucles que tiene el código
[ERS] Especificación de Requisitos Software
ASI - documento formal en el que se recogen los requisitos del sistema
SMART
Características que deben cumplir los requisitos Specific Measurable Attainable Realisable Traceable
INVEST
método para escribir buenas historias de usuario. Independent Negotiable Valuable Estimatable Small Testable
Historia de usuario
Especificación de un requisito con lenguaje común de usuario
Como [rol] quiero [funcionalidad] para [beneficio]
Épicas si son demasiado grandes y deben detallarse más
CVS
Herramienta para el control de versiones
[SVN] Apache Subversion
Herramienta para el control de versiones
Mercurial
Herramienta de control de versiones escrita en python
Monotone
Herramienta para el control de versiones distribuido
Tunning (rendimiento)
modificación del sistema para rendimiento óptimo
Acoplamiento
Grado de independencia entre los módulos de un SI
Cohesión
Medida interna de la relación funcional de los elementos de un módulo de un SI
Descomposición (DSI)
Separación de una función contenida en un módulo para formar un nuevo módulo
Fan-out y Fan-In (DSI)
Fan-out: nº de módulos controlados directamente por otro módulo (5-9)
Fan-in: nº de módulos que controlan a otro módulo. Medida de reusabilidad
Protocolo de un objeto (POO)
Mensajes a los que puede responder ese objeto
Atributo/Método protegido (POO)
Atributo/método que solo puede ser usado por la propia clase o sus clases hijas
Sobrecarga (POO)
En una misma clase tener dos métodos que se llaman igual, y según los atributos ejecuta un método u otro
Persistencia (POO)
Cualidad que se refeire a la permanencia de un objeto (almacenándolo en memoria), serializándolos previamente.
SOLID
Principios de la POO Single responsability Open/closed Sustitución de Liskov Interface Segregation Dependency Inversion
GRASP
Buenas prácticas recomendables para el diseño de SW.
IDEF0
Método de modelado de funciones derivado de Metodología SADT
[DFD] Diagrama de Flujo de datos
Representa cómo fluye la información en el sistema y qué transformaciones se hacen sobre la misma. Se descompone en niveles 0 - Contexto 1 - Subsistemas 2 - Funciones de subsistemas 3 - Sunfunciones de funciones 4 - de procesos
[DEC] Diagramas de estrucuta de cuadros de Constantine
Se utiliza para modelar módulos de un sistema y sus relaciones a partir de DFD
[DTE] Diagrama de Transición de Estados
Es una técnica de modelado que se centra en el comportamiento del sistema a lo largo del tiempo
UML
Es un lenguaje de modelado que permite modelar, construir y documentar los elementos que forman un sistema SW orientado a objetos
OCL (Object Constraint Language)
Lenguaje de restricción de objetos para especificar conceptos ambiguos sobre los distintos elementos de un diagrama
XMI (XML Metadata Interchange)
Schema XML que permite contruir una representación SVG de los diagramas UML para poder ser intercambiados
Diagrama de clases
Colección de clases, atributos y métodos y relaciones entre ellas.
Diagrama de objetos
Representación en memoria de los objetos y sus relaciones en un instante determinado
Diagrama de objetos
Representación en memoria de los objetos y sus relaciones en un instante determinado
Diagrama de componentes
Representa los componentes SW reutilizables de una aplicación con sus interfaces púclicas y las relaciones entre ellos
Diagrama de despliegue
Muestra cómo y dónde se desplegarán los diferentes elementos del sistema (a nivel físico), indicando los procolos entre nodos (máquinas físicas). Cada nodo tiene sus elementos desplegados.
Diagrama de estructura compuesta
Muestra la estructura interna de un clasificador (clase, componente o caso de uso) y las colaboraciones que tiene esta estructura
Diagrama de casos de uso
Presenta visión de alto nivel de la funcionalidad que debe proporcionar el sistema, indicando los actores con los que interactúa y la funcionalidad disponible
Diagrama de máquina de estados
muestra los diferentes estados por los que pasa un sistema u objeto a lo largo de su tiempo de vida
Diagrama de actividades
Muestra la secuencia de actividades de un proceso, incidiendo en si éstas se ejecutan de forma secuencial o en paralelo, así cmo las desiciones que se toman.
Diagrama de interacción
Muestran como se interrelacionan los objetos entre ellos mediante el paso de mensajes
Diagrama de secuencia
Muestra el comportamiento dinámico de un sistema, poniendo énfasis en el intercambio de mensajes que se producen entre sus objetos y la ordenación temporal de éstos
Diagrama de comunicación
Muestra cómo reaccionan las clases cuando reciben mensajes
Vistas 4+1
Describe los aspectos esenciales de la arquitectura del sistema Vista lógica Vista física Vista de procesos Vista de desarrollo Escenarios
Patrón
Solución repetible que en base a la experiencia se sabe que sirve para solucionar un problema común
Builder
Patrón que permitecrear objetos complejos usando otro objeto más simple
Factory Method
Patrón que permite crear objetos sin tener que especificar su clase exacta
Singleton
Patrón que se emplea cuando buscamos que únicamente se declare una instancia de una clase
Adapter
Patrón que adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla
Fecade
Patrón que oculta complejidad de interactuar con un conjunto de sistemas proporcionando una interfaz de alto nivel
Observer
Patrón que hace que cuando un objeto cambie de estado se notifiquen y actualicen automáticamente todos los objetos que dependen de él.
State
Patrón que permite a un objeto alterar su comportamiento cuando su estado interno cambia
Strategy
patrón que se centra en definir la forma en la que se produce el intercambio de mensajes entre distintos componentes. El cliente puede elegri entre un conjunto de algoritmos según sus necesidades
Antipatrón de diseño
Son patrones de diseño que conduce a una mala solución para un problema
Herramientas CASE
Aplicaciones SW de apoyo durante el desarrollo del sistema.
Upper CASE -> planificación estratégica y gestión de proyecto
Middle CASE -> Automatización de análisis y diseño
Lower CASE -> Automatización de la programación, generación de código
I-CASE
Herramienta SW de apoyo que da soporte durante toda la vida del desarrollo SW
Sistema Distribuido
Colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones, que se comunican y coordinan mediante paso de mensajes.
CORBA
Es un middleware que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que se ejecuten en distintas computadoras puedan trabajar juntos
Marshalling
Serialización del objeto para enviarlo por la red (especialmente en sistemas distribuidos)
ORB
CORBA
Facilita la comunicación entre objetos haciendo peticiones cliente/servidor
IDL
CORBA
Lenguaje que se utiliza para definir la interfaz común. Tiene:
Stub (objeto remoto de cliente)
Skeleton (objeto remoto de servidor)
RMI (Remote Method Invocation)
[Java]
mecanismo para la comunicación de objetos distribuidos creados con tecnología Java.
EJB (Enterprise Java Beans)
Componentes distribuidos Java que se comunican mediante RMI. 3 tipos: de sesión, de mensajería y se entidad
JINI (Jini is Not Initials)
permite interconexión entre dispositivos con JVM
DCOM (Distributed Component Object Model)
[Microsoft]
Utiliza RCP y extiende del modelo COM para la comunicación de objetos distribuidos
RPC
(Llamada a procedimiento Remoto)
Comunicación de alto nivel en la que el cliente llama a una función o procedimiento en el servidor y recibe el result
Websphere
Middleware de IBM, es decir, SW que asiste a una aplicación para interactuar o comunicarse con otra aplicación, red, hw o SO
[aplicaciones distribuidas]
Tuxedo
Middleware de Oracle, es decir, SW que asiste a una aplicación para interactuar o comunicarse con otra aplicación, red, hw o SO
[aplicaciones distribuidas]
SOA
Arquitectura de SW que define la utilización de servicios para dar soporte a los requisitos de negocio corporativo
SOI
Es la aplicación de la tecnología SOA a la infraestructura TI (procesamiento, almacenamiento y capacidad de redes virtuales)
SOAP
Simple Object Access Protocol
Es un protocolo que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML
WSDL
Es un formato XML que se utiliza para describir servicios web (independiente de la plataforma/lenguaje)
REST
Representational State Transfer
Más simple que SOAP, utiliza los métodos de HTTP para manejar los recursos (mediante URIs)
WS-BRSP
Conjunto de OASIS de mejores prácticas para la interoperabilidad de servicios web
XML Encryption
Documentos XML para garantizar confidencialidad
WS-Security
Garantizar integridad y seguridad en mensajería
SAML
Usado por cl@ve.
Esquema XML para el intercambio de datos de autenticación y autorización
Apache AXIS2
Framework que implementa SOAP y REST
Apache CXF
Framework que implementa SOAP y REST
ESB (Enterprise Service Bus)
Middleware que proporciona servicios de integración de los distintos servicios de mensajería basada en estándares y servicios de sincronización. Getiona la comunicación entre servicios web.
BPM (Business Proces Management)
Disciplina empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio
BPEL
Lenguaje basado en XML que permite definir o modelar procesos de negocio
BPMN
Notación gráfica que permite el modelado de procesos de negocio y el intercambio de datos y mensajes entre participantes
XPDL
Lenguaje basado en XML para la definición de modelos de procesos de negocio.
Orquestación
Modelo centralizado en el que una entidad central es la encargada de definir la lógica de interacción entre los diferentes servicios (suele definirse con BPEL)
Coreografía
Modelo para la composición de servicios distribuidos, definiendo las conversaciones que se pueden producir entre ellos