Ingeniería de Software



Documentos relacionados
UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).


Elementos requeridos para crearlos (ejemplo: el compilador)

El Proceso Unificado de Desarrollo de Software

CONCLUISIONES Y RECOMENDACIONES

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

CARRERA TITULO DEL TRABAJO CURSO

Gestión y Desarrollo de Requisitos en Proyectos Software

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Planificación en Team Foundation Server 2010

Bechtle Solutions Servicios Profesionales

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Metodologías de Desarrollo de Sistemas de Información

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Plan de estudios ISTQB: Nivel Fundamentos

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

INTEGRAL UNA COMPAÑÍA. Con las mejores alternativas del mercado

PERFIL TÉCNICO CONSULTOR SHAREPOINT PARA LA WEB

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

CAPÍTULO 3 VISUAL BASIC

Grado en Ingeniería Informática

Workflows? Sí, cuántos quiere?

INGENIERÍA DEL SOFTWARE

Proyecto MONO. Juantomás García. 1. Introducción. GNOME Hispano

DIRECCION DE PROYECTOS II

Orientación acerca del enfoque basado en procesos para los sistemas de gestión de la calidad

Navidian Oferta de Servicios GL7

Ingeniería de Software

Patrones de software y refactorización de código

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

El Software. Es lo que se conoce como el ciclo de vida del software.

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

n u e v o s p a r a d i g m a s... n u e v a s s o l u c i o n e s.

Microsoft SQL Server Conceptos.

Integración de AuraPortal con SAP

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

UNIVERSIDAD DE SALAMANCA

DIAGRAMA DE CLASES EN UML

SOLUCIÓN HOSPEDADA. Introducción a los modelos de asociación de partners de Microsoft Dynamics CRM

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

Syllabus.

Seguimiento y evaluación

2710 Analyzing Requirements and Defining Microsoft.NET Solution Architectures

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Visual Studio 2008 es el conjunto de herramientas de

Anexo 4 Documento de Arquitectura

NUEVA WEB DE LA CONSEJERÍA DE INNOVACIÓN, CIENCIA Y EMPRESA: LA INNOVACIÓN COMO NEXO COMÚN DE UN DESARROLLO WEB

Aplicación de Gestión y Web para un criadero/residencia canino. Índice. 1 Presentación Objetivos y trabajo realizado Conclusiones...

MS_20497 Software Testing with Microsoft Visual Studio 2013

Estrategia de negocio basada en clientes: Software CRM

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

Project Ing. Christian Ovalle

Antecedentes de GT Consultores

Anteproyecto Fin de Carrera

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

System Center. la plataforma para una gestión ágil de los entornos de TI IDG COMMUNICATIONS, S.A.

Tecnología K2 BlackPearl

Nombre de la sesión: Intelisis Business Intelligence segunda parte

Arquitectura de desarrollo Fomento.Net

GUÍA METODOLÓGICA DE IMPLANTACIÓN DE PROCEDIMIENTOS Y SERVICIOS TELEMÁTICOS DE LA JUNTA DE ANDALUCÍA

Capítulo 5. Cliente-Servidor.

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

CAPÍTULO 2. MODELOS Y ESTÁNDARES DE CALIDAD DE SOFTWARE

GESTIÓN DE CAPACIDAD DE SERVICIOS TI: UNA SOLUCIÓN DESDE ITIL

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

2 EL DOCUMENTO DE ESPECIFICACIONES

comunidades de práctica

Experiencia de Cliente en el sector sanitario

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

UF1138 Instalación y Puesta en Marcha de un Sistema de Control de Acceso y Presencia (Online)

Nombre del Trabajo: Control ActiveX que garantiza la seguridad de las aplicaciones desarrolladas para windows.

Objetivos y Competencias

Ministerio de Educación, Cultura y Deporte. Joomla! La web en entornos educativos. Guía del alumnado

- Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.

SISTEMAS DE INFORMACIÓN I TEORÍA

3.3.3 Tecnologías Mercados Datos

E-learning: E-learning:

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Diseño de Base de Datos

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Unidad 1. Fundamentos en Gestión de Riesgos

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

retos LA ACTUALIDAD LA SOLUCIÓN

