Está en la página 1de 7

Principios de ingeniera de software

Apuntan al proceso de ingeniera y el producto final: el proceso correcto ayudar a


obtener el producto correcto. Asimismo, el producto afectar la eleccin de qu
proceso usar.
Los principios son afirmaciones abstractas que describen propiedades deseables del
proceso y del producto. Para aplicarlas, los ingenieros deben contar con mtodos y
tcnicas que incorporen dichos principios.
todos: guas para la e!ecucin de alguna acti"idad, apro#imaciones
rigurosas, sistemticas y disciplinadas.
$cnicas: son ms mecnicas que los mtodos y tienen aplicabilidad ms
restringida.
Ambos se usan como sinnimos.
Los mtodos y tcnicas se encapsulan para crear metodologas, que sir"en para
promo"er una apro#imacin a la solucin de problemas, preseleccionando los
mtodos y tcnicas a usar.
Las herramientas son desarrolladas para apoyar la aplicacin de los % ni"eles
anteriores.
Lo que se busca con este anlisis es la confiabilidad de las aplicaciones. $ambin se
supone que las aplicaciones sern lo suficientemente grandes para descomponerlas
en partes mane!ables.
$odo esto hace que la confiabilidad y la e"olucin sean importantes y que
afirmemos que la eleccin de principios y tcnicas son determinantes para las
metas de calidad del soft&are.
1. Rigor y formalidad.
'l rigor es un complemento de la creati"idad en la ingeniera. (on la
apro#imacin rigurosa podremos tener productos ms confiables y me!ores
controles )de tiempo, costos, etc.*. 'l rigor me!ora la creati"idad,
optimi+ando la confian+a en los resultados creati"os, una "e+ anali+ados en
base a una planificacin rigurosa.
,ay "arios grados de rigurosidad. 'l ms alto es la formalidad, que es un
requerimiento ms restricti"o que el rigor, que e#ige que el proceso de soft
sea dirigido y e"aluado con leyes matemticas. La formalidad implica rigor,
pero uno puede ser riguroso e informal.
'n ingeniera, el proceso de dise-o son pasos bien definidos y con bases
slidas. 'n cada paso el ingeniero sigue alg.n mtodo o tcnica basados en
resultados tericos de un modelado formal de la realidad o en a!ustes
empricos de fenmenos no considerados por el modelo, o en reglas
heursticas que dependen de la e#periencia. $odo est resuelto en una
aplicacin rigurosa y sistemtica )metodologa*, fcilmente e#plicada y
aplicada una y otra "e+.
'l ingeniero debe saber cmo y cundo ser formal, adems de entender el
ni"el de rigurosidad y formalidad a alcan+ar, dependiendo de la dificultad de
la tarea y su criticidad. '!.: podemos ser muy formales para las partes
crticas de un problema y para las partes estandari+adas aplicar una
apro#imacin ms simple.
La formalidad a"enta!a al rigor en el sentido de que la primera puede ser la
base para mecani+ar procesos. La .nica fase del desarrollo de soft&are
donde se usa apro#imacin formal es en la programacin. Los programas
son ob!etos formales, escritos en lengua!es cuya sinta#is y semntica estn
definidos. 'stas operaciones mecnicas, posibles por usar la formalidad,
pueden me!orar la confiabilidad y "erificabilidad de los productos soft&are.
'l rigor y la formalidad benefician tambin la mantenibilidad, reusabilidad,
portabilidad, comprensin e interoperabilidad del soft&are. '!.: la
documentacin nos permite pre"er la e"olucin del proyecto, los recursos a
usar, etc., as como nos ayuda a mantener el producto, al usarla para
cualquier modificacin que se requiera/ y por .ltimo nos permite monitorear
el soft&are en forma precisa, para garanti+ar el cumplimiento de los puntos
de control y me!orar la producti"idad.
2. Separacin de intereses.
's in"olucrarse con distintos aspectos de un problema para concentrarse en
ellos separadamente. 'n cada proyecto debemos separar aspectos: primero,
aislar los factores relacionados ms dbilmente y luego considerar los
factores en la medida en que impactan el anlisis.
0eparacin en base al tiempo: permite planificar las acti"idades de
manera precisa.
0eparacin en trminos de calidades: mane!ar separadamente la
eficiencia y la correccin de un programa, dise-ando soft&are
cuidadoso y estructuradamente, tal que su correccin est
garanti+ada a priori y luego reestructurada para me!orar su eficiencia.
0eparacin por "istas: separar los datos que fluyen de una acti"idad
a otra en el flu!o de control que gobierna la sincroni+acin de las
acti"idades.
La separacin implica separacin de responsabilidades para tratar los
distintos aspectos. 's la base para la asignacin del traba!o en asignaciones
especficas para distintas personas con distintas habilidades.
3. Modularidad.
1i"isin de un sistema en partes ms simples )mdulos*. 'sto nos permite
separar los conte#tos en fases: cuando relacionamos cada mdulo aislado y
cuando relacionamos todos los mdulos globalmente, anali+ando sus
cone#iones e integracin.
2b!eti"os de la modularidad:
(apacidad de descomposicin de un sistema comple!o: di"isin del
problema original en subproblemas y luego di"idir cada subproblema.
(omposicin de un sistema a partir de componentes e#istentes:
partir de componentes elementales hasta llegar al sistema terminado.
(uando un componente falla, se reempla+a por uno nue"o. Podemos
usar mdulos de una biblioteca, que al ser reutili+ables, aceleran el
proceso de construccin.
(omprensin del sistema mirndolo en partes: 3os facilita la
reparacin y modificacin, al buscar los errores en un componente en
particular.
Para lograr los tres ob!eti"os, los mdulos deben tener:
Alta cohesin: sus elementos internos estn muy relacionados y
agrupados por ra+ones lgicas.
4a!o acoplamiento: es la relacin entre mdulos y mide la
interdependencia entre 5 mdulos. La idea es lograr que los mdulos
tengan un ni"el ba!o.
Las estructuras que cumplan esto nos permiten "er los mdulos como ca!as
negras cuando describimos la estructura total y "erlos separadamente
cuando anali+amos la funcionalidad de cada uno.
4. Astraccin.
's identificar los aspectos importantes de un fenmeno e ignorar los
detalles. 'sto depende de cada persona o de cada enfoque o propsito que
se le d a un problema.
Los modelos que construimos son abstracciones de la realidad, "lidas
tambin para modelos de soft&are.
Los lengua!es de programacin son abstracciones que nos permiten construir
sin preocuparnos por los detalles de hard&are.
'ste principio es importante para aplicarlo a productos y procesos soft&are.
(uando la documentacin de un programa o procedimiento se anali+a, se
supone que suministra toda la informacin necesaria para entender las otras
partes del programa que usan ese procedimiento.
!. Anticipacin al camio.
0e refiere a la mantenibilidad. 's poder predecir los cambios y traba!ar para
que los cambios futuros sean fciles de aplicar.
'sto es importante en el soft&are, ya que los productos estn en ambientes
donde permanentemente surgen nue"os requerimientos.
La reusabilidad tambin se "e afectada por esto. 6n componente es reusable
si se puede emplear para generar un nue"o producto o si solo requiere
peque-os cambios para ello. La reusabilidad es la capacidad de e"olucionar
que tienen los componentes.
Para anticiparse al cambio debemos contar con herramientas de
administracin de "ersiones y re"isiones de soft&are. 1ebemos poder
almacenar y recuperar informacin, mdulos fuente y ob!etos, todo desde
una base de datos central.
Asimismo se afecta al proceso de soft, al considerar el mantenimiento de
una aplicacin y asignando estructura y costos para apoyar la e"olucin del
soft&are.
". #eneralidad.
Poder descubrir un problema ms general en la resolucin de un primer
problema. 'ste puede ser menos comple!o y pro"eer soluciones reutili+ables.
Puede surgir de un paquete ya e#istente o lo podemos crear nosotros.
0in embargo, puede ser ms costoso en trminos de "elocidad de e!ecucin,
requerimientos de memoria o tiempos de desarrollo.
'ste principio es fundamental si se busca desarrollar herramientas soft&are
para uso amplio en el mercado.
0i el problema puntual se puede reformular como una instancia de un
problema general, es con"eniente adoptar el paquete en "e+ de una solucin
especfica.
7. $ncrementalidad.
1esarrollar paso a paso con incrementos, logrando apro#imaciones
sucesi"as. 'sto nos da un proceso e"oluti"o.
1ebemos identificar subcon!untos primarios .tiles para desarrollar y
distribuir a los clientes, de manera de obtener realimentacin temprana.
'sto nos permite que la aplicacin e"olucione de manera controlada, en
casos donde los requerimientos iniciales no se comprendieron bien.
Las etapas intermedias son prototipos del producto final, lo cual beneficia el
entendimiento de los requerimientos y permite usar un modelo de desarrollo
iterati"o ms fle#ible.
1ebemos tener mucho cuidado en la manipulacin de documentos,
programas, datos de prueba y todo lo que usemos en las distintas "ersiones.
(ada paso incremental significati"o debe ser registrado.
%&u' es el software(
Programas, estructuras de datos, documentacin y ms.
)aractersticas*
desarrollo, no manufactura.
1esgaste, no gasto.
Principalmente desarrollado a medida.
antenibilidad: debe poder e"olucionar y seguir cumpliendo sus
especificaciones.
(onfiabilidad: no debe causar da-os fsicos ni econmicos en caso de fallos.
'ficiencia: no debe desperdiciar los recursos del sistema.
6tili+acin adecuada: debe contar con una interfa+ adecuada y
documentacin.
Act.a como un diferenciador en los negocios, es estratgico.
(aptura informacin, produce informacin y es informacin en s mismo.
Productos Software
8enricos: son producidos por una organi+acin para "enderlos en el
mercado.
A medida: desarrollados ba!o pedido a un desarrollador especfico.
La mayor parte del gasto del soft&are es en productos genricos, pero hay ms
esfuer+o en el desarrollo a medida.
)omponentes*
Mitos del software*
'stndares y procedimientos bastan.
$ecnologa de punta basta.
s gente para ponerse al da.
Programacin inmediata.
9cil acomodo de los cambios.
Programacin: fin del traba!o.
(alidad: solo del e!ecutable.
'l cdigo es el .nico producto.
+,olucin del software*
Software ,s. -ardware*
$ngeniera de software
'stablecer y usar principios con caracteres de ingeniera para obtener,
eficientemente, soft&are confiable, que opere efica+ y eficientemente en mquinas
reales.
2b!eti"os: ma#imi+ar la calidad, ma#imi+ar producti"idad, minimi+ar riesgos.
:mplicancias:
(onstructores bsicos ms poderosos.
e!ores tcnicas de control de calidad.
e!ores herramientas y mtodos.
9ilosofa 8lobal ;enfoque de procesos<
Principios:
,acer de la calidad el primer ob!eti"o.
'l soft&are de alta calidad es posible.
'ntregar tempranamente productos a los clientes.
1eterminar el problema antes de describir los requerimientos.
'"aluar alternati"as de dise-o.
6sar un modelo apropiado.
6sar lengua!es diferentes para fases diferentes.
inimi+ar la distancia intelectual.
1ecidir las tcnicas antes que las herramientas.
,acerlo correcto antes que hacerlo rpido.
:nspeccionar dise-o y cdigo.
La gestin es ms importante que la tecnologa.
8ente: cla"e del #ito.
Adoptar tcnicas y metodologas con cuidado.
Asumir responsabilidad.
(omprender prioridades de los clientes.
(lientes=6suarios: ms "en, ms necesitan.
Planificar para desechar parcialmente.
1ise-ar para el cambio.
1ise-o sin documentacin no es dise-o.
6sar herramientas con realismo.
'"itar trucos.
'ncapsular.
6sar acoplamiento y cohesin.
6sar mediciones de comple!idad.
3o probar el soft&are propio.
Anali+ar causas de errores.
Asumir que la entropa del soft&are aumenta.
8ente y tiempo no son intercambiables.
'sperar y demandar e#celencia.
)ostos del software
Los costos del soft&are a menudo dominan el costo del sistema y superan muchas
"eces el "alor de una P(.
(uesta ms mantener el soft&are que desarrollarlo. Para sistemas con larga "ida,
este costo se multiplica.
La ingeniera de soft&are concierne a un desarrollo efecti"o en cuanto a costos.

También podría gustarte