Sunteți pe pagina 1din 18

DISEÑO Y

DESARROLLO DE
SISTEMAS
DOCENTE:ING. MARIA ISABEL ACURIO GUTIERREZ
INTEGRANTES:
-PAUCARHUANCA MOLINA GINO GALOIS
-QUISPE PARI ANTONY DAVID
-ANAYA RODRIGUEZ SEBASTIAN
-VILLASANTE HUARCA NICOLE
¿DE QUÉ MODO PROGRAMA LA GENTE?

• Muchos usuarios de computadoras dependen de El proceso de programación también suele estar dividido en
cuatro fases, aunque
aplicaciones programadas profesionalmente (hojas de
casi siempre están solapadas unas con otras:
cálculo, programas de edición de imágenes,
1. Definición del problema.
navegadores web, etc.) como herramientas para la
2.Creación, depuración y verificación del algoritmo.
resolución de sus problemas.
3. Escritura del programa
• Pero la programación es una forma especializada del 4. Verificación y depuración del programa.
antiguo modelo de re-solución de problemas.
• Esta actividad suele implicar cuatro pasos:
1. Entender el problema.
2. Idear un plan para la resolución del problema.
3. Llevar a cabo el plan.
4. Evaluar la solución
• Refinamiento por pasos
• Lo primero de todo es dividir el problema en tres partes:
DE LA IDEA AL ALGORITMO comienzo, mitad y finalización.
• Cada una de estas tres partes es en sí misma un
pequeño problema de programación por resolver.
• Vamos a desarrollar un sencillo algoritmo para • inicio del juego
ilustrar todo el proceso. Emperezaremos con el
• repetir el proceso hasta que se acierte el número o se
planteamiento del problema:
alcance el número máximo de intentos
• Un profesor de un colegio necesita un programa
• fin del juego
para jugar a «adivinar el número que ayude a
que sus estudiantes desarrollen su lógica y les
permita practicar la aritmética.
• En este juego, la computadora escoge un número
comprendido entre 1 y 100 y ofrece al jugador
varias oportunidades para adivinarlo. Tras cada
intento fallido, la máquina responde diciendo si
el número introducido es mayor o menor que el
que debe adivinarse.
• En resumen, el problema es escribir un programa
que pueda:
• jugar a “adivinar el número”
• Estos tres pasos son el esqueleto desnudo del
algoritmo. Una vez completado, estas tres partes
serán ejecutadas en secuencia. El siguiente
refinamiento debe completar algunos detalles de
cada parte:
• inicio del juego
• -mostrar las instrucciones
• -escoger un número comprendido entre 1 y 100
• repetir el proceso hasta que se acierte el número o
se alcance el número
• máximo de intentos
• -solicitar el número al usuario
• -responder a su solicitud
• fin repetir
• fin del juego
• mostrar un mensaje de finalización
ESTRUCTURAS DE COMPROBACIÓN
CONTROL DEL ALGORITMO
El siguiente paso es comprobar el algoritmo. La verificación del
programa completo vendrá más tarde; por ahora, esta fase está
• Son estructuras lógicas que controlan el pensada para verificar la lógica del algoritmo.
orden en el que se ejecutan las Podemos seguir la serie de instrucciones probando con varios números.
instrucciones. Podríamos, por ejemplo, utilizar como número objetivo el 35 y probar
• Este algoritmo usa tres de estas estructuras: con el 15, 72, 52 y 35. Estos números comprueban las tres posibles
-Secuencia condiciones de la estructura si-entonces-en caso contrario
(if-then-else), y muestran lo que ocurre cuando el jugador escoge el
• -Selección número correcto.
• -Repetición
DEL ALGORITMO AL UN PROGRAMA SIMPLE
PROGRAMA Echemos un vistazo a nuestro algoritmo escrito en C++, una popular
variación del lenguaje C (el nombre de C no viene de ningún antojo
de su creador; es una mejora de otro que se llamaba B).
Este programa, al igual que cualquier otro escrito en C++ que
esté bien estructurado, dispone de tres partes, de forma análoga a
• Una vez terminada la fase de comprobación, las recetas de un libro de cocina:
el algoritmo está preparado para convertirse 1.
La cabecera del programa, que contienen el nombre del mismo y los
• en programa. Como ya disponemos de la
ficheros de datos (el equivalente al nombre y la descripción del plato
estructura lógica del mismo, el proceso de a cocinar).
codificación (escribir un programa a partir 2.
del algoritmo) es simple. Las sentencias del Las declaraciones y definiciones de las variables y cualquier otro
mismo se transforman directamente en elemento definido por el programador (los ingredientes utilizados en
líneas de código en el lenguaje de la receta).
programación que mejor satisfaga las 3.
necesidades del programador. El cuerpo del programa, que contiene las instrucciones del mismo
encerradas entre llaves, {} (el equivalente a los pasos de la receta).
DENTRO DE LA
COMPUTADORA Para convertir un programa en lenguaje máquina, necesitamos
un software de traducción.
• Antes de que pueda ser ejecutado, es necesario Dicho programa puede ser un intérprete (un programa que
introducir el programa en la memoria de la traduce y transmite cada sentencia de forma individual, del
computadora, guardarlo en un fichero en el disco y mismo modo que en las Naciones Unidas se traduce un
convertirlo al lenguaje máquina nativo de la discurso del ruso al español), o un compilador (un programa
computadora. Para introducir y guardar el que traduce el programa completo antes de pasarlo a la
programa, podemos utilizar un editor de textos. computadora, del mismo modo que un estudiante puede
traducir la novela Guerra y Paz del ruso al español).
LENGUAJES DE LENGUAJE MÁQUINA Y
PROGRAMACIÓN LENGUAJE ENSAMBLADOR
Y METODOLOGÍAS Cada computadora tiene un lenguaje nativo, un lenguaje
máquina. Existen similitudes entre las distintas clases de
• C++ es uno de los cientos de lenguajes máquina: todos ellos tienen instrucciones para
lenguajes de programación utilizados efectuar las cuatro operaciones aritméticas básicas, para
hoy en día. Algunos son herramientas comparar pares de números, instrucciones para formar bucles,
para los programadores profesionales etc. Pero, al igual que el español y el francés, cada uno de estos
que se encargan de desarrollar el lenguajes máquina son lenguajes diferentes, y las máquinas
software que el resto de mortales basadas en uno de ellos no pueden entender los programas
utilizamos escritos en otro.

