0% encontró este documento útil (0 votos)
454 vistas16 páginas

Principios de Ingeniería de Software

El documento presenta los principios fundamentales de la ingeniería de software. Explica que los principios se refieren tanto al proceso de desarrollo como al producto final, y que ambos son importantes. También define conceptos clave como métodos, técnicas y metodologías, y explica que los principios son la base de estos. Luego, introduce varios principios específicos como la modularidad, la separación de intereses, y la anticipación al cambio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
454 vistas16 páginas

Principios de Ingeniería de Software

El documento presenta los principios fundamentales de la ingeniería de software. Explica que los principios se refieren tanto al proceso de desarrollo como al producto final, y que ambos son importantes. También define conceptos clave como métodos, técnicas y metodologías, y explica que los principios son la base de estos. Luego, introduce varios principios específicos como la modularidad, la separación de intereses, y la anticipación al cambio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

2015 - II

INTRODUCCIN

En el siguiente informe les presentamos los principios del software que


tratan tanto del proceso de ingeniera de software como del producto
final. El proceso adecuado ayudar a desarrollar el producto deseado,
pero tambin el producto deseado afectar la eleccin del proceso a
utilizar. Un problema tradicional de la ingeniera de software es poner el
nfasis en el proceso o en el producto excluyendo al otro, sin embargo,
ambos son importantes.
Estos principios son suficientemente generales para ser aplicados a lo
largo del proceso de construccin y gestin del software, sin embargo no
son suficientes para guiar el desarrollo ya que describen propiedades
deseables de los procesos y productos de software; para aplicarlos es
necesario contar con mtodos apropiados y tcnicas especficas. Los
mtodos son guas generales que gobiernan la ejecucin de alguna
actividad, presentan enfoques rigurosos, sistemticos y disciplinados,
por otro lado, las tcnicas son ms mecnicas y se refieren a aspectos
ms tcnicos que los mtodos y tienen aplicacin restringida.
Una metodologa es un conjunto de mtodos y tcnicas cuyo propsito
es promover cierto enfoque para la resolucin de un problema mediante
ese conjunto seleccionado. Las herramientas son desarrolladas para
apoyar la aplicacin de tcnicas, mtodos y metodologas. Los
principios son la base de todos los mtodos, tcnicas, metodologas y
herramientas.

PRINCIPIOS DE LA INGENIERA DE SOFTWARE

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.
A continuacin definiremos dos conceptos que se manejan para interpretar el
sentido de los principios de la ingeniera de software:

Mtodos: guas para la ejecucin de alguna actividad, aproximaciones


rigurosas, sistemticas y disciplinadas.
Tcnicas: son ms mecnicas que los mtodos y tienen aplicabilidad ms
restringida.

Estos principios 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.

GRFICO:
HERRAMIENTAS
Las herramientas son
desarrolladas para
apoyar la aplicacin de
los 3 niveles anteriores.
METODOLOGAS
Una metodologa es un conjunto
de mtodos y tcnicas cuyo
propsito es promover cierto
enfoque para la resolucin de un
problema mediante ese conjunto
seleccionado PRINCIPIO

1. RIGOR Y FORMALIDAD

METODOS Y TCNICAS
Los mtodos y tcnicas se
encapsulan
para
crear
metodologas, que sirven para
promover una aproximacin a
la solucin de problemas,
preseleccionando los mtodos
y tcnicas a usar.

Definiendo:
El rigor es un complemento de la creatividad en la ingeniera. Con la
aproximacin rigurosa podremos tener productos ms confiables y mejores
controles (de tiempo, costos, etc.).
La formalidad aventaja al rigor en el sentido de que la primera puede ser la
base para mecanizar procesos.

APLICACIN:
La aplicacin del principio de rigor y formalidad tiene influencia beneficiosa
en la obtencin de cualidades del software como la confiabilidad,
verificabilidad, mantenibilidad, reusabilidad, portabilidad, comprensibilidad e
interoperabilidad. Por ejemplo, una documentacin del software rigurosa o
incluso

formal

documentacin

