2.2 [2do. Periodo] Foro #7 Martes, Sep 23 2008 

Perfil de un Ingeniero de Software.

El ingeniero de software debe ser alguien lo suficientemente preparado para enfrentarse al mundo laboral actual. Para ello este debe llenar una serie de requerimientos que le califiquen como un ingeniero competente y calificado.

La palabra ingeniero viene del latín ingenium formando de in (en) y genium (de la misma raíz que gene), o sea engendrar (hacer gente). Etimológicamente se le puede dar el significado de engendrar algo que no sea necesariamente personas, este habla del ingenio y el uso de este para concebir ideas y soluciones a las problemáticas. Es por ello que el ingeniero es alguien que resuelve problemas y busca salidas viables.

El ingeniero ante todo, debe conocer métodos, teorías y prácticas que el mundo le da para cumplir con su trabajo, el conocer estándares es necesario para poder rendir en cualquier parte del mundo.

Una de las características que el ingeniero debe tener, es ser capaz de trabajar en equipo pero sin olvidar el liderazgo que es propio en el. Debe ser alguien con capacidad suficiente para negociar con los clientes, pues en muchas ocasiones se dan los casos del cliente prepotente que ‘lo sabe todo’, es una cualidad del ingeniero saber tratar con estas personas, y saber negociar inteligentemente. El coraje y la integridad son esenciales para un ingeniero de éxito, la sed de conocimientos es un atributo que deben poseer los individuos que esperan tener éxito en la vida profesional, más en este campo que día a día es tan demandado.

En resumen, las cinco cualidades principales del ingeniero son:

• Dominio para la ciencia aplicada.
• Habilidad para la economía.
• Poder de visualizar ideas.
• Integrar y participar en equipos de trabajo.
• Poder de expresar las ideas.

3.3 Enlaces de Interes Sábado, Ago 23 2008 

Esta fuente ha sido tomada desde el tema de los Sistemas de Informacion

http://www.monografias.com/trabajos7/sisinf/sisinf.shtml#intro

2.2 [2do. Periodo] Foro #6 Lunes, Ago 18 2008 

Gestion de proyectos de software.

El emprenderse en un proyecto de software no se limita a tener la voluntad de hacerlo, llevar un proyecto desde cero hasta un software que cumpla todos y cada uno de los requerimientos del cliente no es tarea fácil, si no se sabe usar las herramientas adecuadas y el proceso adecuado.

Es por ello que existe el gestionamiento de proyectos de software. El gestionar proyectos de software nos dan ciertas pautas que debemos considerar al hacer nuestro software. Primeramente debemos hacer tres preguntas claves que definirán el desarrollo del software:

¿Cuánto tiempo llevara hacer el proyecto? : Con esta pregunta debemos darnos una idea del tiempo estimado en desarrollar el proyecto, el tener una fecha limite ayuda a tener debidamente controlado el desarrollo y no dejarlo en momentos de aislamiento.

¿Cuántas personas trabajaran en el proyecto? : El saber cuantas personas trabajan en el proyecto y limitarlo a una fecha determina el esfuerzo que se hace en cuanto a las tareas que hay que cumplir a medida que se da el desarrollo del software.

¿Cuánto será el coste monetario? : Conocer y tener un presupuesto definido ayuda a controlar las decisiones que se harán dentro del proyecto.

El tener contemplado una fecha límite, un presupuesto y controlar quienes y cuantas personas trabajaran en el proyecto es una excelente manera de llevar controlado el desarrollo del proyecto y asegura la satisfacción del cliente al presentarle el proyecto en tiempo calendarizado y sin mucho coste innecesario.

El gestionar proyectos presume conocer las anteriores pautas para poder tenerlas en cuenta al momento de aplicarlas según los pasos que se vayan dando, estos pasos son los siguientes:

• Planificación (aclaraciones)
o Resultados deseados del proyecto
o Entidades financieras: ¿a qué entidades afectará el proyecto, cuáles son necesarias para su financiación y cuáles podrían estar interesadas en los resultados del mismo?
o Actividades que deben llevarse a cabo para completar el proyecto.
o Fechas de inicio y fin de cada actividad del proyecto.
o Presupuestos para todos los recursos necesarios del proyecto (aquí se incluyen otros recursos a parte del dinero).
o Riesgos importantes del proyecto y medidas que se tomarán para evitarlos.
Organización (precisar las funciones y responsabilidades del personal del proyecto)
• Control del rendimiento de trabajo (aquí se incluye):

