Está en la página 1de 25

“AÑO DEL FORTALECIMIENTO DE LA SOBERANIA NACIONAL”

CARRERA TECNICA PROFESIONAL DE COMPUTACIÓN E INFORMÁTICA

PORTADA

INFORME FINAL

INGENIERIA DE SOFTWARE

PRESENTADO POR:

JURADOS:

CICLO: IV

1
DEDICATORIA

A Dios, por ser nuestro guía espiritual en este largo

camino, gracias a él superamos los momentos

difíciles y nos levantamos para tener éxito en

nuestra vida cotidiana. Igualmente, este trabajo es

dedicada a toda nuestra familia por el apoyo

incondicional que no brindó para realizar este

proyecto.

ÍNDICE

PORTADA............................................................................................................................................I
DEDICATORIAPORTADA......................................................................................................................I
DEDICATORIA....................................................................................................................................2
DEDICATORIA....................................................................................................................................2
ÍNDICE...............................................................................................................................................2
PRESENTACIÓN.................................................................................................................................5
1 CAPITULO I – ASPECTOS GENERALES.........................................................................................6
1.1 Nombre de la Institución...................................................................................................6
1.2 Representante Legal..........................................................................................................6
1.3 Ruc.....................................................................................................................................6
1.4 Ubicación y Localización....................................................................................................6
1.5 Número de trabajadores...................................................................................................6
1.6 Actividad que desarrolla....................................................................................................6
2 CAPITULO II – ANTECEDENTES...................................................................................................6

2
2.1 Razón social.......................................................................................................................6
2.2 Reseña histórica................................................................................................................7
2.3 Infraestructura de recursos informáticos – TIC’................................................................7
2.4 Inventario de los recursos informáticos............................................................................8
3 CAPITULO III – ORGANIZACIÓN.................................................................................................8
3.1 Misión................................................................................................................................8
3.2 Visión.................................................................................................................................8
3.3 Objetivos...........................................................................................................................8
3.4.................................................................................................................................................9
3.5 Funciones del área en descripción...................................................................................10
3.6 Análisis FODA (Informática).............................................................................................11
4 CAPITULO IV – DATOS GENERALES DEL PROYECTO.................................................................12
4.1 Título del proyecto a desarrollar (está basado en una Aplicación)..................................12
4.2 Descripción del proyecto a desarrollar............................................................................12
4.2.1 Requerimientos funcionales del proyecto..............................................................13
4.2.2 Requerimientos no funcionales del proyecto.........................................................13
4.3 Objetivos.........................................................................................................................13
4.3.1 Objetivos generales................................................................................................13
4.3.2 Objetivos específicos..............................................................................................14
4.4 Limitaciones.....................................................................................................................16
4.5 Cronograma del proyecto................................................................................................16
4.6 Recursos..........................................................................................................................16
4.7 Presupuesto.....................................................................................................................16
4.8 aplicación.........................................................................................................................17
4.9 Interfaces de la aplicación...............................................................................................17
4.10 Código fuente de la aplicación.........................................................................................18
Conclusiones...................................................................................................................................20
Recomendaciones...........................................................................................................................20
Bibliografía......................................................................................................................................21
Anexos................................................................................................¡Error! Marcador no definido.

3
PRESENTACIÓN
La Ingeniería de Software es una de las ramas de las ciencias de la computación que
estudia la creación de software confiable y de calidad, basándose en métodos y técnicas de
ingeniería, y brindando soporte operacional y de mantenimiento. El campo de estudio de la
ingeniería de software1 integra ciencias y las en las cuales se encuentra apoyada
Se citan las definiciones más reconocidas, formuladas por los siguientes prestigiosos autores:

 Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y


mantenimiento de sistemas software (Zelkovitz, 1978).
 Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y
construcción de programas de computadora y a la documentación asociada requerida
para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o
producción de software (Bohem, 1976).
 La ingeniería de software trata del establecimiento de los principios y métodos de la
ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en
máquinas reales (Bauer, 1972).
 La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación, y mantenimiento del software. Standard Glossary of
Software Engineering Terminology3
En 2004, la U. S. Bureau of Labor Statistics (Oficina de Estadísticas del Trabajo de Estados
Unidos) contó 760 840 ingenieros de software de computadora.

