miércoles, 30 de julio de 2014

Android

- Que es?

Android es el sistema operativo propiedad de google, disponible para dispositivos portátiles, como tablets y smartphones. Es la competencia de Windows pero mas enfocado a este tipo de dispositivos. Cuenta con una plataforma de descarga de aplicaciones y juegos llamada Android Market, la cual tiene más de 100 mil opciones para descargar, la mayoría gratuitas. Personalmente te recomiendo que cuando elijas un smartphone u otro dispositivo compatible, no dudes en comprar uno que use android.

- Historia de Android

Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005.14 Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio.10 Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,15 16 17 con una cuota de mercado de 43,6% en el tercer trimestre.18 A escala mundial alcanzó una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, más del doble que el segundo sistema operativo (iOS de Apple, Inc.

- Versiones que han salido al mercado
  1. Que es la fragmentación en Android?
  2. Cuales son las diferentes Versiones de Android (hablando de APi levels)
  3. Que es el Android SDK?
  4. Qué es la Maquina virtual Dalvik?
  5. Que es ART?(Android RunTime)
  6. Cuales son las diferencias entre JVM Y DVM?
  7. Que es la clase Activity?
  8. Cual es el ciclo de vida de la clase Activity?
  9. Consulte que labor hacen las Clases: ° ContentProvider ° ContentReceiver
  10. Que es AVD?
  11. Que es ADB?
  12. Lista de IDE's para desarrollar aplicaciones Android
  13. Que tipo de dispositivos soportan Android?
  14. Cuales son las diferencias entre app nativas y apps multiplataformas?
  15. Describir que es una tienda de aplicaciones
  16. Cual es la tienda oficial de aplicaciones de Android? Enumere al menos otra 5 disponibles.
  17. Cuanto cuesta la membresia para publicar una app?


martes, 1 de octubre de 2013

VISUAL STUDIO 2012

4- decir cual es la ruta por defecto donde crea un proyecto el visual estudio.
C:\Users\Karloz\Documents\Visual Studio 2012\Projects
5- cómo está compuesta la estructura de un proyecto de visual basic
Una estructura es una generalización del tipo definido por el usuario (UDT) admitido por versiones anteriores de Visual Basic. Además de campos, las estructuras pueden exponer propiedades, métodos y eventos. Una estructura puede implementar una o más interfaces, y se pueden declarar niveles de acceso individuales para cada campo.
Para crear una estructura se pueden combinar elementos de datos de distintos tipos. Una estructura asocia uno o más elementos entre ellos y con la propia estructura. Al declarar una estructura, ésta se convierte en un tipo de datos compuesto y se pueden declarar variables de este tipo.
Las estructuras son útiles si se desea que una única variable contenga varios datos relacionados. Por ejemplo, quizás desee mantener juntos el nombre de un empleado, su extensión telefónica y su salario. Podría utilizar varias variables para esta información, o bien definir una estructura y utilizarla para una única variable de empleado. La ventaja de la estructura se hace evidente si tiene muchos empleados y, por consiguiente, muchas instancias de la variable.

6- que es un formulario,
Un formulario es una ventana de Windows la cual usaremos para interactuar con el usuario, ya que en dicha ventana o formulario, estarán los controles y demás objetos gráficos que mostraremos al usuario de nuestra aplicación. Los formularios también son llamados "formas" o Forms en su nombre en inglés. En éste, un prograador de Visual Basic debe incluir además de los controles, el código necesario para que se ejecuten instrucciones de acuerdo a las acciones que realice el usuario.
7- mencione cuales son las vistas que tiene un formulario y para qué sirven.
Diseño es la forma gráfica en cómo estará estructurado o formado el proyecto  y evento es la estructura del proyecto a realizar
8- que es un control y cuales son las categorias de los mismos
La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos. Cada una de esas aplicaciones enviará consultas al gestor, y normalmente cada hilo de ejecución será una transacción diferente.
En la mayoría de los sistemas operativos actuales, las diferentes tareas o hilos se ejecutan de forma intercalada (incluso en el caso de máquinas con varios procesadores). Es decir, el sistema operativo decide por su cuenta cuando suspender una de las tareas y darle un poco de tiempo de ejecución a otra. Si hay tareas simultáneas o concurrentes sobre la misma base de datos, esta intercalación puede resultar en que las lecturas y escrituras de las diferentes tareas o aplicaciones en el medio físico se realicen en cualquier orden y secuencia.

El acceso simultáneo descrito puede dar como resultados información inconsistente o simplemente incorrecta, dependiendo de la mala o buena suerte que tengamos en la intercalación de las lecturas y escrituras simultáneas. Esta problemática ha llevado a diseñar e implementar diferentes estrategias de control de concurrencia, que se encargan de evitar todos esos problemas, de modo que los desarrolladores de las aplicaciones pueden “olvidarse” de ellos al escribir su código.

viernes, 20 de septiembre de 2013

Conceptos Básicos de POO

HERENCIA
En orientación a objetos la herencia es, después de la agregación o composición, el mecanismo más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad. A través de ella los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y eventualmente los atributos (variables) de su superclase.
Es la relación entre una clase general y otra clase más específica. Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.
La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programación).
POLOMORFISMO
En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.
Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier clase) comoSmalltalk no se requiere que los objetos que se utilizan de modo polimórfico sean parte de una jerarquía de clases.
En lenguajes basados en clases y con un sistema de tipos de datos fuerte (independientemente de si la verificación se realiza en tiempo de compilación o de ejecución), es posible que el único modo de poder utilizar objetos de manera polimórfica sea que compartan una raíz común, es decir, una jerarquía de clases, ya que esto proporciona la compatibilidad de tipos de datos necesaria para que sea posible utilizar una misma variable de referencia (que podrá apuntar a objetos de diversas subclases de dicha jerarquía) para enviar el mismo mensaje (o un grupo de mensajes) al grupo de objetos que se tratan de manera polimórfica.
En Java, es frecuente y profusamente aconsejada la utilización de interfaces (que es un mecanismo del lenguaje que se emplea por medio de la palabra clave Interface) para proveer la necesaria concordancia de tipos para hacer posible el polimorfismo, también como un contrato que debe cumplir cualquier clase que implemente una cierta interfaz y como una forma de documentación para los desarrolladores. A veces, en la literatura que refiere específicamente a Java se hace mención a "herencia y polimorfismo de interfaces", lo que no concuerda con los conceptos de la programación orientada a objetos porque una clase que implementa una interfaz sólo obtiene su tipo de datos y la obligación de implementar sus métodos, no obtiene comportamiento ni de atributos. Esto muchas veces resulta paradójico porque en Java frecuentemente se utiliza la mal llamada "herencia de interfaces" para dotar a una clase con un tipo adicional (o varios) para que su uso en combinación con la agregación (colaboración o composición) permita evitar la necesidad de la herencia múltiple y favorezca una utilización más amplia del polimorfismo.

