You are on page 1of 13

INSTITUTO TECNLOGICO DE CHILPANCINGO

INGENIERA EN SISTEMAS COMPUTACIONALES


FUNDAMENTOS DE INGENIERIA DE SOFTWARE

ELABOR: CARDOSO DE LA ROSA JESS

FECHA: 27/AGOSTO/2012

CONTROL DE LECTURA

CAPTULO 2: Introduccin a la ingeniera del software.


2.1.-Definicin de la ingeniera de software. La ingeniera de software es una disciplina basada en la ingeniera, la tecnologa y en la administracin. Dedicada a la produccin sistemtica de productos de software. La ingeniera del software comprende todos los aspectos de la produccin del software, desde las etapas iniciales de la especificacin del mismo hasta el mantenimiento de ste despus de ser utilizado.

Los ingenieros del software adoptan un enfoque sistemtico y organizado en su trabajo, ya que es la forma ms efectiva de producir software de alta calidad. La ingeniera consiste en seleccionar el mtodo ms apropiado para un conjunto de circunstancias.

La ingeniera de software consume altos recursos humanos por lo que requiere de habilidades tcnicas y un adecuado control administrativo. Los sistemas de software deben de ser desarrollados y mantenidos en tiempo y dentro de un rgimen de estimacin de costos.

2.2.-Historia de la ingeniera del software. La ingeniera de software es una disciplina relativamente joven. Tiene sus orgenes en una reunin de trabajo realizada en Garmish, Alemania Oriental en el ao de 1968, esto para discutir lo que en ese entonces se llam crisis del 1

software.

Se ha tenido gran progreso desde 1968 y el desarrollo de esta ingeniera ha mejorado considerablemente al software. Se han desarrollado mtodos efectivos de Especificacin del software Diseo del software Implementacin del software

Las nuevas notaciones y herramientas reducen el esfuerzo requerido para producir sistemas grandes y complejos.

Cuanto ms crece la habilidad de producir software, tambin lo hace la complejidad de los sistemas de software solicitados. Las nuevas tecnologas resultantes de la convergencia de las computadoras y de los sistemas de comunicacin impusieron nuevas demandas a los ingenieros de software.

En la actualidad una enorme industria del software se ha convertido en un factor dominante en la economa del mundo industrializado.

2.3.-Caractersticas del software. El software consta de tres elementos que lo definen: 1. Programas y/o algoritmos: Al ejecutarse en la computadora proporcionan caractersticas, funciones y el grado de desempeo deseado. 2. Estructuras de datos: Permiten que los programas manipulen informacin de manera adecuada. 3. Documentos: Describen la operacin y el uso de los programas.

En la actualidad, el software tiene un papel dual: es un producto y un vehculo para la entrega de un producto. Producto: Ofrece la potencia de cmputo presentada como hardware de 2

una computadora o, de manera ms amplia, por una red de computadoras accesible mediante hardware local. Vehculo para la entrega de producto: El software acta como la base para el control de la computadora (SO), la comunicacin de informacin y la creacin y control de otros programas.

El software se construye de la misma forma que cualquier producto de xito: mediante la aplicacin de un proceso que conduzca a un resultado de alta calidad y satisfgalas necesidades de la gente que usar el producto.

Existen dos tipos de software cuando se desarrolla: 1. Productos genricos: Sistemas de software que se venden al mercado abierto a cualquier cliente que le sea posible comprarlos. Se denominan software empaquetado. 2. Productos personalizados: Son sistemas de software requeridos por un cliente en particular. Se denominan software hecho a la medida.

Para entender al software, es importante examinar las caractersticas que lo hacen diferente de otras cosas que construye el ser humano. 1. El software se desarrolla o construye; no se manufactura en el sentido clsico. 2. El software no se desgasta a travs del tiempo. 3. A pesar de que la industria tiene una tendencia hacia la construccin por componentes, la mayora de software an se construye a la medida. 4. El software es abstracto e intangible.

Otros atributos esenciales que reflejan la calidad del software, su comportamiento durante su ejecucin, la estructura y organizacin del programa fuente y en la documentacin asociada.

CARACTERSTICAS 3

DESCRIPCIN

Mantenibilidad

El software debe de evolucionar para cumplir las necesidades de cambio de los clientes

Confiabilidad

Capacidad de software para desempear una funcin requerida, no causa daos fsicos o econmicos en caso de cualquier falla.

