1. La solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, C) y se obtiene un programa.
2. Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.
3. fases de resolución de un problema
3.1. los módulos son diseñados de modo descendente
3.1.1. es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento.
3.1.1.1. lenguajes
3.1.1.1.1. BASIC
3.1.1.1.2. PASCAL
3.1.1.1.3. FORTRAN
3.1.1.1.4. GOTO
3.1.1.1.5. C
3.1.2. El diseño descendente (top-down) es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise).
3.1.2.1. Estructuras de control
3.1.2.1.1. Las estructuras de control de un lenguaje de programación son métodos de especificar el orden en que las instrucciones de un algoritmo se ejecutarán.
3.1.2.1.2. tipos
3.2. análisis del problema
3.2.1. documentacion
3.2.2. mantenimiento
3.2.2.1. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios
3.3. El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa
3.4. diseño del algoritmo
3.4.1. codificacion
3.4.2. Ejecución, verificación y depuración
3.4.2.1. El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados bugs, en inglés) que puedan aparecer.
3.5. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema.
4. programación estructurada
4.1. el programa tiene diseño modular
4.2. algoritmo
4.2.1. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos.
4.2.1.1. ¿Que es ?
4.2.2. características
4.2.2.1. preciso
4.2.2.2. definido
4.2.2.3. finito
4.3. cada modulo se codifica utilizando las tres estructuras básicas de control.
4.4. recusos abstractos
4.4.1. consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaces de ejecutarlas o que constituyan instrucciones de computadoras disponibles.
5. programación modular
5.1. método de diseño mas flexible y potentes para mejorar la productividad de un programa
5.1.1. se divide en módulos (partes independientes), cada una de las cuales ejecuta una Única actividad o tarea y se codifican independientemente de otros módulos.
5.1.1.1. ejemplos
5.1.1.2. modulo 1
5.1.1.3. modulo 2
5.1.1.4. modulo 3
6. herramientas de programación
6.1. representacion grafica de un algoritmo
6.1.1. diagrama de flujo
6.1.2. pseudocódigo
7. Un software es fácil de utilizar si se puede comunicar consigo de manera cómoda.
8. los conceptos que ayudan a crear pequeños programas aquellos que varían en longitud desde unas pocas líneas a unas pocas páginas.
9. el ciclo de vida del software comienza con una idea inicial, incluye la escritura y depuración de programas, y continúa durante años con correcciones y mejoras al software original.
9.1. analisis
9.1.1. La primera etapa en la producción de un sistema de software es decidir exactamente qué se supone hade hacer el sistema. Esta etapa se conoce también como análisis de requisitos o especificaciones
9.1.1.1. Análisis y definición del problema.
9.1.1.2. Especificación de requisitos.
9.2. diseño
9.2.1. La etapa de diseño del sistema indica cómo ha de hacerse.
9.3. implementacion
9.3.1. La etapa de implementación (codificación) traduce los algoritmos del diseño en un programa escrito en un lenguaje de programación.
9.3.1.1. lenguajes
9.3.1.1.1. PASCAL
9.3.1.1.2. FORTRAN
9.3.1.1.3. COBOL
9.3.1.1.4. JAVA
9.4. vereficacion
9.4.1. La etapa de pruebas ha de comenzar tan pronto como sea posible en la fase de diseño y continuará a lo largo de la implementación del sistema.
9.5. mantenimiento
9.5.1. Cuando el producto software (el programa) se ha terminado, se distribuye entre los posibles usuarios, se instala en las computadoras y se utiliza (producción) .
9.6. si es necesario depurar modulo
10. Representación grafica de los algoritmos
10.1. Diagrama de flujo
10.1.1. None
10.1.2. Standard
10.1.3. Advanced
10.1.3.1. Multilevel
10.1.3.1.1. Name, Category, Price etc
10.2. Diagrama N-S
10.2.1. pseudocodigos
10.2.2. lenguaje español - ingles
10.2.3. formulas
11. diseño de algoritmo
11.1. programar un modulo
11.2. comprobar modulo
11.2.1. En la etapa de análisis del proceso de programación se determina qué hace el programa.
12. ciclo de vida del software
12.1. es el tiempo que se extiende desde la concepción inicial del sistema hasta su eventual retirada de la comercialización o uso del mismo
13. factor en la calidad del software
13.1. eficiencia
13.1.1. La eficiencia de un software es su capacidad para hacer un buen uso de los recursos que manipula
13.2. portabilidad
13.2.1. es la facilidad con la que un software puede ser transportado sobre diferentes sistemas físicos o lógicos
13.3. verificabilidad
13.3.1. es su capacidad para soportar los procedimientos de validación y de aceptar juegos de test o ensayo de programas.
13.4. fácil de utilizar
13.5. corrección
13.5.1. Capacidad de los productos software de realizar exactamente las tareas definidas por su especificación
13.6. las construcción de un software requiere el cumplimiento de estas características entre otras.
14. metodos formales de verificacion de programas
14.1. dos conceptos importantes son precondiciones y postcondiciones invariantes que ayuden a documentar,corregir y clasificar el diseño de modulos y de programación
14.1.1. precondicion
14.1.1.1. Predicado lógico que debe cumplirse al comenzar la ejecución de una operación
14.1.2. postcondicion
14.1.2.1. Predicado lógico que debe cumplirse ai acabar la ejecución de una operación; siempre que se haya cumplido previamente la pre condición correspondiente.