4
El término "ingeniero de software", sin embargo, se utiliza de manera genérica en el ambiente
empresarial, y no todos los que se desempeñan en el puesto de ingeniero de software poseen
realmente títulos de ingeniería de universidades reconocidas.5
Algunos autores consideran que "desarrollo de software" es un término más apropiado que
"ingeniería de software" para el proceso de crear software. Personas como Pete McBreen
(autor de Software Craftmanship) cree que el término IS implica niveles de rigor y prueba de
procesos que no son apropiados para todo tipo de desarrollo de software.
Indistintamente se utilizan los términos "ingeniería de software" o "ingeniería del software";
aunque menos común también se suele referenciar como "ingeniería en software".678En
Hispanoamérica los términos más comúnmente usados son los dos primeros.
La creación del software es un proceso intrínsecamente creativo y la ingeniería
del software trata de sistematizar este proceso con el fin de acotar el riesgo de fracaso en la
consecución del objetivo, por medio de diversas técnicas que se han demostrado adecuadas
sobre la base de la experiencia previa.
La ingeniería de software se puede considerar como la ingeniería aplicada al software, esto
es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la
manera más eficiente para la obtención de resultados óptimos; objetivos que siempre busca
la ingeniería. No es solo de la resolución de problemas, sino más bien teniendo en cuenta las
diferentes soluciones, elegir la más apropiada.
La producción de software utiliza criterios y normas de la ingeniería de software, lo que
permite transformarlo en un producto industrial usando bases de la ingeniería como métodos,
técnicas y herramientas para desarrollar un producto innovador regido por metodologías y las
buenas prácticas. Dicho producto es un medio que interviene en las funciones de sus
usuarios para obtener un proceso productivo más eficaz y eficiente; hoy en día las empresas
no podrían funcionar sin software porque este es un producto de uso masivo; por lo cual, el
nivel de una empresa está determinado por la calidad de su infraestructura tecnológica y los
productos desarrollados o adquiridos de acuerdo con sus necesidades.

CAPITULO I – ASPECTOS GENERALES

1.1 Nombre de la Institución

1.2 Representante Legal


1.3 Ruc
1.4 Ubicación y Localización
1.5 Número de trabajadores
82

5
1.6 Actividad que desarrolla

2 CAPITULO II – ANTECEDENTES
2.1 Razón social
2.2 Reseña histórica
2.3 Infraestructura de recursos informáticos – TIC.
Centro de cómputo de la Institución Educativa privada "Deperu master".

INFORMATICA I CICLO II CICLO III CICLO IV CICLO V CICLO VI CICLO


CONTABILIDAD I CICLO II CICLO III CICLO IV CICLO V CICLO VI CICLO
GASTRONOMI I CICLO II CICLO III CICLO IV CICLO V CICLO VI CICLO
A
ARTE I CICLO II CICLO III CICLO IV CICLO V CICLO VI CICLO
CULINARIO
Única.

2.4 Inventario de los recursos informáticos


N° Recursos cantidad Estado
1 Computadoras 20 REGULAR
2 Personales 4 REGULAR
3 teclados 20 REGULAR
4 tv NINGUNO 0

3 CAPITULO III – ORGANIZACIÓN

3.1 Misión

3.2 Visión
3.3 Objetivos
En la Instituto tecnológico privado queremos hallar y amplificar personas
competentes con una elevada autoestima, conciencia, competencias sociales y
una consistente aprendizaje académica, moral y emocional para que puedan
llegar el éxito personal y profesional dentro de una sociedad contemporáneo y
cambiante

6
.

3.4

3.5 Funciones del área en descripción de INGENIERIA DE SOFTWARE.


Coordinar el desarrollo de aplicaciones de java con el docente e alumnos
encargando. implementar aplicaciones y sistemas de una calculadora básica con
códigos con la programación orientada a objetos de los estudiantes del instituto
superior tecnológico Deperu master usuarios. Organizar y conducir programas
internos de capacitación. Proveer estimaciones de costos de las actividades.
Revisar agendas de proyectos y supervisar al personal. Auditar el rendimiento de
todas las actividades del área de Computación e Informática.

La ingeniería de software es una disciplina formada por un conjunto de


métodos, herramientas y técnicas que se utilizan en el desarrollo de
programas informáticos, más conocidos como softwares. Para nosotros, este
servicio trasciende a la programación, que es la base para crear una aplicación.

Principales funciones de un ingeniero de software


 Crear sistemas informáticos y software inteligentes.
 Dirigir proyectos de mantenimiento de software.
 Analizar nuevas técnicas.
 Optimizar procesos.
 Preparar soluciones compatibles con diversos sistemas operativos.
 Liderar equipos de trabajo.

7
3.6 Análisis FODA (Informática)
En todo desarrollo de sistemas de software es de suma importancia el seguir alguna especificación
que permita a los desarrolladores el tener una disciplina que haga que todas las etapas del
desarrollo del sistema, desde la pesquisa inicial de requerimientos hasta las pruebas finales del
sistema, sean no solo más coherentes sino también más formales. El desarrollo de software que
este proyecto propone, al ser una herramienta que pretende tener aplicación dentro del contexto
de un problema real, tiene que seguir un proceso de análisis y diseño que proporcione los
cimientos bajo los cuales se va a desarrollar la aplicación conjuntamente. Es por esto que en este
capítulo se detallan los procesos de ingeniería de software, análisis, y diseño que se involucran
para el desarrollo de una aplicación de software que puede utilizarse como auxiliar al tratamiento
del trastorno de lateralidad y ubicación espacial

