Professional Documents
Culture Documents
S4D
Programa de estudio
INGENIERIA EN SOFTWARE
Ing. Tana Peralta
Programa de Estudios
Unidad 1
mbitos generales de la ingeniera de software
1. Introduccin
1.1.
Qu es la ingeniera de software?
1.2.
Qu es un proceso de software?
1.3.
Segn (Sommerville, 2005 ) dice que la ingeniera del software es una disciplina de
la ingeniera que comprende todos los aspectos de la produccin de software desde
las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste
despus de que se utiliza. En esta definicin, existen dos frases clave:
1. Disciplina de la ingeniera. Los ingenieros hacen que las cosas
funcionen. Aplican teoras, mtodos y herramientas donde sean
convenientes, pero las utilizan de forma selectiva y siempre tratando de
descubrir soluciones a los problemas, aun cuando no existan teoras y
mtodos aplicables para resolverlos. Los ingenieros tambin saben que deben
trabajar con restricciones financieras y organizacionales, por lo que buscan
soluciones tomando en cuenta estas restricciones.
2. Todos los aspectos de produccin de software. La ingeniera del
software no slo comprende los procesos tcnicos del desarrollo de software,
sino tambin con actividades tales como la gestin de proyectos de software
y el desarrollo de herramientas, mtodos y teoras de apoyo a la produccin
de software.
En general, los ingenieros de software adoptan un enfoque sistemtico y organizado
en su trabajo, ya que es la forma ms efectiva de producir software de alta calidad.
Sin embargo, aunque la ingeniera consiste en seleccionar el mtodo ms apropiado
para un conjunto de circunstancias, un enfoque ms informal y creativo de
desarrollo podra ser efectivo en algunas circunstancias. El desarrollo informal es
apropiado para el desarrollo de sistemas basados en Web, los cuales requieren una
mezcla de tcnicas de software y de diseo grfico.
Gestor
Ingeniero de software
Analista de sistemas
El nmero de personas requerido para un proyecto de software se determina
despus de hacer una estimacin del esfuerzo de desarrollo.
Recursos de software reutilizable
Se destaca la reutilizacin, esto es, la creacin y la reutilizacin de bloques de
construccin de software.
Se establecen 4 categoras de recursos de software que se deben tener en cuenta a
medida que se avanza con la planificacin:
2. Sistema socio-tcnicos
2.1.
Las complejas relaciones entre los componentes de un sistema indican que el sistema
es ms que simplemente la suma de sus partes. ste tiene propiedades que son
propiedades del sistema como un todo. Estas propiedades emergentes
2.2.
2.3.
El diseo del sistema (Figura 2.4) se centra en proporcionar la funcionalidad del sistema a travs de sus
diferentes componentes. Las actividades que se realizan en este proceso son:
1. Dividir requerimientos. Analice los requerimientos y organcelos en grupos afines.
Normalmente existen varias opciones posibles de divisin, y puede sugerir varias alternativas en esta
etapa del proceso.
2. Identificar subsistemas. Debe identificar los diferentes subsistemas que pueden, individual o
colectivamente, cumplir los requerimientos. Los grupos de requerimientos estn normalmente
relacionados con los subsistemas, de tal forma que esta actividad y la de divisin de requerimientos se
pueden fusionar. Sin embargo, la identificacin de subsistemas se puede ver influenciada por otros
factores organizacionales y del entorno.
3. Asignar requerimientos a los subsistemas. Asigne los requerimientos a los subsistemas. En
principio, esto debe ser sencillo si la divisin de requerimientos se utiliza para la identificacin de
subsistemas. En la prctica, no existe igualdad entre las divisiones de requerimientos y la
identificacin de subsistemas. Las limitaciones de los subsistemas comerciales pueden significar que
tenga que cambiar los requerimientos para acomodarlos a estas restricciones.
4. Especificar la funcionalidad de los subsistemas. Debe enumerar las funciones especficas asignadas
a cada subsistema. Esto puede verse como parte de la fase de diseo del sistema o, si el subsistema es
un sistema de software, como parte de la actividad de especificacin de requerimientos para ese
sistema. Tambin debe intentar especificar las relaciones entre los subsistemas en esta etapa.
5. Definir las interfaces del subsistema. Defina las interfaces necesarias y requeridas por cada
subsistema. Una vez que estas interfaces se han acordado, es posible desarrollar estos subsistemas en
paralelo.
2.4.
Modelado de sistema
Durante la actividad de requerimientos y diseo del sistema, stos pueden ser modelados como un
conjunto de componentes y de relaciones entre estos componentes. Esto se puede ilustrar grficamente en
un modelo arquitectnico del sistema, el cual proporciona al lector una visin general de la organizacin
del sistema. La arquitectura del sistema puede ser presentada como un diagrama de bloques que muestra
los principales subsistemas y la interconexin entre ellos. Al dibujar un diagrama de bloque, debe
representar cada subsistema mediante un rectngulo, y debe mostrar las relaciones entre los subsistemas
usando flechas que unan estos rectngulos. Las relaciones pueden ser flujo de datos, utiliza / utilizado
por o algn otro tipo de relacin dependiente. Por ejemplo, la descomposicin de un sistema de alarma
contra intrusos en sus componentes principales. El diagrama de bloques debe complementarse con una
breve descripcin de cada subsistema. En este nivel de detalle, el sistema se descompone en un conjunto
de subsistemas que interactan. Cada uno de stos debe ser representado de forma similar hasta que el
sistema est dividido en componentes funcionales. stos son componentes que, cuando se ven desde la
perspectiva del subsistema, proporcionan una funcin nica. En contraste, un sistema comnmente es
multifuncional. Por supuesto, cuando se ve desde otra perspectiva (por ejemplo, desde los componentes
del fabricante), un componente funcional es un sistema. Histricamente, el modelo de arquitectura de
sistemas fue utilizado para identificar componentes de hardware y software que podan desarrollarse en
paralelo. Sin embargo, esta distincin hardware/software se ha hecho irrelevante. En la actualidad, la
mayora de los componentes incluyen algunas capacidades de cmputo. Por ejemplo, las mquinas para
enlazar redes consisten en cables fsicos, repetidores y gateways. stos incluyen procesadores y software
para manejar estos procesadores, as como componentes electrnicos especializados. En el nivel de la
arquitectura, es ms apropiado clasificar los subsistemas de acuerdo con su funcin antes de tomar
decisiones sobre el tipo de hardware/software. La decisin de proporcionar una funcin mediante
hardware o software depende de factores no tcnicos, como la disponibilidad de componentes comerciales
o el tiempo disponible para desarrollar el componente. Los diagramas de bloques se pueden utilizar para
sistemas de cualquier tamao. La muestra la arquitectura de un sistema de mayor tamao para el control
del trfico areo. Varios subsistemas principales mostrados son a su vez sistemas grandes. Las flechas que
conectan estos sistemas muestran el flujo de informacin entre estos subsistemas.
2.5.
Durante el proceso de integracin del sistema, se toman los subsistemas desarrollados de forma
independiente y se conjuntan para crear el sistema completo. La integracin se puede hacer utilizando el
enfoque del big bang, que consiste en integrar todos los subsistemas al mismo tiempo. Sin embargo, a
efectos tcnicos y de administracin, el mejor enfoque es un proceso de integracin creciente donde los
sistemas se integran uno a uno, por dos razones:
1. Por lo general, es imposible confeccionar una agenda para el desarrollo de todos los subsistemas
de tal forma que todos terminen al mismo tiempo.
2. La integracin creciente reduce el costo en la localizacin de errores. Si varios subsistemas se
integran simultneamente, un error que surja durante las pruebas puede estar en cualquiera de
estos subsistemas. Cuando un nico subsistema se integra en un sistema en funcionamiento, los
errores que se produzcan estarn probablemente en el subsistema recin integrado o en las
interacciones entre los subsistemas existentes y el nuevo sistema.
Una vez que los componentes han sido integrados, tiene lugar un extenso programa de pruebas del
sistema. Estas pruebas pretenden probar las interfaces entre los componentes y el comportamiento del
sistema en su totalidad.
Los defectos de los subsistemas que son consecuencia de suposiciones invlidas en los otros subsistemas,
a menudo aparecen durante la integracin del sistema. Esto puede conducir a problemas entre los
diferentes contratistas responsables de los diferentes subsistemas.
Cuando se descubren problemas en la interaccin de subsistemas, los diferentes contratistas pueden
discutir sobre qu subsistema es el defectuoso. Las negociaciones de cmo solucionar el problema pueden
llevar semanas o meses.
Como cada vez ms los sistemas son construidos por la integracin de componentes hardware y software
COTS, la integracin de sistemas est adquiriendo una importancia creciente. En algunos casos, no hay
separacin en el desarrollo de subsistemas y la integracin es,
esencialmente, la fase de implementacin del sistema.
2.6.
Los sistemas grandes y complejos tienen un periodo de vida largo. Durante su vida, se cambian para
corregir errores en los requerimientos del sistema original y para implementar nuevos requerimientos que
surgen. Los sistemas de cmputo se reemplazan por nuevas mquinas ms rpidas. La organizacin que
utiliza el sistema puede reorganizarse y utilizar el sistema de forma diferente. El entorno externo del
sistema puede cambiar, forzando cambios en el sistema. La evolucin del sistema, como la del software,
es inherentemente costosa, por varias razones:
1. Los cambios propuestos tienen que analizarse cuidadosamente desde perspectivas tcnicas y de
negocios. Los cambios tienen que contribuir a los objetivos del sistema y no deben tener
simplemente una motivacin tcnica.
2. Debido a que los subsistemas nunca son completamente independientes, los cambios en uno
pueden afectar de forma adversa al funcionamiento o comportamiento de otros.
3. Por lo tanto, ser necesario cambiar estos subsistemas.
4. A menudo no se registran las razones del diseo original. Los responsables de la evolucin del
sistema tienen que resolver por qu se tomaron decisiones particulares de diseo.
5. Al paso del tiempo, su estructura se corrompe por el cambio de tal forma que se incrementan los
costos de cambios adicionales.
Referencias
Aparicio, I. A. (Abril 2004). INGENIERIA DE SOFTWARE. Obtenido de
http://datateca.unad.edu.co/contenidos/301404/301404_ContenidoEn
Linea.
Sommerville, I. ( 2005 ). INGENIERA DEL SOFTWARE. Sptima edicin.
Madrid.: PEARSON EDUCACIN, S.A.