Costeable

Un software debe ser costeable en su desarrollo, mantenimiento y uso.

Eficiencia

El software no debe hacer que se malgasten los recursos del sistema, como la memoria y los ciclos de

procesamiento. Portabilidad Capacidad de un sistema para ser transferido de un entorno a otro. Utilidad El software tiene que satisfacer las necesidades del usuario. Usabilidad El software debe ser fcil de utilizar, sin esfuerzo adicional, por el usuario para quien est diseado.

En resumen, un producto de software debe desempear, en su empleo diario, una tarea especfica usando menos tiempo o menos recursos humanos o industriales que los que se requeran anteriormente.

2.4.-Mitos de software. La invencin de una tecnologa puede tener efectos profundos e inesperados en otras tecnologas con las que en apariencia no tiene ninguna relacin, como en empresas comerciales, en personas y aun en la cultura en conjunto. Este fenmeno a menudo se denomina la ley de las consecuencias imprevistas.

Los mitos del software con las creencias acerca de software y de los procesos empleados para construirlo y se pueden rastrear hasta los primeros das de la computacin. Los mitos tienen ciertos atributos que los convierten en insidiosos. Los mitos parecen una relacin de hechos razonables que se observan de manera 4

intuitiva y con frecuencia los promulgan practicantes experimentados, quienes dicen conocer el terreno.

A continuacin se describen los tres tipos de mitos que existen en el desarrollo de software. Mitos de la administracin: Mitos de cliente: El cliente imagina falsas expectativas que generan insatisfaccin con el desarrollador. Mitos del desarrollador:

En la actualidad, la mayora de los profesionales reconocidos en la ingeniera de software identifican los mitos en su real dimensin: actitudes equivocadas que han causado problemas serios a los administradores y al personal tcnico por igual.

2.5.-Capas de la ingeniera de software. La ingeniera de software es una tecnologa estratificada. Como se muestra en la figura 2.1.

Figura 2.1

Un enfoque de calidad: Cualquier enfoque de la ingeniera debe estar sustentado en un compromiso con la calidad. Proceso: El proceso de la ingeniera de software es el elemento que mantiene juntos los niveles de la tecnologa y permite adems el desarrollo racional y a tiempo del software.

Mtodos: Son lo encargados de proporcionar los cmo tcnicos para construir el software. Incluyen la comunicacin, anlisis de requerimientos, 5

modelado del diseo construccin de programa, etc. Herramientas: Proporcionan el soporte automatizado o semiautomatizado para el proceso y los mtodos. Cuando las herramientas se integran de manera adecuada se pueden establecer sistemas para el soporte de desarrollo de software (Computer Aided Software Engineering, CASE).

2.6.-El tringulo para el xito

Figura 2.2

El tringulo del xito mostrado en la figura 2.2, puede explicar los componentes necesarios para que un proyecto de software sea exitoso. Es necesario tener tres facetas: Una notacin. Un proceso. Una herramienta.

2.7.-El papel de la notacin. Una notacin es un conjunto de reglas grficas y textuales que sirven para representar un modelo. La notacin adems cuenta con tres papeles: 1. Sirve como el lenguaje para comunicar decisiones que no son obvias o que no pueden ser deducir a partir de cdigo mismo. 2. Suministra las semnticas que son demasiado ricas para capturar todas las estrategias importantes. 3. Ofrece una forma demasiado concreta para que las personas lo razonen y para que las herramientas lo manipulen.

El lenguaje de modelado unificado (Unified Modeling Language, UML) proporciona una notacin muy robusta y es completamente orientado a objetos. UML se define como un lenguaje grfico para visualizar, especificar, construir y documentar los productos de trabajo de un sistema con gran cantidad de software.

UML es slo un lenguaje y por tanto es tan solo una parte de un proceso de desarrollo de software. UML es independiente del proceso y se orienta al modelo semntico, a la notacin sintctica y los diagramas existentes en los productos de trabajo. Los modelos del UML pueden conectarse a: Java C++ PHP C# Visual Basic Etc.

UML permite la ingeniera directa: generacin de cdigo a partir de un modelo UML en un lenguaje de programacin. La ingeniera inversa tambin es posible: es decir se puede reconstruir un modelo en UML a partir de una implementacin. La combinacin de estas ingenieras produce una ingeniera de ida y vuelta.