El modelo de análisis identifica las clases principales del sistema y contiene un conjunto
de realizaciones de casos de uso que describen cómo se construirá el sistema. Los
diagramas de clase describen la estructura estática del sistema utilizando estereotipos
para modelar los componentes funcionales del sistema

8
FACTORES NEGATIVOS FACTORES POSITIVOS

DEBILIDADES FORTALEZAS

ORIGEN INTERNO ✓ Algunas lecturas DVD, mouse, ✓ Todos los alumnos tienen el
teclados de las computadoras se acceso individual a cada
encuentran malogradas computadora con codigos.

✓ no todas las maquinas ✓ El docente es de prestigio.


tienen instaladas la
Programación orientada y
herramienta JDK para objetos
programar en java

Visual

AMENAZAS OPORTUNIDADES

ORIGEN EXTERNO ✓ El internet de dicha institución ✓ El ambiente de centro de


no era adecuada, ya que todas cómputo contaba con una
las computadoras dependen de iluminación adecuada.
un solo punto de red.
Ingeniería y modelado de
Análisis de los requisitos del Sistemas
software.
Generación de Código
Diseño.
pruebas
mantenimiento

4 CAPITULO IV – DATOS GENERALES DEL PROYECTO


4.1 Título del proyecto a desarrollar (está basado en una Aplicación)
INGENIERIA DE SOFTWARE

4.2 Descripción del proyecto a desarrollar


La ingeniería de software es una disciplina formada por un conjunto de métodos,
herramientas y técnicas que se utilizan en el desarrollo de programas informáticos,
más conocidos como softwares. Para nosotros, este servicio trasciende a la
programación, que es la base para crear una aplicación.

9
4.2.1 Requerimientos funcionales del proyecto de la ingeniería de software
 La aplicación estará disponible para todos los alumnos del instituto.

 El software puede ser utilizado en los sistemas operativos Windows,


laragon, visual studio code y POO java, netbeans.
 La aplicación debe poder utilizarse sin necesidad de tener conexión

 Para poder entrar a una red.

 Se brindará auditoría en java.

 La aplicación asegurara el buen aprendizaje de los estudiantes del


instituto.
4.2.2 Requerimientos no funcionales del proyecto
 Es una programación profesional de la ingeniería de software.

4.3 Clases y Objetivos


Una clase describe las estructuras de datos que lo forman y las funciones asociadas con él. Una
clase es un modelo con el que se construyen los objetos. Un objeto es un ejemplar concreto de
una clase, que se estructura y comporta según se definió en la clase, pero su estado es particular e
independiente del resto de ejemplares. Al proceso de crear un objeto se le llama generalmente
instanciar una clase. Las clases asumen el principio de encapsulación, se describe una vista pública
que representa la funcionalidad de la misma, y una vista privada que describe los detalles de
implementación

Una clase es el único bloque de construcción, y por lo tanto, en una aplicación Java sólo hay
clases; no existen datos sueltos ni procedimientos.

4.3.1 Objetivos generales de la ingeniería de sofware


ATRIBUTOS Y ESTADO:

Un atributo es cada uno de los datos de una clase que la describen; no incluyen los datos
auxiliares utilizados para una implementación concreta. El estado de un objeto es el conjunto de
valores de sus atributos en un instante dado.

MÉTODOS Y MENSAJES:

Un método define una operación sobre un objeto. En general, realizan dos posibles acciones:
consultar el estado del objeto o modificarlo. Los métodos disponen de parámetros que permiten
delimitar la acción del mismo. Nos podemos encontrar con diversos tipos de métodos: 
Consultan o modifican un atributo, normalmente nos referenciaremos a ellos como: getters &
setters  Realizan operaciones sobre el conjunto de atributos, calculando valores o realizando
modificaciones  Inicializan los atributos al principio del ciclo de vida, o liberan los recursos al
final del ciclo; nos referiremos a ellos como constructores o destructores Un mensaje es la
invocación de un método de un objeto. Podemos decir que un objeto lanza un mensaje (quien

10
realiza la invocación) y otro lo recibe (el que ejecuta el método). Podemos rescribir que una clase
es la descripción e implementación de un conjunto de atributos y métodos. HERENCIA Y

POLIMORFISMO:

La herencia es una característica que permite a las clases definirse a partir de otras, y así reutilizar
su funcionalidad. A la clase padre se le llama superclase, clase base..., y a la hija subclase, clase
derivada.... El polimorfismo es la capacidad de que un mismo mensaje funcione con diferentes
objetos. Es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo
concreto de objetos sobre el que se trabaja. El método opera sobre un conjunto de posibles
objetos compatibles.