o Organizar al personal del proyecto, dirigir su enfoque de trabajo y motivarlo constantemente.
o Seguir detenidamente el proyecto y comparar el trabajo realizado y los resultados con lo que se especificó en la planificación.
o Cuando el seguimiento de un proyecto sugiera que es necesario hacer algún cambio en su planificación, hay que plantearlo y modificarlo.
o Mantener a todos informados sobre los logros, cuestiones y cambios del proyecto.
o Vigilar de cerca el proyecto constantemente y ocuparse de los riesgos que vayan surgiendo.

2.2 [2do. Periodo] Foro #5 Lunes, Ago 18 2008 

Características de un buen diseño de software

El diseño del software debe, en primera instancia, estar correctamente definido, y las bases de esto se encuentran en la correcta identificación de requerimientos. Un diseño sin la validez necesaria de los requerimientos que debe seguir es un completo fracaso y por ello todo el desarrollo del software puede irse por la borda. Así que primeramente, el asegurarnos que el diseño que se crea este bien infundado seria de las primeras cosas que debemos hacer.

Para darle seguimiento, se debe conocer todas y cada uno de los componentes a tomar en consideración al momento de diseñar el software, de lo contrario este no sabría como interactuaría nuestro software con el cliente. Así pues, al momento de definir un diseño hay que tomar en cuenta el ámbito en el cual se desarrollara, que tiene por objetivos y con quienes y como se relacionara con ellos, de lo contrario el diseño seria pobre y limitado.

Como cualquier proceso, la etapa de diseño del sistema consta de cuatro pasos, cada uno de ellos abarcan áreas del diseño que no deben dejarse a un lado pues cada una en su contexto presentan una relación importante en conjunto.

1. El Diseño de los datos.
2. El Diseño Arquitectónico.
3. El Diseño de la Interfaz.
4. El Diseño de procedimientos

Así mismo, el funcionamiento y eficiencia de nuestro software esta ciertamente relacionado con un buen diseño que sea tanto interior (nivel de datos, etc.) como exterior (nivel de interfaz) es por ello que no hay que menospreciar ningún paso ni mucho menos omitirlo, y una vez realizado un buen diseño este debe cumplir ciertas características que le darán la validez necesaria para ser expuesta al cliente.

Un buen diseño de software debe de ser:
• Ser de fácil soporte.
• Adaptabilidad
• Eficiente
• Integro
• Flexible
• Fácil de usar

2.4 Estudio de casos #2 Lunes, Ago 18 2008 

1. ¿Cómo se puede potencializar la productividad en el desarrollo de proyectos de software?

Primeramente puede hacerse ejerciendo una buena organización, seriedad y responsabilidad por cada uno de los integrantes del proyecto y un uso determinado de métricas para medir el desempeño funcional, operacional, de tiempo, y de personal de esta manera se puede sacar a relucir la calidad de un trabajo en términos cuantificables, así se puede evaluar, plantear salidas alternas que mejoren la calidad de la producción haciendo énfasis en aquellas áreas donde se muestra un nivel deficiente o de poco desempeño.

Para poder llevar en un lineamiento el desarrollo del proyecto, no se debe perder de vista la comprensión de recursos y el entendimiento de todo el proyecto en si, abarcando procesos y otros factores implicados, el entender el proyecto no solo conlleva al manejo adecuado de información sino también nos ayuda a identificar factores que están de mas en el proyecto a medida que este se desarrolla o aquellos que faltan o que se desvían del proyecto en si.

Si lo analizamos de esta manera el comprender el proyecto conlleva a una serie de conclusiones, el comprender nos lleva a entender y a alinear el proyecto, el entenderlo nos lleva a mejorar aquellas áreas que necesitan ser mejoradas bajo el contexto de las fechas establecidas y el coste monetario que se gestiono anteriormente.

De esta manera potencializar la productividad se basa en la comprensión del proyecto y asegurar elementos que cada rama del desarrollo necesita para trabajar de forma eficiente, el llevar el control de cada área por medio de métricas y sistemas de mediciones son buenas opciones para optimizar y asegurar la calidad y eficiencia de un proyecto de software al llevarlo a la máxima capacidad de funcionalidad que cumpla con los requisitos del cliente.

