SlideShare una empresa de Scribd logo
1 de 23
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LA
FUERZA ARMADA NACIONAL BOLIVARIANA
UNEFA YARACUY____ EXTENSION NIRGUA
INGENIERIA DE SOFTWARE
NIRGUA 2015
2
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LA
FUERZA ARMADA NACIONAL BOLIVARIANA
UNEFA YARACUY____ EXTENSION NIRGUA
INGENIERIA DE SOFTWARE
Facilitador: Emprendedores:
Ing. Edgardo Molina Rafael González
25.616.627
Milanyeli león
25.785.142
Ingeniería de sistema
Sección:”U”
NIRGUA. OCTUBRE 2015
3
INDICE
PAG.
Introducción………………………………………………………………………….4
Ingeniería de software………………………………………………………………5
Proceso de desarrollo……………………………………………………………....5
Complejidad de los sistemas de software………………………………………..5
Características de sistemas de software…………………………………….......8
Modelos de ciclo de vida………………………………………………….............9
Actividades de desarrollo de software…………………………………………..12
Entornos de desarrollo de software……………………………………………...14
Productos de case en general……………………………………………………15
Entorno de programación…………………………………………………………16
Entornos para la ingeniería de software………………………………………...17
Entornos orientados a estructuras……………………………………………….18
Análisis y diseños estructurados…………………………………………………20
Análisis y diseños orientados a objetos…………………………………………21
Ejemplos de software……………………………………………………………..23
4
INTRODUCCION
En el siguiente trabajo está basado en la ingeniería de software. Por lo
cual tendrá mucho contenido relevante e importante para el aprendizaje ya
que la ingeniería de software es la disciplina que tiene el propósito de
diseñar, crear y mantener el software por medio de la aplicación de
tecnologías y prácticas de las ciencias de la computación, administración de
proyectos, ingeniería, dominio de aplicaciones, diseño de interfaces,
administración de componentes digitales y otros campos. Este término ganó
popularidad después de 1968, fue presentado durante la Conferencia NATO
en el mismo año.
También nos encontraremos con sus complejos y su proceso de
desarrollo de igual forma con muchos modelos de ciclo de vida como es
aquel modelo de cascada que dice que el desarrollo de software esa través
de una secuencia simple de fases. Cada fase tiene un conjunto de metas
bien definidas. Utiliza punto de control para pasar a la siguiente fase:
Análisis, Diseño, Codificación, Pruebas, Implementación, Mantenimiento. Se
tarda mucho tiempo en pasar todo el cicloscada que se refiere. Ya
mencionados algunos términos que encontraremos en dicho trabajo.
Esperamos que se ha de mucha ayuda para el aprendizaje tanto en lo teórico
como en la práctica.
5
Ingeniería de software
La ingeniería de software es el estudio de los principios y
metodologías para el desarrollo y mantenimiento de sistemas software,
mediante la aplicación práctica del conocimiento científico al diseño y
construcción de programas de computadora y a la documentación asociada
requerida para desarrollar, operar y mantenerlos. Se conoce también como
desarrollo de software o producción de software, tratándose del
establecimiento de los principios y métodos de la ingeniería a fin de obtener
software de modo rentable, que sea fiable y trabaje en máquinas reales.
Proceso de Desarrollo de Software
Un proceso de desarrollo de software tiene como propósito la producción
eficaz y eficiente de un producto software que reúna los requisitos del
cliente. Este proceso es intensamente intelectual, afectado por la creatividad
y juicio de las personas involucrada. Aunque un proyecto de desarrollo de
software es equiparable en muchos aspectos a cualquier otro proyecto de
ingeniería, en el desarrollo de software hay una serie de desafíos
adicionales, relativos esencialmente a la naturaleza del proyecto obtenido.
Complejidad de los Sistemas de Software.
En un sistema, la complejidad es directamente proporcional al número de
elementos involucrado ya la complejidad de cada elemento.
La mayoría de las aplicaciones que son especificadas, desarrolladas
mantenidas y utilizada por una sola persona no son complejas.
Por otro lado, las aplicaciones que forman partes del software de dimensión
industrial exhiben un conjunto muy rico de comportamientos, y son
propensas a tener un ciclo de vida muy largo.
Estas aplicaciones son complejas y no pueden ser desarrolladas por una
sola persona. Su mantenimiento y su utilización también involucran a varios
individuos.
6
La complejidad es parte esencial de los sistemas de software de gran
tamaño. Se puede manejar, pero no se puede eliminar.
Según Grady booch, la complejidad de los sistemas de software se deriva de
cuatros elementos:
1. La complejidad del dominio del problema.
2. La dificulta de gestionar el proceso de desarrollo.
3. La flexibilidad que se puede alcanzar a través del software.
4. Los problemas de caracterizar el comportamiento de sistemas
directos.
1.- La complejidad del dominio del problema: los problemas que se intenta
resolver son inherente complejos, con una gran cantidad de requisitos que
compiten entre sí.
2.-La dificulta de gestionar el proceso de desarrollo: el desarrollo de
software enfrenta el reto de dar a los usuarios la impresión de simplicidad,
esto es reducir al mínimo la complejidad externa. Este reto les obliga a
incrementar el tamaño del sistema, a inventar mecanismo ingenioso, o a
reutilizar diseños y código ya existentes.
3.- La flexibilidad que se puede alcanzar a través del software: la elaboración
de software es una actividad muy laboriosa porque empuja al desarrollador a
construir por si mismo prácticamente todos los bloques fundamentales
sobre los que se apoyan las abstracciones de más alto nivel.
4.- Los problemas de caracterizar el comportamiento de sistemas directos:
los comportamientos de las mayorías de los objetos se representan por
sistemas analógicos en los que, a través de funciones continuas, pequeños
cambios en las entradas siempre producen pequeños cambios en la salida.
Recursos de software en sistemas complejos
7
1. - Sistema operativo que uso habitualmente en los ordenadores: GNU
Linux, distribuciones Ubuntu y openSUSE.
2. Aplicaciones informáticas que empleo bajo sistema operativo GNU Linux:
 Navegadores internet: Mozilla Firefox, Google Chrome y Opera.
 Acceso a servidores (FTP): Filezilla.
 Cliente correo electrónico POP: Evolution.
 Correo electrónico en línea (online): Universidad de Murcia, Gmail.
 Ofimática (editor de textos, hoja de cálculo, base de datos,
presentaciones): Libre office.
 Ofimática en línea (online): google drive (Antes denominado Google
Docs).
 Tratamiento de imágenes: Gimp, ImageMagick.
 Gestor y lector de libros electrónicos: Calibre.
 Creación de páginas web: Bluefish y Aptana (bajo entorno Eclipse).
 Reproductores Música y archivos mp3 y ogg: amaroK.
 Grabador de soportes ópticos (CD, DVD,..): Brasero.
 Mapas y rutas en línea: Google Maps.
 Captura de sitios web al ordenador: Httrack.
 Verificador de enlaces en páginas web: Screaming Frog SEO Spider y
KlinkStatus.
 Antivirus: En GNU Linux no se precisa antivirus.
 Sistema de búsqueda e instalación de software: Centro de software de
Ubuntu.
3. Aplicaciones informáticas habituales bajo sistema operativo Windows (sólo
las empleo si no hay aplicación equivalente bajo GNU Linux):
 Navegadores internet: Mozilla Firefox, Google Chrome y Opera.
 Acceso a servidores (FTP): Filezilla.
 Cliente correo electrónico POP: Pegasus.
 Correo electrónico en línea (online): Universidad de Murcia, Gmail.
