Ingenieria en software

El mapa conceptual enlaza diferentes conceptos, por un lado arquitectura de software, su modelo de framework, apache e ip, y por otro IDE, el lenguaje PHP y su representacion UML.

Get Started. It's Free
or sign up with your email address
Ingenieria en software by Mind Map: Ingenieria en software

1. IDE

1.1. permiten desarrollar las aplicaciones de forma mucho más rápida, incorporando en muchos casos librerías con componentes ya desarrollados, los cuales se incorporan al proyecto o programa. Como inconvenientes se pueden señalar algunos fallos de compatibilidad entre plataformas, y Archivos resultantes de mayor tamaño que los basados en clases estándar.

1.1.1. IDEs mas populares

1.1.1.1. Kdevelop

1.1.1.1.1. Soporta lenguajes de programacion como : C, C++, Java, Ada, SQL, Python, Perl y pascal. Solo corre en sistemas Linux y otros sistemas Unix. Tiene como limitantes principales que su entorno grafico es muy pobre y solo corre sobre plataforma Linux

1.1.1.2. NetBeans

1.1.1.2.1. Es una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a su vez una IDE desarrollado usando dicha plataforma. Sus MicroSystems fundo el proyecto de código abierto en junio 2000, aunque fue en el año 1996 que surgieron las primeras ideas para su desarrollo en la Republica Checa, y continua siendo el patrocinador principal. Sus limitantes fundamentales radican en su entorno gráfico que no es muy amigable y que tiene menos facilidades de programación que el Eclipse.

1.1.1.3. Eclipse

1.1.1.3.1. Es un IDE multiplataforma desarrollado por IBM. En la actualidad lo mantiene la fundación Eclipse, una organización independiente sin animo de lucro que fomenta una comunidad de código abierto y un conjunto de productos, capacidades y servicios complementarios. Pese a que este escrito en su mayor parte en Java (salvo el núcleo), se ejecute sobre maquina virtual de esta y su uso mas popular sea como un IDE para Java, Eclipse es neutral y adaptable a cualquier tipo de lenguaje, por ejemplo C/C++, Cobol, C#, XML, php, etc. Sus mayores ventajas radican en su gran comunidad de desarrollo que lo ubican como el mejor IDE java.

1.1.2. Herramientas

1.1.2.1. Depuracion

1.1.2.1.1. Los depuradores constituyen un componente presente en la mayoría de los entornos integrados de desarrollo (IDE), cuya misión es la de facilitar la búsqueda de errores de programación, principal causa de comportamientos no deseados en los programas desarrollados.

1.1.2.2. Optiminazacion

1.1.2.2.1. Los optimizadores, también llamados profilers, proporcionan funciones destinadas a obtener información acerca de la ejecución de un programa para tratar de localizar puntos críticos donde el rendimiento no es el esperado, con la finalidad de mejorarlo y aumentar su eficiencia. Un ejemplo de información útil para lograr optimizar un programa es el uso que se hace de la memoria en un momento dado, analizando cuánta se usa y cómo se emplea.

1.2. PHP

1.2.1. Es un lenguaje de scripting uso de código abierto. En general, ampliamente utilizado , y especialmente adecuado para desarrollo web y puede ser embebido dentro de la HTML. PHP también viene como binarios pre-compilados para diferentes sistemas operativos como UNIX , Solaris , Windows , OS / 2 , los sistemas Linux Linux y Mac OS X.

1.2.1.1. Entornos Operativos

1.2.1.1.1. Está disponible para cualquier persona para descargar, PHP se puede utilizar en casi cualquier sistema operativo que soporte compilación de código fuente.

1.2.1.1.2. Está diseñado para funcionar como una extensión de varios servidores web para proporcionar secuencias de comandos del lado del servidor. Además, PHP tiene un intérprete de línea de comandos para permitir aplicaciones de línea de comandos y aplicaciones GUI por lo que es un lenguaje de programación versátil.

1.2.1.1.3. Los principales servidores web PHP que soporta por defecto son de Internet Information Server de Microsoft (IIS), Apache y Lighttpd.

1.2.1.2. Licencias

1.2.1.2.1. PHP establece que el software es gratuito y puede ser redistribuido siempre y cuando el código fuente se mantenga intacto. Además, la licencia establece que el término PHP no puede ser incluido en el título de cualquier producto de software sin el permiso de los desarrolladores de PHP.

1.2.1.3. Sintaxis

1.2.1.3.1. La sintaxis de PHP es muy similar a C , Java y otros idiomas que son similares a la convención C . Como cualquier otro lenguaje de programación , PHP requiere algún método de declarar que el texto que está escribiendo es código PHP .

1.2.1.4. Usos

1.2.1.4.1. Puede ser utilizado para una variedad de artículos, el más prominente son las aplicaciones web y de scripting del lado del servidor . PHP es más que un lenguaje de programación con un propósito general de crear aplicaciones basadas en web , o puede ser utilizado en el lado del cliente para crear aplicaciones GUI , así como las operaciones de línea de comandos. Código PHP está dirigido en general a ser utilizado como un lenguaje de script del lado del servidor , de forma similar a la de los de Microsoft ASP .

1.2.1.5. Conectividad

1.2.1.5.1. PHP puede ser usado para conectarse a varios servidores de bases de datos con el fin de recuperar y almacenar datos. Por defecto, PHP generalmente se instala para funcionar con el servidor de base de datos MySQL. PHP viene con la base de datos MySQL y el servidor web Apache. En cada caso, ya sea un servidor LAMP, MAMP o WAMP (Linux, Mac, Windows), la "M" y "P" son por lo general siempre MySQL y PHP, ya que son el más compatible y más ampliamente utilizado.