Los lenguajes de alto nivel, que están a medio camino entre el lenguaje natural de
los humanos y los lenguajes máquina, fueron desarrollados a principio de la década
LENGUAJES DE de los 50 para simplificar y perfilar el proceso de programación. Lenguajes como FOR
TRAN
ALTO NIVEL y COBOL permiten que los científicos, ingenieros y gente de negocio escriban
programas usando una terminología y notación familiar en lugar de las enigmáticas
instrucciones máquina. En la actualidad, los programadores pueden escoger
entre cientos de lenguajes de alto nivel.
• De los cientos de lenguajes de alto nivel
que se han desarrollado, algunos se han Programación estructurada
convertido en muy populares debido a su Es una técnica para hacer más productivo y sencillo el proceso
amplio uso: de programación. Un programa estructurado no depende de
 FORTRAN sentencias GoTo para controlar su flujo de ejecución. En lugar
de ello, está construido a base de pequeños programas,
 COBOL llamados módulos o subprogramas, los cuales a su vez también
 LISP están construidos a partir de otros módulos más pequeños. El
programador combina estos subprogramas mediante las tres
 Basic
estructuras de control básicas: secuencia, repetición y
 Pascal selección. Un programa está bien estructurado si cumple las
siguientes reglas:
C
 Esta construido sobre la base de módulos lógicamente
 C++ coherentes.
 C#  Los módulos están ordenados jerárquicamente.
 Es sencillo y fácil de leer.
 JAVA
 J++ Pascal y Ada fueron diseñados para fomentar la programación
 Active x estructurada y disuadir del «código spaghetti». El éxito de estos