2. Describir ¿Cuál es la importancia del uso de métricas para una eficiente y eficaz gestión de proyecto de software?

El gestionar proyectos de software no se resume a identificar cada elemento al momento de evaluar el coste monetario, operacional o de tiempo, se trata de manejarlo en el amplio sentido de la palabra, conocerlo y mejorarlo, para ellos existen las métricas.

Con el uso de métricas se puede plantear un problema o proyecto a base de ciertos factores de incidencia en los proyectos y de los cuales se obtengan ciertos resultados que puedan ser medibles y por lo tanto cuantificables.

Factores como el tamaño, el esfuerzo es decir las horas laboradas para terminar una tarea, la duración del proyecto, el personal involucrado, los defectos en la calidad del producto que se dirige al cliente, el cambio y los recursos de computación así como los gastos, el progreso del proyecto, trabajo completado y asuntos pendientes, son 11 de las métricas primitivas que poseen alto valor al ser modelos de medición de nuestro proyecto y que nos dan una amplia vista de cómo se mueve y avanza, estos nos puntualizan aquellas áreas que deben ser comprometidas a cambios y actualizaciones así como a mejoras.

Las métricas deben de ser utilizadas considerando en el entono en el cual se compararan, ya que un determinado ambiente en relación con otro puede tener resultados diferentes al momento de verificar el resultado de las métricas.

Recordemos que limitarnos a utilizar una sola métrica puede dejar marginadas y deficientes otras áreas que no se puedan medir con una sola, el utilizarlas todas y cada una de ellas no se discute sin embargo seria mas apropiado utilizar solo aquellas que creamos convenientes y con las cuales se nos de una idea de cómo funciona y va nuestro proyecto, de esta manera sabremos como funciona globalmente nuestro proyecto y como inciden en las áreas que están necesitadas.

3. ¿Qué impacto tiene el uso de normas y estándares en el proceso de medición de proyectos de TI (y específicamente en proyectos de desarrollo de software)?

El uso de normas y estándares nos dan en primera instancia un lineamiento que ha sido evaluado por muchas otros proyectos de TI, y que han resultado útiles, recordemos que una norma o un estándar debe ser definido y debe poder aplicarse a muchas situaciones, de esta manera estándares como CMM o las normas ISO, nos dan una visión de nuestro proyecto de software en términos de calidad y eficiencia sin importar el contexto del proyecto o quienes trabajan en el.

Las normas y estándares validados a nivel internacional nos proporcionan una vista de cómo el desempeño de un proyecto de software debe ser evaluado y las debidas correcciones que estos deben tener para ser validados por el cliente inclusive si este conociera o no dichas normas y estándares, y a nivel internacional, pero la calidad y eficiencia a la que se llego tras la corrección, organización y responsabilidad junto con el llenar las expectativas del cliente son las principales validaciones que nos llenaría de la satisfacción de un buen trabajo bien hecho.

Los beneficios organizacionales que pueden ganarse por la adopción de un proceso de medición son:
• Incremento en la Satisfacción de los Clientes por alcanzar o exceder sus expectativas
• Disminución de los Riesgos por tener estimados basados en datos históricos
• Establecimiento de metas de productividad y calidad basado en datos cuantitativos
• Incremento del control de los Proyectos por efectos de la visualización de sus procesos
• Retención de Empleados e incremento de la satisfacción en el trabajo a través de estimados realistas de esfuerzo y tiempo en los proyectos.
• Obtención de información valiosa para análisis comparativo con Competidores (Benchmarking)

Recordemos que para medir y obtener resultados favorables, hay que saber que hay que medir, comprender y mejorar una vez que haya sido medido.

El utilizar métricas dentro del proceso de medición nos proporciona información cuantificable en cuanto al rendimiento del proceso, el definir las metas y responder las preguntas para determinar si estas son alcanzadas son fácilmente respondidas de manera apropiada por el uso de las métricas y sistemas de medición. De esta manera nuestro proyecto de software no solo puede ser evaluado a nivel de estándares que nos dan un nivel de calidad y eficiencia que de aquí a cualquier parte del mundo nos daría validez sino también aseguraríamos el proyecto en el cual estamos trabajando, dejando satisfecho a nuestro cliente al igualar o superar sus expectativas.

