Está en la página 1de 6

FUNDAMENTOS DE INGENIERIA DE SOFTWARE.

Tarea: Conceptos básicos.


Estudiante: Patricia Dhamar Martínez Chicaty.
Grupo: 5”O”
“El ingeniero de software aficionado siempre está a Ia búsqueda de algo
mágico, algún método o herramienta sensacional que prometa convertir el
desarrollo de software en algo trivial. Está en el ingeniero de software
profesional saber que no existe tal panacea.” (Grady Boch).

La industria de la ingeniería de software avanza a pasos agigantados, un claro ejemplo de eso


es la computación en la nube y otros tipos de almacenamiento, que si bien antes teníamos que
instalar un programa en nuestra computadora para poder acceder a todas las funcionabilidades
que tenía ahora se lo puede hacer mediante un navegador donde el programa se encuentra
alojado en un servidor a varios kilómetros de distancia, dejando así disponible el hardware que
se utilizaría para correr esta aplicación (memoria, disco, procesador). A continuación se
detallaran los conceptos básicos para poder entender la importancia del impacto de esta rama
que se pudo hacer un lugar entre las distintas ciencias.
El propósito de la ciencia es entender y explicar los sistemas complejos, como por ejemplo la
economía, el sistema solar o el flujo térmico. Por costumbre se dividen estos sistemas en dos,
los cuales son las ciencias naturales y las ciencias sociales, pero hay otro tipo de ciencias
denominadas ciencias artificiales acuñado por el teórico de ciencias sociales Herbert Simon
en 1970 para describir las ciencias que tratan sobre sistemas artificiales como por ejemplo, el
transbordador espacial, el sistema de reservación de boletos o cualquier maquina creada por
el hombre.
Las ciencias computacionales abarcan las bases teóricas de la computación y la información
así como aplicaciones. “El cuerpo de conocimiento de las ciencias de la computación es
frecuentemente descrito como el estudio sistemático de los procesos algorítmicos que
describen y transforman información: su teoría, análisis, diseño, eficiencia, implementación,
algoritmos sistematizados y aplicación” (Anthony Ralston, 2000). En términos más específicos,
se trata de algoritmos que subyacen en la adquisición, representación, procesamiento,
almacenamiento, comunicación y acceso a la información y están en forma se bits.
Los sistemas complejos están constituidos por varias partes entrelazadas que una red de
información adicional invisible para el usuario como resultado de la interacción de los distintos
elementos que la componen.
La ingeniería de software es una de las ramas de las ciencias computacionales que consiste
en la creación y estudio de los sistemas de software por medio de técnicas y métodos de
ingeniería. Implementarla de una manera correcta nos permite cumplir con los objetivos
fundamentales de la ingeniería de software como son mejorar el diseño de software o
aplicación para poder crear un entorno amigable con el usuario así como también poder
organizar pruebas para identificar posibles mejoras, aumentar la calidad y eficiencia del
sistema.
El software es el soporte lógico de un sistema informático que consiste en un grupo de
elementos necesarios para la realización de tareas específicas. La relación entre el software
y el hardware hace posible el funcionamiento del ordenador o dispositivo especifico.
El software, en su mayoría, está en lenguajes de programación de alto nivel, ya que son más
fáciles y eficientes para que los programadores los usen, porque son más cercanos al lenguaje
natural respecto del lenguaje de máquina ya que los lenguajes de alto nivel utilizan los
compiladores o interpretes para traducir a lenguaje maquina aunque también cabe la
posibilidad de estar escrito en lenguaje ensamblador, que es un lenguaje de bajo nivel y
traduce a lenguaje maquina por medio de un ensamblador que es necesario para mejorar la
productividad de los desarrolladores y la calidad final del proyecto.
Un lenguaje de programación es un lenguaje
formal (o artificial) que le permite al programador
la capacidad de escribir una serie de instrucciones
o secuencias de órdenes en forma de algoritmos
con el fin de controlar el comportamiento físico o
lógico de una computadora.
El algoritmo es un conjunto de reglas no ambiguas
ordenadas y finitas que permite, típicamente,
solucionar un problema, realizar un cómputo, Lenguaje de programación.
procesar datos y llevar a cabo otras tareas o
actividades, se expresa por medio de diagramas de flujo, seudocódigos, estructuras
secuenciales, etc.

“La ingeniería de software trata del establecimiento de los principios y