ENCAPSULACION
Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software:
Modularidad, esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta.
Ocultamiento de la información, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.
Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el beneficio de la reutilización. Los programadores de software utilizan la misma clase, y por lo tanto el mismo código, una y otra vez para crear muchos objetos.

Abstracción 
La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.
Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y abstracción de control (perteneciente a las estructuras de control).
Los diferentes paradigmas de programación han aumentado su nivel de abstracción, comenzando desde los lenguajes de máquina, lo más próximo al ordenador y más lejano a la comprensión humana; pasando por los lenguajes de comandos, los imperativos, la orientación a objetos (POO), la Programación Orientada a Aspectos (POA); u otros paradigmas como la programación declarativa, etc.
La abstracción encarada desde el punto de vista de la programación orientada a objetos expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás. Además de distinguir entre los objetos provee límites conceptuales. Entonces se puede decir que la encapsulación separa las características esenciales de las no esenciales dentro de un objeto. Si un objeto tiene más características de las necesarias los mismos resultarán difíciles de usar, modificar, construir y comprender.

Interfaz,
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
Atributos
Características que tiene la clase
Método
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

instancia u objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.
Agregación
Representa una relación del tipo "tener un" entre clases. Cuando la clase contenida no existe independientemente de la clase que la contiene se denomina agregación por valor y además implica contenido físico, mientras que si existe independientemente y se accede a ella indirectamente, es agregación por referencia.
Concurrencia
Es la propiedad que distingue un objeto activo de uno no activo. Concurrencia permite que diferentes objetos actuen al mismo tiempo, usando distintos threads de control.

Persistencia
Es la propiedad por la cual la existencia de un objeto trasciende en el tiempo (esto es, el objeto sigue existiendo despues de que su creador deja de existir) o en el espacio (esto es, la localización del objeto cambia respecto a la dirección en la que fue creado).
Visibilidad
capacidad de restringir el acceso a atributos y servicios de un objeto. Particularmente importante en el diseño e implementación. (ej.: público / protegido / privado)