8
 Ofimática (editor de textos, hoja de cálculo, base de datos,
presentaciones): Libre office.
 Ofimática en línea (online): Google Drive.
 Gestor y lector de libros electrónicos: Calibre.
 Gestor de imágenes, operaciones básicas: FastStone.
 Creación de páginas web: Bluefish.
 Grabador de soportes ópticos (CD, DVD,..): CDBurner XP.
 Mapas y rutas en línea: Google Maps.
 Captura de sitios web al ordenador: Httrack.
 Verificador de enlaces en páginas web: Xenu, que permite crear
mapas XML y detectar enlaces perdidos.
 Antivirus: vira.
4. Aplicaciones informáticas que empleo bajo sistema operativo
Symbian (teléfono móvil celular)
 Navegador internet: Opera.
 Mapas y rutas en línea: Google Maps y Nokia Maps.
 Ofimática: Quickoffice
5. Aplicaciones informáticas que empleo bajo sistema operativo Androide
(tableta)
 Navegador internet: Opera, Firefox y Google Chrome.
 Mapas y rutas en línea: Google Maps.
 Ofimática: Google Drive.
Característica de sistema de software
1.- Generación de reportes médicos y exámenes de cada estudiante.
2.- Entorno dinámico, amigable y de fácil manejo.
3.- Accesible al arranque del sistema funcionalidad del sistema.
4.- Registrar la información socio-económica del educando logrando facilitar
un rendimiento óptimo al momento de realizar la búsqueda de los datos
9
Mencionados.
5.-Controlar y registrar el ingreso y egreso de los artículos propios de la
institución para el beneficio de los diferentes departamentos que harán uso
de los mismos, logrando presentar un informe mensual.
6.- Controlar el seguimiento de la documentación emitida y recibida de su
estado de tramitación; además de generar datos estadísticos conociendo el
estado de los oficios procesados. Características de los usuarios.
Las interfaces de usuario deberán ser de manejo intuitivo, fácil de aprender y
sencillo de manejar. Lo deseable sería que un usuario nuevo se familiarizase
con el sistema en muy poco tiempo.
7.- La encargada del departamento Medico, es Doctora en Medicina General.
8.-La encargada del departamento de Guardalmacén es Ingeniera en
Contabilidad.
9.- El encargado del departamento de archivo, es Licenciado en
Administración.
Requerimiento del software.
10.-Ordenador con procesador de doble núcleo de 2.4 GHZ
Disco Duro 250GB
Memory RAM: 2GB
Dbms: SQL SERVER 2005Lenguaje: C#
Restricciones. La máquina en que se ejecute el sistema, deberá de existir C#
instalado.
11.- Los inventarios no podrán ser modificados, se actualizarán de manera
continua y automática.
12.- Los reportes del Dpto. de Guardalmacén una vez registrados, no podrán
ser alterados por el usuario.
13.- La documentación, una vez que se ha registrado, no podrá ser
actualizada, ni eliminada, ya que todos esos datos servirán para realizar
reportes mensuales.
Modelos de Ciclos de Vida
Análisis Comparativo
10
Es una técnica utilizada para medir el rendimiento de un sistema o
componente del mismo, frecuentemente en comparación con el que se
refiere específicamente a la acción de ejecutar un benchmark.
Modelo en Cascada
Este es el más básico de todos los modelos. Su visión dice que el
desarrollo de software esa través de una secuencia simple de fases. Cada
fase tiene un conjunto de metas bien definidas. Utiliza punto de control para
pasar a la siguiente fase: Análisis, Diseño, Codificación, Pruebas,
Implementación, Mantenimiento. Se tarda mucho tiempo en pasar todo el
ciclo. El fracaso del software es la comunicación con el usuario final. Se
utiliza en proyectos con requerimientos bien definidos. Las flechas muestran
el flujo de información entre las fases. Este modelo se enfrasca en los en:
Planear un proyecto antes de embarcarse en él. Definir el comportamiento
externo antes de diseñar su arquitectura interna. Documentar los resultados
de cada actividad. Diseñar un sistema antes de codificarlo. Testear el
sistema después de construirlo.
Elementos
 Requerimiento.
 Análisis y diseño.
 Diseño detallado.
 Codificación.
 Prueba.
 Operaciones.
Características
 Es el más utilizado.
 es una visión del proceso de desarrollo de software con una sucesión
de etapas que producen productos intermedios.
11
 Para que el proyecto tenga éxito deben desarrollarse todas las fases.
 Las fases continúan hasta que los objetivos se han cumplido.
 Si se cambian el orden de las fases, el producto final será de inferior
calidad.
Modelo Incremental:
Existen riesgos en el desarrollo de sistemas largos y complejos. La
forma de reducir los riesgos es construir una parte del sistema.
Un sistema pequeño es siempre menos riesgoso que construir un
sistema grande.es más fácil determinar si los requerimientos para los niveles
subsiguientes son correctos.
Reduciendo el tiempo de desarrollo de un sistema decrecen las
probabilidades que esos requerimientos de usuarios puedan cambiar durante
el desarrollo. Los errores de desarrollo realizados en un incremento, pueden
ser arreglados antes del comienzo del próximo incremento.
Modelos basados en Prototipos desechables e incremental.
Modelo del prototipo desechable:
No se pierde el esfuerzo efectuado en la construcción del prototipo pues
sus partes o el conjunto pueden ser utilizados para construir el producto real.
Mayormente es utilizado en el desarrollo de software, si bien determinados
productos de hardware pueden hacer uso del prototipo como la base del
diseño de moldes en la fabricación con plásticos o en el diseño de
carrocerías de automóviles.
Modelo de desarrollo en espiral:
Basada en la necesidad continúa de refinar los requerimientos y
estimaciones del proyecto. Efectivo para proyectos pequeños donde con la
12
retroalimentación dada por el cliente, se aprueba las diferentes etapas,
puede ocurrir el riesgo que no se defina bien los objetivos por el cual el
desarrollo puede ser caótico.
Actividades de desarrollo de software
En Ingeniería de Software se denomina "ciclo de vida" a una determinada
organización en el tiempo de las actividades de desarrollo de software. Las
principales actividades son las siguientes:
La figura representa el denominado "ciclo de vida en cascada", donde las
flechas indican el orden en que se van realizando las actividades. Este
modelo está en desuso, pero sigue siendo adecuado para identificar las
actividades principales y el orden natural entre ellas.
Análisis de requisitos
Se estudian las necesidades de los usuarios, se decide qué debe
hacer la aplicación informática para satisfacerlas en todo o en parte, y
se genera un Documento de Requisitos.
13
Diseño de la arquitectura
Se estudia el Documento de Requisitos y se establece la estructura global de
la aplicación, descomponiéndola en partes (módulos, subsistemas)
relativamente independientes. Se genera un Documento de Diseño.
Diseño detallado
En esta segunda parte de la actividad de diseño se fijan las funciones de
cada módulo, con el detalle de su interfaz. Se genera el código de
declaración (o especificación) de cada módulo.
Codificación
Se desarrolla el código de cada módulo.
Pruebas de unidades
Como complemento de la codificación, cada módulo o grupo de módulos se
prueba por separado. En las pruebas se comprueba si cada módulo cumple
con su especificación de diseño detallado.
Pruebas de integración
Se hace funcionar la aplicación completa, combinando todos sus módulos.
Se realizan ensayos para comprobar que el funcionamiento de conjunto
cumple lo establecido en el documento de diseño.
Pruebas de validación
Como paso final de la integración se realizan nuevas pruebas de la
aplicación en su conjunto. En este caso el objetivo es comprobar que el
producto desarrollado cumple con lo establecido en el documento de
requisitos, y satisface por tanto las necesidades de los usuarios en la medida
prevista.
Fase de mantenimiento
14
No hay actividades diferenciadas de las anteriores. El mantenimiento del
producto exige rehacer parte del trabajo inicial, que puede corresponder a
cualquiera de las actividades de las etapas anteriores
Entornos de desarrollo de Software
Un entorno de desarrollo de software es una combinación de herramientas
que automatiza o soporta al menos una gran parte de las tareas (o fases) del
desarrollo: análisis de requisitos, diseño de arquitectura, diseño detallado,
codificación, pruebas de unidades, pruebas de integración y validación,
gestión de configuración, mantenimiento, etc. Las herramientas deben estar
bien integradas, pudendo interoperar unas con otras.
Están formados por el conjunto de instrumentos (hardware, software,
procedimientos,...) que facilitan o automatizan las actividades de desarrollo.
En el contexto de esta asignatura se consideran básicamente los
instrumentos software.
 CASE: Computer-Aided Software Engineering
