martes, 12 de abril de 2011

Ejercicios Capitulo 6 Ingenieria software I


6.1) Identifique y comente brevemente cuatro tipos de requerimientos que se pueden definir para un sistema informático.
  • Requerimiento de seguridad: Es completamente necesario que un sistema obtén por seguridad.
Requerimiento de funcionalidad: El sistema tiene que ser 99.9 % funcional y cumplir las expectativas del cliente
  • Requerimiento de confiabilidad: El sistema tiene que ser confiable para los clientes al cumplir las peticiones del cliente.

  • Requerimiento de evolución: El sistema es necesario su evolución para que siga mejorando y adaptarse al ambiente de trabajo que se desarrolla.
6.2) Comente los problemas de la utilización del lenguaje natural para definir los requerimientos del usuario y del sistema, y muestre, utilizando pequeños ejemplos, como el estructurar el lenguaje natural en formularios puede ayudar a evitar algunas de estas dificultades.
  • Al utilizar el lenguaje natural para definir los requerimientos del usuario no se tiene ningún problema ya que estos requerimientos se definen de una manera abstracta, el problema surge al momento de definir los requerimientos del sistema ya que estos requerimientos se deben hacer de una manera más detallada y esto podría ocasionar un problema de comprensión al momento de ser leídos por los desarrolladores del sistema. Para evitar este problema se deben declarar los requerimientos del sistema por puntos como por ejemplo: los requerimientos del usuario se deben dividir en segmentos detallados que describan cuidadosamente lo que se quiere lograr.

6.6) Utilizando la técnica sugerida, en la que lenguaje natural se presenta en una forma estándar, redacte requerimientos del usuario verosímiles para siguienyes funciones:
1. Funciones  de expedición de dinero en un cajero automático de banco.


2. La verificación de ortografía y la función de corrección en  e un procesador de texto.

3. Un sistema de autoservicio de bombas de gasolina que incluye un lector tarjetas de crédito. El cliente pasa la tarjeta a través del lector y especifica la cantidad de combustible requerido. Este se entrega y  se hace el cargo a la cuenta cliente





6.7) Describa cuatro tipos de requerimientos no funcionales que pueden existir en un sistema. Dé ejemplos de cada uno de estos tipos de requerimientos.
  1. El sistema debe entregarse a la fecha que fue establecida. De acuerdo al contrato establecido
  2. Un lenguaje de programación: se debe definir que lenguaje ha de implementar en el desarrollo.
  3. Diseño del sistema: establecer un diseño de acuerdo a las exigencias.
  4. Resndimiento: El sistema debe de tener un rendimiento en velocidad y ejecución del sistema
6.8) Redacte un conjunto de requerimientos no funcionales para el sistema expendedor de billetes, especificando su fiabilidad y su respuesta en el tiempo.
  • Tiempo de ejecución rápido: El sistema debe funcionar de una manera rápida para que las tareas se realicen de la mejor manera.
  • Seguridad en los cálculos: Los cálculos realizados por el sistema deben ser coherentes y precisos sin ningún margen de error, evitando así posibles problemas de ejecución.
  • Una interfaz amigable: El sistema debe ser atractivo para el usuario para que así se sienta con la tranquilidad y el deseo de hacer su trabajo de la mejor manera.
  • Recursos de memoria: El sistema debe de requerir de la memoria física en una menor parte.
  • El espacio en disco: El espacio requerido por el programa no debe ser demasiado alto.

miércoles, 30 de marzo de 2011

Tarea 1 Tercer Parcial Ejercicios del Libro Capitulo 5:


5.1 Explique por qué la intangibilidad de los sistemas de software plantea problemas para la gestión de proyectos de software.

R:/ intangible es aquello que no se puede tocar o llevar un análisis de forma presente por eso es uno de los principales problemas del gestor proyector ya que no se puede manejar de forma estándar y con lleva a un problema de manejo y monitoreo del desarrollo del sistema como también el desarrollo de su funcionamiento. El software no se puede tocar, medir o analizar de forma presente.
  
5.2 Explique por qué los mejores programadores no siempre son los mejores gestores de software. La respuesta puede tener como base la lista de actividades de gestión dadas en la sección 5.1
R/= Lo mejores programadores no son a veces los ideales gestores de software porque un programador casi siempre ve programa a desarrollar y no tiene los conocimientos necesarios de gestionar el sistema y por otro lado los gestores de software están plenamente capacitados para poder desarrollar una planificación completamente en el progreso de un proyecto de software, siempre debe anticiparse a los problemas que pueden aparecer en el camino, así como para tener listas las soluciones a dichos problemas encontrados.
 Los gestores de proyecto también son responsables de las actividades:
·          Redacción de la propuesta
·          Planificación y calendarización del proyecto
·          Estimación de costes del proyecto
·          Supervisión y revisión del proyecto
·          Selección y evaluación del personal
·          Redacción y presentación de informes

5.3 Explique por qué el proceso de planificación de proyectos es iterativo y porque un plan se debe revisar continuamente durante el proyecto de software.
R/= El proceso de planificación da como inicio  una valorización de las especificaciones  de restricciones que afectaran al  proyecto una vez empezado el desarrollo (Ejemplo: fecha de entrega requerida, personal disponible para el desarrollo, presupuesto global del desarrollo del sistema).
Por lo que proceso de la planificación del software es Iterativo ya que solamente se completa cuando el proyecto mismo esta totalmente terminado, y de acuerdo con la información se hace disponible el desarrollo, el plan del sistema debe estar revisado regularmente, para que de esta forma agregar o eliminar información vital que se encuentre durante el camino del desarrollo del proyecto de sistema. Con este plan de desarrollo deberá estar  considerado las metas globales del negocio o empresa como un factor altamente importante, ya que debe tomarse en cuenta cuando se plantea el plan del proyecto del sistema, también se deberá establecer las restricciones de dicho sistema, se deberá definir los hitos del sistema y productos a entregar, entre otras del proyecto.

5.5 ¿Cuál es la diferencia fundamental entre un Hito y una entrega?
Hitos, son los objetivos a cumplir, como las metas y dirección de diversos elementos a desarrollar.
La entrega, es definir  fechas, tiempos, límites a estos objetivos y metas antes mencionados.


 
5.9 Además de los riesgos que se muestran en la figura 5.11, identifique otros seis posibles riesgos en los proyectos de software.

Planificación con tiempo preciso: la incógnita de cómo se podrá mantener la planificación temporal si el proyecto se entregue justo a tiempo.
Diseño mal desarrollado: Un mal diseño del sistema dar como resultado a  un riesgo para el proyecto de software.
 
 Cambio de la organización cambio del gestor: Un nuevo grupo puede tener muchas diferencias de ideas o formas de ver el software terminado, da como resultado que piensan diferente manera y el sistema se desarrollara de  forma totalmente diferente y esto crea un atraso antes de empezar de nuevo el sistema.
 Tiempo requerido del Software subestimado: esto puede dar como resultado los  retrasos temibles.
 Obstáculos con la financiación  de la Empresa: implica cancelar salarios y estimar los costos no aprobados.
 Personal necesario inactivo: se tomaría decisiones con empleados no capacitados a dar soluciones erróneos.

5.10 Los contratos de precio prefijado, donde el contratista ofrece un precio fijo para completar el sistema, pueden ser utilizados para traspasar los riesgos del proyecto del cliente al contratista. Si algo va mal, el contratista asumirá la diferencia. Indique de qué modo el uso de contratos puede incrementar la probabilidad de la aparición de riesgos.

R/= El uso de contratos en algunos casos puede ocacionar el incremento de la probabilidad de  riesgos no esperados, los contratos son normas y requerimientos que han puesto los dueños del software y deberá ser cumplida por el desarrollador del sistema, en donde dichos requerimientos pueden tener un tiempo sobrestimado para el desarrollo del sistema, y puede provocar un enorme riesgo si el sistema  al no  estar  terminado ene el tiempo estipulado por el dueño. 
5.11 Su jefe le ha solicitado que entregue un software en un tiempo que sólo puede ser posible cumplir preguntando al equipo del proyecto si desea trabajar horas extras sin pago alguno. Todos los miembros del equipo tienen hijos pequeños. Comente si debería aceptar esta petición de su jefe o si debería persuadir al equipo para dar su tiempo a la organización más que a sus familias. ¿Qué factores podrían ser significativos en la decisión?

R/= en este caso pues para mí la familia es más importante que el trabajo, lo que yo haría es persuadir al equipo a que nos esforcemos a trabajar en horas de trabajo y no en horas extras y hablar con el jefe para poder centralizar el trabajo solo en el proyecto….
Factores: Tiempo, trabajo alargado. 

5.12 Como programador, se le ofrece un ascenso como gestor de proyecto, pero su sensación es que puede tener una contribución en un papel técnico que en uno administrativo. Comente cuándo debería aceptar ese ascenso.

R/= Esto dependería de cómo me sienta saber si tengo los conocimiento de captar el panel técnico.
La sensación seria que Yo tendría a saber más cosas técnicas y no me siento capacitado para ser gestor de proyectos aunque no debería de aceptar el ascenso por el bien del prestigio de la empresa. Y debería de aceptar dicho ascenso cuando todas las capacitaciones relacionadas al  gestor de proyectos las tenga bien claro y así obtener mayores resultados.