métodos de la ingeniería a fin de obtener software de modo rentable, que
sea fiable y trabaje en máquinas reales“(Bauer, 1972).

Entre los métodos básicos de la ciencia se encuentra el modelado. El modelado es una


interpretación abstracta de un sistema que permite resolver las dudas acerca de este. La
ingeniería de software, con el fin de ordenar el caos que era anteriormente el desarrollo de
software, dispone de varios modelos, paradigmas y filosofías de desarrollo, estos los
conocemos principalmente como modelos.
Entre los distintos modelos se pueden encontrar el modelo cascada, modelo de prototipo,
modelo en espiral, modelo iterativo, modelo concurrente, entre otros.
Los ingenieros de software manejan las dificultades por medio del modelado considerando
solo lo que se cree relevante para el desarrollo e implementación de su trabajo dejando de
lado todo lo demás. Estos modelos se utilizan para poder llegar a la posible solución más
aceptable y está basada en la experimentación sujeta a recursos finitos, dada la falta de estos
los ingenieros de software se ven obligados a basarse en métodos empíricos para evaluar sus
sistemas. En el modelado del campo de la aplicación y solución de problemas el ingeniero de
software se ve en la necesidad de recopilar información para organizarla y finalmente
formalizar sus conocimientos ya que necesitan comprender el funcionamiento del sistema para
poder construir un sistema de dominio del problema.
Los métodos orientados a objetos relacionan las actividades de modelado de los dominios de
problema con la solución en uno solo:
1. Se modela el dominio del problema como un conjunto de objetos y relaciones.
2. Con el mismo se representan conceptos manipulados en el entorno.
3. Se modelan como objetos el dominio de solución.
La idea central de los métodos orientados a objetos es extender el modelo del dominio de
problema al modelo de solución de problema.
La solución de problemas es buscada por los ingenieros generalmente por medio del ensayo
y error, de la forma más vaga, el método de la ingeniería cosiste en 5 fases: formular el
problema, analizar el problema, elegir la solución más conveniente y finalmente especificarlo.
Pero para la ingeniería de software no ha sido fácil su desarrollo hasta nuestros días ya que
en una conferencia en el año de 1968 Friedrich L. Bauer habló por primera vez del conjunto de
dificultades o errores ocurridos en la planificación, estimación de los costos, productividad y
calidad de un software más conocido como la crisis de software.
Existen múltiples causas que originan la crisis del software. Una de ellas es que el desarrollo
de un software es un proceso relativamente “nuevo”, del cual no se tiene personal lo
suficientemente capacitado, debido a una pobre implementación de los procesos más
organizados.
Para evitar errores de cualquier tipo lo mejor que se puede hacer es realizar revisiones
formales ya que cuantos más errores se puedan encontrar antes de escribir el código menos
impacto tendrán en el mismo.
El desarrollo de software de gran porte requiere una adecuada gestión del proyecto. Hay
presupuestos, establecimiento de tiempos de entrega, un equipo de profesionales que liderar,
recursos (espacio de oficina, insumos, equipamiento) por adquirir. Para su administración se
debe tener una clara visión y capacitación en gestión de proyectos.
Esto se evalúa de forma empírica, con conocimientos insuficientes y escasos recursos. Los
recursos pueden ser humanos y de entorno; los recursos humanos son todas aquellas
personas que intervienen en el desarrollo del proyecto de software, los recursos de entorno
consiste en el hardware proporcionado al medio físico para desarrollar las aplicaciones. Por
otra parte, la adquisición de conocimientos tiende a ser un proceso no lineal, es decir, la
adquisición de un conocimiento extra puede invalidar por completo el flujo de información
obtenido hasta el momento para el entendimiento del sistema.
El desarrollo de un sistema de software suele ser muy complejo, por esta razón se solicita la
intervención de gran variedad de personas pertenecientes a los recursos humanos
denominados participantes. Al conjunto de funciones y responsabilidades que hay dentro del
proyecto o sistema se le conoce como roles o papeles. Los roles están asociados a las tareas
que son asignadas a los participantes, en consecuencia, una persona puede desempeñar uno
o múltiples roles, así también un mismo rol puede ser representado por un equipo
Una vez que cada participante ejecuta los papeles o roles correspondientes se da lugar a los
productos de trabajo, estos son artefactos (documentos o fragmentos) producidos durante el
desarrollo del software para el cliente (entregas) o para el consumo interno del proyecto
(producto de trabajo interno).
La entrega es una actividad, las actividades son un conjunto de tareas a realizar con un
propósito en específico, en este caso, el propósito de la entrega es instalar el sistema en una
ubicación operacional. Las actividades pueden estas compuestas de otras actividades a las
que se les llama fases.
Las tareas por su parte representan una unidad del trabajo, estas consumen recursos y dan
como resultado productos de trabajo.
Un principio fundamental para guiar el proyecto es el objetivo este puede variar dependiendo
de los requerimientos y restricciones, los objetivos definen los atributos importantes del
sistema. Definir mal los objetivos del proyecto puede dificultar su desarrollo.
Los requerimientos son las características con las debe de contar el sistema y se clasifican en
requerimientos funcionales y no funcionales; los funcionales se les entiende como un área
que debe soportar el sistema, mientras que los no funcionales son las restricciones de
operación del sistema.
Como cualquier proyecto, la ingeniería de software necesita de una metodología para poder
progresar de manera óptima y alcanzar los objetivos. La metodología consiste en una colección
de métodos para la solución de algún problema entre los cuales podemos encontrar la técnica
de modelado de objetos (OMT), Catalysis y la metodología de Booch que son métodos
ocupado para el desarrollo de software orientados a objetos. Estas metodologías se
descomponen en el proceso de actividades a realizar que modelan el dominio de solución.
La metodología de la ingeniería de software requiere llevar a cabo numerosas etapas. A estas
etapas se les conoce como ciclo de vida que es el conjunto de estados del progreso del
proyecto de creación de aplicaciones, para poder identificar cuánto se ha avanzado y cuánto
queda hasta el final. Las etapas son las siguientes:
1. Obtención de requisitos.
2. Análisis de requisitos.
3. Limitaciones.
4. Especificaciones.
5. Arquitectura.
6. Programación.
7. Desarrollo.
8. Pruebas.
9. Implementación.
10. Documentación.
11. Mantenimiento.
Las herramientas CASE (Ingeniería de Software Asistida por Computadora) son herramientas
computacionales (software) que están destinadas a asistir en los procesos de ciclo de vida de
un software, facilitan la producción del software, varias se basan principalmente en la idea de
un modelo gráfico.
El método es la técnica repetible para la solución del problema plateado, por ejemplo, un
algoritmo de ordenamiento es el método utilizado para ordenar las una lista especifica.
Implementa enfoques estructurados para el desarrollo de software
que incluye: descripciones del modelo, descripciones de modelos
gráficos que deben ser producidos reglas, restricciones aplicadas
a los modelos de sistemas, recomendaciones para realizar un
diseño efectivo, administración del proceso que consisten en
actividades deben realizarse y en qué orden.
El modelado del sistema se representa por medio de una
notación, estas notaciones son un conjunto de reglas grafías y
textuales, por ejemplo UML (lenguaje de modelado unificado) que
es una notación basada en la teoría de conjuntos.
En conclusión, el éxito de los proyectos en la industria del software depende de distintos
factores a los que se enfrentan en el proceso, o la cultura del país donde está asentada la
empresa. En primera instancia, donde sólo se toman en cuenta los aspectos técnicos, un
segundo donde aparecen factores como tiempo, costo y alcance, obligando a la gerencia de
proyectos a mantener un equilibrio; un tercer punto agrega el factor de calidad y comienza la
industria y la academia a producir diferentes estándares y metodologías. Por último, aparece
la satisfacción del cliente.
En una economía global fundada en la información y el conocimiento, el software constituye
una herramienta crucial para el aumento de la productividad, ya que incorpora tecnologías y
soluciones a los diferentes problemas que se presentan día con día. En la última década, el
sector de desarrollo de productos y servicios de software se ha convertido en un impulsor
dominante de la cada vez más creciente economía de la información (Tatikonda, 2002).
El software de computadora es el producto que diseñan y construyen los ingenieros de
software. Esto abarca programas que se ejecutan dentro de una computadora de cualquier
tamaño y arquitectura, después de estar construido casi cualquier persona en el mundo
industrializado, ya sea directa o indirectamente. El software se ha convertido en algo muy
necesario en nuestra sociedad actual, es la máquina que conduce a la toma de decisiones
comerciales, sirve para la investigación científica moderna, es un factor clave que diferencia
productos y servicios modernos. Esto se da porque el software está inmerso en sistemas de
todo tipo alrededor de nosotros.
.

También podría gustarte