Está en la página 1de 46

SOPORTE DE PROYECTOS

ORIENTADOS A OBJETOS Y DISEÑO


DE LA CALIDAD DEL SOFTWARE

Integrantes:
Montenegro Marcañaupa, Karen
Rodriguez Almeida, Alex
Zúñiga Vasquez, Pedro
MARCO TEÓRICO
1. Historia de la POO
• 1946 se desarrolló la ENIAC primera computadora con tubos al
vacío que utilizaba tarjetas perforadas para la entrada de datos en
código máquina.

Fig. 1: Computadora ENIAC


• 1951 Se fabrica la UNIVAC (1era computadora comercial
fabricada en EEUU) la cual un año después se utilizó para el censo.

Fig. 2: Computadora UNIVAC

• 1957 IBM desarrolla el lenguaje de programación Fortran lo cual


era una alternativa mucho más amigable que el lenguaje
ensamblador.
• 1959 Grace Murray Hopper desarrolla Cobol un lenguaje de
programación que tenía como idea ser usado en cualquier ordenador
ya que las computadoras eran incompatibles entre sí y los programas se
desarrollaban a título particular para una arquitectura cargándose
desde cinta magnética o tarjetas perforadas.
• Años 60 Se Introdujo el transistor y procesamiento por lote, a su vez se
desarrolló el conjunto de circuitos integrados.

Fig. 3: Transistor
• 1964 IBM anuncia la serie 360 la cual fue la primera familia de
computadoras que tenían software compatible. Los programas
escritos para una computadora podían ejecutarse en las otras.
• Años 70 aparecieron los microprocesadores.

Fig. 4: Microprocesador

• 1970 Se desarrolla el Lenguaje de Programación Pascal.


• 1972 Se desarrolla el Lenguaje C que será el soporte para crear Unix que
se usaba en los ordenadores con el microprocesador Motorola 68000.
• 1983 Se desarrolla C++ y se consolida la programación orientada a
objetos.
• 1991- 1993 Python, Ruby.
• 1995 Era dorada Lenguaje de programación Java, PhP, JavaScript,
siendo Java uno de los lenguajes más populares a nivel mundial, hoy en
día funciona en 11 billones de pc alrededor del mundo y muchos sitios
web no funcionarían sin este lenguaje.

Fig. 5: Lenguajes de Programación


2. Programación orientada a objetos (POO)

Se produce un avance significativo en el desarrollo del software


a partir del cambio de la programación estructurada a la
programación orientada a objetos (POO) el cual es más realista
ya que se centra en clases y objetos y posee características
como encapsulado, polimorfismo o la herencia.
2.1 Conceptos fundamentales
• Clases
Las clases son declaraciones de objetos, también se podrían definir
como abstracciones de objetos. Esto quiere decir que la definición de
un objeto es la clase. Cuando programamos un objeto y definimos sus
características y funcionalidades en realidad lo que estamos haciendo
es programar una clase. Estas poseen métodos y atributos.
• Objetos
Los objetos son ejemplares de una clase cualquiera. Cuando creamos
un ejemplar tenemos que especificar la clase a partir de la cual se
creará. Esta acción de crear un objeto a partir de una clase se llama
instanciar.
Fig. 6: Clases
Fig. 7: Atributos y métodos
2.2 Características
• Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes
a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar
la cohesión de los componentes del sistema.
• Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre; es decir, comparten los métodos que un objeto
posee.
• Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen.
Fig. 8: Polimorfismo Fig. 9: Herencia
3. El análisis y diseño orientado a objetos (ADOO)

Es una parte de la ingeniería de software que modela un sistema


como un grupo de objetos que interactúan entre sí.
Todo sistema de información requiere de un conjunto de
componentes (clases) para llevar a cabo tareas, es de gran
importancia dentro de la ingeniería de software tener un buen
"análisis y diseño" para un buen desarrollo del sistema.
En este método de análisis y diseño se crea un conjunto de modelos
utilizando una notación acordada como, por ejemplo uno de ellos
es el lenguaje unificado de modelado (UML) que es el lenguaje
estándar de modelado de sistemas orientados a objetos.
Fig. 10: Diagrama de Clases Fig. 11: Diagrama de Casos de Uso
4. Modelo en cascada para la creación de software
El modelo en cascada es un proceso de desarrollo secuencial, en el
que el desarrollo de software se concibe como un conjunto de
etapas que se ejecutan una tras otra.

