You are on page 1of 19

Introduccin:

El trmino ingeniera de software abarca al grupo de mtodos, tcnicas y herramientas que se utilizan en la produccin del software, ms all de la actividad principal de programacin. El trmino "ingeniera" es una referencia directa a la ingeniera civil, una referencia al estudio de la construccin. En programacin se aplica el mismo principio que en la construccin de un edificio: poner simplemente ladrillos y cemento no es suficiente. La construccin de un edificio consta de diversos pasos antes de comenzar con la fase de construccin, tales como el diseo arquitectnico, la albailera, la fontanera, el diseo elctrico, y durante este perodo se calculan los presupuestos y los plazos. Por lo tanto, la ingeniera de software requiere la gestin de proyectos para que se pueda desarrollar una aplicacin en el plazo previsto y con el presupuesto establecido que sea satisfactoria para el cliente.

Fundamentos de la Ingeniera de Software o El Software:


Se denomina Software a todos los componentes lgicos de una computadora, es decir, al conjunto de programas y procedimientos necesarios para hacer posible la realizacin de una tarea especfica, en contra posicin a los componentes fsicos del sistema (hardware). Secuencia de instrucciones destinadas a ser empleada por un sistema informtico, para realizar una tarea o para obtener un resultado determinado. Se puede destacar, entre otras, la definicin de software dada por el IEEE: Aquellos programas de computador, procedimientos, reglas y documentacin posible asociada con la computacin, as como los datos pertenecientes a las operaciones de un sistema de computacin. Instrucciones que, cuando se ejecutan, proporcionan la funcionalidad deseada.

Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de computacin.

El software no son solo programas, sino todos los documentos asociados y la configuracin de datos que se necesitan para hacer que estos programas operen de manera correcta. Un sistema de software consiste en diversos programas independientes, archivos de configuracin que se utilizan para ejecutar estos programas, un sistema de documentacin que describe la estructura del sistema, la documentacin para el usuario que explica cmo utilizar el sistema y sitios web que permitan a los usuarios descargar la informacin de productos recientes.

El software de computadora es el producto que los ingenieros de software construyen y despus mantienen en el largo plazo. El software se forma con:

1) Las instrucciones (programas de computadora) que al ejecutar se proporcionan las caractersticas, funciones y el grado de desempeo deseados. 2) Las estructuras de datos que permiten que los programas manipulen informacin de manera adecuada. 3) Los documentos que describen la operacin y uso de los programas.

Cualidades del Software

Las cualidades de un sistema deben estar por encima y por delante de la funcin del sistema. Lamentablemente, la funcionalidad no slo ocupa el primer lugar en las prioridades de los desarrolladores sino que muchas veces es el nico.

La calidad debe ser considerada en todas las fases del ciclo de vida del software, aunque distintas cualidades se manifiestan de formas diferentes durante el desarrollo.

Clasificacin de las cualidades: Externas: son visibles a los usuarios. Internas: son visibles a los desarrolladores. Del producto: son observables en los distintos productos y subproductos del ciclo de vida. Del proceso: describen a la forma en que el producto es producido. Observables en tiempo de ejecucin No observables en tiempo de ejecucin

Correccin: Un programa es funcionalmente correcto si se comporta de acuerdo a la especificacin de las funciones que debera proveer. La correccin no le asegura al usuario que el software se comporte como se espera. Es una propiedad absoluta: cualquier desviacin implica un software no-correcto. Confiabilidad: Probabilidad de ocurrencia de fallas. Grado de confianza que el usuario tiene en el software. Es relativa: un software puede aun ser confiable si la consecuencia de un error no es seria; o si la cantidad de errores por unidad de tiempo no es alta. Robustez: Un programa es robusto si se comporta razonablemente aun en circunstancias que no fueron anticipadas en los requerimientos. Si se puede pensar en acontecimientos imprevistos, entonces hay que incluirlos en la especificacin y se habla de correccin. Si especificado y verifica es correcto. Si no especificado y verifica es robusto. Perfomance: Un sistema es eficiente si usa los recursos econmicamente. Herramientas de medicin: complejidad algortmica, medicin, anlisis y simulacin. Usualmente es muy difcil mejorar considerablemente la perfomance sin re-disear.

Evolucionabilidad: Un software es evolucionable si permite cambios que lo hacen capaz de satisfacer nuevos requerimientos. Se logra mediante

modularizacin; los sucesivos cambios tienden a destruir un buen diseo. El diseo original y cada cambio deben hacerse con esta cualidad en mente.