1.2.1.6. Seguridad

1.2.1.6.1. PHP ha sido conocido por tener muy pocos fallos de seguridad en el lenguaje de programación básico. Muchos de los fallos de seguridad que se han encontrado o asociados con PHP han venido de los malos hábitos de programación.

1.2.1.7. Soporte IDE

1.2.1.7.1. Hay una extensión en los Java IDE Netbeans en el cual se puede usar el código PHP. Una cosa que hace Netbeans, es la opción para el desarrollo de PHP que proporciona acceso a la depuración, el acceso remoto a los servidores web y de desarrollo, así como las conexiones de base de datos. Además, hay varios otros entornos IDE y de secuencias de comandos disponibles para PHP. Algunos otros entornos son Eclipse, Zend Studio, NuSphere y CodeLobster.

1.2.2. UML

1.2.2.1. Diagramas de clases

1.2.2.1.1. Diagrama de casos de uso

1.2.2.1.2. Diagrama de actividad

2. Arquitectura de software

2.1. Framework

2.1.1. Apache

2.1.1.1. IP

2.1.1.1.1. El protocolo de capa de red, IP (Protocolo de Internet) se diseño teniendo en mente la interconexi´on de redes y para mantener unida a Internet. Su fin es proporcionar un medio para el transporte de datagramas del origen al destino, sin importar si ´estas terminales est´an en la misma red o si hay otras redes entre ellas.

2.1.1.2. El servidor web Apache es un servidor Web gratuito desarrollado por el Apache Server Project (Proyecto Servidor Apache) cuyo objetivo es la creación de un servidor web fiable, eficiente y fácilmente extensible con código fuente abierto gratuito. Este proyecto es conjuntamente manejado por un grupo de voluntarios localizados alrededor del mundo que a través de Internet planean y desarrollan el servidor y la documentación relacionada con éste. Estos voluntarios son conocidos como el grupo Apache.

2.1.1.2.1. Caracteristicas

2.1.1.2.2. Descarga y compilacion

2.1.1.2.3. Configuracion servidor web apache

2.1.1.2.4. Inicio y parada

2.1.1.2.5. Acceso al servidor

2.1.2. estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.

2.1.2.1. Objetivo

2.1.2.1.1. Acelerar el proceso de desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de patrones.

2.1.2.2. Patrón MVC y Model 2.

2.1.2.2.1. El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza la aplicación en tres modelos separados, el primero es un modelo que representa los datos de la aplicación y sus reglas de negocio, el segundo es un conjunto de vistas que representa los formularios de entrada y salida de información, el tercero es un conjunto de controladores que procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema.

2.1.2.3. Tipos de framework Web

2.1.2.3.1. Existen varios tipos de frameworks Web: orientados a la interfaz de usuario, como Java Server Faces, orientados a aplicaciones de publicación de documentos, como Coocon, orientados a la parte de control de eventos, como Struts y algunos que incluyen varios elementos como Tapestry. La mayoría de frameworks Web se encargan de ofrecer una capa de controladores de acuerdo con el patrón MVC o con el modelo 2 de Servlets y JSP, ofreciendo mecanismos para facilitar la integración con otras herramientas para la implementación de las capas de negocio y presentación.

2.1.2.4. Características.

2.1.2.4.1. Abstracción de URLs y sesiones.

2.1.2.4.2. Acceso a datos.

2.1.2.4.3. Controladores.

2.1.2.4.4. Autentificación y control de acceso

2.1.2.4.5. Internacionalización.

2.1.2.4.6. Separación entre diseño y contenido.

2.2. La noción clave de la arquitectura es la organización (un concepto cualitativo o estructural), mientras que la ingeniería tiene fundamentalmente que ver con una sistematicidad susceptible de cuantificarse. Ante el numero y variedad de definiciones existentes de Arquitectura de Software, Mary Shaw y David Garlan, proporcionaron una sistematización iluminadora, explicando las diferencias entre definiciones en función de distintas clases de modelos.

2.2.1. Modelos Estructurales

2.2.1.1. Sostienen que la Arquitectura de Software está compuesta por componentes, conexiones entre ellos y (usualmente) otros aspectos tales como configuración, estilo, restricciones, semántica, análisis, propiedades, racionalizaciones, requerimientos, necesidades de los participantes.

2.2.2. Modelos Framework

2.2.2.1. Son similares a la vista estructural, pero su énfasis primario radica en la estructura coherente del sistema completo, en vez de concentrarse en su composición.

2.2.3. Modelos de Proceso

2.2.3.1. Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa construcción. En esta perspectiva, la arquitectura es el resultado de seguir un argumento (script) de proceso. Esta vista se ejemplifica con el actual trabajo sobre programación de procesos para derivar arquitecturas.

2.2.4. Modelos Funcionales

2.2.4.1. Una minoría considera la arquitectura como un conjunto de componentes funcionales, organizados en capas que proporcionan servicios hacia arriba. Es tal vez útil pensar en esta visión como un framework particular.

2.2.5. Modelos Dinamicos

2.2.5.1. Enfatizan la cualidad conductual de los sistemas. “Dinámico” puede referirse a los cambios en la configuración del sistema, o a la dinámica involucrada en el progreso de la computación, tales como valores cambiantes de datos.