unidad de aprendizaje i

20
Introducción UNIDAD I : INTRODUCCIÓN A LA INGENIERÍA DE SOFTWARE a) Presentación y contextualización El análisis, fundamentos conceptuales y el desarrollo en la ingeniería de software. Son el primer paso, tan importante que hay que entender para la creación de proyectos informáticos Por ello, conocer y entender coherentemente un tipo de metodología implica la aplicación de diferentes tipos de conceptos. Los requerimientos dentro de un proyecto de software y el tipo de paradigma a aplicar en un proyecto constituyen un respaldo que se lleva a cabo a través de una serie de etapas, las cuales se deben seguir para lograr proyectos que puedan cumplir con una serie de necesidades por parte del cliente. b) Competencia Conoce metodologías y enfoques para la creación de un proyecto y los aspectos fundamentales teóricos de la ingeniería de software. c) Capacidades 1. Identifica los conceptos, procesos y solución en la construcción de un proyecto a nivel de software partiendo de sus fases principales de creación. 2. Reconoce el enfoque de Objetos a través de sus paradigmas y conceptos. 3. Conoce las fases de solución como metodología de creación de un proyecto de software. 4. Identifica y emplea adecuadamente el uso de los requerimientos válidos en la obtención de información. d) Actitudes Valora los conceptos y tipos de metodología como un medio privilegiado. Asume una actitud positiva en la creación de un proyecto. Respeta los puntos de vista distintos a los suyos.

Upload: francisco-jaimes-espinoza

Post on 02-Oct-2015

215 views

Category:

Documents


1 download

DESCRIPTION

ingenieria del software

TRANSCRIPT

IntroduccinUNIDAD I :INTRODUCCIN A LA INGENIERA DE SOFTWARE

a)Presentacin y contextualizacin

El anlisis, fundamentos conceptuales y el desarrollo en la ingeniera de software. Son el primer paso, tan importante que hay que entender para la creacin de proyectos informticos Por ello, conocer y entendercoherentemente un tipo de metodologa implica la aplicacin de diferentes tipos de conceptos. Los requerimientos dentro de un proyecto de softwarey el tipo de paradigma a aplicar en un proyecto constituyen un respaldo que se lleva a cabo a travs de una serie de etapas, las cuales se deben seguir para lograr proyectos que puedan cumplir con una serie de necesidades por parte del cliente.

b)Competencia

Conoce metodologas y enfoques para la creacin de un proyecto ylos aspectos fundamentales tericos de la ingeniera de software.

c)Capacidades

1.Identifica los conceptos, procesos y solucin en la construccin de un proyecto a nivel de software partiendo de sus fases principales de creacin.2.Reconoce el enfoque de Objetos a travs de sus paradigmas y conceptos.3.Conoce las fases de solucin como metodologa de creacin de un proyecto de software.4.Identifica y emplea adecuadamente el uso de los requerimientos vlidos en la obtencin de informacin.

d)Actitudes

Valora los conceptos y tipos de metodologa como un medio privilegiado.Asume una actitud positiva en la creacin de un proyecto.Respeta los puntos de vista distintos a los suyos.

e)Presentacin de Ideas bsicas y contenidos esenciales de la Unidad:

La Unidad de Aprendizaje 01: Introduccin a la Ingeniera de Software, comprende el desarrollo de los siguientes temas:

TEMA 01:Definicin, Objetivos y Procesos.TEMA 02:Paradigma de la Programacin Orientada a Objetos.TEMA 03:Metodologas.TEMA 04:Requerimientos e Ingeniera.

UNIDAD I :INTRODUCCIN A LA INGENIERA DE SOFTWARE

Tema 01: Definicin, Objetivos y Procesos