puede
informal

mejorar todas estas cualidades sobre una


que

incompleta.

2. SEPARACIN DE INTERESES

puede

ser

ambigua,

inconsistente

Este principio permite enfrentarse a los distintos aspectos individuales de


un problema de forma de concentrarse en cada uno por separado.
La nica forma de enfrentar la complejidad de un proyecto es separar los
distintos intereses.
Separacin por intereses:
La primera forma en la que se pueden separar los distintos intereses es
SEGN EL TIEMPO, lo que permite planificar las distintas actividades y

eliminar el trabajo extra que implica cambiar de una a otra en forma no


restringida.
Otra forma de separacin de intereses es EN TRMINOS DE LAS
CUALIDADES que deberan tratarse por separado, por ejemplo podran

enfrentarse separadamente la eficiencia y correctitud de un programa,


primero disendolo cuidadosa y estructuradamente para garantizar su
correctitud a priori y luego reestructurarlo para mejorar su eficiencia.
Otro tipo importante de separacin de intereses permite que DISTINTAS
VISIONES DEL SOFTWARE sean analizadas en forma separada, por ejemplo

al analizar los requerimientos de una aplicacin podra ser de ayuda


concentrarse por un lado en los datos que fluyen de una actividad a otra y
por otro lado en el flujo de control que gobierna la sincronizacin de dichas
actividades. Ambas ayudan a entender el sistema y ninguna de las dos
provee una visin completa del mismo.
Otra forma ms de aplicacin de este principio es enfrentar partes del
mismo sistema en forma separada, esto es EN TRMINOS DE TAMAO.
Este es un concepto fundamental que debe dominarse para enfrentar la
complejidad de la produccin de software, y es tan importante que se trata
como un punto aparte bajo el principio de modularidad.
Por tanto la separacin de intereses podra resultar en la separacin de
responsabilidades al enfrentarse a los distintos aspectos a tener en cuenta,
por lo tanto es la base para dividir el trabajo en un problema complejo en

asignaciones de trabajo especficas posiblemente a personas distintas con


distintas habilidades.

Ejemplo 01:

Para conocer los costos reales de las actividades econmicas de una


empresa, es necesario recurrir o analizar aspectos de manera
individual que influyen en los costos de manera directa y/o
indirectamente, como los descuentos o recargos, entre otros: estos
nos dan los datos precisos, lo ms cercano a la realidad, que no
sera posible si analizramos los costos de forma directa sin ver los
diferentes aspectos que influyen en los costos.

Ejemplo 02:

Otro caso es para un sistema de almacn, se podra decir que


simplemente es la entrada y salida de productos, este anlisis sera
muy genrico y no estaramos separando adecuadamente los
intereses del sistema, por lo tanto no podramos implementar un
software adecuado, para ello necesitamos identificar los intereses
ms relevantes como el producto, registro del producto, clasificacin,
etc.

3. MODULARIDAD
El principal beneficio de la modularidad es que permite la aplicacin del
principio de separacin de intereses en dos fases: al enfrentar los detalles
de cada mdulo por separado ignorando detalles de los otros mdulos, y al

enfrentar las caractersticas globales de todos los mdulos y sus relaciones


para integrarlos en un nico sistema coherente. Si estas fases son
ejecutadas en ese orden se dice que el sistema es diseado de abajo
hacia arriba (bottom up), en el orden inverso se dice que el sistema es
diseado de arriba hacia abajo (top down).
El principio de modularidad se basa en 3 objetivos principales los cuales
son:

Capacidad de descomponer un sistema complejo

Capacidad de componer el sistema a partir de mdulos existentes