o Con este término genérico se denominan los productos
software que dan soporte informático al desarrollo
o Sería deseable automatizar todo el desarrollo, pero
normalmente se automatiza sólo en parte
o Productos CASE: son cada uno de los instrumentos o
herramientas software de apoyo al desarrollo
 La tecnología CASE da soporte para actividades verticales
o Son actividades verticales las específicas de una fase del ciclo
de vida: análisis de requisitos, diseño de la arquitectura, edición
y compilación del código, etc.
 También se necesita soporte para actividades horizontales
o Son actividades horizontales las actividades generales:
documentación, planificación, gestión de configuración, etc.
En [2] se expone una visión práctica de los que es un entorno de desarrollo
15
Productos CASE en general
Los productos CASE facilitan el desarrollo organizado del software aplicando
técnicas de Ingeniería de Software. En sentido amplio podemos englobar en
la tecnología CASE toda la variedad de herramientas aplicables en el
desarrollo de software: herramientas de análisis y diseño; editores de código,
documentos, diagramas, etc.; compiladores y montadores de código
ejecutable (linkers); depuradores; analizadores de consistencia; herramientas
para obtención de métricas; generadores de código o de documentación;
etc., etc.
Debido a esa enorme variedad de productos, se han realizado diversos
intentos para clasificarlos. Un punto de vista para su clasificación es el nivel
de las funciones que realiza un producto determinado. En [3] (Table I) se
sugiere la siguiente terminología para los niveles funcionales:
 Servicio (service): realiza automáticamente una determinada
operación (atómica o unitaria).
Ejemplo: compilación de un programa
 Herramienta (tool): ofrece los servicios necesarios para dar soporte a
una tarea determinada (lo que hace un miembro del equipo de
desarrollo en un momento dado).
Ejemplo: edición de código fuente.
 Banco de trabajo (workbench): da soporte a todas las actividades
correspondientes a un rol o perfil profesional propio de uno de los
miembros del equipo de desarrollo.
A veces se le llama también "herramienta" (tool)
Ejemplo: "herramienta" CASE de análisis y diseño (OO, UML, ...)
 Entorno o factoría (environment, factory): da soporte a todo el proceso
de desarrollo. A veces se le llama también "banco de trabajo"
(workbench)
16
Entorno de programación
Las actividades mejor soportadas por herramientas de desarrollo son
normalmente las centrales: codificación y pruebas de unidades. El conjunto
de herramientas que soportan estas actividades constituyen lo que se llama
un entorno de programación. A veces se utilizan las siglas IDE (Integrated
Development Environment) para designar estos entornos, aunque no son un
entorno de desarrollo completo, sino sólo una parte de él.
 Siguiendo la terminología anterior, de niveles funcionales, es el banco
de trabajo del programador
 Da soporte a las actividades de la fase de codificación (preparación
del código y prueba de unidades)
 Los mismos productos sirven también para el diseño detallado y para
las pruebas de integración.
 Se sitúa, por tanto, en la parte central del ciclo de desarrollo
Funciones de un Entorno de Programación
17
Como se ha dicho, la misión de un Entorno de Programación es dar soporte
a la preparación de programas, es decir, a las actividades de codificación y
pruebas.
 Las tareas esenciales de la fase de codificación son:
o Edición (creación y modificación) del código fuente
o Proceso/ejecución del programa
 Interpretación directa (código fuente)
 Compilación (código máquina) - montaje - ejecución
 Compilación (código intermedio) - interpretación
 Otras funciones:
o Examinar (hojear) el código fuente
o Analizar consistencia, calidad, etc.
o Ejecutar en modo depuración
o Ejecución automática de pruebas
o Control de versiones
o Generar documentación, reformar código
o ... y otras muchas más ...
Entornos para ingeniería de software
Un entorno de programación, tal como se ha definido anteriormente, serviría
para dar soporte a las tareas de desarrollo de software realizadas por una
persona. Para desarrollar proyectos de software no triviales se necesita
trabajar en equipo usando las recomendaciones de la ingeniería de software.
Cada miembro del equipo de desarrollo puede disponer de una estación de
trabajo con un entorno de programación adecuado para realizar su trabajo
individual, y se necesita además algún medio de combinar los trabajos
individuales en una labor de conjunto, debidamente organizada.
Una manera intuitiva de organizar el entorno general de desarrollo es basarlo
en un repositorio central de información, dotado de un sistema de gestión de
configuración, y añadirle sistemas de mensajería, de gestión de incidencias,
herramientas de modelado para análisis y diseño, de gestión del proyecto,
etc.
18
Por ejemplo, hay plataformas generales que ofrecen este soporte como
servicios web, incluso de manera gratuita para el desarrollo de software
libre: SourceForge, Google Code, etc.
Entornos orientados a estructura
La idea de que un programa no es equivalente al texto de su código fuente,
sino que lo esencial es la estructura lógica del cómputo que describe, ha
llevado a la creación de los llamados entornos de programación orientados a
estructura[1], en los que se manipula directamente la estructura lógica del
código y no su representación como texto. Incluso hay casos en que el
código del programa no se representa como texto sino en forma gráfica.
Editores de estructura
Los editores de estructura de código, llamados también editores sintácticos o
más frecuentemente editores dirigidos por sintaxis (sintax-directed editors),
permiten editar el código fuente manipulando directamente una
representación interna de su estructura. A diferencia de la edición del código
como texto, la edición de la estructura se hace sobre elementos sintácticos
tales como expresiones, sentencias o funciones y no sobre elementos
textuales tales como caracteres, palabras o líneas.
19
La representación habitual de la estructura del código es la de su árbol de
sintaxis abstracta (AST). Ejemplo:
Siguientes características:
 Soportan un único lenguaje de programación.
 Garantizan que el código es sintácticamente correcto.
 La compilación se realiza de manera incremental, a medida que se
edita el código.
 Permite la ejecución inmediata del código editado, incluso aunque
esté incompleto.
 Soportan el desarrollo de software a nivel individual, pero no el
desarrollo en equipo a gran escala.
La mayoría de estos entornos se desarrollaron a finales de los años 70 y a lo
largo de los 80. Se emplearon habitualmente en ambientes académicos.
Algunos ejemplos de entornos orientados a estructura son:
 El Cornell Program Synthesizer (CPS). Es quizá el ejemplo más
conocido y el más referenciado en la literatura. Ha servido de ejemplo
para desarrollar otros. Permite programar en un subconjunto del
lenguaje PL/I denominado PL/CS.
 Mentor es un entorno de programación en Pascal.
20
 Gandalf es un conjunto de varios sub proyectos. Su objetivo principal