jueves, 1 de agosto de 2013

IEEE 830

1-Quien lo inventó

Su creación se remonta al año 1884, contando entre sus fundadores a personalidades de la talla de Thomas Alva Edison, Alexander Graham Bell y Franklin Leonard Pope. En 1963 adoptó el nombre de IEEE al fusionarse asociaciones como el AIEE (American Institute of Electrical Engineers) y el IRE (Institute of Radio Engineers).

2- Saber qué es y para qué sirve


es la mayor asociación internacional sin ánimo de lucro formada por profesionales de las nuevas tecnologías, como ingenieros eléctricos, ingenieros en electrónica, científicos de la computación, ingenieros en informática, matemáticos aplicados, ingenieros en biomédica, ingenieros en telecomunicación e ingenieros en Mecatrónica.

Según el mismo IEEE, su trabajo es promover la creatividad, el desarrollo y la integración, compartir y aplicar los avances en las tecnologías de la información, electrónica y ciencias en general para beneficio de la humanidad y de los mismos profesionales. Algunos de sus estándares son:
VHDL
POSIX
IEEE 1394
IEEE 488
IEEE 802
IEEE 802.11
IEEE 754

lunes, 22 de julio de 2013

Proyectos y tipos de requisitos,

FUNCIONAL
Un requisito funcional define una función del sistema de software o sus componentes. Una función es descrita como un conjunto de entradas, comportamientos y salidas. Los requerimientos funcionales pueden ser: cálculos, detalles técnicos, manipulación de datos y otras funcionalidades específicas que se supone, un sistema debe cumplir. Los requerimientos de comportamiento para cada requerimiento funcional se muestran en los casos de uso. Son complementados por los requisitos no funcionales, que se enfocan en cambio en el diseño o la implementación.
Como se define en la ingeniería de requisitos, los requisitos funcionales establecen los comportamientos del sistema.
Típicamente, un analista de requisitos genera requisitos funcionales luego de diagramar los casos de uso. Sin embargo, esto puede tener excepciones, ya que el desarrollo de software es un proceso iterativo y algunos requisitos son previos al diseño de los casos de uso. Ambos elementos (casos de uso y requisitos) se complementan en un proceso bidireccional.
Un requisito funcional típico contiene un nombre y un número de serie único y un resumen. Esta información se utiliza para ayudar al lector a entender por qué el requisito es necesario, y para seguir al mismo durante el desarrollo del producto.
El núcleo del requisito es la descripción del comportamiento requerido, que debe ser clara y concisa. Este comportamiento puede provenir de reglas organizacionales o del negocio, o ser descubiertas por interacción con usuarios, inversores y otros expertos en la organización.

NO FUNCIONAL
Un requisito no funcional o atributo de calidad es, en la ingeniería de sistemas y la ingeniería de software, un requisito que especifica criterios que pueden usarse para juzgar la operación de un sistema en lugar de sus comportamientos específicos, ya que éstos corresponden a los requisitos funcionales. Por tanto, se refieren a todos los requisitos que ni describen información a guardar, ni funciones a realizar.
Algunos ejemplos de requisitos no funcionales típicos son los siguientes:
rendimiento
disponibilidad
seguridad
accesibilidad
usabilidad
estabilidad
portabilidad
costo
operatividad
interoperabilidad
escalabilidad
concurrencia
mantenibilidad
interfaz

EL ALCANCE DEL PROYECTO

Parte de nuestra labor como profesionales es brindar un buen servicio al cliente. Para ello, necesitamos saber, principalmente, qué debemos hacer cuando tenemos una tarea asignada. Si fuésemos a construir una silla, tendríamos que definir sus características: si esta será reclinable, si tendrá ruedas o si será giratoria. A este conjunto de características del producto, entre otras consideraciones propias del servicio, se le denomina “alcance”.
Tener claro el alcance de un proyecto nos permite saber los recursos que requerimos, así como el tiempo y dinero a invertir en implementar la solución. Pero, ¿cuándo debemos definir este alcance? ¿Antes de iniciar el proyecto o luego de iniciado el mismo?
Sería ideal tener todo definido desde el principio; sin embargo, las condiciones no siempre son óptimas. Propuestas rápidas, cotizaciones de último momento, poca información por parte del cliente, etc. Teniendo en cuenta esto, definimos los siguientes puntos imprescindibles antes de iniciar un proyecto:
-Detalles y razones de la actividad a realizar.
-Niveles de confidencialidad de la información.
-Especificar los entregables con fechas programadas de entrega.
-Saber las fechas críticas y los hitos.
-Conocer las penalidades, si aplica, de no entregar en las fechas pactadas.
-Responsabilidad y compromiso, tanto del cliente, como de la contraparte.
-Garantías requeridas.