Comprensin del sistema en piezas (o pedazos)
Podemos encontrar una forma de componer y descomponer sistemas,
segn lo referenciado anteriormente podemos describir cmo:
o Para descomponer: Se basa en dividir el problema original en
subproblemas y luego aplicar el principio a cada subproblema de
forma recursiva.
o Para componer: La posibilidad de componer un sistema est
basada en obtener el sistema final de forma bottom up a partir de
componentes elementales.
Debido a la naturaleza evolutiva del software muchas veces se debe volver
hacia atrs al trabajo previo y modificarlo. Si el sistema solo puede ser
comprendido como un todo las modificaciones sern difciles de aplicar y el
resultado ser poco confiable.
Una estructura modular con alta cohesin y bajo acoplamiento permite ver
los mdulos como cajas negras cuando se describe la estructura global del
sistema y luego encarar cada mdulo por separado cuando se analiza o
describe la funcionalidad del mdulo.
Ejemplo 01:
Modularidad de MySQL:

Paso 1: Crear base de datos.

Paso 2:

Paso 3:

Paso 4:

Ejemplo 02:

10

Paso 1: Renombrar la base de datos.

Paso 2:

4.

11

5. ANTICIPACIN AL CAMBIO.

Es la prediccin de los cambios y poder trabajar para que los cambios que
puedan necesitarse en algn momento futuro sean fciles de aplicar. Es

12

importante en el software, debido a que los productos estn en ambientes


donde permanentemente surgen nuevos requerimientos y esto lleva a hacer
cambios constantemente, esto est relacionado con el mantenimiento y es
necesario poder anticiparlos para que no haya ningn problema al aplicar
estos nuevos requerimientos. Para anticiparse al cambio debemos contar
con herramientas de administracin de versiones y revisiones de software
donde podamos almacenar y recuperar informacin, mdulos fuente y
objetos, todo desde una base de datos central.
La reusabilidad tambin se ve afectada por esto, ya que un componente se
puede emplear para generar un nuevo producto, en ciertos casos se
requerir hacer pequeos cambios para esto, cuando se aplique, el
componente tendr la capacidad de evolucionar y as poder ser reutilizado.

Generalidad.

Establece que al tener que resolver un problema se debe buscar un


problema ms general, al descubrir un problema ms general, este puede

13

ser menos complejo y posiblemente la solucin al problema general tenga


potencial de reso. Puede surgir de un paquete ya existente o lo podemos
crear nosotros. Este principio es fundamental si se busca desarrollar
herramientas software para uso amplio en el mercado.
Sin embargo, puede ser ms costoso en trminos de velocidad de
ejecucin, requerimientos de memoria o tiempos de desarrollo.
Si el problema puntual se puede reformular como una instancia de un
problema general, es conveniente adoptar el paquete en vez de una
solucin especfica.

7. Incrementalidad.
La incrementalidad caracteriza un proceso que se desarrolla en forma de
pasos, en incrementos, alcanzando el objetivo deseado mediante
aproximaciones sucesivas al mismo, esto nos da un proceso evolutivo,

14

donde cada aproximacin es alcanzada a travs de un incremento de la


previa.
Debemos identificar subconjuntos primarios tiles para desarrollar y
distribuir a los clientes, de manera de obtener realimentacin temprana.
Esto nos permite que la aplicacin evolucione de manera controlada, en
casos donde los requerimientos iniciales no se comprendieron bien.
Muchas veces no es posible obtener todos los requerimientos antes de
comenzar el desarrollo de una aplicacin sino que stos van emergiendo a
partir de la experimentacin con la aplicacin o partes de sta. Por lo tanto,
lo antes que se pueda contar con feedback del usuario sobre la utilidad de
la aplicacin, ms fcil ser incorporar los cambios requeridos la producto.
Este principio est ligado al principio de anticipacin al cambio y es otro de
los principios en los que se basa la evolucionabilidad.
Las etapas intermedias son prototipos del producto final, lo cual beneficia el
entendimiento de los requerimientos y permite usar un modelo de desarrollo
iterativo ms flexible.
Debemos tener mucho cuidado en la manipulacin de documentos,
programas, datos de prueba y todo lo que usemos en las distintas
versiones. Si no se realiza con cuidado, un intento de desarrollo evolutivo
podra

rpidamente

indisciplinado

evolucionabilidad.

transformarse

perderse

todas

en
las

un

desarrollo

ventajas

de

potenciales

software
de

la

15

También podría gustarte