Otras. Verificabilidad: es verificable si sus propiedades pueden verificarse fcilmente. Reparabilidad: es reparable si permite la correccin de sus defectos con una cantidad limitada de trabajo. Portabilidad (interoperabilidad): uso (interaccin) en (con) diferentes entornos. Productividad, puntualidad, visibilidad. Reusabilidad Amigabilidad

Factores de Calidad del Software

Se clasifican en tres grupos: 1.- Operaciones del Producto: caractersticas operativas Correccin (Hace lo que se le pide?) El grado en que una aplicacin satisface sus especificaciones y consigue los objetivos encomendados por el cliente. Fiabilidad (Lo hace de forma fiable todo el tiempo?) El grado que se puede esperar de una aplicacin lleve a cabo las operaciones especificadas y con la precisin requerida. Eficiencia (Qu recursos hardware y software necesito?) La cantidad de recursos hardware y software que necesita una aplicacin para realizar las operaciones con los tiempos de respuesta adecuados.

Integridad (Puedo controlar su uso? El grado con que puede controlarse el acceso al software o a los datos a personal no autorizado. Facilidad de uso (Es fcil y cmodo de manejar?) El esfuerzo requerido para aprender el manejo de una aplicacin, trabajar con ella, introducir datos y conseguir resultados.

2.- Revisin del producto: capacidad para soportar cambios Facilidad de mantenimiento (Puedo localizar los fallos?) El esfuerzo requerido para localizar y reparar errores. Flexibilidad (Puedo aadir nuevas opciones?) El esfuerzo requerido para modificar una aplicacin en funcionamiento. Facilidad de prueba (Puedo probar todas las opciones?) El esfuerzo requerido para probar una aplicacin de forma que cumpla con lo especificado en los requisitos.

3- Transicin del producto: adaptabilidad a nuevos entornos Portabilidad (Podr usarlo en otra mquina?) El esfuerzo requerido para transferir la aplicacin a otro hardware o sistema operativo. Reusabilidad (Podr utilizar alguna parte del software en otra aplicacin?) Grado en que partes de una aplicacin pueden utilizarse en otras aplicaciones. Interoperabilidad (Podr comunicarse con otras aplicaciones o sistemas informticos?) El esfuerzo necesario para comunicar la aplicacin con otras aplicaciones o sistemas informticos.

Ingeniera del Software

Definicin: La ingeniera Es la profesin que aplica conocimientos y experiencias para que mediante diseos, modelos y tcnicas se resuelvan problemas que afectan a la humanidad .Otro concepto que define a la ingeniera es el arte de aplicar los conocimientos cientficos a la invencin, perfeccionamiento o utilizacin de la tcnica en todas sus determinaciones. Esta aplicacin se caracteriza por utilizar principalmente el ingenio de una manera ms pragmtica y gil que el mtodo cientfico, puesto que una actividad de ingeniera, por lo general, est limitada a un tiempo y recursos dados por proyectos. El ingenio implica tener una combinacin de sabidura e inspiracin para modelar cualquier sistema en la prctica.

Ingeniera de software Es la disciplina o rea de la informtica que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad. Esta ingeniera trata con reas muy diversas de la informtica y de las Ciencias de la Computacin, tales como construccin de compiladores, Sistemas Operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de Sistema de Informacin y aplicables a infinidad de reas (negocios, investigacin cientfica, medicina, produccin, logstica, banca, control de trfico, meteorologa, derecho, entre otros.

Es una disciplina o rea de la informtica o ciencias de la computacin, que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.

Es el estudio de los principios y metodologas para desarrollo y mantenimiento de sistemas de software.

Es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar y operar (funcionar) y mantenerlos. As como tambin desarrollo de software o produccin de software.

Es el establecimiento y uso de principios slidos de la ingeniera para obtener econmicamente un software confiable y que funcione de modo eficiente en maquinas reales.

Es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo operacin (funcionamiento) y mantenimiento del software: es decir, la aplicacin de ingeniera al software.

Es una disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas inciales de la especificacin del sistema hasta el mantenimiento de este despus que se utiliza.

Es una disciplina que integra el proceso, los mtodos, y las herramientas para el desarrollo de software de computadora.

Visin General del proceso de desarrollo de Software

Con independencia del rea de aplicacin, tamao o complejidad del proyecto, el desarrollo de cualquier sistema se encontrar al menos en uno de los siguientes procesos:

Definicin: anlisis (del sistema, del software) Qu debe hacer el sistema?

Funcionalidad del sistema. Informacin que ha de manejar. Necesidades de rendimiento Restricciones de diseo. Interfaces del sistema con los usuarios y con otros sistemas Criterios de validacin Documentos de requisitos del sistema

Desarrollo: diseo, codificacin y prueba Cmo construir el sistema?

Se disean las estructuras de datos y los programas: cmo se caracterizan las interfaces, cmo realizar el paso del diseo al lenguaje de programacin, cmo ha de realizarse la prueba. Se escriben y documentan los programas, y se prueba el software construido.

Mantenimiento Comienza una vez construido el sistema, cuando se pone en explotacin. Se centra en el cambio. El software es sometido a reparaciones y modificaciones cada vez que se detecta un fallo o se necesita cubrir una nueva necesidad de los usuarios. En esta fase recae el mayor porcentaje del costo de un sistema.

El papel usuario dentro del desarrollo de software.


El desarrollo de un Sistema de Informacin es un una tarea muy compleja, que suele tomar varios meses y a veces hasta aos; actividad en la cual varias personas de diferentes disciplinas aportan sus conocimientos para alcanzar un objetivo comn, la sistematizacin de un determinado proceso. Sin embargo, normalmente los usuarios no tienen claro cul es su funcin dentro de este proceso de sistematizacin; en ocasiones hasta llega a pensar que le est brindando una ayuda al informtico con una actividad netamente tcnica, la cual l considera que ser para beneficio del informtico y no para mejorar sus propios procesos. El rol que el usuario desempea dentro del desarrollo de un Sistema de Informacin es de suma importancia, ya que los sistemas se construyen para satisfacer las necesidades particulares del usuario, en funcin de los objetivos estratgicos El primer papel del usuario ser como Responsable del Sistema, esta ser la persona encargada de definir en forma clara los requerimientos del nuevo sistema. Para ello deber enviarle al Jefe del Departamento de Tecnologa, una solicitud en la que al menos detalle lo siguiente:

Nombre del Sistema. Descripcin general del Sistema, especificando claramente su funcionamiento. Alcances y Delimitacin del Sistema, aqu se mencionar lo que se espera que el sistema realice y adems aquellos procesos que estn fuera de la frontera del sistema. Responsabilidades, dentro del equipo de trabajo, una persona del rea usuario que cumplir con el papel de Encargado del Proyecto (puede ser el mismo Responsable del Sistema.

Responsabilidad tica y profesional en el ingeniero de software: La Ingeniera de Software implica responsabilidades mayores que el simple uso de habilidades tcnicas. Los ingenieros de software deben comportarse de manera honesta y ticamente responsable si van a ser respetados como profesionales. Comportamiento ticamente responsable es mucho ms que simplemente actuar dentro de la ley. Aspectos de responsabilidad profesional Confidencialidad: Los ingenieros deberan normalmente respetar la confidencialidad de sus clientes independientemente de que se haya firmado o no un previo acuerdo de confidencialidad. Capacidad: Los ingenieros no deberan pretender tener mayor capacidad (intelectual y laboral) de la que tienen, deben aceptar conscientemente trabajo que est acorde a su capacidad. Derechos de propiedad intelectual: Los ingenieros deberan estar conscientes de las leyes que gobiernan el uso de propiedad intelectual, como ser patentes y derechos reservados. Deben ser cuidadosos al garantizar que la propiedad intelectual de sus clientes est protegida. Mal uso de la computadora: Los ingenieros de software no deberan usar sus habilidades tcnicas para un mal uso de las computadoras de otras personas. El mal uso de una computadora comprende desde lo relativamente simple (jugar en la computadora del cliente) hasta lo extremamente serio (diseminar virus).

Cdigo de tica ACM/IEEE: Las sociedades profesionales en los Estados Unidos cooperaron para producir un cdigo de prctica tica. Miembros de estas organizaciones fueron consecuentes con el cdigo de prctica tica cuando se asociaron. El cdigo contiene ocho principios relacionados al comportamiento y las decisiones hechas por ingenieros de software profesionales, incluyendo a los que lo ejercan, educadores, encargados, supervisores y editores, as como aprendices y estudiantes de la profesin. Cdigo de tica Prembulo: La versin corta del cdigo resume aspiraciones a un alto nivel de abstraccin; las clusulas que se incluyen en la versin completa dan ejemplos y detalles de cmo estas aspiraciones cambian nuestro modo de actuar como profesionales de la Ingeniera de Software. Sin las aspiraciones, los detalles pueden llegar a ser legalistas y aburridos; sin los detalles, las aspiraciones pueden llegar a ser ruidosas pero vacas; juntas, las aspiraciones y los detalles forman un cdigo cohesivo. Los ingenieros de software se comprometern a hacer del anlisis, especificacin, diseo, desarrollo, prueba y mantenimiento de software una profesin respetable y beneficiosa. Acorde a su compromiso con la salud, bienestar y seguridad del pblico, los ingenieros de software se adherirn a los ocho principios siguientes: Principios: PUBLICO: Los ingenieros de software actuarn constantemente con el inters pblico. CLIENTE Y EMPLEADOR: Los ingenieros de software actuarn acorde al mayor inters de sus clientes y empleadores en constancia con el inters pblico. PRODUCTO: Los ingenieros de software garantizarn que sus productos y relativas modificaciones van acorde a los estndares profesionales ms altos posibles. JUICIO: Los ingenieros de software mantendrn su integridad e independencia de juicio como profesional.

GERENCIA: Gerentes y lderes de Ingeniera de Software suscribirn y promovern un acercamiento tico hacia el manejo de desarrollo de software y evolucin. PROFESION: Los ingenieros de Software incrementarn la integridad y reputacin de la profesin en constancia con el inters pblico. COLEGAS: Los ingenieros de software sern condescendientes y brindarn apoyo a sus colegas. UNO MISMO: Los ingenieros de software participarn en la formacin continua con respecto a la prctica de su profesin y promovern un acercamiento tico a la prctica de la profesin.

Ciclo de vida del desarrollo de software, cascada, espiral, interactivo e incremental: Un proceso para el desarrollo de software, tambin denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un trmino ms general que un determinado proceso para el desarrollo de software. Por ejemplo, hay varios procesos de desarrollo de software especficos que se ajustan a un modelo de ciclo de vida de espiral. Hay varios modelos para perfilar el proceso de desarrollo, cada uno de las cuales cuenta con pros y contras. El proyecto debera escoger el ms apropiado para sus necesidades. En ocasiones puede que una combinacin de varios modelos sea apropiado.

Modelo de cascada
El modelo de cascada muestra un proceso donde los desarrolladores han de seguir las siguientes fases de forma sucesiva: 1. Especificacin de requisitos 2. Diseo del software 3. Integracin 4. Pruebas (o validacin)

5. Despliegue (o instalacin) 6. Mantenimiento Siguiendo el modelo de cascada de forma estricta, slo cuando se finaliza una fase, comienza la otra. En ocasiones se realiza una revisin antes de iniciar la siguiente fase, lo que permite la posibilidad de cambios (lo que puede incluir un proceso de control formal de cambio). Las revisiones tambin se utilizan para asegurar que la fase anterior ha sido totalmente finalizada; los criterios para completar una fase se conocen frecuentemente con el trmino ingls "gate" (puerta). Este modelo desaconseja revisitar y revisar fases que ya se han completado. Esta falta de flexibilidad en un modelo de cascada puro ha sido fuente de crtica de los defensores de modelos ms flexibles.

Modelo de espiral

La principal caractersticas del modelo en espiral es la gestin de riesgos de forma peridica en el ciclo de desarrollo. Este modelo fue creado en 1988 por Barry Boehm, combinando algunos aspectos clave de las metodologas del modelo de cascada y del desarrollo rpido de aplicaciones, pero dando nfasis en un rea que para muchos no jug el papel que requiere en otros modelos: un anlisis iterativo y concienzudo de los riesgos, especialmente en el caso de sistema complejos de gran escala. La espiral se visualiza como un proceso que pasa a travs de algunas iteraciones con el diagrama de los cuatro cuadrantes representativos de las siguientes actividades: 1. crear planes con el propsito de identificar los objetivos del software, seleccionados para implementar el programa y clarificar las restricciones en el desarrollo del software; 2. Anlisis de riesgos: una evaluacin analtica de programas seleccionados, para evaluar como identificar y eliminar el riesgo; 3. la implementacin del proyecto: implementacin del desarrollo del software y su pertinente verificacin; Modelo de espiral con nfasis en los riesgos, haciendo hincapi en las condiciones de las opciones y limitaciones para facilitar la reutilizacin de software, la calidad del software puede ayudar como una meta propia en la integracin en el desarrollo del producto. Sin embargo, el modelo en espiral tiene algunas limitaciones, entre las que destacan: 1. El nfasis se sita en el anlisis de riesgo, y por lo tanto requiere de clientes que acepten este anlisis y acten en consecuencia. Para ello es necesaria confianza en los desarrolladores as como la predisposicin a gastar ms para solventar los temas, por lo cual este modelo se utiliza frecuentemente en desarrollo interno de software a gran escala. 2. Si la implementacin del riesgo de anlisis afectar de forma esencial los beneficios del proyecto, no debera utilizarse este modelo. 3. Los desarrolladores de software han de buscar de forma explcita riesgos y analizarlos de forma exhaustiva para que este modelo funcione. La primera fase es la bsqueda de un plan para conseguir los objetivos con las limitaciones del proyecto para as buscar y eliminar todos los riesgos potenciales por medio de un cuidadoso anlisis, y si fuera necesario incluyendo la fabricacin de un prototipo. Si es imposible descartar algunos riesgos, el cliente ha de decidir si es conveniente terminar el proyecto o seguir adelante ignorando los riesgos. Por ltimo, se evalan los resultados y se inicia el diseo de la siguiente fase.

Desarrollo iterativo e incremental


El desarrollo iterativo recomienda la construccin de secciones reducidas de software que irn ganando en tamao para facilitar as la deteccin de problemas de importancia antes de que sea demasiado tarde. Los procesos iterativos pueden ayudar a desvelar metas del diseo en el caso de clientes que no saben cmo definir lo que quieren.

Introduccin a) Ingeniera Es la profesin en la que el conocimiento de las ciencias naturales y matemticas obtenidos con el estudio, la prctica y la experiencia se aplica con juicio para desarrollar formas de utilizar de modo econmico, los materiales y fuerzas de la naturaleza para beneficio de la humanidad b) Software Es el conjunto de todos los programas que existen dentro de una computadora. Es el producto del desarrollo que realizan los ingenieros de software resultado de requerimientos de informacin.

c) La Ingeniera de Software