Transcripción:

Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6 Planificación y Gestión...7 Microsoft Project...7 Microsoft Solutions Framework...7 MSDN Ingeniería de Software La Ingeniería del Software se podría definir como el establecimiento y aplicación de principios de la Ingeniería para obtener software. Teniendo en cuenta factores tan importantes como el coste económico, la fiabilidad del sistema y un funcionamiento eficiente que satisfaga las necesidades del usuario. Como concepto de Software se entienden las aplicaciones, toda aquella parte de la informática que se desarrolla, y que posee un difícil mantenimiento debido al corto período de tiempo en el que queda obsoleto. La Ingeniería del software se preocupa de la fiabilidad y el rendimiento, tratando de reducir costes y complejidad. Los modelos que utiliza están basados en teorías matemáticas sólidas. Una parte básica de la ingeniería del software es la Especificación, que consiste en la descripción del comportamiento externo del sistema, desde el punto de vista del usuario o del entorno. Define aquello que debería hacer el sistema. El Diseño determina la arquitectura general del sistema que mejor satisface los requerimientos: componentes físicos del sistema (hardware), el software utilizado y la interacción con el usuario. Define como debe realizar su función el sistema. Ingeniería del Software_/_ Ingeniería y Programación En el desarrollo de un proyecto intervienen diferentes etapas que se interrelacionan y complementan para con la finalidad de alcanzar los objetivos iniciales. Estas etapas pueden variar dependiendo del ciclo de vida que hayamos decidido para nuestro sistema, pero las principales fases de un proyecto son el análisis de requerimientos, la especificación, el diseño, el desarrollo e implementación, y por último el mantenimiento. Página 1

Análisis y Requerimientos: Todo sistema ha de tener un periodo de definición, en el cual se han de planificar todas las etapas del mismo, tanto de creación como de corrección. Para llevarlo a cabo tenemos diferentes oportunidades, La elección será más óptimo si analizamos bien los requerimientos y propiedades que se desean para el sistema. Análisis de Requerimientos El análisis de requerimientos es la primera etapa de un proyecto software, en ella se tratan de definir las condiciones o capacidades necesarias para uno o varios usuarios con el fin de solucionar un problema o conseguir un objetivo. Para la creación global del sistema se necesita comprender todos los objetivos y necesidades del usuario. En primer lugar, hemos de especificar el comportamiento externo del sistema desde el punto de vista del usuario. Una vez acabado, podemos pensar en la arquitectura general del sistema, en términos de componentes físicos: hardware, software, usuarios y la comunicación entre ellos. La determinación de los requerimientos se haya en base a la experiencia, de hablar con los usuarios finales sobre sus necesidades y analizando un sistema software existente. Podemos modelizar los requerimientos de usuario mediante lenguajes como UML, que disponen de modelos llamados casos de uso pensados para describir las funcionalidades necesarias para los usuarios. Hay diferentes tipos de requerimientos: de entorno (sistema operativo, sistema gestor de base de datos, sistema de archivos,...), ergonómicos (interfaz gráfica, etc..), funcionales(que debe hacer el sistema), de rendimiento, de tiempo, formato de entrega, etc... Página 2

Especificación: Para realizar la especificación, en la mayoría de proyectos se utiliza UML (Unified Modeling Language), un lenguaje visual que permite plasmar en notación orientada a objetos nuestras necesidades. No obstantem, UML no es el único lenguaje utilizado, en esta sección podrás descubrir otros como por ejemplo ORM. Especificación Para realizar la especificación de un proyecto se utilizan lenguajes que permiten plasmar los requerimientos del usuario en notación de orientación a objetos. No son lenguajes de programación, únicamente nos sirven para abstraer de forma gráfica los requerimientos y realizar el diseño posterior del sistema. UML es el lenguaje más extendido para la especificación y diseño de proyectos, hasta el punto de convertirse en un estándar en 1997. Define dos modelos básicos: el modelo conceptual y el modelo de comportamiento. Modelo conceptual: Es el utilizado en la especificación del sistema, representa los conceptos más significativos en el dominio del problema utilizando Clases de Objetos, Asociación entre clases de Objetos y Atributos de las clases. Nos describe la parte estática del problema, es una fotografía del mundo real. La parte dinámica del sistema no queda definida en este modelo. Modelo de Comportamiento: Utilizado en la parte de diseño del sistema, define la parte dinámica, es decir, cual debe ser el comportamiento en cada situación y la forma de proceder. Los diagramas de secuencia y de estados son parte de este modelo. ORM es otro lenguaje que proporciona un método de modelado conceptual de muy fácil comprensión. La metodología de ORM está basada en tres principios básicos: Simplicidad: El modelado de los datos se realiza de la forma más natural posible. Transmisibilidad: Las estructuras se documentan utilizando un lenguaje fácilmente comprensible. Precisión: El esquema resultante del modelo queda normalizado. La persona encargada de la especificación debe ser capaz de relacionar convenientemente las estructuras de datos y el nivel conceptual en términos que los usuarios puedan entender. ORM está específicamente diseñado para mejorar este tipo de comunicación. Como herramienta de modelado gráfico, Microsoft propone Visio, un paquete de software que nos permite realizar modelos conceptuales de forma intuitiva y sencilla. Página 3