fue crear un entorno completo de desarrollo de software, y no sólo un
entorno de programación.
 Alice Pascal [es otro entorno de programación en lenguaje Pascal
compatible con Turbo Pascal. Sigue las ideas del CPS.
 SDS es un entorno de programación en Modula-2. Es un producto
comercial desarrollado por Interface Technologies. Ha desaparecido.
Como complemento se han llegado a desarrollar también generadores de
entornos similares a los generadores de compiladores. En particular existe el
Synthesizer Generator, capaz de generar entornos similares al sintetizador
de Cornell para otros lenguajes de programación a partir de una descripción
de la sintaxis y semántica del lenguaje mediante una gramática de atributos.
Análisis y Diseño Estructurado (ADE)
— • El Análisis se refiere al "extremo inicial" de un proyecto de
desarrollo de sistemas, durante el tiempo en que los requisitos del
usuario son definidos y documentados.
— • El Análisis estructurado introduce el uso de las herramientas de
documentación gráficas para producir un tipo diferente de
especificación funcional: "la especificación estructurada".
Conceptos que se relacionan con el Análisis Estructurado
— • Símbolos gráficos; iconos y convenciones para identificar y
describir los componentes de un sistema junto con las relaciones
entre estos componentes.
—• Diccionario de datos; descripciones de todos los datos utilizados
en el sistema.
—• Descripciones de procesos y procedimientos; declaraciones
formales que emplean técnicas y lenguajes que permiten a los
analistas describir actividades importantes que forman parte del
sistema.
—• Reglas; estándares para describir y documentar el sistema en
forma correcta y completa.
Fase de Diseño
21
En esta fase, el diseño estructurado produce el modelo de diseño con
los siguientes elementos:
— • Diseño de datos. Transforma el modelo de dominio de la
información creado durante el análisis, en las estructuras de datos
necesarias para implementar el software. Los objetos de datos y las
relaciones definidas en el diagrama entidad-relación y el contenido
detallado de datos del diccionario de datos constituyen la base para
el diseño de datos.
— •Diseño arquitectónico. Define la relación entre los principales
elementos estructurales del programa. Se obtiene a partir del modelo
de análisis y de la interacción de subsistemas definidos dentro del
modelo de análisis.
— •Diseño de interfaz. Describe como se comunica el software
consigo mismo, con los sistemas que operan con él y con los
operadores que lo emplean. Los diagramas de flujo de datos y control
proporcionan la información necesaria para el diseño de la interfaz.
— •Diseño procedimental. Transforma elementos estructurales de la
arquitectura del programa en una descripción procedimental de los
componentes del software. Se obtiene a partir de la especificación
del proceso, la especificación del control y el diagrama de transición
de estados
Análisis y Diseño Orientado a Objetos (ADOO)
Es un método de análisis que examina los requerimientos desde la
perspectiva de clase y objetos encontrada en el vocabulario original
del problema. Se fundamenta en un conjunto de cinco principios
básicos:
— • Modelar el dominio de la información.
— • Describir la función del módulo.
— • Representar el comportamiento del modelo.
— • Dividir el modelo para mostrar más detalles.
En este tipo de análisis los modelos iníciales representan la esencia
del problema, mientras que los últimos aportan detalles de la
implementación.
22
Características del Análisis Orientado a Objetos
— • Identidad: Los datos están cuantificados en entidades discretas y
distinguibles denominadas objetos. Estos pueden ser tangibles o
intangibles.
— • Clasificación: Los objetos con la misma estructura de datos
(atributos) y comportamiento (operaciones) se agrupan para formar
una misma clase, se dice que cada objeto es una instancia de su
propia clase, y una clase es una abstracción que describe
propiedades importantes para una aplicación y se olvida del resto.
— • Polimorfismo: Significa que una misma operación puede
comportarse de modos distintos en distintas clases, una operación es
una acción o transformación que se aplica a un objeto.
— • Herencia: Comparte atributos y operaciones entre clases
tomando como base una relación jerárquica, es decir que se puede
definir una clase que después producirá subclases, sabiendo que
todas las subclases adquirirán todas y cada una de las propiedades
de su súper-clase y le agrega además sus propiedades exclusivas.
Fase de Diseño
Para los sistemas orientados a objetos es posible definir un diseño en
pirámide con las siguientes cuatro capas:
— • Subsistema. Contiene una representación de cada uno de los
subsistemas que le permiten al software conseguir los requisitos
definidos por el cliente e implementar la infraestructura técnica que
los soporta.
— • Clases y Objetos. Contiene las jerarquías de clases que permiten
crear el sistema utilizando generalizaciones y especializaciones mejor
definidas incrementalmente. También contiene representaciones de
diseño para cada objeto.
— • Mensajes. Contiene los detalles que permiten a cada objeto
comunicarse con sus colaboradores. Establece las interfaces
externas e internas para el sistema.
— • Responsabilidades. Contiene las estructuras de datos y el diseño
algorítmico para todos los atributos y operaciones de cada objeto
.
23
Ejemplos de software
Ejemplo de Software de sistema:
Sistemas operativos (Linux, Windows, solaris, etc.)
Controladores de dispositivo ó drivers (driver de tarjeta de video o audio)
Herramientas de diagnóstico (Everest, Sonia, etc.)
Herramientas de Corrección y Optimización (Norton Systemworks)
Servidores (Windows NT, Apache)
Utilidades (Accesorios de Windows, símbolo de sistema)
Ejemplo de Software de programación:
Editores de texto (Pascal, Edit. de MS-DOS)
Compiladores (C, C++, Visual Basic, Fortran, Cobol)
Intérpretes (Ensamblador, Java)
Enlazadores (Oracle, Circle)
Depuradores (GNU Debugger (gdb), SoftICE)
Entornos de Desarrollo Integrados ó IDE (NetBean, Visual Basic)
ejemplo de Software de aplicación:
Aplicaciones de Sistema de control y automatización industrial (Cibermatrix)
Aplicaciones ofimáticas (Office, Word, Excel)
Software educativo (Clic, GCompris, PLATO)
Software médico (Cardiactrex X/70)
Software de Cálculo Numérico (Excel, COI, NOI, SAE)
Software de Diseño Asistido ó CAD (Auto CAD)
Software de Control Numérico ó CAM (CAM350, Gerbtool)

Más contenido relacionado

La actualidad más candente

Proyecto ciid uti_2011
Proyecto ciid uti_2011Proyecto ciid uti_2011
Proyecto ciid uti_2011Luis Sailema
 
Itsa metodologias de desarrollo de software (alejandra virrueta mendez)
Itsa  metodologias de desarrollo de software (alejandra virrueta mendez)Itsa  metodologias de desarrollo de software (alejandra virrueta mendez)
Itsa metodologias de desarrollo de software (alejandra virrueta mendez)virrueta
 
Ingeniería del software ensayo
Ingeniería del software ensayoIngeniería del software ensayo
Ingeniería del software ensayoValentino Crocetta
 

La actualidad más candente (6)

Proyecto ciid uti_2011
Proyecto ciid uti_2011Proyecto ciid uti_2011
Proyecto ciid uti_2011
 
Itsa metodologias de desarrollo de software (alejandra virrueta mendez)
Itsa  metodologias de desarrollo de software (alejandra virrueta mendez)Itsa  metodologias de desarrollo de software (alejandra virrueta mendez)
Itsa metodologias de desarrollo de software (alejandra virrueta mendez)
 
Modelo del proceso_software
Modelo del proceso_softwareModelo del proceso_software
Modelo del proceso_software
 
Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1
 
17875386 ficha-del-proyecto-terminada
17875386 ficha-del-proyecto-terminada17875386 ficha-del-proyecto-terminada
17875386 ficha-del-proyecto-terminada
 
Ingeniería del software ensayo
Ingeniería del software ensayoIngeniería del software ensayo
Ingeniería del software ensayo
 

Destacado

Entorno de desarrollo integrado
Entorno de desarrollo integradoEntorno de desarrollo integrado
Entorno de desarrollo integradoNIRVANA27
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN II
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IIENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN II
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IIJacinto Cabrera Rodríguez
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuarioaleja0940
 
Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosUGM
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IJacinto Cabrera Rodríguez
 
Herramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de InformaciónHerramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de Informaciónjgbd127
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETNilian Cabral
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareReynaldo Mayz
 

Destacado (13)

Entorno de desarrollo integrado
Entorno de desarrollo integradoEntorno de desarrollo integrado
Entorno de desarrollo integrado
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN II
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IIENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN II
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN II
 
ENTORNOS DE DESARROLLO: EL SOFTWARE
ENTORNOS DE DESARROLLO: EL SOFTWAREENTORNOS DE DESARROLLO: EL SOFTWARE
ENTORNOS DE DESARROLLO: EL SOFTWARE
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuario
 
Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo Integrados
 
Conociendo a BlueJ
Conociendo a BlueJConociendo a BlueJ
Conociendo a BlueJ
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
 
Jbuilder
JbuilderJbuilder
Jbuilder
 
Herramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de InformaciónHerramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de Información
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NET
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 

Similar a Ing. de software

Trabajo colaborativo no 1
Trabajo colaborativo no 1Trabajo colaborativo no 1
Trabajo colaborativo no 1miguel0285
 
Iswi t01 - romero prado , gyno (2)
Iswi   t01 - romero prado , gyno (2)Iswi   t01 - romero prado , gyno (2)
Iswi t01 - romero prado , gyno (2)Gyno Romero Prado
 
El software del computador (informe)
El software del computador (informe)El software del computador (informe)
El software del computador (informe)moncayocris
 
Informe de sofware
Informe de sofwareInforme de sofware
Informe de sofwareSusy Ramos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuriyasurimarleni
 
Software libre y propietario
Software libre y propietarioSoftware libre y propietario
Software libre y propietarioGaby Onofre
 
Documento - Aplicaciones para internet
Documento - Aplicaciones para internetDocumento - Aplicaciones para internet
Documento - Aplicaciones para internetIntComp-ULS
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
Actividad 2 ensayo el software
Actividad 2 ensayo el softwareActividad 2 ensayo el software
Actividad 2 ensayo el softwareOswaldo Perez
 

Similar a Ing. de software (20)

Trabajo colaborativo no 1
Trabajo colaborativo no 1Trabajo colaborativo no 1
Trabajo colaborativo no 1
 
Iswi t01 - ing sofware
Iswi   t01 - ing sofwareIswi   t01 - ing sofware
Iswi t01 - ing sofware
 
Iswi t01 - romero prado , gyno (2)
Iswi   t01 - romero prado , gyno (2)Iswi   t01 - romero prado , gyno (2)
Iswi t01 - romero prado , gyno (2)
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Mariannysbermudez ing
Mariannysbermudez ingMariannysbermudez ing
Mariannysbermudez ing
 
Informe software
Informe softwareInforme software
Informe software
 
El software del computador (informe)
El software del computador (informe)El software del computador (informe)
El software del computador (informe)
 
Informe de sofware
Informe de sofwareInforme de sofware
Informe de sofware
 
Informe de sofware
Informe de sofwareInforme de sofware
Informe de sofware
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Cesar prado ing
Cesar prado ingCesar prado ing
Cesar prado ing
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuri
 
Software libre y propietario
Software libre y propietarioSoftware libre y propietario
Software libre y propietario
 
Documento - Aplicaciones para internet
Documento - Aplicaciones para internetDocumento - Aplicaciones para internet
Documento - Aplicaciones para internet
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
Mariannysbermudez ing
Mariannysbermudez ingMariannysbermudez ing
Mariannysbermudez ing
 
Actividad 2 ensayo el software
Actividad 2 ensayo el softwareActividad 2 ensayo el software
Actividad 2 ensayo el software
 

Último

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 

Último (20)

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 

Ing. de software

  • 1. REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LA FUERZA ARMADA NACIONAL BOLIVARIANA UNEFA YARACUY____ EXTENSION NIRGUA INGENIERIA DE SOFTWARE NIRGUA 2015
  • 2. 2 REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LA FUERZA ARMADA NACIONAL BOLIVARIANA UNEFA YARACUY____ EXTENSION NIRGUA INGENIERIA DE SOFTWARE Facilitador: Emprendedores: Ing. Edgardo Molina Rafael González 25.616.627 Milanyeli león 25.785.142 Ingeniería de sistema Sección:”U” NIRGUA. OCTUBRE 2015
  • 3. 3 INDICE PAG. Introducción………………………………………………………………………….4 Ingeniería de software………………………………………………………………5 Proceso de desarrollo……………………………………………………………....5 Complejidad de los sistemas de software………………………………………..5 Características de sistemas de software…………………………………….......8 Modelos de ciclo de vida………………………………………………….............9 Actividades de desarrollo de software…………………………………………..12 Entornos de desarrollo de software……………………………………………...14 Productos de case en general……………………………………………………15 Entorno de programación…………………………………………………………16 Entornos para la ingeniería de software………………………………………...17 Entornos orientados a estructuras……………………………………………….18 Análisis y diseños estructurados…………………………………………………20 Análisis y diseños orientados a objetos…………………………………………21 Ejemplos de software……………………………………………………………..23
  • 4. 4 INTRODUCCION En el siguiente trabajo está basado en la ingeniería de software. Por lo cual tendrá mucho contenido relevante e importante para el aprendizaje ya que la ingeniería de software es la disciplina que tiene el propósito de diseñar, crear y mantener el software por medio de la aplicación de tecnologías y prácticas de las ciencias de la computación, administración de proyectos, ingeniería, dominio de aplicaciones, diseño de interfaces, administración de componentes digitales y otros campos. Este término ganó popularidad después de 1968, fue presentado durante la Conferencia NATO en el mismo año. También nos encontraremos con sus complejos y su proceso de desarrollo de igual forma con muchos modelos de ciclo de vida como es aquel modelo de cascada que dice que el desarrollo de software esa través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas. Utiliza punto de control para pasar a la siguiente fase: Análisis, Diseño, Codificación, Pruebas, Implementación, Mantenimiento. Se tarda mucho tiempo en pasar todo el cicloscada que se refiere. Ya mencionados algunos términos que encontraremos en dicho trabajo. Esperamos que se ha de mucha ayuda para el aprendizaje tanto en lo teórico como en la práctica.
  • 5. 5 Ingeniería de software La ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software, mediante la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software, tratándose del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales. Proceso de Desarrollo de Software Un proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucrada. Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el desarrollo de software hay una serie de desafíos adicionales, relativos esencialmente a la naturaleza del proyecto obtenido. Complejidad de los Sistemas de Software. En un sistema, la complejidad es directamente proporcional al número de elementos involucrado ya la complejidad de cada elemento. La mayoría de las aplicaciones que son especificadas, desarrolladas mantenidas y utilizada por una sola persona no son complejas. Por otro lado, las aplicaciones que forman partes del software de dimensión industrial exhiben un conjunto muy rico de comportamientos, y son propensas a tener un ciclo de vida muy largo. Estas aplicaciones son complejas y no pueden ser desarrolladas por una sola persona. Su mantenimiento y su utilización también involucran a varios individuos.
  • 6. 6 La complejidad es parte esencial de los sistemas de software de gran tamaño. Se puede manejar, pero no se puede eliminar. Según Grady booch, la complejidad de los sistemas de software se deriva de cuatros elementos: 1. La complejidad del dominio del problema. 2. La dificulta de gestionar el proceso de desarrollo. 3. La flexibilidad que se puede alcanzar a través del software. 4. Los problemas de caracterizar el comportamiento de sistemas directos. 1.- La complejidad del dominio del problema: los problemas que se intenta resolver son inherente complejos, con una gran cantidad de requisitos que compiten entre sí. 2.-La dificulta de gestionar el proceso de desarrollo: el desarrollo de software enfrenta el reto de dar a los usuarios la impresión de simplicidad, esto es reducir al mínimo la complejidad externa. Este reto les obliga a incrementar el tamaño del sistema, a inventar mecanismo ingenioso, o a reutilizar diseños y código ya existentes. 3.- La flexibilidad que se puede alcanzar a través del software: la elaboración de software es una actividad muy laboriosa porque empuja al desarrollador a construir por si mismo prácticamente todos los bloques fundamentales sobre los que se apoyan las abstracciones de más alto nivel. 4.- Los problemas de caracterizar el comportamiento de sistemas directos: los comportamientos de las mayorías de los objetos se representan por sistemas analógicos en los que, a través de funciones continuas, pequeños cambios en las entradas siempre producen pequeños cambios en la salida. Recursos de software en sistemas complejos
  • 7. 7 1. - Sistema operativo que uso habitualmente en los ordenadores: GNU Linux, distribuciones Ubuntu y openSUSE. 2. Aplicaciones informáticas que empleo bajo sistema operativo GNU Linux:  Navegadores internet: Mozilla Firefox, Google Chrome y Opera.  Acceso a servidores (FTP): Filezilla.  Cliente correo electrónico POP: Evolution.  Correo electrónico en línea (online): Universidad de Murcia, Gmail.  Ofimática (editor de textos, hoja de cálculo, base de datos, presentaciones): Libre office.  Ofimática en línea (online): google drive (Antes denominado Google Docs).  Tratamiento de imágenes: Gimp, ImageMagick.  Gestor y lector de libros electrónicos: Calibre.  Creación de páginas web: Bluefish y Aptana (bajo entorno Eclipse).  Reproductores Música y archivos mp3 y ogg: amaroK.  Grabador de soportes ópticos (CD, DVD,..): Brasero.  Mapas y rutas en línea: Google Maps.  Captura de sitios web al ordenador: Httrack.  Verificador de enlaces en páginas web: Screaming Frog SEO Spider y KlinkStatus.  Antivirus: En GNU Linux no se precisa antivirus.  Sistema de búsqueda e instalación de software: Centro de software de Ubuntu. 3. Aplicaciones informáticas habituales bajo sistema operativo Windows (sólo las empleo si no hay aplicación equivalente bajo GNU Linux):  Navegadores internet: Mozilla Firefox, Google Chrome y Opera.  Acceso a servidores (FTP): Filezilla.  Cliente correo electrónico POP: Pegasus.  Correo electrónico en línea (online): Universidad de Murcia, Gmail.
  • 8. 8  Ofimática (editor de textos, hoja de cálculo, base de datos, presentaciones): Libre office.  Ofimática en línea (online): Google Drive.  Gestor y lector de libros electrónicos: Calibre.  Gestor de imágenes, operaciones básicas: FastStone.  Creación de páginas web: Bluefish.  Grabador de soportes ópticos (CD, DVD,..): CDBurner XP.  Mapas y rutas en línea: Google Maps.  Captura de sitios web al ordenador: Httrack.  Verificador de enlaces en páginas web: Xenu, que permite crear mapas XML y detectar enlaces perdidos.  Antivirus: vira. 4. Aplicaciones informáticas que empleo bajo sistema operativo Symbian (teléfono móvil celular)  Navegador internet: Opera.  Mapas y rutas en línea: Google Maps y Nokia Maps.  Ofimática: Quickoffice 5. Aplicaciones informáticas que empleo bajo sistema operativo Androide (tableta)  Navegador internet: Opera, Firefox y Google Chrome.  Mapas y rutas en línea: Google Maps.  Ofimática: Google Drive. Característica de sistema de software 1.- Generación de reportes médicos y exámenes de cada estudiante. 2.- Entorno dinámico, amigable y de fácil manejo. 3.- Accesible al arranque del sistema funcionalidad del sistema. 4.- Registrar la información socio-económica del educando logrando facilitar un rendimiento óptimo al momento de realizar la búsqueda de los datos
  • 9. 9 Mencionados. 5.-Controlar y registrar el ingreso y egreso de los artículos propios de la institución para el beneficio de los diferentes departamentos que harán uso de los mismos, logrando presentar un informe mensual. 6.- Controlar el seguimiento de la documentación emitida y recibida de su estado de tramitación; además de generar datos estadísticos conociendo el estado de los oficios procesados. Características de los usuarios. Las interfaces de usuario deberán ser de manejo intuitivo, fácil de aprender y sencillo de manejar. Lo deseable sería que un usuario nuevo se familiarizase con el sistema en muy poco tiempo. 7.- La encargada del departamento Medico, es Doctora en Medicina General. 8.-La encargada del departamento de Guardalmacén es Ingeniera en Contabilidad. 9.- El encargado del departamento de archivo, es Licenciado en Administración. Requerimiento del software. 10.-Ordenador con procesador de doble núcleo de 2.4 GHZ Disco Duro 250GB Memory RAM: 2GB Dbms: SQL SERVER 2005Lenguaje: C# Restricciones. La máquina en que se ejecute el sistema, deberá de existir C# instalado. 11.- Los inventarios no podrán ser modificados, se actualizarán de manera continua y automática. 12.- Los reportes del Dpto. de Guardalmacén una vez registrados, no podrán ser alterados por el usuario. 13.- La documentación, una vez que se ha registrado, no podrá ser actualizada, ni eliminada, ya que todos esos datos servirán para realizar reportes mensuales. Modelos de Ciclos de Vida Análisis Comparativo
  • 10. 10 Es una técnica utilizada para medir el rendimiento de un sistema o componente del mismo, frecuentemente en comparación con el que se refiere específicamente a la acción de ejecutar un benchmark. Modelo en Cascada Este es el más básico de todos los modelos. Su visión dice que el desarrollo de software esa través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas. Utiliza punto de control para pasar a la siguiente fase: Análisis, Diseño, Codificación, Pruebas, Implementación, Mantenimiento. Se tarda mucho tiempo en pasar todo el ciclo. El fracaso del software es la comunicación con el usuario final. Se utiliza en proyectos con requerimientos bien definidos. Las flechas muestran el flujo de información entre las fases. Este modelo se enfrasca en los en: Planear un proyecto antes de embarcarse en él. Definir el comportamiento externo antes de diseñar su arquitectura interna. Documentar los resultados de cada actividad. Diseñar un sistema antes de codificarlo. Testear el sistema después de construirlo. Elementos  Requerimiento.  Análisis y diseño.  Diseño detallado.  Codificación.  Prueba.  Operaciones. Características  Es el más utilizado.  es una visión del proceso de desarrollo de software con una sucesión de etapas que producen productos intermedios.
  • 11. 11  Para que el proyecto tenga éxito deben desarrollarse todas las fases.  Las fases continúan hasta que los objetivos se han cumplido.  Si se cambian el orden de las fases, el producto final será de inferior calidad. Modelo Incremental: Existen riesgos en el desarrollo de sistemas largos y complejos. La forma de reducir los riesgos es construir una parte del sistema. Un sistema pequeño es siempre menos riesgoso que construir un sistema grande.es más fácil determinar si los requerimientos para los niveles subsiguientes son correctos. Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo. Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento. Modelos basados en Prototipos desechables e incremental. Modelo del prototipo desechable: No se pierde el esfuerzo efectuado en la construcción del prototipo pues sus partes o el conjunto pueden ser utilizados para construir el producto real. Mayormente es utilizado en el desarrollo de software, si bien determinados productos de hardware pueden hacer uso del prototipo como la base del diseño de moldes en la fabricación con plásticos o en el diseño de carrocerías de automóviles. Modelo de desarrollo en espiral: Basada en la necesidad continúa de refinar los requerimientos y estimaciones del proyecto. Efectivo para proyectos pequeños donde con la
  • 12. 12 retroalimentación dada por el cliente, se aprueba las diferentes etapas, puede ocurrir el riesgo que no se defina bien los objetivos por el cual el desarrollo puede ser caótico. Actividades de desarrollo de software En Ingeniería de Software se denomina "ciclo de vida" a una determinada organización en el tiempo de las actividades de desarrollo de software. Las principales actividades son las siguientes: La figura representa el denominado "ciclo de vida en cascada", donde las flechas indican el orden en que se van realizando las actividades. Este modelo está en desuso, pero sigue siendo adecuado para identificar las actividades principales y el orden natural entre ellas. Análisis de requisitos Se estudian las necesidades de los usuarios, se decide qué debe hacer la aplicación informática para satisfacerlas en todo o en parte, y se genera un Documento de Requisitos.
  • 13. 13 Diseño de la arquitectura Se estudia el Documento de Requisitos y se establece la estructura global de la aplicación, descomponiéndola en partes (módulos, subsistemas) relativamente independientes. Se genera un Documento de Diseño. Diseño detallado En esta segunda parte de la actividad de diseño se fijan las funciones de cada módulo, con el detalle de su interfaz. Se genera el código de declaración (o especificación) de cada módulo. Codificación Se desarrolla el código de cada módulo. Pruebas de unidades Como complemento de la codificación, cada módulo o grupo de módulos se prueba por separado. En las pruebas se comprueba si cada módulo cumple con su especificación de diseño detallado. Pruebas de integración Se hace funcionar la aplicación completa, combinando todos sus módulos. Se realizan ensayos para comprobar que el funcionamiento de conjunto cumple lo establecido en el documento de diseño. Pruebas de validación Como paso final de la integración se realizan nuevas pruebas de la aplicación en su conjunto. En este caso el objetivo es comprobar que el producto desarrollado cumple con lo establecido en el documento de requisitos, y satisface por tanto las necesidades de los usuarios en la medida prevista. Fase de mantenimiento
  • 14. 14 No hay actividades diferenciadas de las anteriores. El mantenimiento del producto exige rehacer parte del trabajo inicial, que puede corresponder a cualquiera de las actividades de las etapas anteriores Entornos de desarrollo de Software Un entorno de desarrollo de software es una combinación de herramientas que automatiza o soporta al menos una gran parte de las tareas (o fases) del desarrollo: análisis de requisitos, diseño de arquitectura, diseño detallado, codificación, pruebas de unidades, pruebas de integración y validación, gestión de configuración, mantenimiento, etc. Las herramientas deben estar bien integradas, pudendo interoperar unas con otras. Están formados por el conjunto de instrumentos (hardware, software, procedimientos,...) que facilitan o automatizan las actividades de desarrollo. En el contexto de esta asignatura se consideran básicamente los instrumentos software.  CASE: Computer-Aided Software Engineering o Con este término genérico se denominan los productos software que dan soporte informático al desarrollo o Sería deseable automatizar todo el desarrollo, pero normalmente se automatiza sólo en parte o Productos CASE: son cada uno de los instrumentos o herramientas software de apoyo al desarrollo  La tecnología CASE da soporte para actividades verticales o Son actividades verticales las específicas de una fase del ciclo de vida: análisis de requisitos, diseño de la arquitectura, edición y compilación del código, etc.  También se necesita soporte para actividades horizontales o Son actividades horizontales las actividades generales: documentación, planificación, gestión de configuración, etc. En [2] se expone una visión práctica de los que es un entorno de desarrollo
  • 15. 15 Productos CASE en general Los productos CASE facilitan el desarrollo organizado del software aplicando técnicas de Ingeniería de Software. En sentido amplio podemos englobar en la tecnología CASE toda la variedad de herramientas aplicables en el desarrollo de software: herramientas de análisis y diseño; editores de código, documentos, diagramas, etc.; compiladores y montadores de código ejecutable (linkers); depuradores; analizadores de consistencia; herramientas para obtención de métricas; generadores de código o de documentación; etc., etc. Debido a esa enorme variedad de productos, se han realizado diversos intentos para clasificarlos. Un punto de vista para su clasificación es el nivel de las funciones que realiza un producto determinado. En [3] (Table I) se sugiere la siguiente terminología para los niveles funcionales:  Servicio (service): realiza automáticamente una determinada operación (atómica o unitaria). Ejemplo: compilación de un programa  Herramienta (tool): ofrece los servicios necesarios para dar soporte a una tarea determinada (lo que hace un miembro del equipo de desarrollo en un momento dado). Ejemplo: edición de código fuente.  Banco de trabajo (workbench): da soporte a todas las actividades correspondientes a un rol o perfil profesional propio de uno de los miembros del equipo de desarrollo. A veces se le llama también "herramienta" (tool) Ejemplo: "herramienta" CASE de análisis y diseño (OO, UML, ...)  Entorno o factoría (environment, factory): da soporte a todo el proceso de desarrollo. A veces se le llama también "banco de trabajo" (workbench)
  • 16. 16 Entorno de programación Las actividades mejor soportadas por herramientas de desarrollo son normalmente las centrales: codificación y pruebas de unidades. El conjunto de herramientas que soportan estas actividades constituyen lo que se llama un entorno de programación. A veces se utilizan las siglas IDE (Integrated Development Environment) para designar estos entornos, aunque no son un entorno de desarrollo completo, sino sólo una parte de él.  Siguiendo la terminología anterior, de niveles funcionales, es el banco de trabajo del programador  Da soporte a las actividades de la fase de codificación (preparación del código y prueba de unidades)  Los mismos productos sirven también para el diseño detallado y para las pruebas de integración.  Se sitúa, por tanto, en la parte central del ciclo de desarrollo Funciones de un Entorno de Programación
  • 17. 17 Como se ha dicho, la misión de un Entorno de Programación es dar soporte a la preparación de programas, es decir, a las actividades de codificación y pruebas.  Las tareas esenciales de la fase de codificación son: o Edición (creación y modificación) del código fuente o Proceso/ejecución del programa  Interpretación directa (código fuente)  Compilación (código máquina) - montaje - ejecución  Compilación (código intermedio) - interpretación  Otras funciones: o Examinar (hojear) el código fuente o Analizar consistencia, calidad, etc. o Ejecutar en modo depuración o Ejecución automática de pruebas o Control de versiones o Generar documentación, reformar código o ... y otras muchas más ... Entornos para ingeniería de software Un entorno de programación, tal como se ha definido anteriormente, serviría para dar soporte a las tareas de desarrollo de software realizadas por una persona. Para desarrollar proyectos de software no triviales se necesita trabajar en equipo usando las recomendaciones de la ingeniería de software. Cada miembro del equipo de desarrollo puede disponer de una estación de trabajo con un entorno de programación adecuado para realizar su trabajo individual, y se necesita además algún medio de combinar los trabajos individuales en una labor de conjunto, debidamente organizada. Una manera intuitiva de organizar el entorno general de desarrollo es basarlo en un repositorio central de información, dotado de un sistema de gestión de configuración, y añadirle sistemas de mensajería, de gestión de incidencias, herramientas de modelado para análisis y diseño, de gestión del proyecto, etc.
  • 18. 18 Por ejemplo, hay plataformas generales que ofrecen este soporte como servicios web, incluso de manera gratuita para el desarrollo de software libre: SourceForge, Google Code, etc. Entornos orientados a estructura La idea de que un programa no es equivalente al texto de su código fuente, sino que lo esencial es la estructura lógica del cómputo que describe, ha llevado a la creación de los llamados entornos de programación orientados a estructura[1], en los que se manipula directamente la estructura lógica del código y no su representación como texto. Incluso hay casos en que el código del programa no se representa como texto sino en forma gráfica. Editores de estructura Los editores de estructura de código, llamados también editores sintácticos o más frecuentemente editores dirigidos por sintaxis (sintax-directed editors), permiten editar el código fuente manipulando directamente una representación interna de su estructura. A diferencia de la edición del código como texto, la edición de la estructura se hace sobre elementos sintácticos tales como expresiones, sentencias o funciones y no sobre elementos textuales tales como caracteres, palabras o líneas.
  • 19. 19 La representación habitual de la estructura del código es la de su árbol de sintaxis abstracta (AST). Ejemplo: Siguientes características:  Soportan un único lenguaje de programación.  Garantizan que el código es sintácticamente correcto.  La compilación se realiza de manera incremental, a medida que se edita el código.  Permite la ejecución inmediata del código editado, incluso aunque esté incompleto.  Soportan el desarrollo de software a nivel individual, pero no el desarrollo en equipo a gran escala. La mayoría de estos entornos se desarrollaron a finales de los años 70 y a lo largo de los 80. Se emplearon habitualmente en ambientes académicos. Algunos ejemplos de entornos orientados a estructura son:  El Cornell Program Synthesizer (CPS). Es quizá el ejemplo más conocido y el más referenciado en la literatura. Ha servido de ejemplo para desarrollar otros. Permite programar en un subconjunto del lenguaje PL/I denominado PL/CS.  Mentor es un entorno de programación en Pascal.
  • 20. 20  Gandalf es un conjunto de varios sub proyectos. Su objetivo principal fue crear un entorno completo de desarrollo de software, y no sólo un entorno de programación.  Alice Pascal [es otro entorno de programación en lenguaje Pascal compatible con Turbo Pascal. Sigue las ideas del CPS.  SDS es un entorno de programación en Modula-2. Es un producto comercial desarrollado por Interface Technologies. Ha desaparecido. Como complemento se han llegado a desarrollar también generadores de entornos similares a los generadores de compiladores. En particular existe el Synthesizer Generator, capaz de generar entornos similares al sintetizador de Cornell para otros lenguajes de programación a partir de una descripción de la sintaxis y semántica del lenguaje mediante una gramática de atributos. Análisis y Diseño Estructurado (ADE) — • El Análisis se refiere al "extremo inicial" de un proyecto de desarrollo de sistemas, durante el tiempo en que los requisitos del usuario son definidos y documentados. — • El Análisis estructurado introduce el uso de las herramientas de documentación gráficas para producir un tipo diferente de especificación funcional: "la especificación estructurada". Conceptos que se relacionan con el Análisis Estructurado — • Símbolos gráficos; iconos y convenciones para identificar y describir los componentes de un sistema junto con las relaciones entre estos componentes. —• Diccionario de datos; descripciones de todos los datos utilizados en el sistema. —• Descripciones de procesos y procedimientos; declaraciones formales que emplean técnicas y lenguajes que permiten a los analistas describir actividades importantes que forman parte del sistema. —• Reglas; estándares para describir y documentar el sistema en forma correcta y completa. Fase de Diseño
  • 21. 21 En esta fase, el diseño estructurado produce el modelo de diseño con los siguientes elementos: — • Diseño de datos. Transforma el modelo de dominio de la información creado durante el análisis, en las estructuras de datos necesarias para implementar el software. Los objetos de datos y las relaciones definidas en el diagrama entidad-relación y el contenido detallado de datos del diccionario de datos constituyen la base para el diseño de datos. — •Diseño arquitectónico. Define la relación entre los principales elementos estructurales del programa. Se obtiene a partir del modelo de análisis y de la interacción de subsistemas definidos dentro del modelo de análisis. — •Diseño de interfaz. Describe como se comunica el software consigo mismo, con los sistemas que operan con él y con los operadores que lo emplean. Los diagramas de flujo de datos y control proporcionan la información necesaria para el diseño de la interfaz. — •Diseño procedimental. Transforma elementos estructurales de la arquitectura del programa en una descripción procedimental de los componentes del software. Se obtiene a partir de la especificación del proceso, la especificación del control y el diagrama de transición de estados Análisis y Diseño Orientado a Objetos (ADOO) Es un método de análisis que examina los requerimientos desde la perspectiva de clase y objetos encontrada en el vocabulario original del problema. Se fundamenta en un conjunto de cinco principios básicos: — • Modelar el dominio de la información. — • Describir la función del módulo. — • Representar el comportamiento del modelo. — • Dividir el modelo para mostrar más detalles. En este tipo de análisis los modelos iníciales representan la esencia del problema, mientras que los últimos aportan detalles de la implementación.
  • 22. 22 Características del Análisis Orientado a Objetos — • Identidad: Los datos están cuantificados en entidades discretas y distinguibles denominadas objetos. Estos pueden ser tangibles o intangibles. — • Clasificación: Los objetos con la misma estructura de datos (atributos) y comportamiento (operaciones) se agrupan para formar una misma clase, se dice que cada objeto es una instancia de su propia clase, y una clase es una abstracción que describe propiedades importantes para una aplicación y se olvida del resto. — • Polimorfismo: Significa que una misma operación puede comportarse de modos distintos en distintas clases, una operación es una acción o transformación que se aplica a un objeto. — • Herencia: Comparte atributos y operaciones entre clases tomando como base una relación jerárquica, es decir que se puede definir una clase que después producirá subclases, sabiendo que todas las subclases adquirirán todas y cada una de las propiedades de su súper-clase y le agrega además sus propiedades exclusivas. Fase de Diseño Para los sistemas orientados a objetos es posible definir un diseño en pirámide con las siguientes cuatro capas: — • Subsistema. Contiene una representación de cada uno de los subsistemas que le permiten al software conseguir los requisitos definidos por el cliente e implementar la infraestructura técnica que los soporta. — • Clases y Objetos. Contiene las jerarquías de clases que permiten crear el sistema utilizando generalizaciones y especializaciones mejor definidas incrementalmente. También contiene representaciones de diseño para cada objeto. — • Mensajes. Contiene los detalles que permiten a cada objeto comunicarse con sus colaboradores. Establece las interfaces externas e internas para el sistema. — • Responsabilidades. Contiene las estructuras de datos y el diseño algorítmico para todos los atributos y operaciones de cada objeto .
  • 23. 23 Ejemplos de software Ejemplo de Software de sistema: Sistemas operativos (Linux, Windows, solaris, etc.) Controladores de dispositivo ó drivers (driver de tarjeta de video o audio) Herramientas de diagnóstico (Everest, Sonia, etc.) Herramientas de Corrección y Optimización (Norton Systemworks) Servidores (Windows NT, Apache) Utilidades (Accesorios de Windows, símbolo de sistema) Ejemplo de Software de programación: Editores de texto (Pascal, Edit. de MS-DOS) Compiladores (C, C++, Visual Basic, Fortran, Cobol) Intérpretes (Ensamblador, Java) Enlazadores (Oracle, Circle) Depuradores (GNU Debugger (gdb), SoftICE) Entornos de Desarrollo Integrados ó IDE (NetBean, Visual Basic) ejemplo de Software de aplicación: Aplicaciones de Sistema de control y automatización industrial (Cibermatrix) Aplicaciones ofimáticas (Office, Word, Excel) Software educativo (Clic, GCompris, PLATO) Software médico (Cardiactrex X/70) Software de Cálculo Numérico (Excel, COI, NOI, SAE) Software de Diseño Asistido ó CAD (Auto CAD) Software de Control Numérico ó CAM (CAM350, Gerbtool)