Ejemplo

Cuando el proyecto se encuentra en marcha y durante las reuniones de levantamiento de información, los analistas deberán especificar al detalle cada uno de los entregables. De esta manera será necesario obtener del cliente dos tipos de información: qué se incluirá en el proyecto y qué se descartará.
Con estos dos puntos se procede a elaborar la documentación, que nos asegure que todo lo acordado verbalmente con el cliente quede tipificado en un documento formal, con la aprobación del cliente. Y si durante el ciclo de vida del proyecto nos encontramos con cambios, es recomendable identificar primero el impacto en nuestras actividades e informar a los responsables para que se evalúe y tome la mejor decisión.
Por todo lo expuesto, cada vez que seamos parte de un proyecto, debemos iniciarlo teniendo en claro qué tenemos que hacer, esto nos evitará retrasos y reprocesos, y nos permitirá trabajar con la tranquilidad y seguridad.


Módulo

En programación un módulo es una porción de un programa de computadora. De las varias tareas que debe realizar un programa para cumplir con su función u objetivos, un módulo realizará, comúnmente, una de dichas tareas (o varias, en algún caso).
En general (no necesariamente relacionado con la programación), un módulo recibe como entrada la salida que haya proporcionado otro módulo o los datos de entrada al sistema (programa) si se trata del módulo principal de éste; y proporcionará una salida que, a su vez, podrá ser utilizada como entrada de otro un módulo o bien contribuirá directamente a la salida final del sistema (programa), si se retorna al módulo principal.
Particularmente, en el caso de la programación, los módulos suelen estar (no necesariamente) organizados jerárquicamente en niveles, de forma que hay un módulo principal que realiza las llamadas oportunas a los módulos de nivel inferior.

Cuando un módulo es convocado, recibe como entrada los datos proporcionados por otro del mismo o superior nivel, el que ha hecho la llamada; luego realiza su tarea. A su vez este módulo convocado puede llamar a otro u otros módulos de nivel inferior si fuera necesario; cuando ellos finalizan su tareas, devuelven la salida pertinente al módulo inmediato llamador, en secuencia reversa, finalmente se continúa con la ejecución del módulo principal.

jueves, 18 de julio de 2013

Herramientas de gestión de proyectos

1. OpenProj
2. Goplan
3. GanttProject
La que escogio fue:        GanttProject
              VENTAJAS
La ventaja principal del gráfico de Gantt radica en que su trazado requiere un nivel mínimo de planificación, es decir, es necesario que haya un plan que ha de representarse en forma de gráfico.
Los gráficos de Gantt se revelan muy eficaces en las etapas iniciales de la planificación. Sin embargo, después de iniciada la ejecución de la actividad y cuando comienza a efectuarse modificaciones, el gráfico tiende a volverse confuso. Por eso se utiliza mucho la representación gráfica del plan, en tanto que los ajustes (replanificación) requieren por lo general de la formulación de un nuevo gráfico.

DESVENTAJAS

El Gráfico de Gantt no ofrece condiciones para el análisis de opciones, ni toma en cuenta factores como el costo. Es fundamentalmente una técnica de pruebas y errores. No permite, tampoco, la visualización  de la relación entre las actividades cuando el número de éstas es grande.

GanttProject es multiplataforma es necesario descargarlo e instalarlo en el equipo que se realice trabajar además este nos permite compartir documentos además este posee manuales de uso, la plataforma de este software muy fácil de visualizar en enteder el entorno grafico de este.

martes, 9 de julio de 2013

Ingeniería del Software

1. Qué es una metodología?

R/ Una metodología es el conjunto de métodos por los cuales se regirá una investigación científica por ejemplo, en tanto, para aclarar mejor el concepto, vale aclarar que un método es el procedimiento que se llevará a cabo en orden a la consecución de determinados objetivos. Entonces, lo que preeminentemente hace la metodología es estudiar los métodos para luego determinar cuál es el más adecuado a aplicar o sistematizar en una investigación o trabajo.

Desde Definicion ABC: http://www.definicionabc.com/ciencia/metodologia.php#ixzz2YZsbYtSm

