Introducción al Desarrollo de Software
Introducción al Desarrollo de Software
INGENIERÍA DE SISTEMAS
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
Este material tiene fines educativos y no puede usarse con propósitos económicos o comerciales.
AUTOR
Javier Ospina Moreno
Docente- Aspirante a Magister
[Link]@[Link]
Nota: el autor certificó (de manera verbal o escrita) No haber incurrido en fraude científico, plagio o vicios
de autoría; en caso contrario eximió de toda responsabilidad a la Corporación Universitaria Remington, y
se declaró como el único responsable.
RESPONSABLES
Jorge Mauricio Sepúlveda Castaño
Decano de la Facultad de Ciencias Básicas e Ingeniería
jsepulveda@[Link]
GRUPO DE APOYO
Personal de la Unidad CUR-Virtual Derechos Reservados
EDICIÓN Y MONTAJE
Primera versión. Febrero de 2011.
Segunda versión. Marzo de 2012
Tercera versión. noviembre de 2015 Esta obra es publicada bajo la licencia CreativeCommons.
Reconocimiento-No Comercial-Compartir Igual 2.5
Colombia.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
3
TABLA DE CONTENIDO
Pág.
4 GLOSARIo ............................................................................................................................................ 77
5 BIBLIOGRAFÍA...................................................................................................................................... 80
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
4
1 MAPA DE LA ASIGNATURA
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
5
2 UNIDAD 3 PRINCIPIOS DEL DESARROLLO DE
SOFTWARE
Jabry, (2014). Mapa mental conceptual que explique la materia de fundamentos de programación [imagen]. Recuperado de
[Link]
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
Uml Diagramas de clases, Universidad de los Andes por Demian Gutierrez: Explica cómo trabajar con Uml yn sus diferentes
diagramas Enlace
Características de los Lenguajes de Programación, Instituto Tecnológico superior de Lerdo por María Guadalupe Flores Luevano.
Enlace
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
Define las características de los lenguajes orientados a objetos y su implementación en Java por James Gosling Enlace
[Link]
9
2.1.1 INSTALACIÓN, CONFIGURACIÓN Y MANEJO DEL ENTORNO
Describir los conceptos básicos del lenguaje de programación orientado a objetos requiere preparar el
computador dado el caso de no estar dispuesto para el lenguaje de programación especificado como java
en ese caso necesitara instalar la máquina virtual y luego el conjunto de desarrollo de java jdk en
cualquier caso es una buena práctica para el principiante en desarrollo de software en , su instalación,
configuración y manejo del entorno.
Lo primero es ir a la página oficial de sun ([Link] para descargar la última versión del
jdk disponible, ir a la opción “Technologies” — “Java SE” y seleccionar la pestaña “Download”, con lo que
nos aparecerá una pantalla donde se especifica las características de seadas también se puede bajar del
sitio web oficial: Java SE Development Kit 7 Downloads según el siguiente cuadro donde se describen
algunas evidencias de pasos realizables al efectuar este procedimiento :
10
Comprobando la ubicación java en disco.
Posteriormente Una vez que lo hayan bajado e instalado correctamente, se procede a buscar la ruta de
instalación significativamente se ubica la carpeta de los archivos básicos de java ellos se alojan en la
carpeta bin por ejemplo: C:\Program Files\Java\jdk1.8.0_05\bin para luego llevarla al class path
C:\Program Files\Java\jdk1.8.0_05\[Link] en el CLASSPATH
11
Una vez que se haya añadido la ruta, presionar aceptar y se actualiza o registra el proceso.
[Link] LÍNEA DE CONSOLA
La consola (cmd) primero se ubica en la ventana de consola procediendo así como en la tabla siguiente:
12
La orden para compilar es javac , esto comprueba el proceso de instalación y configuración ajustado
para manejar la aplicación desde java.
Para crear una aplicación llamada HolaMundo, se requiere de un editor o se abre el bloc de notas (para
digitar el programar en Java), con o sin clase pero empleando el método principal código fuente.
Se guarda el archivo con el nombre "[Link]", donde java es la extensión del programa fuente
debe tener presente la diferencia entre mayúscula y minúscula, en este caso se cambió de ruta, por lo
general está en la unidad c:
Para compilarlo verificar la sintaxis y llevarlo a lenguaje de maquina (objeto) bytecode, se digita la
siguiente sentencia: ruta\ javac [Link] mucha atención con la ruta del archivo, como se
especifica en el siguiente gráfico.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
13
14
Ejecutar poner a correr el código objeto, en la Consola escribimos: java HolaMundo
Muy importante, no se coloca la extensión del archivo (es decir el .class)
15
[Link]/products/downloads/ download_jbuilder.html
Borland ofrece una versión Foundation Edition gratuita de su
popular IDE JBuilder para Java. Este sitio también ofrece versiones
de prueba de 30 días de las ediciones Enterprise y Developer.
[Link]/prodtech/javatools/ jsenterprise/[Link]
El IDE Sun Java Studio Enterprise: la versión mejorada de
NetBeans de Sun Microsystems.
16
A partir del editor facilitador del desarrollador para la elaboración del código se debe tener en cuenta
para este caso el editor eclipse SE en cualquiera de sus categorías este se describe en el siguiente cuadro
hasta Seleccionar java SE (estándar) también existe el EE ( Enterprise Edition), tomemos el estándar.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
17
Seleccionar el editor Eclipse Kepler
Darle un nombre al paquete y terminar Desde el paquete botón derecho nueva clase
18
Seleccionar de la barra de menú, el menú de archivo (file), por medio del comando nuevo la etiqueta
proyecto java (project name) muestra la ventana para crear el proyecto como lo describe la tabla en la
segunda fila segunda columna. Se debe nombrar el proyecto y terminar el proceso para continuar con el
paquete que es el agrupador de los diferentes archivos de este proyecto, clic derecho en él y el comando
nuevo pero seleccionar paquete se crea uno debe finalizar el proceso lo indica el editor. Sobre el paquete,
clic derecho se pide un nuevo archivo tipo clase a la cual se le asigna un nombre preferiblemente primera
mayúscula, este presenta algunas opciones para sus métodos en especial si se requiere el main.
(Principal).
Toda su ventana de edición se observa en 4 divisiones como lo describe la imagen uno en la tabla siguiente
19
No presenta errores solo los resultados Los errores se refleja en la ventana inferior en
rojo, corregir y de nuevo
Antes de identificar cada uno de los elementos miembros datos y procedimientos incluso los
independientes es importante el reconocimiento del espacio en memoria a utilizar
20
long Numérico entero manejador de64 rango desde -263 hasta 262 (-
bits. 9223372036854775808 a
9223372036854775807)
Es importante identificar cada uno de estos tipos con el primer carácter en minúscula diferente a las
clases numéricas
21
PAQUETE DESCRIPCIÓN
Se asigna sin necesidad de nombrarla agrupa clases como System, Object, Math
lang
Object, Thread, Exception, System, Integer, Float, Character, String, Double
Se encarga de agrupar las clases del flujo de datos entrada y salida desde el
io programa clase como InputStreamReader, Exception, BuferedReader.
FileInputStream y FileOutputStream, InputStreanReader
util Agrupas clase de utilería como la clase Date, Random, Dictionary, Stack .
Agrupa las clases para manejar la comunicación redes clase Sokect, URL y
[Link]
URLConnection.
Agrupas las clase propias para el manejo de ambiente grafico más actualizadas
swing se le antepone la J a cada componente import [Link] .JButtom , JFrame,
JPanel,JMenu, JButton, JLabel, JTextField
Cuadro numero tema Descripción de algunos paquetes con sus características (realizado por el autor)
22
Los nativos se declaran inicializan asignándole un valor y se utilizan, los clases de declaran instancian
requieren del operador new para solicitar espacio en memoria y del método constructor respectivo
para inicializarlo y se usan están agrupados siendo la clase String la llamada intermediaria para el acceso
a la información y luego se convierte al nativo respectivo acompañado de una clase numérica facilitadora
del método en el cuadro siguiente se presentaran algunos tipos de datos clase también llamados
envoltorio por pertenecer a las clases.
Existe la posibilidad de definir unos tipos de datos especiales los cuales son creados por el
programador pero están dentro de esta estructura como son las class y las bibliotecas.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
23
2.2.2 EXPRESIONES DELIMITADORES SEPARADORES Y OPERADORES
Contando con la funcionalidad de los caracteres ASCII en el lenguaje de programación en donde la gran
mayoría cumple una en este caso de delimitar o separar para conformar la estructura del código se
resumen en el siguiente cuadro algunos de los delimitadores o separadores con sus respectiva descripción.
24
\n Salto de línea
\t Espaciador en un texto
Operador es otra particularidad de algunos caracteres ascii para realizar acción facilitando la
conformación de una expresión al combinarse con operando quien puede ser variable o constante
preferiblemente numérica. La diversidad de estos elementos los clasifica de la siguiente manera:
aritméticos, relacionales, lógicos, de Asignación, unarios, de Instanceof, concatenado, de nivel de bit o
desplazamiento entre otros para resumir se describirá cada grupo en el siguiente cuadro:
+ Suma A =A+1;
-. Resta A =A-1;
*. Multiplicación. A =A*1;
/. División. A =A/1;
= : A = 65
+= : A += B ; A = A + B
-= : A -= B ; A = A - B
*= : A *= B ; A = A * B
/=' : A /= B ; A = A / B
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
25
%= : A %= B ; A = A % B
true
26
[Link] IDENTIFICADOR
Es importante el reconocimiento de cada uno de los elementos empleados en una aplicación por tanto
la identificación de cada clase, miembro dato o procedimiento incluso paqueteo nombre de archivo está
ligado a la estructura sintáctica del lenguaje y su aplicación en el espacio tiempo, ya se definieron los
tipos de datos que se anteponen a cada identificador este preferiblemente debe iniciar con carácter
letra, es independiente de mayúscula o minúscula hasta puede contener carácter digito no debe llevar
caracteres especiales ni definir lo como una palabra reservada
Las palabras reservadas son identificadores predefinidos que tienen un significado para el compilador y
por tanto no pueden usarse como identificadores creados por el usuario en los programas.
Algunas palabras reservadas en Java se presentan a continuación en el cuadro siguientes para tener
presente al definir los identificadores:
static void class finally long float super while try/ catch
27
if (A>=B) {
if(condicion) { [Link](“mayor
o igual) ;} else {
instruccion1(); [Link](“No es
mayor )}
} else {
bifurcacion
instruccion1();
instruccion2();
if (A>B) {
if(condicion1) { [Link](“mayor”) ;
if (A==B) {
instruccion11; [Link](“MayorIgual”)
; } else
if(condicion2) {
{
instruccion22; [Link](“MayorIgual”)
;}
instruccion22; }
else
} else { {
[Link](“No es mayor
anidada Instruccion22; )}
}.
else {
instruccion1;
instruccion2;
}.
28
instruccion1(); [Link](“No es
mayor= )}
} else {
instruccion1();
}.
Para el selector múltiple el condicional se hace más práctico especialmente si en el condicional se evalúan
secuencias preferiblemente numéricas para lo cual se emplea el método swich() dentro se establece el
caso para seleccionar la condición elegida, cada opción del caso debe establecer su terminación para ello
emplea la palabra reservada break; que cierra la secuencia de esta por ultimo cuenta con un control
llamado default para especificar cuando no se ha seleccionado una alternativa correcta o en el rango
establecido
[Link](“otro”)} [Link](“otro”)}
break; break;
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
29
default: default:
[Link](“error”)} [Link](“error”)}
{ {
actividades; [Link](j+",");
} }
actividades; { [Link](j+",");
30
do { do
actividades; { [Link](j+",");
31
public void setNombre(--){} [Link](""+mensaje);
} }
}
package paqueteuno;
public class Principal {public
static void main(String[] args)
{ [Link]
( " BIENVENIDA");
32
por -----A");
}
33
Sin lectura Con lectura de datos
}
Scanner captura= new
Scanner([Link]);
// se imprime o muestra la
informacion
Aquí el método main que debe estar dentro de una clase, se encarga de ejecutar la aplicación, tiene un
modificador de alcance (llamado ámbito) que es público un tipo de objeto que es static el cual especifica
independencia de la clase el tipo de dato de retorno es void que no regresa ningún valor a la aplicación
el nombre del método es main con un parámetro entre los () tipo arreglo cadena por los [] :
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
34
public class Interno01
int areatriangulo;
int areatriangulo;
if ( base< areatriangulo){
}
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
35
else
Para captura de datos se debe emplear hasta el momento una clase llamada Scanner que pertenece al
paquete útil, por ser clase tiene unos métodos que le permiten convertir la información tomada desde el
teclado como texto y llevarla a la variable según su tipo por medio del método correspondiente el
procedimiento será:
Segundo en el método principal (main) se declara un objeto tipo Scanner y luego se instancia con el
operador new y el método constructor quien toma la información del sistema para nosotros el teclado
Se presenta un mensaje con la clase System perteneciente al paquete lang con la sub clase out (salida o
muestra en pantalla) y el método imprimir [Link](“ por favor digite”); para orientar al usuario
La captura se realiza y se aplica el método convertidor next Int para entero, nextDouble para reales y
nexto nextLine para las cadenas.
base= [Link](); la variable tipo entera recibe del objeto scanner la información tipo cadena Clase
pero convertida en entero nativo.
Captura de datos
36
public class Captura01
int areatriangulo;
//pregunta simple
if ( base< areatriangulo)
}
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
37
else
ciclo para
int contacas = 0;
int contasepa = 0;
int contaotro = 0;
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
38
int contador=0;
N=[Link]();
for(contador=1; contador<= N)
switch(estadocivil) {
case 1:
break;
case 2:
break;
case 3:
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
39
[Link](“\n estado civil : separado”);
break;
case 4:
break;
default:
break;
[Link](0);
Ciclo mientras
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
40
import [Link];// importamos el paquete para utilizar la clase
scanner y realizar la lectura
int contacas = 0;
int contasepa = 0;
int contaotro = 0;
int contador ;
while(estadocivil <= N)
{
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
41
contador = contador +1;
switch(estadocivil) {
break;
break;
break;
break;
[Link](0);
42
[Link]., no sobra recordar el uso de métodos convertidores por ser clase para almacenar la
información en el tipo de dato nativo correspondiente.
showInputDialog(Object showInputDialog(Object
message message):permite mostrar mensaje
al dialogo, tipo cadena.
showInputDialog(parentC showInputDialog(parentComponent
omponent, message, title, , message, title, messageType):
messageType): permite personalizar el dialogo, con
un título y un icono (error,
información, advertencia, pregunta o
plano). (null, “Introduce un dato”,
“Titulo”,
JOptionPane.INFORMATION_MESS
AGE);
43
(JOptionPane.WARNIG_M cambia a advertencia
ESSAGE),
(JOptionPane.QUESTION_
MESSAGE) pregunta
(JOptionPane.PLAIN_MES
SAGE).
plano
44
showConfirmDialog(paren personalizar el dialogo, coloca un int
tComponent, message, título y un tipo de opción constantes codigo=[Link]
title, optionType que muestra : nfirmDialog(null, "¿Quieres
un euro para una buena
OK_CANCEL_OPTION: aceptar y causa?", "Donacion",
cancelar. JOptionPane.YES_NO_OPTIO
N,
YES_NO_CANCEL_OPTION: si, no y JOptionPane.PLAIN_MESSAG
cancelar. E);
YES_NO_OPTION: si y no.
o showConfirmDialo
g(parentCompone es igual que el anterior pero if
nt, message, title, indicándole el tipo de mensaje (codigo==JOptionPane.YES_
optionType, (advertencia, error o OPTION){
messageType información), se definen igual
que en el primer método que
hemos visto. [Link]("Has
pulsado en SI");
}else
if(codigo==JOptionPane.NO_
OPTION){
[Link]("Has
pulsado en NO");
Es importante nombrar algunos de los métodos convertidores de la clase cadena (String) a tipo de dato
nativo ligados a sus respetivas clases como [Link](cadena); [Link](cadena) ;
[Link](cadena).
45
2.3 APLICACIÓN DE LA ORIENTACIÓN A OBJETOS EN EL
LENGUAJE JAVA Y EL MODELADO EN DIAGRAMA DE CLASE
Y CASO DE USO.
Explorar herramientas que permiten una interpretación, diseño y modelado para la elaboración
de aplicaciones en pro de una metodología de orientación a Objeto por medio de proyectos, aplicándolos
adecuadamente el desarrollar software.
La orientación a objetos es una técnica de modelado de sistemas, que pueden ser o no computacionales.
Mediante la orientación a objetos se obtiene una representación del problema en cuestión,
representación cercana a como ocurre en el mundo real. Es decir, estamos rodeados de objetos, alumno,
profesor, escuela, estos objetos a su vez interactúan entre ellos para obtener servicios unos de otros. En
la orientación a objetos se tienen también objetos similares a los de la realidad que también reciben y
solicitan servicios unos de otros.
“El entendimiento del sistema es más fácil dado que la diferencia semántica entre el
sistema y la realidad es reducida.”
46
transfieren los atributos y los métodos (variables o características en algoritmos y los subprogramas)
propia para compartir y extender, se considera esta clase como un molde de la cual se definen uno o
más copias (duplicados) que son en la aplicación los Objetos quienes se caracterizan por permitir el
acceso a las propiedades (atributos) y al comportamiento(métodos).
Es notable la existencia de la herencia múltiple pero no aplica en java. Un ejemplo continuando con el
automóvil descripto en la abstracción, sus componentes agrupados a nivel superior seria vehículo, la clase
automóvil que heredaría sus características y procedimientos. Teniendo más elementos en la abstracción
se toman los vehículos terrestre, los aéreos y los acuáticos agrupados pertenecen a la superclase
vehículo, por tanto el automóvil sería una subclase herencia simple de los vehículos terrestres, luego la
clase que agrupa los vehículos anfibios heredaría de dos clases la terrestre y la acuática en nuestra
descripción.
[Link] ELEMENTOS FUNDAMENTALES DE LA ORIENTACIÓN A OBJETOS
Apoyados en (Booch, 1995) “una clase es un conjunto de objetos que comparten una
estructura y un comportamiento común. Un objeto es una instancia de una clase”.
Jacobson describe a una clase como “una definición, una plantilla o molde para habilitar
la creación de nuevos objetos y”…” describe la estructura interna de estos objetos.
Entonces, una clase es una descripción de un grupo de objetos que comparten propiedades
comunes (atributos), comportamiento común (operaciones) y asociaciones con otros objeto
tomemos como ejemplo, la computadora en la cual esté usted trabajando es una instancia de la
clase que describe a todas las computadoras personales, que podría llamarse “Computadora
Personal”, tiene una estructura de información que incluye su marca, velocidad, espacio en disco,
memoria, entre otros Tiene comportamientos como encenderse, permanecer en espera,
apagarse, bloquearse, aumentar la memoria, segmentar el disco duro, etc. Tiene asociaciones
de agregación con otros objetos como el ratón o la impresora.
Un objeto es una entidad lógica que contiene datos (características) y un código especial (métodos) que
indica como manipular los datos.
Objetos son entidades o duplicados de las clases que combinan estado (atributo),
comportamiento (método) e identidad bien estructurada, se conforman con el fin de solicitar o
enviar mensajes. Se conforman con un identificador de clase (tipo de clase nombre de objeto
tipo clase) luego se instancia.
“un objeto tiene límites definidos tales como estado, comportamiento e identidad”
El estado de un objeto es una de las posibles condiciones en las que un objeto puede existir,
normalmente cambia en el tiempo, es implementado por un conjunto de propiedades (atributos),
los valores de éstos, y las relaciones que el objeto puede tener con otros objetos.
Cada objeto tiene una identidad única, incluso cuando se encuentra en el mismo estado que otro
objeto.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
47
Por ejemplo, en la siguiente imagen tenemos 4 objetos. ¿Cuántas clases puede distinguir?
Las clases se encuentran en los documentos del proyecto, requerimientos, casos de uso,
entrevistas con el cliente, experiencia en proyectos similares, etc.
Clase
Atributos
operaciones
Clase
LA ABSTRACCIÓN permite extraer (comprender) del problema o del mundo real las variables o
características que solo son útiles al momento de solucionarlo, determinando inclusive su
tipología, su delimitación, su estado y comportamiento sin especificar como se ha de realizar la
implementación en relación al algoritmo.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
48
Un ejemplo para comprender la abstracción de un Automóvil seria por ejemplo algunas de sus
características: marca, placa, color, fecha de fabricación, modelo igual obtenemos sus métodos
o funciones típicas de esta entidad como por ejemplo: frenar, encender, acelerar, parar; de esta
forma se obtendría la definición de variables para la algoritmia luego del análisis.
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como sea posible de la
aplicación en sí y de las restantes partes (bajo acoplamiento).
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
49
El Módulo A depende del Módulo B si cualquier cambio en el Módulo B implica que el
Módulo A también tenga que ser modificado. A veces se dice que el Módulo A es un
cliente del Módulo B, o que el Módulo B actúa como servidor del Módulo A.
50
Estado está compuesto de datos, atributos a los que se habrán asignado unos
valores concretos.
Para el nombre de atributo placa se le asigna un valor “placa1” tipo cadena por medio del objeto entidad
objetoauto1 que le envió un mensaje a través del método constructor de la clase Automóvil.
Comportamiento definido por procedimientos o métodos con que puede operar dicho objeto, es decir,
qué operaciones se pueden realizar con él.
Otro:
Por ejemplo, un método llamado mostrar () puede responder de manera distinta dependiendo de quién
lo invoque.
SOBRECARGA cuando los métodos poseen la misma identificación pero sus parámetros varían en
sus tipos respectivos, su ubicación y en número.
Es el uso de dos o más métodos dentro de una misma clase para diferentes objetivos,
estos pueden llevar los mismos parámetros o diferentes
51
PERSISTENCIA: cuando se define la duración del almacenamiento en memoria de los diferentes
identificadores como temporal (solo mientras esta la aplicación), dinámica (una duración moderada por
asignación interna) o permanente (dura por fuera de la aplicación como en archivos o en base de datos).
Los modelos son valiosos por muchas razones específicas, en gran parte, constan de
imágenes e incluso, las imágenes simples pueden transmitir más información que una gran cantidad de
texto. Los modelos son valiosos porque es más fácil dibujar algunas imágenes sencillas que escribir código
o incluso texto que describa lo mismo, además es más económico, rápido y fácil de cambiar
modelos que cambiar código o texto.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
52
El UML es una definición de un lenguaje de símbolos y relaciones comunes que tiene
un significado común, si todos los participantes hablan UML, entonces las imágenes tienen el mismo
significado para todo aquello que las observe, por lo tanto, aprender
UML es esencial para ser
capaz de usar imágenes para experimentar económico, flexible y dar rápidas
soluciones.
Los símbolos principales de las cajas de uso son el actor, y el ovalo de la caja de uso, los
diagramas son responsables principalmente de documentar los macro requisitos del sistema,
pensando en la lista de capacidades que debe tener o proporcionar el sistema.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
53
54
55
Los diagramas de clases muestran una vista estática del sistema, no describe los
comportamientos o cómo interactúan los ejemplos de la clase. Para describir los comportamientos y las
interacciones entre los objetos de un sistema, podemos revisar los diagramas de interacción.
56
Los diagramas de secuencia muestran las clases a lo largo de la parte superior y los mensajes enviados
entre esas clases, modelando un solo flujo a través de los objetos del sistema. Los diagramas de
colaboración usan las mismas clases y mensajes, pero organizados en una disposición espacial.
57
Ejemplo (Diagrama de colaboración)
58
59
60
Nombre de clase sin opción de método Sin método main por lo tanto debe digitarlo
package paqueteuno;
// definir variable
int numerounidad;
double preciou;
String
nombreproducto;
double Valorventa;
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
61
//inicializar las
variables asignacion interna
numerounidad= 7;
preciou=345.78;
nombreproducto=
"mango";
//proceso
Valorventa=
numerounidad * preciou;
//salida informe
[Link](
" el nombre del producto es "+
nombreproducto );
[Link](
" el numero de unidades es \t "+
numerounidad);
[Link](
" el precio de cada unidades es
\t "+ preciou);
[Link](
" el valor de la venta es \t "+
Valorventa);
[Link](
"realizado por -----");
}
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
62
La clase scanner presenta unos métodos internos que se pueden referenciar o aplicar en un caso
específico por ejemplo una lectura convirtiendo la captura a numérico doublé como el método
[Link]() obtenido del objeto scanner .
package paqueteuno;
63
import [Link].*;
// definir variable
int numerounidad;
double preciou;
String nombreproducto;
double Valorventa;
// asignacion Externa
//nombreproducto= "mango";
64
preciou=[Link]();
//proceso
//salida informe
Para guardar se realizan los siguientes pasos que se presentan en el siguiente cuadro
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
65
66
Iniciar la exportación del General Archivos de sistema Selecciona todos los archivos Y
proyecto ubicar el directorio
67
68
Para importar
69
Los jar Es crear un archivo (ejecutable) con extensión Jar se construye a partir de la línea de comandos,
sin depender de los IDEs (entorno Integrado de desarrollo) más conocidos como Netbeans o Eclipse. Es
de aclarar que algunos editores tienen su generador de jar.
Primero se debe crear un Archivo de Manifiesto en el cual se deberá poner el nombre de la clase que
contenga el método main, este archivo puede ser creado a partir del Bloc de Notas, entonces se abre el
Notepad (Bloc de Notas) y escribimos lo siguiente:
Main-Class: HolaMundo
Sealed: true
Donde HolaMundo es el Nombre de la Clase que tiene mi método main, una vez escrito eso lo guardamos
con el siguiente nombre en el mismo lugar donde tenemos nuestros archivos .java y .class:
[Link]
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
70
Ahora que tenemos todo listo para construir el .jar vamos a la línea de comandos (CMD) y ejecutamos
la siguiente sentencia:
Se permiten comodines (por ejemplo, para incluir todos los archivos class de la carpeta o que cumplan
con alguna condición dada):
Y finalmente ejecutamos nuestro archivo en la línea de comandos con la siguiente llamada: java -jar
[Link].
Se adjunta una captura de todos los pasos antes mencionados al final del post, para que tengan una mejor
idea del Proceso llevado a cabo, les recuerdo que solo empezamos con los archivos:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
71
Tomado de
[Link]
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
72
3 PISTAS DE APRENDIZAJE
Tenga en cuenta que al manejar medidas de almacenamiento debe saber cuáles son estas, que nombres
reciben y cuáles son sus equivalencias en las otras medidas.
Tenga cuidado cuando convertimos de una medida mayor a una menor se multiplica y cuando
convertimos de una medida menor a una mayor se divide.
No olvide que la mínima medida de medida en informática es el byte y todas las demás medidas se
construyen teniendo esta como base.
Tenga presente que siempre que vaya a realizar una conversión debe saber:
Tenga en cuenta que los juegos lógicos deben ser vistos como algo divertido.
Tenga cuidado al realizar o desarrollar cada juego seguir los pasos indicados.
No olvide leer y entender en consiste cada juego lúdico antes de sentarse a realizarlos o jugarlos.
Tenga presente que con los juegos lúdicos se pretende desarrollar habilidades de pensamiento para
utilizarla en el desarrollo de software.
Tenga en cuenta que el lenguaje Java “Ayudan a resolver” y sistematizar “problemas de la vida real”
Tenga cuidado con el hecho de que la articulación entre los diferentes conceptos de programación y el
lenguaje Java tiene implicaciones de alto impacto en la investigación y desarrollo de software.
No olvide que las teorías de la programación el lenguaje Java constituyen un campo del conocimiento
con límites concretos que comprenden diversas formas de solucionar problemas en el desarrollo de
software.
Tenga presente que al manejar el lenguaje Java deben ser manejados de una manera cauta cada una de
sus estructuras para obtener una buena solución.
Para recordar
73
La clase es un ente real o abstracto posible de ser programado.
Constructor es un método que posee el mismo nombre de la clase y tiene como principio
inicializar el objeto, es posible sobrecargar este método para establecer la asignación interna sin
parámetro y la externa.
A tener en cuenta
POLIMORFISMO cuando dos métodos diferentes tienen igual el nombre en distintos objetos, esto es
posible, pero solo se activara según el accionar o el llamado del mensaje o sea depende del momento de
ejecución que es cuando se le asigna al método correspondiente.
SOBRECARGA cuando los métodos poseen la misma identificación pero sus parámetros varían en sus
tipos respectivos, su ubicación y en número.
74
RECOLECCION DE BASURA consiste en recuperar los espacios de memoria que han sido liberados o
no.
[Link]
La máquina virtual de java garantiza la independencia de la plataforma lo cual permite utilizar el programa
con solo una compilación y una interpretación, con una disminución de rendimiento pero es mejorado
con la tecnología JIT(just in time compilaction) luego generara un código intermedio llamado bytecode,
para ser utilizado en cualquier sistema operativo
Compilación proceso de verificar( detectar errores de sintaxis al transcribir el algoritmo a código del
lenguaje de programación) todo el archivo y si no presenta errores llevarlo a lenguaje de maquina
(binario)
Interprete proceso de verificar( detectar errores de sintaxis al transcribir el algoritmo a código del lenguaje
de programación) línea por línea y si no presenta errores llevarlo a lenguaje de maquina (binario)
El JDK (Java Develpment Kit), kit de desarrollo de java facilita a los programadores de java la elaboración
de aplicaciones (básicas y graficas API ) y applets(para el explorador de internet).
Los directorios son las carpetas que se encuentran en el jdk con su respectiva versión y que contienen
diferentes archivos binarios, documentos librerías, fuentes y demás por ejemplo la carpeta bin que
contiene los archivos ejecutables entre ellos el javac y el java.
Los paquetes se encargan de agrupar las clases con características similares requieren ser importados
para tener disponible dichas clases la orden debe estar al iniciar la aplicación antes de la clase su forma
de escribir es la sentencia (orden) import java. paquete. * ; si coloca el carácter asterisco llamado
comodín se dispondrá de todas las clases que contenga el paquete, si en lugar de * se especifica el nombre
de la clase se dispone únicamente de esta asi import java. paquete. Clase especifica; una lista de paquetes
es la siguiente:
Identificadores son los nombres (formados preferiblemente por caracteres letras no se recomienda
empezar por número) que se le asignan a cada uno de los elementos a utilizar en la aplicación, están
clasificados así: de clase, de método, de variable y de constante
Los caracteres llamados bloques y separadores cumplen una función específica entre otros tenemos:
Abstract, boolean, byte , switch ,class , const, do , double ,else , enumer , extends, final, float, for,
If , import ,int , long, new ,return, short, static, super, this, while
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
75
[Link]
Para captura de datos se debe emplear hasta el momento una clase llamada Scanner que pertenece al
paquete útil, por ser clase tiene unos métodos que le permiten convertir la información tomada desde
el teclado y llevarla a la variable según su tipo el procedimiento será:
Importar el paquete
int contacas = 0;
Ejercicio de Entrenamiento:
Una empresa está dividida en N sedes, cada sede en M secciones y cada sección tiene un número no
determinado de empleado. De cada empleado se conoce nombre, sexo, edad, salario básico y
deducciones.
C). El número de mujeres que ganan más de 4 salarios mínimos por sección
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
76
d). Un mensaje “si existe al menos un empleado hombre que gane más de 20 salarios mínimos” de toda
la empresa
h). El promedio de salarios netos de las mujeres mayores de 18 años por sede y sección.
i). El porcentaje de empleados hombres que ganan menos de dos salarios mínimos por sección.
77
4 GLOSARIO
Tuvo al vacío: es un componente electrónico utilizado para amplificar, conmutar, o modificar una señal eléctrica
mediante el control del movimiento de los electrones en un espacio "vacío" a muy baja presión, o en presencia de
gases especialmente seleccionados.
Transistor: es un dispositivo electrónico semiconductor utilizado para entregar una señal de salida en respuesta a
una señal de entrada.
Circuito integrado: es una combinación de elementos de un circuito que están miniaturizados y que forman parte
de un mismo chip o soporte. La noción, por lo tanto, también se utiliza como sinónimo de chip o microchip.
Procesador: también conocido como CPU o micro, es el cerebro del PC. Sus funciones principales son, entre otras,
la ejecución de las aplicaciones y la coordinación de los diferentes dispositivos que componen el equipo .
Realidad virtual: es por lo general un mundo virtual generado por ordenador (o sistemas informáticos) en el que
el usuario tiene la sensación de estar en el interior de este mundo, y dependiendo del nivel de inmersión este puede
interactuar con este mundo y los objetos del mismo en un grado u otro.
Abaco: Se trata de un cuadro construido con madera que dispone de 10 alambres o cuerdas dispuestos de manera
paralela. Cada uno de estos alambres o cuerdas, a su vez, cuenta con 10 bolas que pueden moverse. El ábaco, por lo
tanto, es un instrumento que ayuda a realizar cuentas y cálculos simples.
Binario: es aquel que numera empleando sólo ceros (0) y unos (1). Esto quiere decir que, en el marco de estos
sistemas, cualquier cifra puede expresarse a partir de estos números. Este sistema es utilizado por
las computadoras u ordenadores, que funcionan con un par de voltajes diferentes y que atribuyen el 0 al apagado
y el 1al encendido.
Decimal: el que utiliza las potencias de 10 como base para escribir números.
Hexadecimal: El sistema hexadecimal (a veces abreviado como Hex, no confundir con sistema) es el sistema de
numeración posicional que tiene como base el 16.
Bit: En informática y otras disciplinas, unidad mínima de información, que puede tener solo dos valores (cero o
uno).
Byte: Conjunto de 8 bits que recibe el tratamiento de una unidad y que constituye el mínimo elemento de memoria
direccionable de una computadora.
Kilobyte: Medida de la capacidad de memoria de una computadora que es igual a 1024 bytes.
Megabyte: Medida de la capacidad de memoria de una computadora que es igual a 1 millón de bytes.
Terabyte: Un terabyte es una unidad de almacenamiento de información cuyo símbolo es el TB, y equivale a 10¹²
bytes.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
78
Sudoku: es un juego que tomo su poderío en Japón a principio de los años 80’s, es una matriz de 9 x 9,
(el formato más clásico de este juego), y consiste en una colección de 9 filas, 9 columnas, y 9 áreas más
pequeñas, en las que no se deben de repetir número, símbolos o letras, la forma más tradicional se trabajó
con números del 1 al 9,
Kakuro: es otro juego de origen Japonés, que nos permite desarrollar habilidades numéricas, en un
proceso similar a un crucigrama, este tiene diferentes tamaños y formas y debe de arrojar un valor que
nos pueda ser útil tanto en filas y columnas, sus principales condiciones es que solo acepta valores entre
el 1 y el 9 sin repetir por bloque de números.
Tangram: es un juego de origen chino, que costa de 7 fichas 5 de ellas triángulos con las que se pretenden
realizar una serie de figuras con la condicional de que no deben sobrar fichas, siempre se deben de utilizar
las 7.
La torre de Hanoi: es una de las más representativas dentro de los aspectos lógicos por su apoyo a la
recursividad, es un juego matemático que a medida que se ubican más discos, estos duplican la cantidad
de movimientos de la opción anterior, si esta se inicia con 3 discos, los movimientos mínimos para
solucionarla es de 7, pero si se colocan 4 discos su solución mínima es de 15 movimientos.
UML: es un lenguaje de Modelos Unificados por sus siglas en inglés, es el lenguaje de modelos de sistemas
de software más popular en la actualidad, es un lenguaje para construir, especificar, visualizar y
documentar sistemas de aplicativos.
Lenguaje de Programación: un sistema estructurado y diseñado principalmente para que las máquinas y
computadoras se entiendan entre sí y con nosotros, los humanos. Contiene un conjunto de acciones
consecutivas que el ordenador debe ejecutar.
Clase: se encarga de definir las propiedades y comportamiento de un tipo de objeto concreto. La instancia
de lectura de estas definiciones y la creación de unos objetos nuevos a partir de ellas.
Herencia: Es la facilidad mediante la cual la clase A comparte en ella cada uno de los atributos y
operaciones de B, como si esos atributos, operaciones y procesos se hubieran definidos en la primera
clase A. en este caso se pueden usar los mismos métodos y variables publicas declaradas en la clase B.
Objeto: entidad compuesta por n conjunto de propiedades o atributos y de métodos, los mismos que a
eventos. Es equivalente a los objetos reales del mundo que nos rodea.
Método: es la parte lógica que se aplica a la programación en cuestión, en el desarrollamos todos los
procesos que el aplicativo requiere, está asociado a un objeto, pero la ejecución de este solo se mediante
un "mensaje". Un método puede producir un cambio en las propiedades del objeto, o la generación de
un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento: Es un suceso que ocurre en el programa, tal como puede ser un clic, un doble clic etc. El sistema
maneja el evento enviando el “mensaje” adecuado al objeto seleccionado.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
79
Mensaje: es la forma de comunicarse con un objeto, mediante este se ordena que ejecute uno de sus
métodos con parámetros asociados al evento que lo generó.
Propiedad o atributo: contiene un tipo de datos relacionado con un objeto, cuyo valor puede ser alterado
por la ejecución de algún método.
Encapsulamiento: Es la característica de reunir a todos los elementos que pueden pertenecer a una
misma entidad, al mismo nivel de abstracción. Se puede definir también como el principio de ocultación,
principalmente porque se suelen emplear conjuntamente.
80
5 BIBLIOGRAFÍA
Fuentes bibliográficas
81
Brassard, G.; Bratley, P. (2012). Fundamentos de algoritmia. Bogota: Prentice Hall.
ALGORITMIA, N. (2008). Algortimos. Obtenido de Estructura de Datos: [Link]
Anton, J; Ribas , L. (2004). Introducción al Desarrollo de Software. Barcelona: Eureca Media.
Booch, G. (1995). Análisis y diseño orientado a objetos con aplicaciones. madrid: Dias de Santos/Addison
Wesley.
Booch, G. (2001). Analisis y diseño orientado a Objetos con aplicaciones. mexico: s.a Alhambra mx.
Caceres, D. (04 de 04 de 2008). NTRODUCCIÓN PRÁCTICA AL DESARROLLO DE SOFTWARE DIRIGIDO POR
MODELOS. Obtenido de
[Link]
Castiblanco, J. ((2010). Historia De La Pc. Obtenido de [imagen]:
[Link]
Deitel, P. J., & Deitel, H. M. (2008). Java como programar. mex: pearson prentice hall 139789702611905.
DumitruAlcantara. (2011). Unidades de almacenamiento en informática. Obtenido de [Imagen]:
[Link]
Evitts, P. (2000). UML Pattern Language, A. United States: New Riders Publishing.
Geraldine. (2012). Historia y evolución del Pc. Obtenido de [imagen]: [Link]
Gonzalez, R. (2010). Mapa Conceptual Programación. Obtenido de
[Link]
Ihmc, T. (2014). Mapa Conceptual Programación Orientada a Objetos. Obtenido de
[Link]
rientada%20a%[Link]
Jabry. (2014). Mapa mental conceptual que explique la materia de fundamentos de programación.
Obtenido de [Link]
Johaspot. (7 de 10 de 2010). LA INGENIERIA DE SISTEMAS EN LA ACTUALIDAD. Obtenido de
[Link]
Joyannes, L. (2003). Fundamentos de Programación. Algoritmos y Estructuras de Datos y Objetos. Ed.
McGraw-Hill.
Latina, O. (2011). Guia de UML. Obtenido de [Link]
Matemáticas, F. (2014). Sistema de numeración - un concepto / opinión personal. Obtenido de
[Imagen]: [Link]
Modeller, T. c. (s.f.). Elementos de UML. Obtenido de Diagrama de casos de uso:
[Link]
nafsther0784. (2011). Mapa Conceptual UML. Obtenido de
[Link]
Page-Jones, M; Wesley, A;. (2000). Fundamentals of Object-Oriented Design in UML. Massachusetts.
Peláez, J. (2007). Análisis Y Diseño De Algoritmos: Un Enfoque Teórico Y Práctico. Malaga España:
Intercambio Científico.
Pico, P. (02 de 2013). Definición de ingeniería de sistemas. Obtenido de
[Link]
Rodríguez, C. (28 de 07 de 2003). Ejemplo de desarrollo software Utilzando la Metodología RUP.
Obtenido de Desarrollo de un Sistema para la Gestión de Articulos Deportivos:
[Link]
Schneider, G; Winter, J; . (2001). Applying Use Cases. Boston: Pearson Education, Inc.
Torres, G. (2011). Mapa Conceptual Programación. Obtenido de [Link]
Tremblay, J; Karl, W;. (2010). Fundamentos de Programación. Pearson Education.
INTRODUCCIÓN AL DESARROLLO DE SOFTWARE
INGENIERÍA DE SISTEMAS
82
Unad. (2014). Mapa Conceptual Del Curso Académico De Lógica Formal Y Simbólica. Obtenido de
[imagen]: [Link]
Unad. (s.f.). Actualidad de la Ingeniería en Colombia. Obtenido de
[Link]
n_colombia_2.html