Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
INTEGRANTES:
NICOLE SERRATE
AGOSTO 2018
Santa Cruz – Bolivia
II
INDICE
INDICE............................................................................................................................ii
2. ASPECTOS GENERALES.....................................................................................5
2.2. Introducción......................................................................................................5
2.4. Delimitaciones...................................................................................................5
2.4.1. Geográfica.....................................................................................................5
2.4.2. Temporal.......................................................................................................5
2.4.3. Temática........................................................................................................6
2.4.4. Alcance..........................................................................................................6
II
3.3.5. Principios del modelo de diseño.................................................................18
3.5.2.3. Riegos......................................................................................................25
3.7.1.1.1. Participantes.........................................................................................28
II
3.7.1.1.2. Líderes de Equipo.................................................................................29
II
3.9.8. Administración del Riesgo...........................................................................38
4.1. PUDS..............................................................................................................39
4.1.1. Características.............................................................................................40
4.2. UML................................................................................................................41
4.2.4. Modelo.........................................................................................................42
5.2. Organización del personal (Estructura del equipo de desarrollo del software)
44
II
5.3.4. Cálculo del Esfuerzo...................................................................................49
5.5.2. Normas........................................................................................................51
5.6. Presupuesto....................................................................................................53
II
6.1.2. Requisitos no funcionales...........................................................................57
Gestionar Ventas.........................................................................................................61
Vendedor......................................................................................................................61
Descripción...................................................................................................................61
Normal..........................................................................................................................61
Alternativa....................................................................................................................61
7. CONCLUSIONES.................................................................................................67
8. RECOMENDACIONES.........................................................................................67
9. BIBLIOGRAFIA.....................................................................................................68
II
1. ENUNCIADO DEL CASO DE ESTUDIO
I. SITUACION PROBLEMÁTICA
Los empleados son contratados por proyectos, los cuales pueden durar de uno a dos
años. Los contratos del personal administrativo son de carácter indefinido pero los
contratos del personal de campo son por proyecto. Un proyecto puede abarcar dos
zonas geográficas contiguas.
Para cada proyecto se contratan los obreros que harán el trabajo de desmonte,
perforación, detonación y rastreo sísmico de las líneas predeterminadas en las que
probablemente hay petróleo para que posteriormente otra empresa haga la
extracción del “oro negro”
Cada final de mes los administradores de los diferentes proyectos de campo deben
hacer llegar las planillas de asistencia de los obreros para procesar las respectivas
planillas de sueldo. Adjunto a las planillas de sueldo se deben imprimir las boletas de
pago.
Al inicio de cada proyecto se debe imprimir una planilla de todos los trabajadores que
serán afiliados al seguro médico.
Cada fin de mes también se precisa una planilla de los obreros que deben ser
retirados del seguro de salud por fenecimiento de contrato.
1
La planilla mensual que se envía al seguro médico debe especificar los mismos
datos que la planilla de sueldo para reducir el monto mensual que la empresa debe
pagar al seguro.
Al finalizar un proyecto es necesario procesar los cálculos para liquidar a todos los
obreros excepto a los administrativos que continúan con sus contratos activos.
Los obreros deben hacer llegar a la oficina central sus formularios RCIVA para el
descargo del descuento (13%) por transacciones comerciales. Estos montos deben
ser tomados en cuenta a la hora de procesar la planilla de sueldo.
Planificación temporal.
2
Cálculo de número de personas que conformarán el equipo de
desarrollo del software.
Gestión de la Calidad
Normas
Presupuesto
3
V. CASOS DE USO BASICOS
a) Modelo de Requisitos
Requerimientos funcionales
Requisitos no funcionales
b) Modelo de Análisis
Modelo de dominio
c) Modelo de Diseño
Diagrama de secuencia
Diseño de reportes,
d) Modelo de Implementación
Modelo de Componentes
Modelo de Despliegue
4
2. ASPECTOS GENERALES
2.2. Introducción
2.4. Delimitaciones
5
Determinar los requerimientos del sistema a desarrollar con la finalidad de
sentar las bases para la elaboración de un diseño de acuerdo a las
necesidades y dificultades identificadas.
Realizar la construcción del sistema de gestión que resuelva los problemas
analizados y que cumpla con los requerimientos obtenidos en la fase de
análisis y diseño.
Efectuar la implementación del sistema desarrollado tomando en cuenta que
software resultante que cumple con todos los requisitos planteados y
aprobados por los encargados de la empresa VUITON SRL.
Principio 1. Ser ágil. Ya sea que el modelo de proceso que se elija sea prescriptivo o
ágil, son los principios básicos del desarrollo ágil los que deben gobernar el enfoque.
Todo aspecto del trabajo que se haga debe poner el énfasis en la economía de
acción: en mantener el enfoque técnico tan sencillo como sea posible, hacer los
productos del trabajo que se generan tan concisos como se pueda y tomar las
decisiones localmente, siempre que sea posible.
6
Principio 3. Estar listo para adaptar. El proceso no es una experiencia religiosa, en él
no hay lugar para el dogma. Cuando sea necesario, adapte su enfoque a las
restricciones impuestas por el problema, la gente y el proyecto en sí.
Principio 7. Evaluar el riesgo. Son muchas las cosas que pueden salir mal cuando se
desarrolla software. Es esencial establecer planes de contingencia.
Principio 8. Crear productos del trabajo que agreguen valor para otros. Sólo genere
aquellos productos del trabajo que agreguen valor para otras actividades, acciones o
tareas del proceso. Todo producto del trabajo que se genere como parte de la
práctica de ingeniería de software pasará a alguien más. La lista de las funciones y
características requeridas se dará a la persona (o personas) que desarrollará(n) un
diseño, el diseño pasará a quienes generan código y así sucesivamente. Asegúrese
de que el producto del trabajo imparte la información necesaria sin ambigüedades u
omisiones.[ CITATION Rog \l 3082 ]
7
que satisfagan las necesidades de todos los participantes. Para lograrlo, debe
adoptarse un conjunto de principios fundamentales que guíen el trabajo técnico.
Estos principios tienen mérito sin que importen los métodos de análisis y diseño que
se apliquen, ni las técnicas de construcción (por ejemplo, el lenguaje de
programación o las herramientas automatizadas) que se usen o el enfoque de
verificación y validación que se elija. Los siguientes principios fundamentales son
vitales para la práctica de la ingeniería de software:
8
Principio 5. Construir software que tenga modularidad eficaz. La separación de
entidades (principio 1) establece una filosofía para el software. La modularidad
proporciona un mecanismo para llevar a cabo dicha filosofía. Cualquier sistema
complejo puede dividirse en módulos (componentes), pero la buena práctica de la
ingeniería de software demanda más. El modularidad debe ser eficaz.
Principio 6. Buscar patrones. Brad Appleton [App00] sugiere que: El objetivo de los
patrones dentro de la comunidad de software es crear un cúmulo de bibliografía que
ayude a los desarrolladores de software a resolver problemas recurrentes que surgen
a lo largo del desarrollo. Los patrones ayudan a crear un lenguaje compartido para
comunicar perspectiva y experiencia acerca de dichos patrones y sus soluciones. La
codificación formal de estas soluciones y sus relaciones permite acumular con éxito
el cuerpo de conocimientos que define nuestra comprensión de las buenas
arquitecturas que satisfacen las necesidades de sus usuarios.
9
deben enfrentarse. En este contexto, aquí se estudian principios de comunicación
aplicados a la comunicación con el cliente. Sin embargo, muchos de ellos se aplican
por igual en todas las formas de comunicación que ocurren dentro de un proyecto de
software
Principio 4. Es mejor la comunicación cara a cara. Pero por lo general funciona mejor
cuando está presente alguna otra representación de la información relevante. Por
ejemplo, un participante quizá genere un dibujo o documento en “borrador” que sirva
como centro de la discusión
Principio 5. Tomar notas y documentar las decisiones. Las cosas encuentran el modo
de caer en las grietas. Alguien que participe en la comunicación debe servir como
“secretario” y escribir todos los temas y decisiones importantes
10
para generar confianza entre los miembros del equipo y crea un objetivo común para
el grupo
Principio 8. Si algo no está claro, hacer un dibujo. La comunicación verbal tiene sus
límites. Con frecuencia, un esquema o dibujo arroja claridad cuando las palabras no
bastan para hacer el trabajo.
11
Principio 1. Entender el alcance del proyecto. Es imposible usar el mapa si no se
sabe a dónde se va. El alcance da un destino al equipo de software
Principio 6. Ser realista. Las personas no trabajan 100% todos los días. En cualquier
comunicación humana hay ruido. Las omisiones y ambigüedad son fenómenos de la
vida. Los cambios ocurren. Aun los mejores ingenieros de software cometen errores.
Éstas y otras realidades deben considerarse al establecer un proyecto.
12
“mucha granularidad” proporciona detalles significativos en las tareas para el trabajo
que se planea, en incrementos durante un periodo relativamente corto (por lo que el
seguimiento y control suceden con frecuencia).
Principio 10. Dar seguimiento al plan con frecuencia y hacer los ajustes que se
requieran. Los proyectos de software se atrasan respecto de su programación. Por
tanto, tiene sentido evaluar diariamente el avance, en busca de áreas y situaciones
problemáticas en las que las actividades programadas no se apeguen al avance real.
Cuando se detecten desviaciones, hay que ajustar el plan en
consecuencia[ CITATION Rog \l 3082 ]
Se crean modelos para entender mejor la entidad real que se va a construir. Cuando
ésta es física (por ejemplo, un edificio, un avión, una máquina, etc.), se construye un
modelo de forma idéntica pero a escala. Sin embargo, cuando la entidad que se va a
construir es software, el modelo debe adoptar una forma distinta. Debe ser capaz de
representar la información que el software transforma, la arquitectura y las funciones
que permiten que esto ocurra, las características que desean los usuarios y el
comportamiento del sistema mientras la transformación tiene lugar. Los modelos
deben cumplir estos objetivos en diferentes niveles de abstracción, en primer lugar
13
con la ilustración del software desde el punto de vista del cliente y después con su
representación en un nivel más técnico.
Principio 2. Viajar ligero, no crear más modelos de los necesarios. Todo modelo que
se cree debe actualizarse si ocurren cambios. Más importante aún es que todo
modelo nuevo exige tiempo, que de otra manera se destinaría a la construcción
(codificación y pruebas). Entonces, cree sólo aquellos modelos que hagan más fácil y
rápido construir el software.
Principio 5. Ser capaz de enunciar un propósito explícito para cada modelo que se
cree. Cada vez que cree un modelo, pregúntese por qué lo hace. Si no encuentra
una razón sólida para la existencia del modelo, no pierda tiempo en él.
14
Principio 6. Adaptar los modelos que se desarrollan al sistema en cuestión. Tal vez
sea necesario adaptar a la aplicación la notación del modelo o las reglas; por
ejemplo, una aplicación de juego de video quizá requiera una técnica de modelado
distinta que el software incrustado que controla el motor de un automóvil en tiempo
real.
Principio 10. Obtener retroalimentación tan pronto como sea posible. Todo modelo
debe ser revisado por los miembros del equipo. El objetivo de estas revisiones es
15
obtener retroalimentación para utilizarla a fin de corregir los errores de modelado,
cambiar las interpretaciones equivocadas y agregar las características o funciones
omitidas inadvertidamente.
Principio 2. Deben definirse las funciones que realizará el software. Las funciones del
software dan un beneficio directo a los usuarios finales y también brindan apoyo
interno para las características que son visibles para aquéllos. Algunas funciones
transforman los datos que fluyen hacia el sistema. En otros casos, las funciones
activan algún nivel de control sobre el procesamiento interno del software o sobre los
elementos externos del sistema. Las funciones se describen en muchos y distintos
niveles de abstracción, que van de un enunciado de propósito general a la
descripción detallada de los elementos del procesamiento que deben invocarse.
16
determinado por su interacción con el ambiente externo. Las entradas que dan los
usuarios finales, el control de los datos efectuado por un sistema externo o la
vigilancia de datos reunidos en una red son el motivo por el que el software se
comporta en una forma específica.
El modelo del diseño del software es análogo a los planos arquitectónicos de una
casa. Se comienza por representar la totalidad de lo que se va a construir (por
ejemplo, un croquis tridimensional de la casa) que se refina poco a poco para que
17
guíe la construcción de cada detalle (por ejemplo, la distribución de la plomería). De
manera similar, el modelo del diseño que se crea para el software da varios puntos
de vista distintos del sistema
Principio 4. Las interfaces (tanto internas como externas) deben diseñarse con
cuidado. La manera en la que los datos fluyen entre los componentes de un sistema
tiene mucho que ver con la eficiencia del procesamiento, la propagación del error y la
18
simplicidad del diseño. Una interfaz bien diseñada hace que la integración sea más
fácil y ayuda a quien la somete a prueba a validar las funciones componentes.
Principio 7. Los componentes deben estar acoplados con holgura entre sí y con el
ambiente externo. El acoplamiento se logra de muchos modos: con una interfaz de
componente, con mensajería, por medio de datos globales, etc. A medida que se
incrementa el nivel de acoplamiento, también aumenta la probabilidad de
propagación del error y disminuye la facilidad general de dar mantenimiento al
software. Entonces, el acoplamiento de componentes debe mantenerse tan bajo
como sea razonable.
19
mejorar el diseño y corregir errores, pero las posteriores deben buscar un diseño tan
sencillo como sea posible.
• Elegir un lenguaje de programación que satisfaga las necesidades del software que
se va a elaborar y el ambiente en el que operará.
• Crear un conjunto de pruebas unitarias que se aplicarán una vez que se haya
terminado el componente a codificar.
20
3.4.1.2. Principios de programación
• Restringir sus algoritmos por medio del uso de programación estructurada [Boh00].
• Entender la arquitectura del software y crear interfaces que son congruentes con
ella.
• Crear lazos anidados en forma tal que se puedan probar con facilidad.
• Crear una imagen visual (por ejemplo, líneas con sangría y en blanco) que ayude a
entender.
• Rediseñar el código
• Un buen caso de prueba es el que tiene alta probabilidad de encontrar un error que
no se ha detectado hasta el momento.
21
3.4.1.5. Principios de despliegue
22
Principio 5. El software defectuoso debe corregirse primero y después entregarse.
Cuando el tiempo apremia, algunas organizaciones de software entregan
incrementos de baja calidad con la advertencia de que los errores “se corregirán en
la siguiente entrega”. Esto es un error. Hay un adagio en el negocio del software que
dice así: “Los clientes olvidarán pronto que entregaste un producto de alta calidad,
pero nunca olvidarán los problemas que les causó un producto de mala calidad. El
software se los recuerda cada día.”[ CITATION Rog \l 3082 ]
Proceso eficaz de software que se aplica de manera que crea un producto útil que
proporciona valor medible a quienes lo producen y a quienes lo utilizan[ CITATION
Rog \l 3082 ]
23
tomará tanto tiempo terminarlo y será tan caro de producir que de todos modos
quedará fuera del negocio. En cualquier caso, habrá perdido la ventana de mercado,
o simplemente habrá agotado sus recursos. De modo que las personas de la
industria tratan de situarse en ese punto medio mágico donde el producto es
suficientemente bueno para no ser rechazado de inmediato, no en la evaluación,
pero tampoco es un objeto perfeccionista ni con demasiado trabajo que lo convierta
en algo que requiera demasiado tiempo o dinero para ser terminado[ CITATION
Mey \l 3082 ]
El costo de la calidad incluye todos los costos en los que se incurre al buscar la
calidad o al realizar actividades relacionadas con ella y los costos posteriores de la
falta de calidad. Para entender estos costos, una organización debe contar con
unidades de medición que provean el fundamento del costo actual de la calidad, que
identifiquen las oportunidades para reducir dichos costos y que den una base
normalizada de comparación. El costo de la calidad puede dividirse en los costos que
están asociados con la prevención, la evaluación y la falla.[ CITATION Rog \l 3082 ]
3.5.2.3. Riegos
La implicación es que el software de mala calidad aumenta los riesgos tanto para el
desarrollador como para el usuario final. En la subsección anterior se analizó uno de
dichos riesgos (el costo). Pero lo perjudicial de las aplicaciones mal diseñadas e
implementadas no siempre se mide en dólares y tiempo[ CITATION Rog \l 3082 ]
24
La calidad del software no sólo se ve. Es el resultado de la buena administración del
proyecto y de una correcta práctica de la ingeniería de software. La administración y
práctica se aplican en el contexto de cuatro actividades principales que ayudan al
equipo de software a lograr una alta calidad en éste: métodos de la ingeniería de
software, técnicas de administración de proyectos, acciones de control de calidad y
aseguramiento de la calidad del software.[ CITATION Rog \l 3082 ]
Si espera construir software de alta calidad, debe entender el problema que se quiere
resolver. También debe ser capaz de crear un diseño que esté de acuerdo con el
problema y que al mismo tiempo tenga características que lleven al software a las
dimensiones y factores de calidad[ CITATION Rog \l 3082 ]
25
software de alta calidad. Además, el aseguramiento de la calidad consiste en un
conjunto de funciones de auditoría y reportes para evaluar la eficacia y completitud
de las acciones de control de calidad.[ CITATION Rog \l 3082 ]
Estándares
Revisión y auditoría
Pruebas
Colección y análisis de errores
Administración del cambio
Educación
Administración de la seguridad
Seguridad
Administración de riesgos
La seguridad del software se relaciona por completo con la calidad. Debe pensarse
en seguridad, confiabilidad, disponibilidad y dependencia, en la fase inicial, en la de
diseño, en la de arquitectura, pruebas y codificación, durante todo el ciclo de vida del
software [proceso]. Incluso las personas conscientes del problema de la seguridad
del software se centran en las etapas finales del ciclo de vida. Entre más pronto se
detecte un problema en el software, mejor. Y hay dos clases de problemas. Uno son
los errores, que son problemas de implementación. El otro son las fallas del software:
problemas de arquitectura en el diseño. La gente presta demasiada atención a los
errores pero no la suficiente a las fallas.[ CITATION Gar \l 3082 ]
26
un concepto preliminar hasta su despliegue operativo completo.[ CITATION Rog \l
3082 ]
3.7.1.1.1. Participantes
1. Gerentes ejecutivos, quienes definen los temas empresariales que con frecuencia
tienen una influencia significativa sobre el proyecto.
27
2. Gerentes de proyecto (técnicos), quienes deben planificar, motivar, organizar y
controlar a los profesionales que hacen el trabajo de software.
3. Profesionales que aportan las habilidades técnicas que se necesitan para someter
a ingeniería un producto o aplicación.
5. Usuarios finales, quienes interactúan con el software una vez que se libera para su
uso productivo.
La administración del proyecto es una actividad que implica mucho trato con la gente;
por esta razón, los profesionales competentes tienen con frecuencia pobre
desempeño como líderes de equipo. Simplemente, no tienen la mezcla justa de
habilidades personales. Y aun así, como Edgemon afirma: “Por desgracia, y por muy
frecuente que parezca, los individuos simplemente se topan con el papel de gerente
de proyecto y se convierten en gerentes accidentales de proyecto”[ CITATION Rog \l
3082 ]
Existen casi tantas estructuras organizativas humanas para el desarrollo del software
como organizaciones que lo desarrollan. Para bien o para mal, la estructura
organizativa no puede modificarse fácilmente. La preocupación por las
consecuencias prácticas y por las políticas del cambio organizativo no está dentro del
ámbito de responsabilidad del gerente del proyecto de software. Sin embargo, la
organización de las personas directamente involucradas en un nuevo proyecto de
software está dentro del campo de acción del gerente del proyecto
28
3.7.1.2.1. Ámbito del software
El ámbito del software describe las funciones y características que se entregan a los
usuarios finales; los datos que son entrada y salida; el “contenido” que se presenta a
los usuarios como consecuencia de usar el software y el desempeño, las
restricciones, las interfaces y la confiabilidad que se ligan al sistema.[ CITATION Rog
\l 3082 ]
29
proyecto relativamente pequeño que sea similar a esfuerzos anteriores puede
lograrse mejor al usar el enfoque secuencial lineal.
Aunque los términos medida, medición y métrica con frecuencia se usan de modo
intercambiable, es importante observar las sutiles diferencias entre ellos. En el
contexto de la ingeniería del software, una medida proporciona un indicio cuantitativo
de la extensión, cantidad, dimensión, capacidad o tamaño de algún atributo de un
producto o proceso. La medición es el acto de determinar una medida. Una medida
cuantitativa del grado en el que un sistema, componente o proceso posee un atributo
determinado. [ CITATION IEE \l 3082 ]
30
Formulación. La derivación de medidas y métricas de software apropiadas para la
representación del software que se está construyendo.
Recolección. Mecanismo que se usa para acumular datos requeridos para derivar las
métricas formuladas.
El trabajo técnico en la ingeniería del software comienza con la creación del modelo
de requerimientos. En esta etapa se derivan los requerimientos y se establece un
cimiento para el diseño. Por tanto, son deseables métricas de producto que
proporcionen comprensión acerca de la calidad del modelo de análisis.[ CITATION
Rog \l 3082 ]
La métrica de punto de función (PF) puede usarse de manera efectiva como medio
para medir la funcionalidad que entra a un sistema.4 Al usar datos históricos, la
métrica PF puede entonces usarse para: 1) estimar el costo o esfuerzo requerido
para diseñar, codificar y probar el software;
Davis et al. [Dav93] proponen una lista de características que pueden usarse para
valorar la calidad del modelo de requerimientos y la correspondiente especificación
de requerimientos: especificidad (falta de ambigüedad), completitud, corrección,
comprensibilidad, verificabilidad, consistencia interna y externa, factibilidad,
concisión, rastreabilidad, modificabilidad, precisión y reusabilidad. Además, los
31
autores observan que las especificaciones de alta calidad se almacenan
electrónicamente, son ejecutables o al menos interpretables, se anotan mediante
importancia relativa, son estables, tienen versión, se organizan, cuentan con
referencia cruzada y se especifican en el nivel correcto de detalle.
Las métricas de diseño para software de computadora, al igual que todas las demás
métricas de software, no son perfectas. El debate continúa acerca de su eficacia y
sobre la forma en la que deben aplicarse. Muchos expertos argumentan que se
requiere más experimentación antes de poder usar las medidas de diseño, aunque el
diseño sin medición es una alternativa inaceptable. En las siguientes secciones se
examinan algunas de las métricas de diseño más comunes para software de
computadora. Cada una puede proporcionarle comprensión mejorada y todas
pueden ayudar a que el diseño evolucione hacia un mayor nivel de calidad.
[ CITATION Rog \l 3082 ]
32
Acoplamiento. Las conexiones físicas entre elementos del diseño OO (por ejemplo, el
número de colaboraciones entre clases o el de mensajes que pasan entre los
objetos) representan el acoplamiento dentro de un sistema OO.
Suficiencia. Whitmire define suficiencia como “el grado en el que una abstracción
posee las características requeridas de él o en el que un componente de diseño
posee características en su abstracción, desde el punto de vista de la aplicación
actual”.
Volatilidad. Como se menciona muchas veces en este libro, los cambios en el diseño
pueden ocurrir cuando se modifican los requerimientos o cuando ocurren
modificaciones en otras partes de una aplicación, lo que da como resultado la
adaptación obligatoria del componente de diseño en cuestión. La volatilidad de un
componente de diseño OO mide la probabilidad de que ocurrirá un cambio.
33
Las métricas de prueba se ubican en dos amplias categorías: 1) métricas que
intentan predecir el número probable de pruebas requeridas en varios niveles de
prueba y 2) métricas que se enfocan en la cobertura de pruebas para un componente
determinad
Acceso público a miembros de datos (APD). Esta métrica indica el número de clases
(o métodos) que pueden acceder a otros atributos de clase, una violación de la
encapsulación. Valores altos de APD conducen al potencial de efectos colaterales
entre clases. Las pruebas deben diseñarse para garantizar el descubrimiento de
tales efectos colaterales
34
Número de clases raíz (NCR). Esta métrica es un conteo de las distintas jerarquías
de clase que se describen en el modelo de diseño. Deben desarrollarse las suites de
prueba para cada clase raíz y la correspondiente jerarquía de clase. Conforme el
NCR aumenta, también aumenta el esfuerzo de prueba.
IEEE Std. 982.1-1988 [IEE93] sugiere un índice de madurez de software (IMS) que
proporcione un indicio de la estabilidad de un producto de software (con base en
cambios que ocurran para cada liberación del producto).
Las métricas para calidad de software tienen la intención de obtener una medida
cuantificable para la demostrar la calidad de un producto software.
35
encuentra un error, la facilidad con que se adapta si su entorno cambia o de mejorar
si el cliente quiere un cambio en requerimientos.
Integridad. La integridad del software se ha vuelto cada vez más importante en la era
de los ciberterroristas y hackers. Este atributo mide la habilidad de un sistema para
resistir ataques (tanto accidentales como intencionales) a su seguridad. Los ataques
pueden hacerse en los tres componentes de software: programas, datos y
documentación.
Una métrica de calidad que proporciona beneficio tanto en el nivel del proyecto como
en el del proceso es la eficiencia de remoción del defecto (ERD). En esencia, la ERD
es una medida de la habilidad de filtrado de las acciones de aseguramiento y control
de la calidad según se aplican a lo largo de todas las actividades del marco
conceptual del proceso.
3. Identificar la submetas.
36
6. Identificar preguntas cuantificables y los indicadores relacionados que se usarán
para ayudar a lograr las metas de medición.
7. Identificar los elementos de datos que se recopilarán para construir los indicadores
que ayuden a responder las preguntas.
8. Definir las medidas que se van a usar y hacer operativas estas definiciones.
La proyección del riesgo, también llamada estimación del riesgo, intenta calificar
cada riesgo en dos formas: 1) la posibilidad o probabilidad de que el riesgo sea real y
2) las consecuencias de los problemas asociados con el riesgo, en caso de que
ocurra. Usted trabaja junto con otros gerentes y personal técnico para realizar cuatro
pasos de proyección de riesgo:
37
2. Delinear las consecuencias del riesgo.
4.1. PUDS
38
conocido y documentado del Proceso Unificado es el Proceso Unificado de Rational
o simplemente RUP.
4.1.1. Características
Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que
recuerdan a las definidas en el ciclo de vida clásico o en cascada: Análisis de
requisitos, Diseño, Implementación y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una
de ellas varía a lo largo del proyecto.
En el Proceso Unificado los casos de uso se utilizan para capturar los requisitos
funcionales y para definir los contenidos de las iteraciones. La idea es que cada
iteración tome un conjunto de casos de uso o escenarios y desarrolle todo el camino
a través de las distintas disciplinas: diseño, implementación, prueba, etc. El proceso
dirigido por casos de uso es el rup. Nota: en UP se está Dirigido por requisitos y
riesgos de acuerdo con el Libro UML 2 de ARLOW, Jim que menciona el tema.
El Proceso Unificado asume que no existe un modelo único que cubra todos los
aspectos del sistema. Por dicho motivo existen múltiples modelos y vistas que
39
definen la arquitectura de software de un sistema. La analogía con la construcción es
clara, cuando construyes un edificio existen diversos planos que incluyen los distintos
servicios del mismo: electricidad, fontanería, etc.
El Proceso Unificado requiere que el equipo del proyecto se centre en identificar los
riesgos críticos en una etapa temprana del ciclo de vida. Los resultados de cada
iteración, en especial los de la fase de Elaboración deben ser seleccionados en un
orden que asegure que los riesgos principales son considerados primero.
4.2. UML
40
Pueden usar todos los modeladores
4.2.4. Modelo
41
5. INGENIERIA DE SOFTWARE DEL PROYECTO
42
5.2. Organización del personal (Estructura del equipo de desarrollo del software)
43
Para este proyecto se determinó que se utilizara la estructura de Equipo Centralizado
Controlado (CC) por los siguientes motivos:
ENTRADAS DE USUARIO
# Detalle
1 Interfaz de registro de productos
2 Interfaz de registro de ventas
3 Interfaz de registro de clientes
4 Interfaz de registro de pedidos
5 Interfaz de registro de recepción
6 Interfaz de registro de empleados
7 Interfaz de registro de proveedores
SALIDAS DE USUARIO
# Detalle
1 Interfaz de visualización de productos
2 Interfaz de visualización de ventas
3 Interfaz de visualización de clientes
4 Interfaz de visualización de pedidos
5 Interfaz de visualización de recepción
6 Interfaz de visualización de empleados
7 Interfaz de visualización de proveedores
PETICIONES DE USUARIO
# Detalle
1 Reporte de vendedores
44
2 Reporte de productos
3 Reporte de productos con marcas (Para
marketing)
ARCHIVOS
# Detalle
1 Archivo de texto de Facturación para
impuestos
INTERFACES EXTERNAS
# Detalle
1 Impresión de adhesivas con código de
barras
Factor de ponderación
Parámetro Cuenta Subtotal
Simple Medio Complejo
Número de entradas
7 2 2 3 21
de usuario
Número de salidas
7 0 1 8 56
de usuario
Número de
peticiones de 3 0 3 0 9
usuario
Número de archivos 1 0 0 11
Número de
1 0 0 1 1
interfaces externas
45
0: No influencia, 1: Incidental, 2: Moderado, 3: Es Medio, 4: Significativo, 5: Esencial
9. ¿Son complejas las entradas, las salidas, los archivos o las peticiones? 4
∑ Fi 46
E=20
46
PF=∑Ct*(0.65+0.01* ∑Fi)
PF = 97.68
Productividad = 29,5
P = PF/E
E= PF/P
E=97.68/29.5
E=3.31
Duración = 3.31 / 2
Costo = 3 x 35 x 8 x 25 x 1.6
47
Costo = 35 * 97.68
Costo = 3418bs
Impact Posible
Riesgo Probabilidad COSTO
o Solución
Daños en el Asegurar
área de los equipos
85 30 300
desarrollo del electrónico
proyecto s
Retiro de un Contratar
integrante del 25 20 personal 500
equipo nuevo
Daños
Asegurar
climatológicos
los equipos
en el área de 80 20 200
electrónico
desarrollo del
s
proyecto
Impact Posible
Riesgo Probabilidad COSTO
o Solución
Aumentar horas
Tecnología de trabajo para
300
nueva no 30 50 capacitar sobre
probada la nueva
tecnología
Personal no Capacitar
40 30 500
capacitado personal
Impact Posible
Riesgo Probabilidad COSTO
o Solución
Los recursos 50 30 Informar a los ------
no están encargados del
disponibles en proyecto que el
48
tiempo de cierre
su momento se va a ver
afectada
Nuevas
Aumentar las
características 55 50 ------
horas de trabajo
solicitadas
Los equipos
clientes no
Solicitar
cuentan con
25 30 actualización de 200
los requisitos
equipos
que el sistema
necesita
Solicitar mejora
Mayor número
de recursos del
de usuarios de 25 30 --------
servidor de
los previstos
producción
5.5.2. Normas
Esta proporciona una guía para el uso de las nuevas series de estándares
internacionales, llamados Requisitos y Evaluación de Calidad de Productos de
Software (SQuaRE). Es una norma que se basa en la ISO 9126 y 14598 y su
principal objetivo es determinar una guía para el desarrollo de los productos de
software con la especificación y evaluación de requisitos de calidad. Establece
criterios para la especificación de requisitos de calidad de productos software, sus
métricas y su evaluación. El producto de software debe incorporar unas
características, de tal manera que se garantice su eficiencia de uso a los
requerimientos de los clientes. Se recomienda que los requisitos de calidad deban
ser proporcionales a las necesidades de la aplicación y lo crítico que sea el correcto
funcionamiento del sistema implementado.
49
SO/IEC 2500n. División de gestión de calidad. Esta división define todos los
modelos comunes, términos y referencias a los que se alude en las demás divisiones
de SQuaRE
50
Vista externa: analiza el comportamiento del software en producción y estudia sus
atributos, por ejemplo: el rendimiento de un software en una máquina determinada, el
uso de memoria de un programa o el tiempo de funcionamiento entre fallos. Esta
vista se utiliza una vez el software este completo y listo para producción.
5.6. Presupuesto
NOMBRE COSTO
PLANIFICACION 400
CALIDAD 350
RIESGO 2000
TOTAL 0
PRECIO TOTAL
DETALLE CANTIDAD UNIDAD
(Bs.) (Bs.)
Computadora de Escritorio
2 Equipo 3500 7000
Intel Core i3
Ingeniería del proyecto 15 Días 150 150
TOTAL 7150
51
Factura de luz
375 MES 750
estimada
Factura de agua
225 MES 450
estimada
Factura de internet
por mes (Plan
278 MES 576
ADSL HIGH
SPEED)
TOTAL 1776
DETALLE COSTO
Costo parcial de las tareas de desarrollo
33600
de software
Costo parcial de recursos 7150
Costo parcial de la gestión de proyecto 2750
Costo parcial de servicios básicos 1777
Costo parcial de material extra 1150
TOTAL 0
52
Los medios que nos comunicaremos con el cliente serán por correo electrónico,
teléfono fijo o celular, para programar alguna reunión y mantenerlo al corriente sobre
los avances del proyecto.
53
Permitir registrar y dar de baja a una
venta y la búsqueda del mismo.
RF006 Gestionar Ventas
El código es autogenerado del sistema.
La descripción de la venta es única.
Permitir registrar y dar de baja a un
pedido y la búsqueda del mismo.
RF007 Gestionar Pedidos
El código es autogenerado del sistema.
La descripción del pedido es única.
Permitir registrar y dar de baja a una
recepción y la búsqueda del mismo.
Gestionar
RF008 El código es autogenerado del sistema.
Recepciones
La descripción de la recepción es
única.
Permitir el ingreso de usuarios al
sistema web, mediante el login
(nombre de usuario) y password.
La contraseña de usuario: longitud
Autenticación del mínima 8 caracteres, máximo 12, por lo
RF008
usuario en el sistema menos un carácter especial y una letra
minúscula y mayúscula, además de un
numero).
Los permisos dependerán del rol que
tenga.
Permite al usuario ver un listado de
Reporte: Stock de
RF009 productos de un rango de fechas de
Productos.
registro
Reporte: Compra y Permite al usuario saber la ganancia a
RF010
Venta detalle en un rango de fechas
54
Requerimientos de Software
Requerimientos de Software
Durante el registro de cualquier tipo de dato se pedirá al usuario la
confirmación de la acción.
El sistema mostrara mensajes confirmando una acción o avisando de un error.
Todos los campos de los formularios deberán ser validados antes de realizar
una acción (Ejemplo: Guardar, Modificar y eliminar) en la base de datos.
Copia de seguridad automática de la base de datos todas las noches en
horarios de 12:00pm.
Modificación y actualización de datos a través de formularios.
Se avisará del error mediante un mensaje y un sonido.
Un manual de usuario para capacitar al personal.
La aplicación deberá tener acceso por niveles para los diferentes roles
Caducidad de contraseña
Bitácora de las operaciones hechas sobre las tablas de la base de datos.
55
acceso al sistema en
todos sus módulos
Persona natural con
acceso al sistema en los
INV Personal de Inventario
módulos de recepción y
pedidos
Persona natural con
acceso al sistema en los
MRK Encargada de Marketing módulos de productos,
marcas y reporte de
productos
Persona natural con
acceso al sistema en los
VEN Personal de Ventas
módulos de compra y
venta
Persona natural con
GER Gerencia acceso al sistema a los
módulos de reportes
Persona natural con
acceso al sistema en los
CLI Clientes
módulos de consulta de
productos y marcas
56
57
6.2.2. Especificación del caso de uso “Registrar venta”.
58
Si el usuario no llena toda la columna cantidad en la lista de
9.1 productos seleccionados, se muestra mensaje de error “se
deben llenar la columna cantidad”
Si faltara un campo requerido, se muestra mensaje de error
10.1 “Se deben completar todos los campos requeridos para
continuar”
59
6.2.3.2. Modelo de datos relacional
60
6.3. Modelo de Diseño
61
sd Diagrama de secuencia
Ingresa a interfaz()
envia solicitud()
envia datos()
muestra datos()
registra venta()
registrarVenta()
Envia informacion()
Informacion guardada()
Verifica Venta()
Da de baja venta()
Cambia Estado()
Enviar Informacion()
Verifica Venta()
62
cmp Diagrama de Componentes
Aplicacion Web
App Web
Productos App Web
App Web App Web App Web App Web
Marcas Recepciones Clientes
Ventas Pedidos
Servicio
Serv icios
Serv idor
Web
Software
Base de Datos
BDPersona BD Pedidos
BD
Clientes
BD
BD Empleados
BDProductos BD Venta
DetallePedidos
BD
BD BD BD Prov eedores
DetalleVenta Recepcion DetalleRecepcion
Sistema Operatvio
Sistema
Operativ o
Linux
Conexiones Externas
63
cmp Diagrama de Despliegue
Modelo Interfaz
ORM (Obj eto) LAN - WAN
Explorador w eb
(IE10, Firefox,
Controlador Chrome)
(Negocio de Datos)
Directorio v irtual de
la Aplicación
Motor de base de Reporting Agente
datos SQL
7. CONCLUSIONES
8. RECOMENDACIONES
64
Realizar un estudio de las vulnerabilidades del sistema (pentesting) y aplicar
un plan para mitigar o remover dichas vulnerabilidades.
9. BIBLIOGRAFIA
Meyer, B. (s.f.).
65