Es una disciplina de la Ingeniera que comprende todos los aspectos de la produccin del software desde las etapas iniciales de la especificacin del sistema hasta el mantenimiento de ste despus de que se libera. La Ingeniera de Software incluye: personas (quin lo hace) proceso (la manera en que se hace) proyecto (la realizacin) producto (la aplicacin de artefactos)

1.2 El Papel evolutivo del Software El trmino fue introducido a fines del 60 y comienzo del 70, tras la crisis del software que se caracteriz por: Imprecisin en la planificacin del proyecto y estimacin de los costos. Baja calidad del Software. Dificultad de mantenimiento de programas con un diseo poco estructurado, etc.

En las dcadas de 1980 y 1990 dos tendencias dominaron la ingeniera de software: El florecimiento explosivo de aplicaciones, incluyendo las de Internet. El Nacimiento de nuevas herramientas y paradigmas (formas de pensamiento, como la orientacin a objetos).

Conclusin El software se ha convertido en el elemento clave de la evolucin de los sistemas y productos informticos. En las pasadas cuatro dcadas, el software ha pasado de ser una resolucin de problemas especializadas y una herramienta de anlisis de informacin, a ser una industria por si misma. Pero la temprana cultura e historia de la programacin ha creado un conjunto de problemas que persisten todava. El software se ha convertido en un factor que limita la evolucin de los sistemas informticos. El software se compone de programas, datos y documentos. Cada uno de estos elementos componen una configuracin que se crea como parte del proceso de la Ingeniera del Software. El intento de la Ingeniera del Software es proporcionar un marco de trabajo para construir software con mayor calidad.