4. ¿Es posible aplicar normas y estándares durante el proceso de desarrollo de software en el contexto salvadoreño? ¿Cómo implementar una versión tropicalizada de los diferentes Procesos de medición de proyectos de TI en nuestro país, sin perder la calidad del producto final?

Si es posible, ya que pese a que los proyectos del país son en ocasiones a menor escala que algunos que se hacen a la medida de grandes clientes y organizaciones, estas normas y estándares como lo dicen sus nombres, son un modelo que no sufre cambios en los ámbitos que se aplique y que solo conllevan a diferentes respuestas según estos ámbitos.

La realidad salvadoreña no es diferente al momento en que se aplique estas normas, un desarrollador de software sabe como aplicarlas siempre y cuando comprenda el funcionamiento y el proceso contextual en el cual su proyecto se tome acabo.

El implementar métricas, y sistemas de medición conocidos internacionalmente en una versión salvadoreña puede ser un poco difícil debido a que el contexto internacional difiere del nuestro, aun así aplicar aquellas métricas que deban ser aplicadas y tengan un resultado significativo y que no salga del contexto salvadoreño si es posible siempre y cuando quien controle y administre el uso de estos tenga el conocimiento adecuado del proyecto y comprenda el producto final que se requiere.

El uso de mediciones estándar como el PMBOK, es otra opción viable que puede ser aplicada siempre y cuando se limite a la realidad salvadoreña ¿Cómo hacerlo?, pues con el debido control y administración de información del proyecto y la aplicación de la medición en si.


5. Establezca un plan de acción, conforme la realidad salvadoreña, para medir y mejorar la calidad del proceso de desarrollo de proyecto de software (definir un proceso capaz de entregar los productos a tiempo, gestionando su comportamiento a través de las fases del proyecto y teniendo en cuenta la percepción de la calidad del cliente).

Una sociedad salvadoreña donde se organice y se trabaje en equipo para un fin común no solo conllevara a mejores aspectos sociales sino también a un beneficio comunal.

El desarrollo de software en nuestra actualidad es tomada como algo que pese a ser importante y a ser un camino futuro donde abra nuevas puertas a nuevos horizontes laborales, no se le da el trato que merece, para comenzar el trabajo en equipo no esta fuertemente infundado en los nuevos egresados que año con año dejan las universidades. Es necesario crear una cultura de beneficios comunales, donde se ejerza la participación comunitaria y el trabajo en equipo, sin perder el liderazgo que es una de las cualidades de los ingenieros de software.

Una vez recalcada la interacción entre ingenieros, se debe dar paso al uso de normas y estándares que ayuden al desarrollo del software, en muchas ocasiones el salvadoreño se limita a pensar que el desarrollar software es un pasatiempo o simplemente una forma de ganar plata, cuando en realidad es una actividad para colocar todos los recursos disponibles, tanto personales como institucionales y normativos para llegar a un fin. Este fin, persigue la competencia entre ingenieros donde no se olvide el trabajo en equipo, la aceptación del cliente y llenar sus expectativas y crear un software que califique tanto en El Salvador como en el resto del mundo.

Gestionar un proyecto y aplicar normas junto con un conjunto de métricas son elementos que ayudaran no solo a que el desarrollo de software sea más robusto y tenga fuertes bases, pero esto solo se consigue con la debida organización y responsabilidad de quien maneja el proyecto. El ingeniero consta con bastos recursos como las normas ISO, estándares como CMM, entre otros así como estándar en el proceso de medición como lo define PMBOK.

Es por ello que el principal objetivo de ejercer un plan de acción para mejorar y medir la realidad tiene como eje central el mismo ingeniero que debe ser educado con fuertes bases y principios que a la larga cuando llegue a desenvolverse como desarrollador de software, pueda competir con otros, y trabajar en equipo utilizando métodos, técnicas y teorías que el mundo internacional y nacional le ofrezca.

6. Definir las conclusiones del grupo, basados en el análisis del artículo propuesto.