lenguajes indujo a los informáticos a desarrollar versiones de
 Python
Basic y FORTRAN que siguieran los patrones de la programación
 PROLOG estructurada.
 LOGO
PROGRAMACIÓN
PROGRAMACIÓN
ORIENTADA A
VISUAL
OBJETOS Las herramientas de programación visual permiten a los
programadores crear grandes secciones de sus programas
• la OOP (Programación orientada a objetos, arrastrando imágenes y apuntando a objetos en pantalla,lo que
Object-Oriented Programming)ha capturado la elimina una gran parte del tedioso proceso de codificar al modo
atención de la comunidad desarrolladora de tradicional.
software. Este tipo de programación se utilizó por
primera vez en la década de los 70 a través de un
lenguaje llamado Smalltalk.
LENGUAJE PARA USUARIOS
• Con la tecnología OOP, los programadores pueden
construir programas a partir de objetos Algunos lenguajes están diseñados para los no-programadores.
prefabricados del mismo modo que los albañiles No son tan potentes y versátiles como las herramientas
pueden fabricar una casa a partir de muros profesionales pero cumplen con las necesidades más modestas
prefabricados. La OOP también facilita el uso de de sus usuarios.
características de un programa en otros, de modo
que los programadores no tengan que empezar
de cero con cada nuevo programa.
LENGUAJES DE COMPONENTES SOFTWARE
MACRO Los componentes software pueden revertir esta tendencia de
mega-aplicaciones permitiendo que los usuarios construyan
programas a medida a partir de esos componentes.
Estos elementos no son algo completamente nuevos; los
usuarios llevan tiempo incorporando componentes
• Los lenguajes de macro orientados al usuario personalizados a sus aplicaciones y sistemas operativos,
(también conocidos como lenguajes de script) como los skins (componentes diseñados para modificar el
están incluidos en muchas aplicaciones, aspecto en pantalla de un programa). Pero los componentes no
utilidades y sistemas operativos. A través de sólo sirven para propósitos estéticos. Docenas de plug-ins
estas macros, el usuario de una hoja de añaden nuevas características y posibilidades a Microsoft
cálculo puede construir un programa para Internet Explorer,Adobe Photoshop, QuarkXPress, Macromedia
crear automáticamente informes mensuales Director y otras conocidas aplicaciones. Un componente
que localicen datos contenidos en otras hojas software es la extensión lógica de la programación orientada a
de cálculo, los inserten en una hoja nueva y objetos,y pronto podría alcanzar un nivel tal que permitiera que
calculen los resultados mediante fórmulas usuarios y administradores construyeran sus propias
contenidas en los ficheros de meses aplicaciones
anteriores. A través de un lenguaje de script
de un sistema operativo, un usuario podría
automatizar el proceso de backup de todos
los documentos creados durante la última
semana.
PROGRAMACIÓN PROGRAMACIÓN
EXTREMA PARA LA WEB
Muchos expertos ven un futuro en el que las aplicaciones para
• La XP(Programación extrema, Extreme los PC estarán un paso por detrás de las desarrolladas
programming) es una relativamente nueva especialmente para la Web. La popularidad de los
metodología de programación que se centra administradores de información personal basados en la Web,
más en su cultura que en la tecnología.La las herramientas de referencia y los juegos están creciendo día
metodología tradicional de la programación se a día. Debido a su naturaleza distribuida y al ancho de banda
basa en un proyecto que se divide entre varios limitado de muchas conexiones a Internet, las aplicaciones
programadores, siendo cada uno de ellos basadas en la Web presentan serios desafíos para los usuarios.
responsable de la parcela que le corresponde. Los programadores pueden, y deben, utilizar muchos lenguajes
La metodología extrema plantea un para escribir aplicaciones web, incluyendo C y C++.
acercamiento en colaboración para el Pero son otras herramientas las más difundidas para el trabajo
desarrollo de una aplicación. La programación en la Web:
extrema todavía se encuentra fuera del  HTML
mercado; su estructura no Jerárquica juega en  Javascript
contra de la cultura de muchas empresas, y  VBScript
todavía es demasiado joven como para tener  Java
una larga historia de éxitos. Pero su  Active X
popularidad está creciendo, especialmente en  Perl
organizaciones que potencian la colaboración.  XML
PROGRAMAS EN PERSPECTIVA: SISTEMAS DE
ANÁLISIS Y EL CICLO DE VIDA DE LOS
SISTEMAS
• Desarrollo de sistemas:El desarrollo de sistemas es un proceso para la resolución de problemas consistente en investigar una
situación, diseñar una solución que mejore la situación, adquirir los recursos humanos, financieros y tecnológicos necesario y,
finalmente, evaluar el éxito de la solución. El proceso de desarrollo de un sistema comienza cuando alguien reconoce que se
debe buscar solución a un problema, o que existe una situación de la que se puede tomar ventaja. Aquí tiene algunas posibles
situaciones:
•  Una tienda de venta de instrumentos musicales necesita una forma de controlar el alquiler y la compra de dichos
instrumentos de modo que la facturación y la contabilidad no lleven demasiado tiempo.
•  Una empresa de venta de material de jardinería por catalogo está sobrepasando las posibilidades de su pequeño y lento
sistema software desarrollado para un PC,lo que se traduce en retrasos en los envíos, errores en la facturación y quejas de los
clientes. Al mismo tiempo, la compañía está perdiendo cuota de mercado por que sus competidores están vendiendo por
Internet.
•  El éxito de una investigación oceanográfica depende de la capacidad de los científicos para recopilar y analizar los datos
instantáneamente, de modo que los resultados puedan alimentar dispositivos de navegación por control remoto.
•  Un vendedor de software determina que su programa de gráficos para el PC está perdiendo rápidamente cuota de mercado
debido al producto de un competidor que dispone de más características y una interfaz de usuario más amigable.
EL CICLO DE VIDA DEL HERRAMIENTAS Y TÉCNICAS
DESARROLLO DE PARA EL DESARROLLO
SISTEMAS DE SISTEMAS
 Investigación Técnicas para la obtención de datos
