Lenguajes de programación y calidad del software

Instrucciones definición/E/S/flujo(condición y bucles)

Software sistema(SO, controladores,herramientas) /S.Aplicacion(Programas,S.Ofimatico)

Von Neumann(memoria principal,E/ S,buses,arit-log,U.Control)

L máquina: dependientes de la máquina/ conocimiento arquitectura de la CPU/Es el lenguaje nativo del microprocesador.

L ensambladores: representación simbólica de LM, menos tediosa que LM/ Las instrucciones se identifican por símbolos en lugar de códigos numéricos/ hay una correspondencia 1 a 1 entre las sentencias en LE y en LM / muy dependiente de la CPU para la que se va a utilizar.

L de alto nivel: Son los más utilizados para realizar programas/ nivel y estilo de escritura fácilmente legible y comprensible/ Son independientes de la máquina. Portabilidad. Cada instrucción ->en LM que son las que la CPU podrá entender y ejecutar/ Una instrucción de un lenguaje de alto nivel puede transformarse en decenas de instrucciones en LM

L declarativos: Son los más parecidos al lenguaje humano, gran potencia expresiva y funcionalidad/lenguajes de órdenes, dominados por sentencias que expresan “lo que hay que hacer” en vez de “cómo hacerlo”. Lenguajes de búsqueda de datos: SQL. Lenguajes estadísticos: SAS y SPSS.

L interpretados: LISP, PROLOG… / compilados: C, Modula-2… El lenguaje Java es un lenguaje compilado-interpretado.

Científica: principios matemáticos (Fortran)/ Procesamiento de datos: creación, mantenimiento, extracción y compendio de datos en registros y archivos, E/S (COBOL)/ Inteligencia artificial (LISP y PROLOG)/ Procesamiento de texto (SNOBOL)/ Programación de sistemas: interfaz entre el hardware del ordenador y los programadores y usuarios del mismo (C, Módula 2). Los lenguajes de script: diseñados para realizar tareas variadas de control y auxiliares.

Paradigma de programación: imperativos (C)/ procedural, divide el problema en partes más pequeñas (C)/ orientada a objetos (Java, C++)/ funcional, evaluando funciones de manera recursiva (Lisp, Haskell)/ lógica (Prolog) el lugar de ejecución: L de servidor (PHP)/ L de cliente (JavaScript). soporte a la concurrencia: L concurrentes (Ada, Java) /L no concurrentes (C)



Calidad del software: Funcionamiento/Funcionalidad

Debe hacer lo que dice que hace/ Usabilidad. Hacerlo de forma adecuada.

Operación: uso del software. Corrección/ Fiabilidad/ Eficiencia/ Integridad/ Facilidad de uso

Transición: capacidad de usar un software en distintos ordenadores. Portabilidad/ Reusabilidad/ Interoperabilidad: interactuar programas diferentes

Revisión: facilidad que presenta para ser alterado. Mantenibilidad/ Flexibilidad/ Facilidad de prueba

Ciclo de vida de software: especifica una estructura temporal en la que se desarrollará y mantendrá el producto software.

Cascada:1.Plan del Proyecto: El modelo del ciclo de vida que se utilizará. La estructura organizacional del proyecto. La programación preliminar del desarrollo. La estimación de costes y recursos. Las herramientas y técnicas que se emplearán. Los estándares que se seguirán. El análisis de riesgos./2.Definición de Requisitos: Funcionales. De interfaz externa. De ejecución. Restricciones de diseño. Atributos de calidad./ 3.Diseño: las relaciones entre ellos, la estructura de la programación, y manteniendo un registro de las decisiones, / 4.Instrumentación: Incluye la traducción de las especificaciones del diseño en código fuente, su depuración, documentación y pruebas unitarias/ 5.Pruebas del Sistema: técnicas para determinar si un sistema funciona. Establecer estrategias de prueba para la corrección de un programa. Pruebas unitarias. Pruebas de integración. Pruebas de aceptación/6.Mantenimiento: Adaptativas. Perfectivas. Correctivas. Preventivas.

Prototipos: Ilustrar los formatos de datos de entrada, mensajes, informes y diálogos al cliente./Explorar aspectos técnicos del producto propuesto/prototipado extremo:1. construye prototipo estático que consiste en páginas HTML. 2. toda la programación en las páginas, completamente funcionales. 3. se implementan los servicios.

Evolutivos: 1.modelo iterativo: Busca minimizar el riesgo del proyecto, dividirlo en subproyectos más adaptables a los cambios que se puedan ir produciendo en los requisitos. /2.Espiral: primer circuito produce una especificación del producto; Los pasos siguientes generan un prototipo… (Planificación, Análisis de riesgos, Ingeniería y Evaluación del cliente)



Cuarta generación

+productividad/+influencia en diseño/Producción rápida/mantenimiento Software

Principios:1. entrega rápida de sw útil. 2. requisitos cambiantes. 3. entrega software funcional con frecuencia. 4. El sw funcionando es la principal medida de progreso. 5. Desarrollo sostenible 6. Cooperación cli-des. 7. conversación cara a cara. 8. personas motivadas. 9.excelencia técnica y buen diseño. 10. simplicidad . 11. Equipos auto-organizados. 12. Adaptación a las circunstancias cambiantes.

Métodos ágiles: partir de un presupuesto y unas fechas de entrega -> implementar la funcionalidades.

Metodología RUP(diagramas UML) Fases: Comienzo(visión general)/ Elaboración(requerimientos)/ Construcción (funcionamientos)/transición( Sw->cliente)

Scrum: Inspección y adaptación. Autoorganización. Priorización. Ritmo de trabajo fijo. Mejora continua. Calidad. Time-boxing. Multidisciplinar. Flexibilidad./El Product Backlog: requisitos (PO),El Sprint Backlog.(equipo), El Impediments Backlog: priorizar los impedimentos (SM)/Reuniones: Planificación del Sprint, Reunión diaria, Revisión del Sprint, Retrospectiva de Sprint.

Proceso Scrum se divide en etapas: la preparación, y las sucesivas iteraciones o Sprints, agrupadas en entregas./Características: Card. Conversation. Confirmation./INVEST(Independent, Negotiable, Valuable, Estimable, Size or small(sintetico), Testable/DEEP(detallado, emergente, estimado,priorizado)

XP: requisitos vagos/equipo-/resultados rap/adaptativo.

Valores: Comunicación. Simplicidad. Feedback. Coraje. Respeto. El beneficio mutuo. La auto semejanza. La diversidad. Los fallos. Pequeños pasos.

Practicas Primarias: 1.Trabajar con historias de usuario. 2.Realizar ciclos semanales de desarrollo. 3. Organizar revisiones trimestrales. 4. Trabajar con holgura. 5. El equipo debe sentarse juntos.6. El equipo debe ser completo.7. Tener en el puesto de trabajo la información.8. Mantener la energía en el trabajo a un ritmo sostenible, evitando las horas extra. 9. Realizar con frecuencia programación en parejas. 10. Diseño incremental o evolutivo. 11. Realizar las pruebas antes de programar.12. Integración continua. 13. Construir en diez minutos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.