Fig. 12: Modelo de cascada


La etapa del diseño de sistema podemos dividirla en 4 partes:

1. Conceptos y tipos de diseño de Sistema, Base de Datos orientados a


objetos
2. Herramientas de diseño y diseño de interface
3. Metodologías de diseño y notaciones(UML) orientadas a objetos
4. Soporte de proyectos orientados a objetos y diseño de la calidad del
software

En este proyecto exclusivamente nos centraremos en la parte 4.


DESARROLLO DEL PROYECTO

1. Soporte de proyectos orientados a objetos

En la etapa del diseño, una vez trazado los modelamientos


continúa la parte de soporte.
Para ello hay que recordar que un programa o software es una
secuencia de pasos que un programador escribe en un lenguaje
de programación, y que le indica a la computadora que debe
hacer.
El lenguaje de programación que utiliza el programador no es entendible
por la computadora, con lo cual es necesaria una transformación del el
código fuente a un código ejecutable (código objeto). A esto le
llamamos compilación.

• Código Fuente: Entendemos por código fuente a las instrucciones que


escribimos en texto más o menos en lenguaje natural. Es decir lo que
nosotros creamos y codificamos genera nuestro código fuente. Para
generar nuestro código fuente, podemos utilizar desde simples editores
de texto hasta complejos entornos de desarrollo.

Fig. 13: Ejemplo de Código Fuente


• Compilador: Se denomina compilador a un programa informático que se
encarga de traducir un programa escrito en un lenguaje de programación
a otro, el segundo lenguaje suele ser un lenguaje de máquina, aunque
también puede tratarse de texto o de un código intermedio, a este
proceso de traducción se le denomina compilación.

Fig. 14: Función del Compilador

• Enlazador: Un enlazador o linker, es un programa cuya función es tomar los


objetos que se crean en los primeros pasos del proceso de compilación, la
información de los recursos necesarios (biblioteca), quita los recursos que
no necesita, enlazando el código objeto con su biblioteca.
• Código objeto: El código fuente debe ser convertido en instrucciones en
código máquina (recuerda que este es el lenguaje del procesador) así
que hay programas especiales que realizan la traducción de nuestro
código fuente a un código mapeado con las instrucciones equivalentes
en código máquina. Sin embargo este código resultante no lo puede
utilizar directamente el procesador. Este código resultante se denomina
Código Objeto.
• Código ejecutable: A partir del código objeto otro programa tomará el
código objeto junto con otras instrucciones y bibliotecas de programas
que serán enlazadas, dando como resultado un archivo de código
ejecutable. Este código ejecutable tiene toda la información para que
el procesador pueda «correrlo o ejecutar» y realizar la actividad para la
que fue hecho el programa.
Fig. 15: Compilación, Enlace y Ejecución
• Lenguajes de Programación: Con que lenguaje de programación
desarrollaremos nuestro sistema.

Fig. 16: Lenguajes de Programación


• Entorno de Desarrollo: La parte más importante es el programa o
interfaz donde desarrollaremos nuestro código fuente ya que de este
último dependen mucho los recursos y límites que puede llegar a tener
nuestro sistema
Existen muchas alternativas para desarrollar software:
o (NetBeans, Genexus, Eclipse.Windev…)
o Visual Studio .NET de Microsoft
o Embarcadero Delphi

Fig. 17: Entornos de Desarrollo


• Sistemas Operativos: Para tener un soporte del software hay que
saber en qué sistema operativo se ejecutara este programa.

Fig. 18: Sistemas Operativos


• Base de Datos: Pero como todo software empresarial se van
almacenar datos por lo que debe ir de la mano con una base de
datos compatibles con el entorno las cuales tenemos:

Oracle DB
Microsoft SQL Server
MySQL
PostgreSQL

Fig. 19: Ejemplo Sistemas de Gestión de Base de Datos.


2. Diseño de la calidad del software
Calidad del software
• ¿Qué es?
Proceso eficaz de software que se aplica de manera que crea un
producto útil que proporciona valor mediable a quienes lo
producen y a quienes lo utilizan.
• ¿Quién la consigue?
Todos los involucrados en el proceso de software( ingenieros,
gerentes, etc.).
• ¿Por qué es importante?
Reduce costos por repetición y mejora entrada al mercado.
2.1 Normas ISO 9126

Atributos:
• Funcionalidad: adaptabilidad, exactitud, interoperabilidad, cumplimiento
y seguridad.
• Confiabilidad: madurez, tolerancia a fallas y robustez.
• Usabilidad: entendible, intuitiva y operable.
• Eficiencia: comportamiento del tiempo y de los recursos.
• Facilidad de recibir mantenimiento: analizable, cambiable, estable y
susceptible de someterse a pruebas.
• Portabilidad: adaptable, instalable, conformidad y sustituible.
El Test de Comprobación de Atributos

Prototipo de interfaz de usuario: ¿Es de alta calidad?


Usabilidad
• ¿Todas las operaciones son fáciles de localizar e iniciar?
• ¿La interfaz usa patrones esperados de uso?
Eficiencia
• ¿Cuál es la economía de movimientos para entrada de datos y
operaciones?
• ¿Los datos de salida están presentados para facilitar su legibilidad?
El Test de Comprobación de Atributos

• Prototipo de interfaz de usuario: ¿Es de alta calidad?

- Si la respuesta es afirmativa a todas las preguntas:


Probablemente Sí.

Para cada factor de la calidad que se desee evaluar se desarrollarán


preguntas similares.
El Costo de la Calidad

Fig. 20: Costo de corrección de un error en función del tiempo de detección.


Lograr la Calidad de Software

• Métodos de la Ingeniería del software


Análisis de requisitos para entender el problema a resolver.
Diseño adecuado al problema y que cumpla las dimensiones,
atributos y factores de calidad estudiados.

• Técnica de administración de proyectos


Estimaciones para verificar que las fechas pueden cumplirse.
Dependencia de las actividades programadas.
Planificación del riesgo: ¿Qué puede salir mal y cual es su plan de
contingencia?
• Control de calidad
Técnicas de revisión de modelos para ver si son conscientes y están
completos.
Inspección del código para detectar errores en procesamiento lógico,
manipulación de datos y comunicación con la interfaz.
Métricas de calidad con retroalimentación para mejorar el proceso
de desarrollo de productos del trabajo.

• Aseguramiento de la calidad del software


Infraestructura de apoyo a métodos de ingeniería del software,
funciones de auditoria e informes.
2.2 Normas ISO 14598

La norma ISO/IEC 14598 es un estándar que proporciona un marco


de trabajo para evaluar la calidad de todo tipo de producto
software e indica los requisitos para los métodos de medición y el
proceso de evaluación, proporcionando métricas y requisitos para los
procesos de evaluación, a través de 6 etapas:
Etapas:

• ISO/IEC 14598-1 Visión General: Establece un resumen de las otras


cinco etapas, explica la relación entre la evaluación del producto
software y el modelo de calidad.
Actividades: Establecer los requerimientos de evaluación,
especificar la evaluación, planear la evaluación, ejecutar la
evaluación.

• ISO/IEC 14598-2 Planificación y Gestión: Contiene requisitos y guías


para las funciones de soporte tales como la planificación y gestión
de la evaluación del producto del software.
Actividades: Preparación de políticas, definición de objetivos,
identificación de la tecnología, asignación de responsabilidades,
evaluación de software desarrollado y adquirido.
• ISO/IEC 14598-3 Proceso de desarrolladores: Lo utiliza las organizaciones
que planean desarrollar un producto o mejorar uno existente, realiza
evaluaciones de producto utilizando indicadores que puede predecir la
calidad de los productos finales.
Actividades: Organización, Planeamiento, especificaciones, diseño,
montaje

