UF1: DES SW Flashcards
Estructura de un PC
- UC (Unidad de Control): Interpreta y ejecuta las instrucciones máquina que conforman los programas y generan las señales de control necesarias para llevarlas a cabo.
- ALU (Unidad aritmético-lógica): Cálculos y decisiones lógicas.
- Registros que posee la UC: Almacenamiento de la información temporal.
• CP (Contador del programa)
• RI (Registro de instrucción)
• RDM (Registro de dirección de memoria)
• RIM (Registro de intercambio de memoria)
• DI (Decodificador de instrucción)
• Reloj: Impulsos eléctricos a intervalos constantes. Marca los pasos a realizar para cada instrucción y el ritmo de funcionamiento.
• Secuenciador. - Buses: Circulación de instrucciones y datos.
Cuando se ejecuta una instrucción, hay dos fases:
Búsqueda y ejecución.
Etapas código:
- Código Fuente (realizado por los programadores)
- Código objeto (compilado. Representación intermedia de bajo nivel)
- Código ejecutable (código objeto + librerías).
Tipos de SW (licencias)
1. Según tarea que realizan: > De sistema, de aplicación, > de programación/desarrollo, > de uso específico y Multimedia. 2. Según el método de distribución: > Shareware (pago), > Freeware (libre, pero con derechos de autor) y > Adware (con publicidad). 3.Según licencia: > Software libre, > software propietario (Shareware o Freeware) y > de dominio público.
Compilador
Tomará como datos nuestro programa escrito en lenguaje de alto nivel y dará como resultado el mismo programa, pero escrito en lenguaje máquina.
Ejemplo: C, C++, C#, Objetive-C…
Enlazador
Insertará, en el código objeto, las librerías necesarias para que se pueda producir un programa ejecutable.
Si se hace referencia a otros ficheros que contengan las librerías especificadas en el código objeto, se combina con dicho código y se crea el fichero ejecutable
Intérprete
Efectúa la traducción y ejecución simultánea de cada una de las sentencias del programa.
Ejemplos de algunos lenguajes son: PHP, JavaScript, Python, Perl, Logo, Ruby, ASP, Basic, Prolog…
El compilador javac generará
Uno o varios archivos en bytecode (lenguaje intermedio entre el ordenador y el S.O.), que tendrán la extensión .class.
> Código Java (Programa.java) >COMPILADOR javac > Código Bytecode Programa.class > JAVA VM > 0101…> El código fuente (estará escrito en archivos de texto planos con la extensión .java)
La Java VM coge y traduce el bytecode en código binario para que el procesador de nuestro ordenador sea capaz de reconocerlo. Los ficheros .class podrán ser ejecutados en múltiples plataformas
Máquinas virtuales
De sistema / proceso
Lenguajes de programación:
Según paradigma de programación:
> Imperativos (estructurada, modular y POO),
> funcionales o lógicos.
Según nivel de abstracción:
> Alto,
> medio (C) y
> bajo.
Lenguaje ensamblador
- El modelo de programación contiene registros de 8, 16 y 32 bits.
- Los registros de 8 bits son AH, AL, BH, BL, CH, CL, DH y DL, y se hace referencia a ellos cuando se forma una instrucción en la que se utilizan estas designaciones de dos letras. Por ejemplo, una instrucción ADD AL,AH suma el contenido de 8 bits de AH con el de AL. (Sólo AL cambia debido a esta instrucción.)
• Los registros de 16 bits son AX, BX, CX, DX, SP, BP,
DI, SI, IP, FLAGS, CS, DS, ES, SS, FS y GS. También
se hace referencia a estos registros con las designaciones de dos letras. Por ejemplo, una
instrucción ADD DX, CX suma el contenido de 16 bits de CX con el de DX. (Sólo DX cambia debido a esta
instrucción.)
• Los registros extendidos de 32 bits son EAX, EBX, ECX, EDX, ESP, EBP, EDI, ESI, EIP y EFLAGS. Por ejemplo, una instrucción ADD ECX, EBX suma el contenido de 32 bits de EBX con el de ECX. (Sólo ECX cambia debido a esta instrucción.)
*Ver ejemplos en resumen
Modelos de desarrollo de SW
A) En cascada | En cascada con realimentación
B) Iterativo incremental (Evolutivo)
C) En espiral (Evolutivo)
D) En V
- Ver gráficos en resumen
Modelo de desarrollo en Cascada | En cascada con retroalimentación
VENTAJAS:
- Fácil de comprender, planificar y seguir.
- La calidad del producto resultante es alta.
- Permite trabajar con personal poco cualificado.
INCONVENIENTES:
- La necesidad de tener todos los requisitos definidos desde el principio.
- Es difícil volver atrás si se cometen errores en una etapa.
- El producto no está disponible para su uso hasta que no está completamente terminado.
SE RECOMIENDA:
- El proyecto es similar a alguno que se haya realizado con éxito anteriormente.
- Los requisitos son estables y están bien comprendidos.
- Los clientes no necesitan versiones intermedias.
Modelo iterativo incremental: (Evolutivo)
VENTAJAS:
- No necesitan conocer todos los requisitos.
- Permite la entrega temprana al cliente de partes operativas del software.
- Las entregas facilitan la realimentación de los próximos entregables.
INCONVENIENTES:
- Es difícil estimar el esfuerzo y el coste final necesario.
- Se tiene el riesgo de no acabar nunca.
- No es recomendable para desarrollo de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido y/o de alto índice de riesgos.
SE RECOMIENDA CUANDO:
- Los requisitos o el diseño no están completamente definidos y es posible que haya grandes cambios.
- Se están probando o introduciendo nuevas tecnologías.
Modelo en espiral (evolutivo)
Cada ciclo está formado por 4 fases y cuando termina produce una versión incremental del software con respecto al ciclo anterior.
En este aspecto se parece al modelo iterativo incremental con la diferencia de que en cada ciclo se tiene en cuenta el análisis de riesgos.
Utiliza la construcción de prototipos como mecanismo de reducción de riesgos.
VENTAJAS:
- No necesitan conocer todos los requisitos.
- Análisis del riesgo en todas las etapas.
- Reduce riesgos del proyecto.
- Incorpora objetivos de calidad.
INCONVENIENTES:
- Es difícil evaluar los riesgos.
- El costo del proyecto aumenta a medida que la espiral pasa por sucesivas iteraciones.
- El éxito del proyecto depende en gran parte de la fase de análisis de riesgo.
SE RECOMIENDA CUANDO:
- Proyectos de gran tamaño y que necesitan constantes cambios.
- Proyectos donde sea importante el factor riesgo.
Modelo en V
El lado izquierdo de la V representa la descomposición de las necesidades y la creación de las especificaciones del sistema.
El lado derecho de la V representa la integración de las piezas y su verificación. Es muy similar al modelo de cascada, ya que es muy rígido y contiene una gran cantidad de iteraciones.