El gestionar proyectos de software no es un proceso simple que puede hacerse de la noche a la mañana, es necesario tomar la seriedad y responsabilidad necesaria para saber comprender los elementos y las implicaciones que comprenden el emprenderse en un proyecto. De esta manera, emprenderse en un proyecto necesita varios recursos para poder completarlo eficientemente y que este sea de calidad, con el uso apropiado de herramientas de medición, de control y manejo de información se puede minimizar los costos y defectos que se puedan producir en el desarrollo del proyecto, asegurando de esta manera que el resultado sea un producto aprobado por estándares y normas y por el mismo cliente.

Para comprender el proyecto y poder mejorar aquellos lugares en donde se encuentra deficiencia en la calidad y eficiencia, se puede optar por el uso de métricas y sistemas de medición. Para ello, es primordial entender aquello que se evaluara, por que se evaluara y que resultados se obtendrá al evaluarse, aquello lo cual debe de medirse debemos considerarlo como lo más sustancial del proyecto, el evaluar algo que no tiene cabida no solo conlleva al fracaso del proceso de medición sino también a datos erróneos y que pueda acabar en deficiencia y costes de recursos innecesarios.

Con métricas que lleven un control desde el personal, esfuerzo, tiempo, tamaño etc. Podemos darnos una idea de la calidad y eficiencia de nuestro proyecto, cada métrica puede ser aplicada por separado pero ocurre que el utilizar solo algunas de estas no conlleva a la información completa y necesaria de todo el proyecto en si, si no se sabe establecer aquellas que son mas importantes medir en la empresa, es decir digamos que queremos medir el esfuerzo pero dejamos de lado la cantidad de personal y el tiempo estimado en efectuar un proceso. Es por ello que el control de métricas y mediciones debe ser hecho por alguien con la capacidad de conocimiento de este tema.

Recordemos también que no solo se basa en métricas el conocer el rendimiento del proyecto, tener un control de este y saberlo manejar es ante todo la base de cómo sabernos mover en el proyecto y que cuerdas halar y modificar si queremos que este sea de calidad y sea eficiente según las normas y estándares lo indican. Como todos sabemos herramientas como las normas ISO, CMM, o El PMBOK son importantes al momento de saber corregir y mejorar un sistema de información.

El PMBOK es un estándar reconocido internacionalmente, que provee los fundamentos de la gestión de proyectos que son aplicables a un amplio rango de proyectos, incluyendo construcción, software, ingeniería, etc. Las métricas tienen cierta relación conforme las aplicaciones del PMBOK se den en la gestión de proyectos, mas que todo en las áreas de alcance, tiempo, costo y calidad.

El PMBOK supone ante todo controlar debidamente cada fase de aplicación para llevar un registro de calidad y eficiencia del proyecto, ejerciendo cambios y modificaciones según se conlleve la aplicación de cada fase.

2.2 [1er Periodo]Foro #4 Lunes, Ago 18 2008 

¿Cuál es el impacto de la Ingeniería de Requerimientos en el desarrollo de software?

El hecho que la fase de requerimientos tenga su propia ‘ingeniería’ solo nos dice lo muy importante que es esta fase, pues en ella se define lo que en realidad modelara nuestro software para llevarlo a cumplir con lo que nuestro cliente nos ha pedido. El llevar esta fase es un tanto dificultosa pues hay muchos obstáculos en el camino, que van desde el modelado incompleto, el reconocer requerimientos absurdos y sin sentido alguno en la cabida de nuestro proyecto, o en la incomprensión de lo que el cliente en verdad quiere.

Cualquiera de las opciones anteriores, terminaría en un rotundo fracaso, pues en primer lugar las expectativas de nuestro cliente se verían aplastadas, en segundo lugar el ingeniero quedaría como incompetente y en tercer lugar con gran cantidad de requerimientos incompletos o erróneos, la cantidad de recursos utilizados para llegar a completarlos seria un desperdigo presupuestal que acabaría en disconformidad tanto del ingeniero como del mismo cliente.

El reconocer los debidos requerimientos e identificar otros que no nos ha dicho el cliente pero que gracias al proceso de reconocimiento han salido a flote y resultan muy útiles en el desarrollo de software, es importante para asegurar el buen desarrollo del software así como llenar o superar las expectativas del cliente.