ENTORNO DESARROLLO:
El lenguaje Java fue creado por Sun Microsystems Inc., Aparece en el año 1995 y debe, en gran
medida, su popularidad al éxito del servicio WWW. Se creó en su origen para que fuese un
lenguaje multiplataforma. Para ello se compila en un código intermedio: bytecode y necesita de
una máquina virtual que lo ejecute. Normalmente, no utiliza código nativo, es decir, no se puede
ejecutar directamente por el procesador. Se disponen de varias plataformas Java para el
desarrollo. Una plataforma es una combinación de hardware y software, usada para desarrollar
y/o ejecutar programas. Se va a empezar con el editor. Uno sencillo de libre distribución es el
Notepad++: http://notepad-plus.sourceforge.net/es/site.htm Es un editor básico que reconoce la
gramática del lenguaje; es recomendable para empezar con aplicaciones pequeñas, pero no para
producir con efectividad. Para el desarrollo y compilación de aplicaciones Java, utilizaremos:
Standard Edition (Java SE) o Java Development Kit (JDK) de Sun.

LA CONSOLA:

La consola La consola es una ventana (llamada Símbolo del Sistema en Windows) que nos
proporciona un punto de entrada para escribir comandos. Estos comandos nos permiten realizar
tareas sin utilizar un entorno gráfico. Aunque resulte un tanto incómodo, es una buena alternativa
para la primera aproximación a Java. Cuando se inicia la consola, aparece la ruta de una carpeta y
acaba con el símbolo “>”. Cualquier comando Java lo deberemos ejecutar sobre la carpeta de
trabajo La consola La consola es una ventana (llamada Símbolo del Sistema en Windows) que nos
proporciona un punto de entrada para escribir comandos. Estos comandos nos permiten realizar
tareas sin utilizar un entorno gráfico. Aunque resulte un tanto incómodo, es una buena alternativa
para la primera aproximación a Java. Cuando se inicia la consola, aparece la ruta de una carpeta y
acaba con el símbolo “>”. Cualquier comando Java lo deberemos ejecutar sobre la carpeta de
trabajo

4.3.2 Objetivos específicos de poo.


En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un
objeto es un ente orientado a objetos (programa de computadoras) que consta de un
estado y de un comportamiento, que a su vez constan respectivamente de datos
almacenados y de tareas realizables durante el tiempo de ejecución.

11
12
4.4 Limitaciones
Dado que el programa aumenta de tamaño, requiere más tiempo para
ejecutarse, lo que conduce a una ejecución más lenta del programa. No
podemos aplicar la POO en todas partes ya que no es un lenguaje universal.
Se aplica solo cuando se requiere. No es adecuado para todo tipo de
problemas.
Las limitaciones del proyecto serán concluidas al instalar la aplicación en
todas las computadoras de la institución, para el uso diario de los estudiantes del
instituto Deperu master – Lircay.

4.5 Cronograma del proyecto


Sirve para controlar y comunicar el progreso del proyecto de desarrollo de software.
El cronograma determina las fechas de inicio y fin planificadas para cada tarea. Es un
proceso iterativo, que continúa a lo largo de la vida del proyecto de desarrollo de apps.

mayo 2022

4.6 Recursos humanos y recursos


Son todas aquellas personas que intervienen en la planificación de cualesquiera instancias
de software (por ejemplo: gestor, ingeniero de software experimentado, etc.), El número de
personas requerido para un proyecto de software solo puede ser determinado después de
hacer una estimación del esfuerzo de desarrollo.

Recursos de entorno
Es el entorno de las aplicaciones (software y hardware) el hardware proporciona el medio
físico para desarrollar las aplicaciones (software), este recurso es indispensable.

 Laptop (Windows)
 JDK java
 NetBeans
 POO

4.7 Presupuesto
Cuando un cliente o área de negocio interna en una organización nos solicita un desarrollo de
software, la primera pregunta que nos vendrá a la mente será la de ¿Cómo elaborar el

13
presupuesto? Para dilucidar estas dudas, a continuación te presentamos un ejemplo de
presupuesto de un proyecto de software.

Para elaborar el presupuesto de un proyecto de software, lo primero que necesitaremos será


entender en que consiste el software a desarrollar y cuáles serán sus funcionalidades.
Seguidamente necesitaremos medir la magnitud del trabajo a realizar y determinar el costo por
unidad de medida, llegando así a un costo por funcionalidad y total.

En este artículo, te presentamos un ejemplo de presupuesto para desarrollar un software, donde


cubriremos la medición del software, determinación de la productividad, estimación de esfuerzo y
personal en base a la misma, llegando por último al presupuesto.

COMPRA DE
INTEGRANTES PASAJE COMIDA UTILITARIOS TOTAL
SOFTWARE

0.00 6.00 0.00 0.00 6.00

4.8 aplicación
java+
ingeniería de software

4.9 Interfaces de la aplicación de java de la ingeniería de software

Como ya sabrás si lees con frecuencia las publicaciones de nuestro blog, en nuestro centro
podrás formarte en el manejo del software para análisis de redes eléctricas. Te
enseñaremos antes de nada a navegar por el interfaz. La cuestión que nos interesa saber en
este post es ¿sabes qué es la interfaz? Si no lo tienes claro, sigue leyendo porque ese es
precisamente el contenido de nuestro nuevo post.