Fundamentos de Ingeniera del Software Tercer curso de Ingeniera Tcnica Informtica Versin 0.4.8 23 de diciembre de 2006 http://petra.euitio.uniovi.es/~delegaci/apuntes/Tercero/fundamentos-ingenieriasoftware.pdf

Fundamentos De La Ingeniera De Software Enviado por jelevenegas, Jul 2012 http://www.buenastareas.com/ensayos/Fundamentos-De-La-Ingenier%C3%ADa-DeSoftware/4776726.html

fundamentacion de software educativo http://es.scribd.com/doc/14774867/Fundamentos-Del-Sofware-Educativo

Fundamentos de Ingeniera del Software Tema 1. Introduccin a la Ingeniera del Software http://www.mmontecinos.net/Inacap/Clases/Ingenieria/Clases%201-23/TEMA%201%20INTRODUCCION%20A%20LA%20INGENIERIA%20DEL%20SOFTWARE.pdf

Presentacin de la exposicin de ingeniera VISION GENERAL DEL PROCESO DE DESARROLLO DE SOFTWARE INTEGRANTES: Cipriano Infante Amato Rafael Ros luz Marina Leal Jess Leal Mariela Jaramillo Yraly Junio 2011

http://www.slideshare.net/yampichake/presentacin-de-la-exposicion-de-ingenieria8313360

Proceso para el desarrollo de software Esta pgina fue modificada por ltima vez el 31 may 2012, a las 02:34. http://es.wikipedia.org/wiki/Proceso_para_el_desarrollo_de_software

Curso de Ingeniera de Software - Captulo 1 May 27, 2012 http://www.slideshare.net/eddiemalca/curso-de-ingeniera-de-software-captulo-1

You might also like