Para poder reconocer aquellos requerimientos validos, es necesario y fundamental establecer charlas con el cliente, que si bien este no sabe lo que quiere o no tiene idea alguna de lo que son los requerimientos, el ingeniero debe saber que información recaudar y como recaudarla para tener un amplio campo de información que le ayude a reconocer lo que la empresa necesita y como lo necesita. No es necesario que el cliente sepa de requerimientos así como el ingeniero sepa por completo el funcionamiento del lugar, basta con establecer charlas de acá y por allá, consiguiendo suficiente información de cómo se mueve la empresa y ver aquellos baches que pueden ser alcanzados a cubrirse con el desarrollo del software.

Es por ello que la fase de requerimientos es extremadamente importante por no decir que es la base fundamental del funcionamiento de nuestro software, pues con la identificación de estas, se puede responder preguntas de ¿Para que es el software?, ¿Qué procesos hará el software?, ¿Qué podemos esperar del software?.

1.1 Carta de presentacion Lunes, Ago 18 2008 

Tengan todos una cordial bienvenida al blog de Vilma y Martha, donde como bien sabran se expondra los temas, foros, tareas y demas de la materia Ingenieria de Software que es impartida por nuestro docente el Ing. Milton Narvaez. Esperamos sea de su agrado y puedan dejar comentarios para poder ampliar el conocimiento y motivar la participacion entre nosotros.

2.4 Estudio de casos #1 Lunes, Jul 21 2008 

1. ¿Es este articulo una evidencia de que se esta ante una crisis de software?

Si, ya que la imprecisión con la que fue construido el software fue la principal causa del desastre, recordemos que para construir un software, especialmente aquellos de los cuales depende no solo un sistema empresarial sino incluso vidas humanas como es el caso, necesitan análisis y un desarrollo exacto para que este no sufra este tipo de crisis. La baja calidad del software en función de los resultados denota que no se hizo un análisis correcto y una pequeña investigación en código, recordemos, un código puede ser parecido a otro pero nunca igual pues el resultado además de plagio, seria catastrófico como este caso. Así mismo el mantenimiento que tuvo que habérsele dado al software tuvo que haber adaptado el software conforme a las necesidades de la empresa y con ello detectar el problema (la manera en que pudieron hacerlo, bien podría hacerse usando benchmark, reconociendo a sus adversarios e identificar el problema para hacer las correcciones necesarias.)

2. ¿De que modo la aviación esta en mejores condiciones debido a la ingeniería de software?

Controlar un objeto de gran tamaño como lo seria un avión sin poder implementar sistemas de vuelo controlados y que dirijan una dirección segura seria imposible sin el software o bien acabaría en catástrofe. Un vuelo siempre necesita coordenadas y un área segura por donde transitar, sin el software y el sistema para el cual se trazan caminos seria como ir a ciegas, mas aun recordemos que existe una gran cantidad de aerolíneas las cuales igualmente transitan sobre nosotros, gracias al software se pueden buscar caminos seguros que no choquen con el camino trazado de otra aerolíneas y así evitar catástrofes. Los códigos implementados también forman parte de la mejora que el software ha hecho a la aviación, diferente del caso que se leyó, utilizar una base de datos consistente y con códigos únicos asegura la comunicación correcta y coordenadas seguras.

3. ¿Qué aspectos deben tenerse en cuanta durante el desarrollo de software para que en el futuro, se prevengan aspectos como este?

Primeramente construir el software a base de un código diferente y único de cualquier otro sistema que con el que pueda presentar choques e insistencias de código, talvez este seria el punto mas importante.

4. Dar un ejemplo de análisis de problema donde los componentes sean relativamente simples, pero la dificultad para la resolución del problema resida en la interacción entre los subproblemas que lo componen.

Un ejemplo seria cuando se quiere hacer un software que contenga el inventario de una tienda pequeña, y que necesita actualizarse cada cierto tiempo, pero que los productos y proveedores no puedan tener un id de mas de 3 cifras, dificultando la actualización de estos y el código de identificación para los nuevos proveedores, la combinación de estos al ingresar n proveedores que termine por acabar los id y obtengamos como resultado el choque de muchos proveedores.
5. Explicar la diferencia entre error, defecto y falla.

Un error es la inexactitud o equivocación al hacer alguna cosa, pensar, hacer una actividad, etc.

Un defecto el no cumplimiento de un requisito o de una expectativa razonable, ligada a un uso previsto, incluyendo los relativos a la seguridad