2. Clases de metodologías de desarrollo de software que existen
ü  Metodología: Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.
ü  Tarea: Actividades elementales en que se dividen los procesos.
ü  Procedimiento: Definición de la forma de ejecutar la tarea.
ü  Técnica: Herramienta utilizada para aplicar un procedimiento. Se pueden utilizar una o varias.
ü  Herramienta: Para realizar una técnica, podemos apoyarnos en las herramientas software que automatizan su aplicación.
ü  Producto: Resultado de cada etapa.


DESARROLLO CONVENCIONAL
 Los resultados finales son impredecibles. No hay forma de controlar lo que está sucediendo en el proyecto.  Los cambios organizativos afectan negativamente al proceso de desarrollo.

DESARROLLO ESTRUCTURADO
ü  Programación estructurada
ü  Diseño estructurado
ü  Análisis estructurado
ü  Especificaciones funcionales:
·         Gráficas
·         Particionadas
·         Mínimamente redundantes




EJEMPLO DE PROGRAMACIÓN CONVENCIONAL

10           CLS
20           A=10
30           INPUT B
40           IF B=A THEN GOTO 50 ELSE GOTO 70
50           PRINT “A Y B SON IGUALES”
60           GOTO 100
70           IF A>B THEN GOTO 80 ELSE GOTO 90
80           B= B + 1; GOTO 40
90           B= B - 1; GOTO 40
100         END

EJEMPLO DE PROGRAMACIÓN ESTRUCTURADA

PROGRAM NUMEROSIGUALES
BEGIN
CLEARSCREEN;
A :=10 ;
INPUT B;
REPEAT
                IF B=A THEN PRINT “A Y B SON IGUALES”
ELSE REDUCEDIFERENCIA(A,B);
UNTIL B=A;
END;

PROCEDURE REDUCEDIFENCIA(A,B);
BEGIN
IF A>B THEN B:= B+1
ELSE B:= B - 1
END

RELACION HISTORICA DE LAS PRINCIPALES METODOLOGIAS
AÑO      METODOLOGÍA
1968      Conceptos sobre la programación estructurada de DIJKSTRA
1974      Técnicas de programación estructurada de WARNIER y JACKSON
1975      Primeros conceptos sobre diseño estructurado de MYERS y YOURDON
1977      Primeros conceptos sobre análisis estructurado GANE y SARSON
1978      Análisis estructurado: DEMARCO y WEINBERG Nace MERISE
1981      SSADM (versión inicial) Information Engineering (versión inicial)
1985      Análisis y Diseño estructurado para sistemas de tiempo real de WARD y MELLOR
1986      SSADM Versión 3
1987      Análisis y Diseño estructurado para sistemas de tiempo real de HATLEY y PIRHBAY
1989      METRICA (versión inicial)
1990      SSADM Versión 4
1993      METRICA Versión 2

1995      METRICA Versión 2.1

DESARROLLO ORIENTADO AL OBJETO
La esencia del desarrollo orientado a objetos es la identificación y organización de conceptos del dominio de la aplicación y no tanto de su representación final en un enguaje de programación.

CARACTERISTICAS DESEABLES DE UNA METODOLOGIA
ü  Existencia de reglas predefinidas
ü  Cobertura total del ciclo de desarrollo
ü  Verificaciones intermedias
ü  Planificación y control
ü  Comunicación efectiva
ü  Utilización sobre un abanico amplio de proyectos
ü  Fácil formación
ü  Herramientas CASE
ü  Actividades que mejoren el proceso de desarrollo
ü  Soporte al mantenimiento
ü  Soporte de la reutilización de software

CLASIFICACION DE LAS METODOLOGIAS
ü  Estructuradas
§  Orientadas a Procesos
§  Orientadas a datos
Ø  Jerárquicas
Ø  No Jerárquicas
§  Mixtas
ü  Orientadas a Objetos
ü  Para Sistemas de Tiempo Real

METODOLOGIAS ESTRUCTURADAS
METODOLOGIAS ORIENTADAS A DATOS JERARQUICOS
• La estructura de control del programa debe ser jerárquica y sedebe derivar de la estructura de datos del programa
• El proceso de diseño consiste en definir primero las estructuras de los datos de entrada y salida, mezclarlas todas en una estructura jerárquica de programa y después ordenar detalladamente la lógica procedimental para que se ajuste a esta estructura
• El diseño lógico debe preceder y estar separado del diseño físico
http://alarcos.inf-cr.uclm.es/doc/ISOFTWAREI/Tema04.pdf