La Ingeniera de Software es la rama de la ingeniera queaplicalos principios de la ciencia de la computacin y las matemticas para lograr soluciones costo-efectivas (eficaces en costo o econmicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos.

OBJETIVOS Y PROCESOS

Alcances:

El proceso de ingeniera de software se define como "un conjunto de etapas parcialmente ordenadas con la intencin de lograr un objetivo.

El proceso de desarrollo de software requiere por un ladoun conjunto de conceptos, una metodologa y un lenguaje propio. A este proceso tambin se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepcin, elaboracin, construccin y transicin.

Fases:

1.ConcepcionLa concepcin define el alcance del proyecto y desarrolla un caso de negocio.

2.ElaboracionLa elaboracin define un plan del proyecto, especifica las caractersticas y fundamenta la arquitectura.

3.ConstruccionLa construccin crea el producto a travs de una herramienta de desarrollo o tambin conocido como lenguaje de programacin. Preferentemente deber ser el lenguaje que dominio tenga

4.TransicionLa transicin transfiere el producto a los usuarios. Esta fase tambinse encarga de actualizar la solucin propuesta, ante problemas o nuevos requerimientos que se presenten en el periodo de uso,unavez instalada la solucin en las oficinas del cliente.

OBJETIVOS DE LA INGENIERA DE SOFTWARE

vMejorar la calidad de los productos de softwarevAumentar la productividad y trabajo de los ingenieros del software.vFacilitar el control del proceso de desarrollo de software.vSuministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.

Objetivos

Para que los proyectos se cumplan en las empresas se debern de cumplir las 5 C:1.Capacidad2.Costo3.Control4.Comunicacin5.Competitividad

Tema 02:Paradigmas de la Programacin Orientada a Objetos

Programacin Orientada a Objetos (OOP por sus siglas en ingls de Object Oriented Programming) como paradigma, "es una forma de pensar ETAPAS:

Se debe distinguir que la OOP como paradigma (enfoque o manera de visualizar la realidad) y como metodologa (coleccin de caractersticas para la ingeniera de software) no es la misma cosa.

La Programacin Orientada a Objetos desde el punto de vista computacional "es un mtodo de implementacin en el cul los programas son organizados como grupos cooperativos de objetos, cada uno de los cuales representa una instancia de alguna clase, y estas clases, todas son miembros de una jerarqua de clases unidas va relaciones de herencia" Greiff 1994.

FUNDAMENTOS DEL TRMINO ORIENTADO A OBJETOS

El paradigma orientado a objeto se basa en el concepto de objeto.Se debe distinguir que la OOP como paradigma (enfoque o manera de visualizar la realidad) y como metodologa (coleccin de caractersticas para la ingeniera de software) no son la misma cosa.

Qu es unobjeto?

Es aquello que tiene estado (propiedades ms valores), comportamiento (acciones y reacciones a mensajes) e identidad (propiedad que lo distingue de los dems objetos). La estructura y comportamiento de objetos similares estn definidos en su clase comn; los trminos instancia y objeto son intercambiables. Una clase es un conjunto de objetos que comparten una estructura y comportamiento comn.

DIFERENCIA ENTRE OBJETO Y CLASE

ObjetoUn objeto es una entidad concreta que existe en tiempo y espacio.ClaseRepresenta una abstraccin, la "esencia" de un objeto, tal como son. De aqu que un objeto no es una clase, sin embargo, una clase puede ser un objeto.Una clase tambin se define como un conjunto de objetos y mtodos.

PRINCIPIOS DEL MODELO O.O

vAbstraccinvEncapsulacinvModularidadvJerarqua,vTipificacinvConcurrenciavExistencia

NotaBooch 1986 dice que si un modelo que se dice OO no contiene alguno de los primeros cuatro elementos, entonces no es OO.

PRINCIPIOS DEL MODELO ORIENTADO A OBJETOSAbstraccin.Es una descripcin simplificada o especificacin de un sistema que enfatiza algunos de los detalles o propiedades del sistema, mientras suprime otros.Encapsulacin.En el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus caractersticas esenciales.Modularidad.Es la propiedad de un sistema que ha sido descompuesto en un conjunto de mdulos coherentes e independientes.Jerarqua o herencia.Es el orden de las abstracciones organizado por niveles.

Tipificacin.Es la definicin precisa de un objeto de tal formaque objetos de diferentes tipos no puedan ser intercambiados o, cuando mucho, puedan intercambiarse de manera muy restringida.Concurrencia.Es la propiedad que distingue un objeto que est activo de uno que no lo est.Persistencia.Es la propiedad de un objeto a travs de la cual su existencia trasciende el tiempo (es decir, el objeto continua existiendo despus de que su creador ha dejado de existir) y/o el espacio (es decir, la localizacin del objeto se mueve del espacio de direccin en que fue creado).

BENEFICIOS DE LA POOPrimero, el uso del modelo OO nos ayuda a explotar el poder expresivo de todos los lenguajes de programacin basados en objetos y los orientados a objetos, como Smalltalk, Object Pascal, C++, CLOS, Ada, [ y recientemente Java] .Segundo, el uso del modelo OO alienta el uso no solo del software, sino de diseos completos.Tercero, produce sistemas que estn construidos en formas intermedias estables y por ello son ms resistentes al cambio en especificaciones y tecnologa.

ANLISIS ORIENTADO A OBJETOSSegn Booch 1986, el Diseo Orientado a Objetos "es un mtodo de diseo abarcando el proceso de descomposicin orientado a objetos y una notacin para representar ambos modelos lgico y fsico tal como los modelos estticos y dinmicos del sistema bajo diseo"

Tema 03:Metodologas

Un objetivo de dcadas ha sido el encontrar procesos y metodologas, que sean sistemticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.

ETAPAS DEL PROCESOLa ingeniera de software requiere llevar a cabo numerosas tareas, dentro de etapas como son las siguientes:1.Anlisis de requerimientos2.Especificacin3.Arquitectura4.Programacin5.Prueba6.Mantenimiento

ANLISIS DE REQUERIMIENTOSExtraer los requisitos y requerimientos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniera de software para reconocer requerimientos incompletos, ambiguos o contradictorios. El resultado del anlisis de requerimientos con el cliente se plasma en el documento ERS, Especificacin de Requerimientos del Sistema, cuya estructura puede venir definida por varios estndares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relacin, en el que se plasman las principales entidades que participarn en el desarrollo del software.La captura, anlisis y especificacin de requerimientos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines.

Aunque an no est formalizada, ya se habla de la Ingeniera de requerimientos, por ejemplo en dos captulos del libro de Sommerville "Ingeniera del Software" titulados "Requerimientos del software" y "Procesos de la Ingeniera de Requerimientos".La IEEE Std. 830-1998 normaliza la creacin de las Especificaciones de Requerimientos de Software (Software Requirements Specification).

EspecificacinLa Especificacin de Requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del xito de un proyecto de software radicar en la identificacin de las necesidades del negocio (definidas por la alta direccin), as como la interaccin con los usuarios funcionales para la recoleccin, clasificacin, identificacin, priorizacin y especificacin de los requisitos del software.Entre las tcnicas utilizadas para la especificacin de requisitos se encuentran:Casos de Uso,Historias de usuario,Siendo los primeros ms rigurosos y formales, los segundas ms giles e informales.

ArquitecturaLa integracin de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que aade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnolgicas. La Arquitectura de Sistemas en general, es una actividad de planeacin, ya sea a nivel de infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el diseo de componentes de una aplicacin (entidades del negocio), generalmente utilizando patrones de arquitectura.

Para ello se documenta utilizando diagramas, por ejemplo:

Diagramas de clasesDiagramas de base de datosDiagramas de despliegue plegadosDiagramas de secuencia multidireccional

Siendo los dos primeros los mnimos necesarios para describir la arquitectura de un proyecto que iniciar a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qu diagramas elaborar. Entre las herramientas para disear arquitecturas de software se encuentran:Rational Rose, Enterprise Architect, Microsoft Visio for Enterprise Architects

ProgramacinReducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de software, pero no necesariamente es la que demanda mayor trabajo y ni la ms complicada. La complejidad y la duracin de esta etapa est ntimamente relacionada al o a los lenguajes de programacin utilizados, as como al diseo previamente realizado.

Prueba

Consiste en comprobar que el software realice correctamentelas tareas indicadas en la especificacin del problema. Una tcnica de prueba es probar por separado cada mdulo del software, y luego probarlo de forma integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la program, idealmente un rea de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas.

En general hay dos grandes formas de organizar un rea de pruebas, la primera es que est compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evala que la documentacin entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como estn descritas. El segundo enfoque es tener un rea de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qu condiciones puede fallar una aplicacin y que pueden poner atencin en detalles que personal inexperto no considerara.

DocumentacinTodo lo concerniente a la documentacin del propio desarrollo del software y de la gestin del proyecto, pasando por modelaciones (UML),diagramas de casos de uso, pruebas, manuales de usuario, manuales tcnicos, etc; todo con el propsito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

MantenimientoMantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar ms tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniera de software tiene que ver con dar mantenimiento. Una pequea parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniera civil, arquitectura y trabajo de construccin es dar mantenimiento.

Tema 04:Requerimientos e Ingeniera

REQUISITOS:

Descripcin de los servicios que debe brindar un sistema y sus restricciones.

Ingeniera de Requisitos

Proceso de descubrir, analizar, documentar y verificar esos servicios y restriccionesRequisitos definen el Qu (el problema) del sistema.El Diseo define el Cmo (la solucin).

Los Requisitos estn comprendidos en 2 Tipos:

Funcionales:

Servicios o funciones que proveer el sistema.Describen lainteraccin entre el sistema y su entorno.Ejemplos:Se deben ingresar cdula, nombre y telfono de cada cliente.Se quiere un listado de los clientes por zona.

No-funcional:

Restricciones a los servicios o funciones ofrecidos por el sistema.Describen restricciones que limitan las elecciones para construir una solucin.Ejemplos:Las consultas deben resolverse en menos de 3 segundos.El lenguaje de programacin debe ser Java.

Ingeniera de Requisitos

Proceso de Requisitos

Participantes en el proceso de requisitos

Cliente y UsuariosRequisitos adecuados a sus necesidadesDiseadoresComprenderlos para lograr diseo que los satisfagaSupervisores del Contrato, sugieren:

Hitos de Control, cronogramasGerentes del Negocio, entienden:Impacto en la OrganizacinVerificadoresComprenderlos para poder verificar si el sistema los satisface

Procesos de Requisitos

Obtencin y Anlisis de Requisitos

Se trabaja en conjunto con los usuarios y clientesProblemas comunes:

No saben lo que quieren del sistema, slo en trminos generales, no conocen el costo de sus peticionesLos requisitos estn en sus trminos y con conocimiento implcito de su propio trabajoDistintos usuarios tienen distintos requisitos, se deben encontrar todas las fuentes

Especificacin

El resultado del trabajo realizado es una consecuencia de la ingeniera de requisitos (especificacin el sistema e informacin relacionada) y es evaluada su calidad en la fase de validacin

Validacin

Examina las especificaciones para asegurar que todos los requisitos del sistema han sido establecidos in ambigedad, sin inconsistencias, sin omisiones, que los errores detectados hayan sido corregidos, y que el resultado del trabajo se ajusta a los estndares establecidos para el proceso, el proyecto y el producto.