Y una falla es cuando algo es incapaz de funcionar correctamente. Que no sigue su curso normal

Dar un ejemplo que desemboque en un defecto en los requerimientos, en el diseño, en el código

Un análisis pobre al momento de la construcción de software, no tomar en cuenta todos los factores necesarios al momento de la fase de requerimientos, o bien tomar aquellos que no deberían ser tomados en cuenta, aislando los lo que el sistema necesita es decir un requerimiento mal definido.

Un ejemplo es un software que necesite de seguridad para poder accesar a el, y que no se hayan tomado en cuenta la diversidad de caracteres a utilizar dejando solo números y olvidando que este tiene que ser original y único, haciendo que así importantes. O al momento de comenzar con el análisis tener una concepción errada de muchos puedan acceder con diferente contraseña pero igual usuario.

Dar un ejemplo de:

1- Un defecto en los requerimientos que origine una falla

-En un banco se necesita que se trabaje con gran cantidad de cuentas bancarias, la mala asignación de estas en la base de datos al momento de buscar una conllevaría a que muchas cuentas choquen y así no se podría dar al cliente su dinero o hacer su transacción.

2-Un defecto en el diseño que origine una falla

-Un análisis hecho correctamente y que su implementación en el diseño nos de una falla seria cuando no se toma los elementos necesarios al momento que se diseñe que se no acepten caracteres como * – / ñ, y que sean necesarios en el ingreso de los datos.

3-Un defecto en los datos de prueba que origine una falla

-por ejemplo cuando se toma una cantidad de código para validar las identificaciones que se ingresan en un software para proveedores, y que este no consiga trabajar debidamente al no haberse tomado en cuenta que cada código debe ser único.

6. Muchas organizaciones compran software comercial, pensando que es mas barato que desarrollar y mantener que el software propio. Describe los pros y contras de la utilización de paquetes comerciales.

Pros:

-El factor económico seria el primero, recordemos que el recurrir a un gasto para poder desarrollar un propio software es algo que no todas las empresas pueden darse el lujo de tener.

-Si un producto es producido en masas, y son efectivamente comercializados en grandes cantidades, podemos decir que el software es de calidad, ya que muchos tenemos ese concepto de que si es hecho por una gran empresa que genera sus ganancias a partir de este, es por que en realidad son conocedores de su rama.

-El soporte técnico seria de primera mano, muchos software que son producidos en masa, siempre tienen una cantidad de personal disponible ante las dificultades que pueda presentársele a sus clientes, ejemplo de esto son los números de teléfono que con solo marcarlo podemos obtener acceso al técnico.

-Normalmente, un software de distribución comercial contiene licencia y privacidad obteniendo como resultado la seguridad de que este no pueda ser utilizado por otra persona a menos que se le autorice, por ejemplo las licencias que solo el mismo propietario puede utilizar al momento de instalar su software, cada uno es único y así se combate la piratería.

-El software comercial históricamente ha sido más seguro que el software libre

Contras:

- El soporte a este software seria únicamente dado por quienes lo construyeron y las personas capacitadas por estos, limitando la cantidad de recursos que puedan ayudarnos a solucionar el problema con mayor rapidez.

-El código de este no seria accesible para modificarlo y adaptarlo a las necesidades de la empresa.

-No cualquiera podría tener el software ya que de hecho hay que pagar un poco más por la licencia de este.

-El desarrollo, programación y actualización de este software solo lo hace la empresa que tiene los derechos. Como sucede con los productos Microsoft (Windows, Office, etc). Estos ocasionan retrasos tecnológicos y poca creatividad en los productos

- Muchas veces con estrategias comerciales se suele hacer que los usuarios actualicen su software comercial, sin que exista una necesidad verdadera de ello, consiguiendo de esta forma hacer que el usuario invierta en nuevas licencias, la mayoría de las veces innecesarias.

3.1 Tema: Reingenieria [Principios de la reingenieria] Lunes, Jul 21 2008 

Principios de la reingenieria.

La vez anterior hablábamos de lo que consistía –superficialmente y por introducción- la reingeniería, recordemos que no basta con que un software sea finalizado para medir desde la calidad de este su perfecta funcionalidad. Un software necesita varios elementos para poder ser llamado ‘de calidad’, la adaptación del software y la funcionalidad de este con respecto a lo que el entorno necesita son elementos primordiales a evaluar.