2.8.-El proceso de software. Se utiliza el trmino sistema para referirse a la realidad subyacente, y el trmino modelo para referirse a cualquier abstraccin de la realidad.

Un objetivo es un principio de alto nivel que se usa para guiar el proyecto. Los objetivos definen los atributos del sistema que son importantes. Los objetivos mal definidos generan complejidad en el desarrollo del software.

Una metodologa es una coleccin de mtodos para la resolucin de una clase de problemas. Un mtodo es un conjunto de tcnicas repetible para la resolucin de 7

un problema especfico.

Un proceso de software es el conjunto completo de actividades de un marco de trabajo necesarias para transformar los requerimientos de un cliente en un sistema de software de alta calidad.

Un modelo del ciclo de vida del software representa todas las acciones y productos de trabajo necesarios para desarrollar un sistema de software. Permite manejar la complejidad del proceso de desarrollo de software.

El modelo de proceso es el que estable un marco de trabajo concreto en funcin del paradigma adoptado.

Un proyecto de desarrollo de software es una instancia de un ciclo de vida del software.

La adopcin de mtodos de ingeniera durante el proceso de desarrollo de los productos de software, independientemente de tipo de producto del que se trate, hace posible una aplicacin sistemtica de conocimiento cientfico con objeto de construir soluciones efectivas y eficientes a un problema dado.

2.9.-El marco de trabajo para el proceso. La ingeniera del software la realizan personas creativas y con conocimiento que deben de trabajar en un proceso de software maduro. Un marco de trabajo establece la base para un proceso del software completo al identificar un nmero pequeo de actividades de marco de trabajo aplicables a todos los proyectos de software.

Un proyecto, cuyo propsito es desarrollar un software, est compuesto por varias actividades. Cada actividad por consecuencia est compuesta, a su vez, de varias tareas. Las siguientes actividades del marco de trabajo genrico de proceso se 8

pueden aplicar en la inmensa mayora de los proyectos de software: Comunicacin: Implica la colaboracin con los clientes, abarca la investigacin de requerimientos y otras actividades relacionadas. Planeacin: Establece un plan para el trabajo de la ingeniera del software. Describe tareas tcnicas, riesgos probables, recursos requeridos, etc. Modelado: Abarca la creacin de los modelos que permiten al desarrollador y cliente entender mejor el diseo y requerimientos de software. Construccin: Combina la generacin de cdigo y la realizacin de pruebas. Despliegue: El software se entrega al cliente, quien evala el producto.

Estas cinco actividades genricas de marco de trabajo son tiles durante el desarrollo de programas pequeos y la creacin de grandes aplicaciones de red tambin.

El marco de trabajo descrito en la visin general de la ingeniera de software lo completa una serie de actividades sombrilla, las cuales se enfocan en la administracin, rastreo y control de proyecto: Seguimiento y control del proyecto: Evala el progreso comparndolo con el plan de proyecto. Gestin de riesgo: Evala los riesgos que pudieran afectar los resultados de proyecto. Aseguramiento de la calidad del software: Define las actividades para asegurar la calidad de software. Revisiones tcnicas formales: Evala los productos de trabajo en busca de errores antes de que estos se propaguen a la siguiente accin o actividad. Medicin: Recolecta mediciones de proceso para ayudar al equipo a entregar software que satisfaga las necesidades del cliente. Gestin de la configuracin del software: maneja los efectos del cambio a travs de proceso de software. Gestin de la reutilizacin: Define los criterios para la reutilizacin de los productos de trabajo. 9

Preparacin y produccin del producto de trabajo: Abarca las actividades requeridas para crear productos de trabajo, como modelos, documentos, registros, etc.

2.10.- Software de alta calidad. La ingeniera de software es una disciplina que integra al proceso, los mtodos y las herramientas para el desarrollo del software. Los modelos de proceso que enfatizan la definicin, identificacin y aplicacin detallada de las actividades del proceso se clasifican en dos enfoques: 1. Modelos prescriptivos de proceso: intenta mejorar la calidad del software, hacer que los proyectos sean mas manejables, las fechas y costos sean mas predecibles, y guiar a los equipos de desarrollo. Sin embargo en algunas ocasiones los objetivos no son alcanzados. 2. Modelos giles de proceso: Subrayan la agilidad del proyecto y siguen un conjunto de principios que conducen a un enfoque ms informal para el proceso del software. Resaltan la manejabilidad y adaptabilidad.