Diseño: En la fase de diseño se determina la arquitectura general del sistema y su comportamiento dinámico, adaptando la especificación realizada en la etapa anterior. En esta fase, se decide que tecnología se utilizará en el sistema aprovechando y adaptando sus ventajas. Diseño En la fase de diseño se establece el comportamiento dinámico del sistema, es decir, como debe reaccionar ante los acontecimientos. Para su desarrollo también se utilizan los lenguajes de modelado descritos en la fase de especificación. El resultado obtenido de la etapa de diseño facilita enormemente la implementación posterior de nuestro sistema, pues proporciona la estructura básica del sistema y como los diferentes componentes actúan y se relacionan entre ellos. Una buena metodología de diseño consiste en utilizar patrones. Un patrón de diseño ofrece una solución concreta a los posibles problemas que podamos encontrar en la construcción de nuestro sistema, indicando la mejor forma de modelar los objetos. Una vez aplicados, su implementación en lenguajes orientados a objetos no presenta ningún problema adicional. La elección de la arquitectura interna de nuestro sistema es otro de los puntos básicos de la etapa de diseño. Las arquitectura más utilizada es en capas, el número de las cuáles depende de diferentes factores, aunque la más utilizada es la arquitectura en 3 capas: Presentación, Dominio y Acceso a datos. No obstante, al escoger la arquitectura dependerá también de la tecnología que utilicemos (XML Web services,.net Remoting, etc..). Visual Studio.NET Enterprise Architect proporciona estructuras de diseño para diferentes tipos de proyectos, que el desarrollador puede adaptar a sus necesidades. De esta forma, utilizando este paquete software podemos modelar toda la arquitectura del sistema utilizando alguna de sus plantillas. Página 4

Desarrollo y trabajo en equipo: La implementación del diseño es un fase muy extensa y requiere de un equipo de desarrolladores. La coordinación de este equipo es muy importante si se desea finalizar el proyecto en el tiempo previsto. Desarrollo en Equipo En la fase de desarrollo se implementa el sistema, es decir, se crea el código correspondiente al resultado de la fase de diseño, siguiendo los patrones y la arquitectura escogida. Uno de los puntos importantes a controlar en esta etapa consiste en la coordinación del equipo de desarrolladores del proyecto. Dentro de Microsoft Solutions Framework se define un modelo de equipo para el desarrollo de proyectos informáticos, indicando la estructura correcta dependiendo de diversos factores (tipo de proyecto, recursos disponibles, tiempo de desarrollo, etc...). Para más información sobre este modelo es posible consultar el Documento sobre el modelo de equipo de MSF Con el fin de agilizar el desarrollo de un proyecto, Microsoft dispone de diversos paquetes software que pueden ser de gran utilidad. Para el desarrollo e implementación, Microsoft ofrece Visual Studio.NET, un entorno de desarrollo completo que facilita la generación de código. Para la coordinación de los diferentes desarrolladores implicados en un mismo proyecto, Microsoft ofrece otra herramienta que facilita la concurrencia del desarrollo en equipo. Visual Source Safe es un paquete software que se integra con Visual Studio.NET y permite el desarrollo conjunto de un equipo de personas, alojando el código fuente, y controlando que las partes desarrolladas por diferentes personas no interfieran entre ellas. Página 5

Mantenimiento: La fase de mantenimiento de un proyecto contiene las fases de implantación, testeo, depuración y control de rendimiento, etapas que nos permiten ajustar nuestro sistema de forma que sus funcionalidades correspondan con los objetivos iniciales. Mantenimiento La primera fase del mantenimiento de un sistema software consiste en la implantación de nuestra aplicación en el entorno donde se va a desarrollar. Posteriormente, es necesario realizar una serie de pruebas para comprobar que no han surgido problemas, en tal caso será recomendable realizar una depuración. Finalmente, se debe mantener un control del Rendimiento. Para completar todas estas fases con éxito, disponemos de diversas utilidades que facilitan el proceso de mantenimiento. En el momento de implantar un sistema la primera cuestión a resolver consiste en la distribución del software..net Framework proporciona tres formas de empaquetado: Mediante un assembly o colecciones de assemblies, proporcionando las dll y los ejecutables tal y como han sido compilados. Una segunda opción consiste en comprimir nuestros archivos en.cab, de forma que sean fácilmente instalables, y finalmente, distribuir los archivos mediante un archivo Microsoft Installer. En la proceso de prueba de nuestro software es importante contar con utilidades que nos ayuden a conocer el funcionamiento real de la aplicación. Dos de estas utilidades son Visual Studio Analyzer y Application Center Test. Visual Studio Analyzer permite realizar análisis de rendimiento y depuración, mediante un registro de datos mientras la aplicación está en ejecución, además, este paquete software viene incluido en el entorno Visual Studio, aplicación que también posee un completo entorno de depuración. Application Center Test es un producto diseñado para controlar el rendimiento de servidores web y detectar los posibles problemas con las aplicaciones web, incluyendo las páginas ASP y los componentes que utilizan. Para un análisis de rendimiento podemos utilizar Microsoft Operations manager, un producto software que permite realizar monitorización de eventos, registro de operaciones, y exhaustivos análisis de las aplicaciones corriendo bajo un entorno Windows 2000. Página 6