Entre estas técnicas se incluyen la revisión de
 Análisis
documentos, entrevistas, cuestionarios, observación y
 Diseño muestreos, y pueden emplearse durante cualquier fase
 Desarrollo del desarrollo del sistema.
 Revisión de documentos
 Implementación  Entrevista
 Mantenimiento  Cuestionario
 Observación
 Jubilación
 Muestreos

Herramientas de modelado
Las herramientas de modelado son representaciones gráficas de un sistema. Existen muchas de estas
herramientas en el mercado, pero las más empleadas por los analistas son los gráficos de flujo, los
diagramas de flujo de datos, los diccionarios de datos y las tablas de decisión
• Un DFD (Diagrama de flujo de datos, Data Flow Diagram) es una imagen simple del movimiento de los datos a través del
sistema. Estos diagramas emplean símbolos para mostrar este movimiento, los procesos que usan y producen estosdatos, su
almacenamiento y las personas u otras entidades que originan entradas de información o reciben el resultado del
procesamiento de la misma. Un DFD a nivel de sistema dibuja el sistema completo de un modo resumido; un DFD de nivel 1
expande los procesos del DFD anterior para ofrecer un mayor grado de detalle. Estos procesos pueden también expandirse y
así sucesivamente hasta llegar al nivel de detalle que más interese.
•  Un diccionario de datos es un catálogo, o directorio, que describe todos los datos que fluyen a través de un sistema, y se
utilizan para seguir la pista de todos los elementos y estructuras de datos. Los elementos de datos son los campos
almacenados en las bases de datos del sistema. Una estructura de datos hace referencia a un conjunto de elementos de datos,
como una factura o cualquier otro documento en papel o electrónico.
Una tabla de decisión muestra, en un formato de filas y columnas, las reglas de decisión que se aplican y las acciones a tomar
cuando se produzca una determinada situación. Los analistas pueden describir y analizar de forma más efectiva un
procedimiento complejo si crean una tabla de decisión de sentencias if-then que si escriben un complicado informe de todas
las posibles combinaciones de condiciones y acciones.
• CASE
• En la actualidad, muchas herramientas y técnicas de desarrollo de sistemas están incluidas en paquetes comerciales
agrupados bajo la denominación de CASE (Ingeniería de sistemas asistida por computadora, Computer-Aided Systems
Engineering). Muchos de estos programas CASE incluyen:
•  Herramientas de trazado y diagramación para dibujar los gráficos de flujo y los diagramas de flujo de datos.
•  Un diccionario de datos centralizado que contiene información detallada de los componentes del sistema.
•  Un generador de interfaces de usuario para crear y evaluar distintos diseños de interfaces.
•  Generadores de código que automatizan mucha de la programación necesaria para crear un nuevo sistema o aplicación.