• ISO/IEC 14598-4 Proceso de comparadores: Lo utilizan las organizaciones


que pretenden comparar o rehusar un producto de software existente, se
aplica con el propósito de aceptación de un producto.
Actividades: Requerimientos, especificación evaluación, diseño
evaluación, ejecución evaluación.
• ISO/IEC 14598-5 Proceso evaluadores: este proceso es utilizado por
organizaciones encargadas de evaluar, provee los requisitos y guías
para la evaluación del producto software. Promueve las siguientes
características de proceso (repetible, reproducible; imparcial, objetivo).
Actividades: Trazabilidad, resultados, problemas, mejoras, conclusiones.

• ISO/IEC 14598-6 Modulo evaluación: Especifica las mediciones que van


a ser tomadas sobre los atributos de calidad que se definieron en la
etapa anterior, provee las guías para la documentación de la
evaluación.
2.3 Normas ISO 25000

Conocida como SQuaRE (Requisitos y Evaluación de Calidad de


Productos de Software).
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.
Divisiones:
Esta norma se compone por las siguientes divisiones:

Fig. 21: División de la norma ISO 25000


• ISO 2500n: Gestión de calidad: definen todos los modelos y términos.
ISO/IEC 25000 – Guía del SQuaRE: Resumen de las partes, los usuarios
previstos y las partes asociadas, así como los modelos de referencia.
ISO/IEC 25001 – Planificación y gestión: Establece los requisitos y
orientaciones para gestionar la evaluación y especificación de los
requisitos del producto software.

• ISO 2501n: Modelo de calidad: Incluye características para calidad


interna, externa y en uso del producto software.
ISO/IEC 25010 – Modelos de calidad de sistemas y software: Evalúa el
producto software.
ISO/IEC 25012 – Modelo de calidad de datos: Aplicable a aquellos datos
que se encuentran almacenados de manera estructurada y forman parte
de un Sistema de Información.
• ISO 2502n: Medición de calidad: Incluyen un modelo de referencia.
ISO/IEC 25020 - Modelo de referencia para la medida con guía: Presenta
una explicación introductoria y un modelo de referencia común a los
elementos de medición de la calidad.
ISO/IEC 25021 - Elementos de medida de calidad: Define y especifica un
conjunto recomendado de métricas base y derivadas.
ISO/IEC 25022 - Medición de la calidad de uso: Define específicamente las
métricas para realizar la medición de la calidad en uso del producto.
ISO/IEC 25023 - Medición de la calidad del producto: Define
específicamente las métricas para realizar la medición de la calidad de
productos y sistemas software.
ISO/IEC 25024 - Medición de la calidad de los datos: Define
específicamente las métricas para realizar la medición de la calidad de
datos.
• ISO 2503n: Requisitos de calidad
ISO/IEC 25030 – Requisitos de calidad: Provee de un conjunto de
recomendaciones para realizar la especificación de los requisitos de
calidad del producto software.

• ISO 2504n: Evaluación de la calidad: Proporcionan requisitos,


recomendaciones y guías.
ISO/IEC 25040 - Modelo de referencia para la evaluación: Proceso de
evaluación, las restricciones y los recursos necesarios.
ISO/IEC 25041 - Proceso de evaluación para desarrolladores: punto de
vista de los desarrolladores, de los adquirentes y de los evaluadores
independientes.
ISO/IEC 25042 - Módulos de evaluación: Define la documentación,
estructura y contenido para definir uno de estos módulos.
ISO/IEC 25045 - Módulo de evaluación para la recuperabilidad.
3. Casos aplicativos

• Caso 1: “Microsoft Word”