Planificación y Gestión Para poder completar con éxito un proyecto de software, se necesita tener un control riguroso sobre el tiempo, las personas o los imprevistos que puedan surgir, como por ejemplo cambios en el software. Para ayudarnos en la planificación y gestión de proyectos, Microsoft nos proporciona dos herramientas básicas: Microsoft Project y Microsoft Solutions Framework. Microsoft Project: Descubre las ventajas de utilizar este programa para el control de los proyectos en desarrollo. Entre sus muchas funcionalidades te permite gestionar la planificación del proyecto mediante grafos, tablas y diagramas. Microsoft Project La gestión de proyectos incluye un control de los costes y del tiempo de finalización que coincidan con los objetivos empresariales. Microsoft Project es un producto de Microsoft que proporciona una plataforma para el desarrollo seguro y una implementación correcta de los proyectos. Se divide en Microsoft Project Server 2002 y Microsoft Project 2002. Microsoft Solutions Framework: MSF está diseñado para proporcionar una guía básica sobre como desarrollar con éxito un proyecto software. Aprende más sobre él en esta sección. Microsoft Solutions Framework Microsoft Solutions Framework (MSF) es una flexible e interrelacionada serie de conceptos, modelos y prácticas de uso que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas. Originalmente creado en 1994 para conseguir resolver los problemas a los que se enfrentaban las empresas en sus respectivos proyectos, se ha convertido posteriormente en un modelo práctico que facilita el éxito de los proyectos tecnológico MSF se compone de varios modelos encargados de planificar las diferentes partes implicadas en el desarrollo de un proyecto: Modelo de Arquitectura del Proyecto, Modelo Página 7

de Equipo, Modelo de Proceso, Modelo de Gestión del Riesgo, Modelo de Diseño de Proceso y finalmente el modelo de Aplicación. Modelo de Arquitectura del Proyecto: Diseñado para acortar la planificación del ciclo de vida, este modelo define las pautas para construir proyectos empresariales a través del lanzamiento de versiones. Puedes encontrar los conceptos básicos de este modelo en el Documento base del Modelo de Arquitectura del Proyecto Modelo de Equipo: Este modelo ha sido diseñado para mejorar el rendimiento del equipo de desarrollo. Proporciona una estructura flexible para organizar los equipos de un proyecto. Puede ser escalado dependiendo del tamaño del proyecto y del equipo de personas disponibles. Para obtener más información puedes consultar el Documento del Modelo de Equipo Modelo de Proceso: Diseñado para mejorar el control del proyecto, minimizando el riesgo, y aumentar la calidad acortando el tiempo de entrega. Proporciona una estructura de pautas a seguir en el ciclo de vida del proyecto, describiendo las fases, las actividades, la liberación de versiones y explicando su relación con el Modelo de equipo. Puedes encontrar su descripción en el Documento del Modelo de Proceso Modelo de Gestión del Riesgo: Diseñado para ayudar al equipo a identificar las prioridades, tomar las decisiones estratégicas correctas y controlar las emergencias que puedan surgir. Este modelo proporciona un entorno estructurado para la toma de decisiones y acciones valorando los riesgos que puedan provocar. Consulta la base del modelo en el Documento del Modelo de Gestión del Riesgo Modelo de Diseño del Proceso: Diseñado para distinguir entre los objetivos empresariales y las necesidades del usuario. Proporciona un modelo centrado en el usuario para obtener un diseño eficiente y flexible a través de un enfoque iterativo. Las fases de diseño conceptual, lógico y físico proveen tres perspectivas diferentes para los tres tipos de roles: los usuarios, el equipo y los desarrolladores. Modelo de Aplicación: Diseñado para mejorar el desarrollo, el mantenimiento y el soporte, proporciona un modelo de tres niveles para diseñar y desarrollar aplicaciones software. Los servicios utilizados en este modelo son escalables, y pueden ser usados en un solo ordenador o incluso en varios servidores. Página 8