La tendencia actual es funcionar en tiempo de Internet con cortas planificacionesen el desarrollo de sistemas. CASE tiene un
hueco especialmente importante en el desarrollo de sistemas grandes. Pero durante la última década, las herramientas que
funcionaron correctamente bajo el paraguas CASE han migrado hacia otras técnicas de programación y suites como Visual Studio
de Microsoft, una suite de herramientas de desarrollo para la generación de aplicaciones para Windows y la Web, y Visio de
Microsoft, un potente y sencillo software para la diagramación y el trazado.
• La ciencia de la computación Hemos visto cómo los programadores y los analistas de sistemas crean y mantienen los
programas utilizados por los científicos, hombres de negocio, artistas, escritores, etc.
• Pero al igual que nosotros nos beneficiamos del trabajo manual del programador, éste depende de las herramientas e ideas
desarrolladas por los informáticos, profesionales que trabajan en una disciplina académica llamada informática.
• ¿Qué es la informáticay por qué es importante para el mundo de las computadoras?
• Debido a que la mayoría de los cursos introductorios de informática se centran en la programación, mucha gente tiende a
asociar ambos conceptos. Pero la programación sólo es un objeto más de la caja de herramientas intelectual de cualquier
informático; tiene lo mismo que ver con la informática como la gramática inglesa con un escritor de novelas.
• La informática es una disciplina relativamente nueva que tiene lazos con la ingeniería,las matemáticas y los negocios. Muchos
informáticos prefieren llamar al campo ciencia de la computación porque se centra más en el proceso de cálculo que en el
hardware de la máquina. La computación toma muy diversas formas, por lo que la informática abarca muchas áreas que van
desde el extraño mundo de la teoría informática a los proyectos de ingeniería para uso comercial. Algunas áreas específicas de
• la informática (como la administración de bases de datos, los entornos gráficos y las redes) ofrecen los conocimientos
concretos que permiten trabajar con cierto tipo de aplicaciones. Otras ramas tratan con los conceptos que se pueden aplicar a
casi cualquier tipo de aplicación informática:
 Teoria de las computadoras -Arquitectura
 Algoritmos -Sistema de información administrativa
 Estructuras de datos -Ingenieria del software
 Conceptos de programación y lenguaje
EL ESTADO DEL
SOFTWARE
• A pesar de los avances producidos en la
informática, el estado actual del desarrollo
de software está muy lejos de ser el ideal.
Tanto sus desarrolladores como sus
usuarios se enfrentan a dos gigantescos
problemas: el coste y la falta de fiabilidad.
• Problemas del software

Soluciones software
Los informáticos e ingenieros de software están respondiendo a
los problemas de fiabilidad y coste de cinco formas diferentes:
- Técnicas de programación
-Entornos de programación.
-Verificación del programa
-Programación en sala limpia
-Administración humana

S-ar putea să vă placă și