Una aplicación como Microsoft Word es una
herramienta bien conocida para escribir,
editar y preparar documentos.
Sin embargo, cuando nuestro cliente quería
producir informes médicos para sus clientes,
ninguna de las funciones de procesamiento
de texto de Microsoft Word o productos
similares podría ayudar en este caso en
particular.
En lugar de adaptar el software comercial
para completar esta tarea, se creó un Fig. 22: Microsoft Word
software para encontrar una solución
personalizada.
• Caso 2: “Empresa de banca de inversión”
Otro ejemplo es una empresa de banca de inversión, donde la recopilación
de datos que necesitaban demoraba demasiado.
A los analistas bancarios que estaban a cargo de los datos les llevó mucho
tiempo reunir la información de tantas fuentes diferentes y luego compilarla
en Excel. Los informes a menudo no tenían sentido, porque los datos
contiguos se desconectan de los informes o el formato de los informes era
confuso.
La obtención de datos demoraba demasiado tiempo, y los altos mandos aún
no obtenían la información que necesitaban para tomar decisiones
importantes.
Se creó un sistema personalizado al que los empleados podían acceder
utilizando su información de inicio de sesión de inicio de sesión único
existente. El nuevo panel de control les proporciona la inteligencia
empresarial que necesitan casi instantáneamente. Los datos se pueden
actualizar con un clic del ratón. Los analistas de negocios aún pueden
obtener los datos en Excel si lo desean, y también pueden actualizar la
información en Excel con el clic de un botón, si es necesario.
• Caso 3: “Uber”
Uber tenía nuevas ideas de una mejor
manera de conectar a los conductores
con los pasajeros, mientras que les
permitían ganar algo de dinero extra en su
tiempo libre. Dado que nadie había hecho
esto antes, no había ningún software que
pudiera manejar lo que Uber necesitaba:
una aplicación para que los pasajeros se
pusieran en contacto con los conductores.
Dada la rapidez con la que creció Uber,
tenían el desafío adicional de necesitar
algo que pudiera escalar rápidamente. Fig. 23: Uber
Al desarrollar software personalizado
temprano pudo manejar los desafíos
logísticos y de procesos que tiene en su
nueva empresa.
CONCLUSIONES
Para unificar el proceso de diseño se va a culminar con el soporte de los
sistemas en el cual tenemos que tener muy en claro el lenguaje de
programación en el que vamos a programar junto con el entorno de desarrollo
especifico a este lenguaje, de igual manera el sistema operativo donde se va
a ejecutar el programa y la base de datos donde se guardara toda la
información que se utilice en el software.

Las ISO nos permiten implementar estándares que garanticen una correcta
evaluación al software y mitigar los errores que puedan presentar en su
ejecución. Todas estas normas inciden en conceptos como calidad, eficiencia
y mejora en los procesos, tanto dentro de las organizaciones, como para los
usuarios finales. No se puede medir la calidad del software de forma correcta
debido a su naturaleza, la certificación se da a los procesos, la correcta
consecución de los mismos garantizaría un buen software. No se puede medir
al software como tal, sino los atributos que la conforman, tales métodos de
medida deben ser exactos.
APORTES DEL GRUPO
En este proyecto nuestro aporte como grupo es significativo, ya que todo se
encuentra resumido de una manera óptima y entendible al lector, si queremos tomar
aportes concisos se podría separar por puntos, que veremos a continuación:

1. Buena metodología para gestionar los temas a tratar: Todos los puntos están
cronológicamente ordenados para su mejor comprensión.
2. Definiciones concisas: Hacer lo más entendible el proyecto, para ello este se basa
en ser lo más acertado posible y breve en las definiciones.
3. Contenido Visual: Todo informe para que sea más fácil de digerir, aparte de texto
debe llevar imágenes relacionadas al tema, lo cual el proyecto se destaca en esto.
4. Bien ejemplificado: No todo se basa en definiciones, sino también es necesario
ejemplos aplicados a la vida misma para su mejor entendimiento. El proyecto cuenta
con variedad de ejemplos reales aplicados a la parte del desarrollo de sistemas.
5. Motivación a la investigación: El proyecto cuenta con links y referencias para
incentivar al lector a indagar un poco más acerca del tema y servir a futuros
proyectos en sus investigaciones.
¡Gracias por su atención!

También podría gustarte