“Interfaz” es un término que procede del vocablo inglés interface. En el campo de la


informática, se refiere la conexión que se da de manera física y a nivel de utilidad entre
dispositivos o sistemas.

Dicho de otro modo, es una conexión entre dos máquinas de cualquier tipo, a las que da un
soporte para la comunicación en diferentes estratos. Se puede entender la interfaz como un
espacio (donde se desarrolla la interacción y el intercambio), un instrumento (por ejemplo, el
ratón que nos permite interactuar con un ordenador) o una superficie (objeto que aporta
información a través de su textura, forma o color).

La interfaz de usuario es el medio que nos permite a las personas comunicarnos con las
máquinas. La interfaz, en estos casos, se compone de los puntos de contacto entre un
usuario y el equipo.

14
Una interfaz de Java es un mecanismo que tiene este lenguaje de programación para

enunciar un conjunto de especificaciones y comportamiento que otras clases van a

implementar. Es un concepto propio de la POO (programación orientada a objetos).

Dentro de cada una de las interfaces de Java puedes encontrar constantes estáticas y

métodos abstractos. Esto quiere decir que si revisas el código de la interfaz solo verás

los nombres de los métodos.

Estos nombres probablemente te den una pista de lo que los métodos harán, pero no

verás el código o cómo lograrán hacer eso. Es como una especie de plantilla que servirá

de modelo para las clases que implementen los métodos.

Es importante que sepas que cada una de las clases que implementan a la interfaz deben

incluir todos los métodos abstractos que han sido enunciados en ella.

4.10 Código fuente de la aplicación

package ClasesYObjetos;