Debido a crisis de software, en años atrás se han creado estándares en el desarrollo de software, y eso es, lo que hoy en día llamamos Ingeniería de Software, y recordemos que este es un recurso para establecer y usar principios de la ingeniería y obtener software que sea fiable y funciones eficientemente

La reingeniería de software es la actividad con el cual se pretende dar solución a aquellas organizaciones las cuales no han podido practicar la ingeniería de software y se han quedado meramente con un desarrollo y un mantenimiento mediocre. La reingeniería de software pretende dejar morir esos sistemas imposibles de mantener, no sin antes extraer de ellos conocimientos que permitan crear un nuevo sistema fiable, eficiente y de fácil mantenimiento.

El cambio es algo inevitable cuando se construyen sistemas basados en computadoras; por tanto, debemos desarrollar mecanismos para evaluar, controlar y realizar modificaciones.

El mantenimiento del software es algo que va mucho más allá. El mantenimiento de software ha sido una problemática desde que el mismo software fue creado, el llevar un lineamiento correctivo y adaptativo al mismo podría mejorar considerablemente el software pero a su vez podría costar mucho hablando en recursos monetarios. A pesar de la necesidad de ir al día con el mundo en la tecnología y en el desarrollo de software, tenemos –como siempre- dos lados de la moneda, los pros y los contras anteriormente mencionados.

Así pues se puede definir el mantenimiento describiendo las cuatro actividades que se emprenden cuando se publica un programa para su utilización:

?? Mantenimiento correctivo.

?? Mantenimiento adaptivo.

?? Mejores o mantenimiento de perfeccionamiento.

?? Mantenimiento preventivo o reingeniería.

¿Entonces por qué aplicar reingeniería del software?

Recordemos que para ser funcionales en el mundo de hoy, necesitamos un software que vaya de la mano con nuestro sistema y lo que este requiere, así mismo la adaptación de software tiene que ir conforme a las ultimas actualizaciones de tecnología, y nuevos requerimientos de la empresa, y actualizaciones para no caer en desfase. Pero recordemos que un software al cual se le han hecho una gran cantidad de correcciones, adaptación y mejoras en ocasiones se vuelve inestable a corto o largo plazo dependiendo de la calidad de este. Así pues Esto deriva en que cada vez que se intenta efectuar un cambio se produzcan efectos colaterales graves e inesperados. Por esta razón es conveniente utilizar la reingeniería de Software.

2.2 [1er Periodo]Foro #3 Lunes, Jul 21 2008 

¿Como podemos medir el desempeño de los sistemas computarizados?

Através del benchmark podemos tener un modelo estándar o de aspiración, para nuestro propio diseño de software, con ello podemos establecer una norma con la cual condicionemos nuestro trabajo y mejorarlo en función de esta.

Otra manera de establecer criterios para poder observar como nuestro sistema progresa de manera positiva son las normas ISO, ISO quien es el organismo encargado de promover el desarrollo de normas internacionales de fabricación, comercio y comunicación para todas las ramas industriales nos provee de una serie de normativas que nos sujetan al mejoramiento de nuestro sistema a partir de algunos lineamientos, continuación algunos de ellos.

Implantar ISO, Paso 1, Conocer la Norma
Implantar ISO, Paso 2, Planear el Sistema de Calidad Total
Implantar ISO, Paso 3, Crear el Equipo Conductor ISO
Implantar ISO, Paso 4, Analizar la Situación
Implantar ISO, Paso 5, Crear los Equipos para Tareas
Implantar ISO, Paso 6, Capacitar al Personal
Implantar ISO, Paso 7,Capacitacion de los auditores internos
Implantar ISO, Paso 8, Realizar auditorias internas
Implantar ISO, Paso 9, Capacitar al Personal
Implantar ISO, Paso 9, Utilizar el Sistema de Calidad
Implantar ISO, Paso 10, Solicitar la Auditoría de Certificación

La sola aplicaron de el benchmark y de las normas ISO no siempre aseguraran la mejora inmediata del sistema, es necesario tomar responsabilidad en el asunto y ser protagonistas de estas practicas si se quiere llegar a tener un sistema que supere con creces las de los adversarios de la industria.

« Entradas anterioresEntradas siguientes »