Ambos enfoques de proceso tienen una meta comn: crear software de alta calidad que satisfaga las necesidades del cliente.

2.11.- Factores de calidad y productividad. La calidad del producto y la productividad de ingeniero del software pueden elevarse al mejorar los procesos necesarios para el desarrollo y mantenimiento de los productos de software. Algunos factores que influyen sobra la calidad y productividad se muestran en la tabla 2.X. FACTOR Capacidad individual DESCRIPCIN La produccin y mantenimiento de producto de software son tareas laboriosas, por lo que la productividad y la calidad son funciones directas de la capacidad y esfuerzos individuales. Comunicacin de grupo El desarrollo de un producto de software no es una actividad individual y privada. La ingeniera de software tiene como 10

propsito lograr la comunicacin entre todos los integrantes de equipo de desarrollo de proyecto de software. La ley de Brook explica que agregar ms ingenieros de software a un proyecto retrasado puede hacer que se retrase an ms. Complejidad de Existen tres niveles de complejidad en un producto de producto software: los programas de aplicacin, los programas de sistemas y los programas de sistema operativo. Notacin adecuada Una buena notacin puede aclarar las relaciones e

interacciones de importancia, mientras que las notaciones deficientes complican e interfieren en la buena prctica de la disciplina. Actualmente UML es la notacin estndar y de la industria aceptada.

Enfoque sistemtico Cambio control

Proporciona

los

ingenieros

del

software

ciertos

procedimientos y tcnicas aceptadas para ser utilizadas. de La flexibilidad en un programa es un gran beneficio y a su vez una gran fuente de dificultad en la ingeniera del software. El uso de la notacin y las tcnicas apropiadas hace que se puedan realizar cambios controlados, sin prdida en la calidad del producto.

Nivel tecnolgico

El nivel tecnolgico utilizado en un proyecto de desarrollo incluye aspectos como seleccin del lenguaje de

programacin, ambiente computacional. La disponibilidad y estabilidad del nivel tecnolgico influye notablemente en la productividad y la calidad de producto. Confiabilidad requerida Todo producto de software debe poseer un nivel elemental de confiabilidad. Se requieren tanto recursos humanos como equipo para obtener un aumento en la confiabilidad. Tiempo disponible Los proyectos de desarrollo de software son sensibles no slo al total de esfuerzo requerido, sino tambin la nmero de personas comprendidas. Entendimiento Suele suceder que el ingeniero del software no entiende el 11

de problema

rea de aplicacin y, por ende, tiene dificultades al comunicarse con el cliente debido a sus diferentes

antecedentes educativos. Habilidades necesarias La prctica de la ingeniera del software requere de una gran gama de habilidades y especialidades. Todas las habilidades deben ser ejercitadas dentro de un marco tcnico y administrativo. Facilidades recursos y Algunos factores motivadores relacionados con el trabajo para los ingenieros de software, son el buen acceso al equipo de cmputo y un lugar silencioso para laborar. Los administradores de un proyecto deben ser eficaces en el manejo de los factores de motivacin y frustracin. Entrenamiento adecuado El entrenamiento constante de los ingenieros del software debe ser tomado en serio esto debido principalmente a los rpidos cambios que surgen en las formas de llevar a cabo las tareas dentro de las actividades del marco de trabajo que conforman a la ingeniera del software. Habilidades administrativas Los proyectos de desarrollo de software son por lo comn, supervisados por administradores que tienen poco

conocimiento acerca de la ingeniera de software produce resultados negativos. Por otro lado promover a puestos administrativos de un proyecto de desarrollo a individuos tcnicamente competentes, con poco inclinacin y sin entrenamiento administrativo, tambin suele producir

resultados negativos. Se debe de buscar un balance entre ambos aspectos, pues el administrador se encargara de actividades vitales en el ciclo de vida de desarrollo de software Metas adecuadas La meta principal de la ingeniera de software es el desarrollo de productos de software que cumplan con los requerimientos de uso deseado; idealmente, todos los productos de software 12

deben proporcionar niveles ptimos de generalidad, eficiencia y confiabilidad. Expectativas crecientes El problema de mayor persistencia en la ingeniera del software es el crecimiento constante de las expectativas del producto de software. REFERENCIAS

HERNNDEZ ALARCN, V. M. (2009). Fundamentos de desarrollo de sistemas. Primera edicin. Mxico: Artesanal Educativa.

13

You might also like