public class Coche {


//Atributos
String color;
String marca;
int km;
//Metodo
public static void main(String[] args) {
Coche coche1=new Coche();

coche1.color="Blanco";
coche1.marca="Audi";
coche1.km=0;
System.out.println("El color del coche1 es: "+coche1.color);
System.out.println("La marca del coche1 es: "+coche1.marca);
System.out.println("El kilometraje del coche1 es: "+coche1.km);

Coche coche2=new Coche();

15
coche2.color="Rojo";
coche2.marca="Ferrari";
coche2.km=100;
System.out.println("\nEl color del coche2 es: "+coche2.color);
System.out.println("La marca del coche2 es: "+coche2.marca);
System.out.println("El kilometraje del coche2 es: "+coche2.km);

Creación de métodos
package ClasesYObjetos;

import javax.swing.JOptionPane;

public class Operacion {


// Atributos
int numero1;
int numero2;
int suma;
int resta;
int multiplicacion;
int division;

//Metodos

// paa pedirle al usuario que nos digite 2 numeros

public void lerNUmeros(){


numero1=Integer.parseInt(JOptionPane.showInputDialog("Digite
un numero: "));
numero2=Integer.parseInt(JOptionPane.showInputDialog("Digite
un numero: "));
}
// Metodo para sumar ambos numeros
public void sumar(){
suma=numero1+numero2;
}
public void restar(){
resta=numero1-numero2;
}
public void multiplicar(){
multiplicacion=numero1*numero2;
}
public void division(){
division=numero1/numero2;
}
public void mostrarResulatado(){
System.out.println("La suma es: "+suma);
System.out.println("La resta es: "+resta);
System.out.println("La mutiplicacion es: "+multiplicacion);
System.out.println("La division es: "+division);

16
}

CLASE MAIN
package ClasesYObjetos;
public class Main {
public static void main(String[] args) {
Operacion op=new Operacion();
op.lerNUmeros();
op.sumar();
op.restar();
op.multiplicar();
op.division();
op.mostrarResulatado();

4.10.1.1.1 Conclusiones

En este proyecto pudo dar a conocer que el uso de la programación orientada y objetos

es una base del medio didáctico en el cual el aprendizaje puede ser significativo por

medio de la compresión la motivación y el razonamiento en los alumnos, por lo tanto,

ahora los estudiantes tienen la facilidad de llegar al resultado de los codigos, además

tienen todo el tiempo para aprenderse del INSTITUTO TECNOLOGICO Deperu master.

La Programación Orientada a Objetos es actualmente el paradigma que más se

utiliza para diseñar aplicaciones y programas informáticos. Son muchas sus

ventajas, principalmente cuando necesitas resolver desafíos de programación complejos.

4.11 Recomendaciones

17
Se recomienda realizar con los estudiantes 1 o 2 sesiones antes de aplicar el
caso de estudio. Estas sesiones se tratarán de una introducción al manejo de la
herramienta que se seleccionó para llevar a cabo las intervenciones, de esta
manera se tratara de garantizar que todos los estudiantes puedan estar al mismo
nivel de manejo y se pueda llevar las intervenciones de una manera más rápida y
eficiente.
Se recomienda que, al replicar el caso de estudio, no se deben fijar como máximo
o como mínimo la misma cantidad de intervenciones que se realizó en el presente
caso de estudio, ya que al replicarlo pueden salir más o menos intervenciones,
todo dependerá del investigador que lleve a cabo la repetición.
Se recomienda tener en cuenta que el presente caso de estudio representa un
fenómeno social que es la educación, por lo que no se podrá tener resultados
exactamente iguales, si no que parecidos.
También se recomienda aumentar el número de intervenciones prácticas con un
tiempo más amplio reservado para resolver dudas del estudiante sobre los
ejercicios. Esto debido a que algunos presentaban problemas en la
implementación de código. La recomendación se aplicará si se quiere que los
estudiantes apliquen de forma completa.

4.12 Bibliografía de la ingeniería de software


Antonio de Amezcua Seco, Análisis y Diseño Estructurado y Orientado a objetos de
Sistemas informáticos, [et, al.] Editora: Concepción Fernández Madrid.

Stephen R. Traducción Lorena Peralta Rosales, Análisis y Diseño Orientado a Objetos


con UML y el Proceso unificado Schach.

Simon Bennett, Steve Mcrobb y RayFarmer, Tr Jorge Rodríguez Vega, Luis Rodríguez
Martín, Editor. Carmelo Sánchez González Análisis y Diseño Orientado a Objetos de
Sistemas Usando UML.

Robert Orfali, Dan Harkey, jeri Edwards. Traducción Jorge López López, Cliente Servidor
y Objetos Guía de Supervivencia.

 Luis Joyanes Aguilar, Ignacio Zahonero Martínez, Estructura de Datos:


Algoritmos,abstracción y objetos, McGraw-Hill interamericana 1998.
 El sistema de los objetos, 10ed, México
 Luis Joyanes,Fundamentos de Programación: Algoritmos, estructuras de datos y
Objetos, Aguilar, 3ed Madrid, McGraw-Hill Interamericana de españa
 Schah, Stephen R ,Ingeniería De Software Clasica Y Orientada A Objetos, 6
ed. México, McGraw Hill Interamericana.
 Eric J Braude, Tr: María C murcias, RevTec. Roberto valdiviaBeutelspacher,
Ingeniería de Software: Una Perspectiva Orientada a Objetos,
México, Alfaomega.

18
 Luis Joyanes Aguilar, Ignacio ZahoneroMartìnez,Programaciòn en Java 2:
Algoritmos, Estructuras de Datos y Programaciòn Orientada a Objetos, Madrid,
McGraw Hill Interamericana.
 E. Balagurusamy, tr: José Antonio Alvarez Bermejo...(et al.). editor: Carmelo
Sánchez González,Programación Orientada a Objetos con C++, McGraw-Hill
Interamericana.
 Booch, Grady(2003) ; Rumbaugh, James; Jacobson, Ivar; SaezMartinez, Jose;
Trad.; Garcia Molina, Jesus J; Rev. Tec. Lenguaje unificado de modelado.
Addison Wesley.
 Deitel , Harvey. DeitelPaul(2003): Como programar en C++. Cuarta Edición,
Pearson educación
 Deitel , Harvey. DeitelPaul(2004): Como programar en JAVA. Quinta Edición,
Pearson educación
 Joyanes Aguilar Luis(1998), Programación Orientada a Objetos, 1ra.
Edición, McGraw Hill.
 Pappas Chris H, Murray William H(2002), Visual C++ .NET Manual de Referencia.
Mc Graw Hill
 Stroustrup. Bjarne (2003). El Lenguaje de Programación C++. Edición Especial;
Addison Wesley;
 Wu, C. Thomas (2001). Introducción a la Programación Orientada a Objetos con
Java. Mc Graw Hill/Interamericana de España. Aravaca. Madrid.

4.13 Otros:AQQ

 Thinking in Java: libro que incluye todo los fundamentos y algo más.
 programador: manuales o páginas con contenidos de java
 Curso Java: un tutorial sobre java muy completo con animaciones y tests.
 Varios tutoriales: tutoriales, notas de clase y manuales sobre diferentes temas
de Java.
 Tutorial de Swing: Swing es una de las librerías que permiten el desarrollo de
interfaces gráficas en java.

4.14 Documentación:
Es todo lo concerniente a la documentación del propio desarrollo del software y de la gestión
del proyecto, pasando por modelaciones (UML), diagramas de casos de uso, pruebas,
manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales
correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

4.15 Mantenimiento

Fase dedicada a mantener y mejorar el software para corregir errores descubiertos e


incorporar nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo
del software inicial. Alrededor de 2/3 del tiempo de ciclo de vida de un proyecto14 está
dedicado a su mantenimiento. Una pequeña parte de este trabajo consiste eliminar
errores (bugs); siendo que la mayor parte reside en extender el sistema para incorporarle
nuevas funcionalidades y hacer frente a su evolución.
El mantenimiento de software, según la investigación de Lehman, el 80% del mantenimiento no
son acciones correctivas. Son mejoras de funcionalidad (e incorporación de nuevos
requisitos), según Lehman el software evoluciona con el tiempo. Teniendo en cuenta eso, la
etapa de mantenimiento en sí misma puede incluir las etapas anteriores entre el despliegue
de cada nueva versión, reutilizando el software ya existente, reformandolo y adaptandolo.

19
4.16 Ventajas
4.16.1.1 Desde el punto de vista de gestión

 Facilitar la tarea de seguimiento del proyecto


 Optimizar el uso de recursos
 Facilitar la comunicación entre usuarios y desarrolladores
 Facilitar la evaluación de resultados y cumplimiento de objetivos
4.16.1.2 Desde el punto de vista de los ingenieros de software

 Ayudar a comprender el problema


 Permitir la reutilización
 Facilitar el mantenimiento del producto final
 Optimizar el conjunto y cada una de las fases del proceso de desarrollo
4.16.1.3 Desde el punto de vista de cliente o usuario final

 Garantizar el nivel de calidad del producto final


 Obtener el ciclo de vida adecuado para el proyecto
 Confianza en los plazos del tiempo mostrados en la definición del proyecto
La ingeniería de software, con el fin de ordenar el caos que era anteriormente el desarrollo
de software, dispone de varios modelos, paradigmas y filosofías de desarrollo, estos los
conocemos principalmente como modelos o ciclos de vida del desarrollo de software, esto
incluye el proceso que se sigue para construir, entregar y hacer evolucionar el software,
desde la concepción de una idea hasta la entrega y el retiro del sistema y representa todas
las actividades y artefactos (productos intermedios) necesarios para desarrollar una
aplicación.
El ciclo de vida de un software contiene los siguientes procedimientos:

 Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia


global.
 Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos
del cliente y examinar cualquier restricción que se pueda aplicar.
 Diseño general: requisitos generales de la arquitectura de la aplicación.
 Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
 Programación (programación e implementación): es la implementación de un lenguaje
de programación para crear las funciones definidas durante la etapa de diseño.
 Prueba de unidad: prueba individual de cada subconjunto de la aplicación para
garantizar que se implementaron de acuerdo con las especificaciones.
 Integración: para garantizar que los diferentes módulos se integren con la aplicación.
Este es el propósito de la prueba de integración que está cuidadosamente documentada.
 Prueba beta (o validación), para garantizar que el software cumple con las
especificaciones originales.
 Documentación: sirve para documentar información necesaria para los usuarios
del software y para desarrollos futuros.
 Implementación
 Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y
las actualizaciones secundarias del software (mantenimiento continuo).

20
4.17 Modelo en cascada o clásico
En ingeniería de software el modelo en cascada ―también llamado desarrollo en cascada o
ciclo de vida clásico― se basa en un enfoque metodológico que ordena rigurosamente las
etapas del ciclo de vida del software, esto sugiere una aproximación sistemática secuencial
hacia el proceso de desarrollo del software, que se inicia con la especificación de requisitos
del cliente y continúa con la planificación, el modelado, la construcción y el despliegue para
culminar en el soporte del software terminado.

4.18 Modelo de prototipos


En ingeniería de software, el modelo de prototipos pertenece a los modelos de desarrollo
evolutivo. Este permite que todo el sistema, o algunos de sus partes, se construyan
rápidamente para comprender con facilidad y aclarar ciertos aspectos en los que se aseguren
que el desarrollador, el usuario, el cliente estén de acuerdo en lo que se necesita así como
también la solución que se propone para dicha necesidad y de esta manera minimizar el
riesgo y la incertidumbre en el desarrollo, este modelo se encarga del desarrollo de diseños
para que estos sean analizados y prescindir de ellos a medida que se adhieran nuevas
especificaciones, es ideal para medir el alcance del producto, pero no se asegura su uso real.

21
Este modelo principalmente se aplica cuando un cliente define un conjunto de objetivos
generales para el software a desarrollarse sin delimitar detalladamente los requisitos de
entrada procesamiento y salida, es decir cuando el responsable no está seguro de la eficacia
de un algoritmo, de la adaptabilidad del sistema o de la manera en que interactúa el hombre y
la máquina.
Este modelo se encarga principalmente de ayudar al ingeniero de sistemas y al cliente a
entender de mejor manera cuál será el resultado de la construcción cuando los requisitos
estén satisfechos.

4.19 Modelos en espiral


El modelo en espiral, que Barry Boehm propuso originalmente en 1986, es un modelo de
proceso de software evolutivo que conjuga la naturaleza iterativa de la construcción de
prototipos con los aspectos controlados y sistemáticos del modelo en cascada, es decir,
cuando se aplica este modelo, el software se desarrolla en una serie de entregas evolutivas
(ciclos o iteraciones), cada una de estas entregando prototipos más completas que el anterior,
todo esto en función del análisis de riesgo y las necesidades del cliente. Aunque el modelo
espiral representa ventajas por sobre el desarrollo lineal, el cálculo de los riesgos puede ser
muy complicado y por lo cual su uso en el ámbito real es muy escaso.

22
4.19.1.1 5.1 Análisis de requisitos[editar]
Extraer los requisitos de un producto software es la primera etapa para crearlo. Durante la fase de
análisis, el cliente plantea las necesidades que se presenta e intenta explicar lo que debería hacer
el software o producto final para satisfacer dicha necesidad mientras que el desarrollador actúa como
interrogador, como la persona que resuelve problemas. Con este análisis, el ingeniero de sistemas
puede elegir la función que debe realizar el software y establecer o indicar cuál es la interfaz más
adecuada para el mismo.18

El análisis de requisitos puede parecer una tarea sencilla, pero no lo es debido a que muchas
veces los clientes piensan que saben todo lo que el software necesita para su buen
funcionamiento, sin embargo se requiere la habilidad y experiencia de algún especialista para
reconocer requisitos incompletos, ambiguos o contradictorios. Estos requisitos se determinan
tomando en cuenta las necesidades del usuario final, introduciendo técnicas que nos permitan
mejorar la calidad de los sistemas sobre los que se trabaja.19
El resultado del análisis de requisitos con el cliente se plasma en el documento ERS
(especificación de requisitos del sistema), cuya estructura puede venir definida por varios
estándares, tales como Asimismo, se define un diagrama en el que se plasman las
principales entidades que participarán en el desarrollo del software.
La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte
crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado
modelos y diversos procesos metódicos de trabajo para estos fines. Aunque aún no está
formalizada, ya se habla de la ingeniería
La IEEE Std. 830-1998 normaliza la creación de las especificaciones de requisitos
de software (Software Requirements Especificación).
Finalidades del análisis de requisitos:

 Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con
el software desarrollado obteniendo los mejores resultados posibles.
 Tener un control más completo en la etapa creación del software, en cuanto a tiempo de
desarrollo y costos.

23
 Utilización de métodos más eficientes que permitan el mejor aprovechamiento
del software según sea la finalidad de uso del mismo.
 Aumentar la calidad del software desarrollado al disminuir los riesgos de mal
funcionamiento.19
No siempre en la etapa de "análisis de requisitos" las distintas metodologías de desarrollo
llevan asociado un estudio de viabilidad y/o estimación de costes. El más conocido de los
modelos de estimación de coste del software es el modelo.
5.2 Limitaciones
Los softwares tienen la capacidad de emular inteligencia creando un modelo de ciertas
características de la inteligencia humana pero solo posee funciones predefinidas que abarcan
un conjunto de soluciones que en algunos campos llega a ser limitado. Aun cuando tiene la
capacidad de imitar ciertos comportamientos humanos no es capaz de emular el pensamiento
humano porque actúa bajo condiciones.
Otro aspecto limitante del software proviene del proceso totalmente mecánico que requiere de
un mayor esfuerzo y tiempos elevados de ejecución lo que lleva a tener que implementar
el software en una máquina de mayor capacidad.
4.19.2 Especificación

La especificación de requisitos describe el comportamiento esperado en el software una vez


desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de
las necesidades del negocio (definidas por la alta dirección), así como la interacción con los
usuarios funcionales para la recolección, clasificación, identificación, priorización y
especificación de los requisitos del software.
Entre las técnicas utilizadas para la especificación de requisitos se encuentran:
4.19.2.1 Arquitectura

La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas


gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y
proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas
estas actividades es el del Arquitecto.
El arquitecto de software es la persona que añade valor a los procesos de negocios gracias a
su valioso aporte de soluciones tecnológicas.
La arquitectura de sistemas en general, es una actividad de planeación, ya sea a nivel de
infraestructura de red y hardware, o de software.
Lo principal en este punto es poner en claro los aspectos lógicos y físicos de las salidas,
modelos de organización y representación de datos, entradas y procesos que componen el
sistema, considerando las bondades y limitaciones de los recursos disponibles en la
satisfacción de las pacificaciones brindadas para el análisis.
Hay que tener en consideración la arquitectura del sistema en la cual se va a trabajar,
elaborar un plan de trabajo viendo la prioridad de tiempo y recursos disponibles. En los
diseños de salidas entra los que es la interpretación de requerimientos lo cual es el dominio
de información del problema, las funciones visibles para el usuario, el comportamiento del
sistema y un conjunto de clases de requerimientos que agrupa los objetos del negocio con los
métodos que les dan servicio.
La arquitectura de software consiste en el diseño de componentes de una aplicación
(entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño
arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además
poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño

24
arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello
se documenta utilizando diagramas, por ejemplo:

 Diagrama de clases
 Diagrama de base de datos
 Diagrama de despliegue
 Diagrama de secuencia
Los diagramas de clases y de base de datos son los mínimos necesarios para describir la
arquitectura de un proyecto que iniciará a ser codificado. Dependiendo del alcance del
proyecto, complejidad y necesidades, el arquitecto elegirá cuales de los diagramas se
requiere elaborar.

25

También podría gustarte