1. MINISTERIO DE EDUCACION DE LA
PROVINCIA DE CORRIENTES. DIRECCION
DE NIVEL SUPERIOR.
TECNICATURA SUPERIOR EN DESARROLLO
DE SOFTWARE.
UNIDAD CURRICULAR: INGENIERIA DE
SOFTWARE
TRABAJO
PRACTICO
N°1
Profesor: Lic. BARCHT ALFREDO
Alumna: Caren Yanel Belmont
2. INGENIERIA DE SOFTWARE 1
UNIDAD CURRICULAR: INGENIERIA DE SOFTWARE
Profesor: Lic. BARCHT ALFREDO
Actividad N°: 1
1) ¿Qué es un software?
2) ¿Por qué es importante el software?
3) ¿Qué es la ingeniería de software?
4) ¿Con que se desarrolla o modifica un software?, ¿se desgasta?
5) ¿Qué es un software determinista?
6) ¿Qué es un producto final?
7) ¿Qué problemas ocasionan el software heredado?
8) ¿Cuál es el fundamento más importante en que se apoya la ingeniería de software?
9) ¿Cuáles son los pasos de la esencia de la práctica en la ingeniería de software?
10) ¿Hay mitos sobre el software? Describir los mitos juntos con sus realidades.
Fecha límite de entrega: 25/05/21 - 23, 59 hs.
3. INGENIERIA DE SOFTWARE 2
Respuestas:
1)-Un Software es el soporte lógico e inmaterial, que permite que la computadora pueda
desempeñar tareas inteligentes, dirigiendo a los componentes físicos (hardware) con
instrucciones y datos a través de diferentes tipos de programas. Dichos programas son
desarrollados y mantenidos durante largo tiempo por los programadores profesionales.
Estos software pueden ejecutarse en PC de cualquier tamaño y arquitectura. El contenido
de los mismos, se presenta a medida que se ejecutan los programas de cómputo e
información descriptiva, tanto en una copia dura, como en formatos virtuales que engloban
virtualmente a cualesquiera medios electrónicos.
2)-El Software es tan importante porque afecta a casi todos los aspectos de nuestras vidas,
actualmente es considerado el producto más valioso dentro del campo tecnológico mundial
debido a su crecimiento y desarrollo se ha hecho tan indispensable en los diferentes
sectores de aplicación organizacional (sistemas de todo tipo) permitiendo, gracias a la
ingeniería de software, rapidez en la ejecución de los procesos, confiabilidad al momento
de realizar una tarea específica, seguridad en el manejo de la información, automatización
de los procesos, etc.
3)-La Ingeniería de Software es una disciplina o área dentro de la informática que establece
el proceso, el conjunto de métodos (practicas) y un arreglo de herramientas, para guiar a
los profesionales en la elaboración software de cómputo de alta calidad.
4)-El software se desarrolla o modifica con intelecto, que es la capacidad que tiene el ser
humano de comprender, analizar y entender el mundo que le rodea; no se manufactura en
el sentido clásico, es decir, no se fabrica con las manos o con ayuda de máquinas como el
hardware.
El software no se desgasta, pero si se deteriora. Si bien, a diferencia del hardware, que
presenta una tasa de fallas relativamente elevada en una etapa temprana de su vida (por
defectos en el diseño o manufactura), que luego de corregirlos, la tasa de fallas se abate a
un nivel estable, pero al pasar el tiempo se presentan los problemas ambientales que hacen
que los componentes físicos, se desgasten. Los programas no son susceptible a los
problemas ambientales (que hacen que el hardware se desgaste) al inicio de sus vidas
normalmente no presentan fallas, pero si aparecieran defectos ocultos, ocasionarán tasas
elevadas de fallas, pero que al corregirlos, dicha tasa baja. A medida que pasa el tiempo
van a ser necesarios los cambios en los software y cuando estos se realicen, es probable
que se introduzcan errores que ocasionen que la tasa de fallas tenga aumentos súbitos, y
4. INGENIERIA DE SOFTWARE 3
antes de que la misma vuelva a estabilizarse, surge la solicitud de otro cambio que hace
que la tasa aumente nuevamente. Poco a poco, el nivel mínimo de la tasa de fallas
comienza a aumentar: el software se está deteriorando como consecuencia del cambio.
Otra diferencia entre el hardware y software, es que el primero al desgastarse es sustituido
por una refacción. En cambio, no hay refacciones para el software. Cada falla de éste indica
un error en el diseño o en el proceso que tradujo el diseño a código ejecutable por la
máquina. Entonces, las tareas de mantenimiento del software, que incluyen la satisfacción
de peticiones de cambios, involucran una complejidad considerablemente mayor que el
mantenimiento del hardware.
5)-El Software determinista es aquel del cual es posible predecir el orden y momento de
las entradas, el procesamiento y las salidas.
6)- El producto final del trabajo de un ingeniero de software son los programas, documentos
y datos que se producen como consecuencia de las actividades y tareas definidas por el
proceso.
7)-Los problemas que ocasionan los software heredados son que, al ser programas viejos
(fueron desarrollados hace varias décadas) deben ser modificados de manera continua
para que satisfagan los cambios en los requerimientos de los negocios y plataformas de
computación. Lo que a las organizaciones grandes, les resulta muy costoso mantenerlos y
riesgoso hacerlos evolucionar. Otro de los problemas que presentan dichos software es
que algunos suelen ser de mala calidad, es decir, tienen diseños que no son susceptibles
de extenderse, código confuso, documentación mala o inexistente, casos y resultados de
pruebas que nunca se archivaron, una historia de los cambios mal administrada, etc.
8)-El fundamento más importante en que se apoya la ingeniería de software es el
compromiso con la calidad.
La calidad en ingeniería del software es el cumplimiento de los requerimientos
contractuales por parte del producto software desarrollado, así como durante el proceso de
desarrollo. La calidad se obtiene mejorando día a día el proceso de producción,
mantenimiento y gestión del software.
9)- Los pasos de la esencia de la práctica en la ingeniería de software son:
1- Entender el problema (comunicación y análisis): para lograrlo debemos realizarnos
algunas preguntas, como las siguientes.* ¿Quiénes tienen que ver con la solución del
Problema? Es decir ¿Quiénes son los participantes? *¿Cuáles son las incógnitas? ¿Cuáles
5. INGENIERIA DE SOFTWARE 4
datos, funciones y características se requieren para resolver el problema en forma
apropiada? *¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas
más pequeños que sean más fáciles de entender? *¿Es posible representar gráficamente
el problema? ¿Puede crearse un modelo de análisis?
2-Planear la solución (modelado y diseño del software): antes de escribir el código, se debe
hacer un pequeño diseño de la solución. Teniendo en cuenta las siguientes preguntas.
*¿Ha visto antes problemas similares? ¿Hay patrones reconocibles en una solución
potencial? ¿Hay algún software existente que implemente los datos, funciones y
características que se requieren? * ¿Ha resuelto un problema similar? Si es así, ¿son
reutilizables los elementos de la solución? * ¿Pueden definirse problemas más pequeños?
Si así fuera, ¿hay soluciones evidentes para éstos?*¿Es capaz de representar una solución
en una forma que lleve a su implementación eficaz? ¿Es posible crear un modelo del
diseño?
3-Ejecutar el plan (generación del código): al intentar realizar el plan diseñado, puede haber
desviaciones inesperadas y es posible que se descubra un camino mejor a medida que se
avanza, pero el plan permitirá avanzar sin que se pierda. Considerando siempre las
siguientes incógnitas. *¿Se ajusta la solución al plan? ¿El código fuente puede apegarse
al modelo del diseño? *¿Es probable que cada parte componente de la solución sea
correcta? ¿El diseño y código se han revisado o, mejor aún, se han hecho pruebas respecto
de la corrección del algoritmo?
4-Examinar la exactitud del resultado (se debe probar el producto, para intentar asegurar
la calidad): si bien no se puede estar seguro de que la solución sea perfecta, pero sí de
que se ha diseñado un número suficiente de pruebas para descubrir tantos errores como
sea posible. Teniendo en cuenta las siguientes preguntas. * ¿Puede probarse cada parte
componente de la solución? ¿Se ha implementado una estrategia razonable para hacer
pruebas? *¿La solución produce resultados que se apegan a los datos, funciones y
características que se requieren? ¿El software se ha validado contra todos los
requerimientos de los participantes?
10)- Si, hay mitos sobre el software, y ellos son:
Mitos de la administración. Los gerentes que tienen responsabilidades en el software, con
frecuencia se hallan bajo presión para cumplir el presupuesto, mantener la programación
de actividades sin desvíos y mejorar la calidad.
6. INGENIERIA DE SOFTWARE 5
*El mito: existe un libro lleno de estándares y procedimientos para elaborar software. La
realidad: es que quizás exista el libro de estándares, pero habría que preguntarse si
actualmente se utiliza o si saben de su existencia los trabajadores del software. Si será que
el mismo refleja la práctica moderna de la ingeniería de software y si fuera así, si es
completo, adaptable y si está dirigido a mejorar la entrega a tiempo y también se centra en
la calidad. En muchos casos, la respuesta a todas estas preguntas es “no”.
*El mito: si se atrasan en el desarrollo del software, se puede agregar más programadores
y ponerlos al corriente (en ocasiones, a esto se le llama “concepto de la horda de
mongoles”). La realidad: es que en el desarrollo del software a medida que se agregan
personas, las que ya se encontraban trabajando deben dedicar tiempo para enseñar a los
recién llegados, lo que disminuye la cantidad de tiempo dedicada al esfuerzo de desarrollo
productivo. Pueden agregarse individuos, pero sólo en forma planeada y bien coordinada.
*El mito: si se decide subcontratar el proyecto de software a un tercero, se puede descansar
y dejar que esa compañía lo elabore. La realidad: es que si una organización no comprende
cómo administrar y controlar proyectos de software internamente, de manera invariable
tendrá dificultades cuando subcontrate proyectos de software.
-Mitos del cliente. El cliente que requiere software de computadora puede ser la persona
en el escritorio de al lado, un grupo técnico en el piso inferior, el departamento de
mercadotecnia y ventas, o una compañía externa que solicita software mediante un
contrato. En muchos casos, el cliente sostiene mitos sobre el software porque los gerentes
y profesionales de éste hacen poco para corregir la mala información. Los mitos generan
falsas expectativas (por parte del cliente) y, en última instancia, la insatisfacción con el
desarrollador.
*El mito: es que para comenzar a escribir programas, es suficiente el enunciado general de
los objetivos, que se puede entrar en detalles más adelante. La realidad: aunque no
siempre es posible tener el enunciado exhaustivo y estable de los requerimientos, un
“planteamiento de objetivos” ambiguo es una receta para el desastre. Los requerimientos
que no son ambiguos (que por lo general se obtienen en forma iterativa) se desarrollan
sólo por medio de una comunicación eficaz y continua entre el cliente y el desarrollador.
7. INGENIERIA DE SOFTWARE 6
*El mito: los requerimientos del software cambian continuamente, pero el cambio se asimila
con facilidad debido a que el software es flexible. La realidad: es que si bien es verdad que
los requerimientos del software cambian, pero el efecto que los cambios tienen varía según
la época en la que se introducen. Cuando se solicitan al principio cambios en los
requerimientos (antes de que haya comenzado el diseño o la elaboración de código), el
efecto sobre el costo es relativamente pequeño. Sin embargo, conforme pasa el tiempo, el
costo aumenta con rapidez: los recursos ya se han comprometido, se ha establecido la
estructura del diseño y el cambio ocasiona perturbaciones que exigen recursos adicionales
y modificaciones importantes del diseño.
-Mitos del profesional. Los mitos que aún sostienen los trabajadores del software han sido
alimentados por más de 50 años de cultura de programación. Durante los primeros días, la
programación se veía como una forma del arte. Es difícil que mueran los hábitos y actitudes
arraigados.
*El mito: que los desarrolladores creen que una vez que se escribe un programa y se hace
que funcione, su trabajo ha terminado. La realidad: los datos de la industria indican que
entre 60 y 80% de todo el esfuerzo dedicado al software ocurrirá después de entregarlo al
cliente por primera vez.
*El mito: hasta que no se haga “correr” el programa, no hay manera de evaluar su calidad.
La realidad: las revisiones del software son un “filtro de la calidad” que se ha revelado más
eficaz que las pruebas para encontrar ciertas clases de defectos de software.
*El mito: el único producto del trabajo que se entrega en un proyecto exitoso es el programa
que funciona. La realidad: un programa que funciona sólo es una parte de una
configuración de software que incluye muchos elementos. Son varios los productos
terminados (modelos, documentos, planes) que proporcionan la base de la ingeniería
exitosa y, lo más importante, que guían el apoyo para el software.
*El mito: la ingeniería de software hará que generemos documentación voluminosa e
innecesaria, e invariablemente nos retrasará. La realidad: la ingeniería de software no
consiste en producir documentos, si no que se trata de crear un producto de calidad. La
mejor calidad conduce a menos repeticiones, lo que da como resultado tiempos de entrega
más cortos.
8. INGENIERIA DE SOFTWARE 7
REFERENCIAS BIBLIOGRAFICAS
-Pressman R. (2010),”Ingeniería del Software. Un Enfoque Práctico”. México. Mc Graw Hill.