repaso desarrollo de software parte #14.1_repaso_desarrollo_… · conversión de tipos manejo...

55
1/55 Repaso desarrollo de software Parte #1 Jorge Iván Meza Martínez [email protected] Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia – Sede Manizales

Upload: others

Post on 06-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

1/55

Repaso desarrollo de softwareParte #1

Jorge Iván Meza Martí[email protected]

Especialización en Gestión de Redes de DatosUniversidad Nacional de Colombia – Sede Manizales

Page 2: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

2/55

Contenido

● Concepto desarrollo de software● Modelo de desarrollo en cascada● In/dependencia de plataforma● Concepto de algoritmo y sus elementos● Unidad mínima de compilación en Java● Manejo de la E/S estándar● Conversión de tipos● Manejo básico de excepciones

Page 3: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

3/55

Desarrollo de software

Recibe un problema oSituación

Planea una solución

Realiza una implementación computacionalHardware / software

Page 4: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

4/55

Modelo de desarrollo en cascada

Análisis

Diseño

Implementación

Pruebas

ImplantaciónMantenimiento

Page 5: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

5/55

Análisis

● Se identifica y entiende el problema (requisitos o requerimientos).

● Qué es lo que me están solicitando ? Qué es lo que está sucediendo ?

● Se realiza en el mundo real.● No incluye entidades computacionales a no ser que

estas hagan parte intrínseca de la situación.● No incluye ningún tipo de solución al problema.

Page 6: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

6/55

Diseño

● Se planean diferentes soluciones al problema recién identificado y se elige la idónea.

● Cómo voy a solucionar el problema planteado ?● Puede o no incluír entidades computacionales como

bases de datos, conexiones cliente-servidor, etc que hagan parte de la solución.

● No debería estar ligado a un lenguaje de programación específico.

● Especifica las partes funcionales de la solución y como se relacionan entre ellas.

Page 7: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

7/55

Implementación

● Llevar a cabo la solución propuesta en el diseño en un lenguaje de programación específico.

● Se escribe el código fuente del programa para generar finalmente el ejecutable.

● En las etapas de diseño e implementación se debe tener en cuenta la modularidad para lograr la máxima reutilización posible.

● Comúnmente se utiliza un ambiente integrado de desarrollo (IDE) para facilitar este etapa.

Page 8: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

8/55

Pruebas

● Garantizar que lo implementado está correcto.– Lo que hace lo hace bien: sus salidas corresponden

con sus entradas y el tipo de operación realizada.

– Hace lo que tenía que hacer: satisface los requisitos.

● Existen varios tipos de pruebas.– Pruebas funcionales → usuario

– Pruebas unitarias

– Pruebas de aceptación

– Pruebas de regresión

– Etc.

Page 9: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

9/55

Implementación lenguajes dependientes de plataforma

CompiladorCompilador

EnlazadorEnlazador

Código fuente (*.c)Código fuente (*.c)

Código objeto (*.o)Código objeto (*.o)

Archivo ejecutable (*.exe)Archivo ejecutable (*.exe)

gcc

ld

Page 10: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

10/55

Implementación lenguajes dependientes de plataforma

HardwareHardware

Sistema OperativoSistema Operativo

Archivo ejecutable (*.exe)Archivo ejecutable (*.exe)

Page 11: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

11/55

Implementación lenguajes independientes de plataforma

CompiladorCompilador

Código fuente (*.java)Código fuente (*.java)

Código objeto (*.class)Código objeto (*.class)javac

EmpaquetadorEmpaquetador

Paquete distribuíble (*.jar)Paquete distribuíble (*.jar)jar

Page 12: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

12/55

Implementación lenguajes independientes de plataforma

HardwareHardware

Sistema OperativoSistema Operativo

Código objeto (*.class)Código objeto (*.class)

Java Virtual Machine (JVM)Java Virtual Machine (JVM)

Page 13: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

13/55

Implementación lenguajes independientes de plataforma

HardwareHardware

Sistema OperativoSistema Operativo

Código objeto (*.class)Código objeto (*.class)

Java Virtual Machine (JVM)Java Virtual Machine (JVM)

Middleware

Bytecodes

Page 14: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

14/55

Monolítico

vs.

Modular

Page 15: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

15/55

Modularidad

Diseño

Implementación

● Acoplamiento● Cohesión

Page 16: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

16/55

Paradigmas de programación

Programación imperativa o procedimental

Programación orientada a objetos

Page 17: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

17/55

Algoritmo

● Una serie de pasos ordenados para realizar una tarea específica.

● Puede contener los siguientes elementos.– Expresiones → representan un valor

– Sentencias → representan algo que hacer

– Variables

– Funciones

– Objetos

– Clases

Page 18: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

18/55

Comentarios

// …

/* … */

/** … */

Page 19: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

19/55

Identificadores

● Sirven para nombrar entidades computacionales.● Su nombre debe empezar con una letra del alfabeto

o los carácteres especiales $ o _.

● El resto del nombre puede tener dígitos, letras o los carácteres mencionados.

Page 20: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

20/55

Palabras reservadas

Page 21: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

21/55

Tipos de datos

● Numéricos– Valor entero

● byte  (8 bits)● short (16 bits)● int  (32 bits)● long  (64 bits)

– Valor de punto flotante● float● double

Page 22: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

22/55

Tipos de datos

● Booleanos– boolean

● Caracter– char

● Cadenas– String

Page 23: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

23/55

Variables

int x;

x = 10;

int y = x;

Page 24: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

24/55

Operadores aritméticos

*/%+­

Page 25: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

25/55

Operadores Unarios

++­­+­~!

(casting)

Page 26: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

26/55

Operadores de bits

<<>>>>>

Page 27: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

27/55

Arreglos n-dimensionales

● Pueden almacenar una cantidad finita de valores.● Su tamaño no se puede modificar una vez definido.● Todos los elementos deben ser del mismo tipo de

datos.● Sus elementos se acceden a través de un índice

entero que empieza en cero (0).● Pueden tener varias dimensiones: 1 → arreglos, 2 →

matrices, …● Su longitud se puede consultar con el atributo length.

Page 28: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

28/55

Arreglos n-dimensionales

int v;

int[] a = new int[5];

10

10 20 30 40 50

0      1      2      3      4

length = 5

Page 29: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

29/55

Arreglos n-dimensionales

int[] a;

a = new int[100];

a[5] = 77;

int x = a[5];

Page 30: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

30/55

Arreglos n-dimensionales

for (int i=0; i<a.length; i++){a[i] = 0;

}

Page 31: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

31/55

Condicionales

if(expresión){}else{}

Page 32: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

32/55

Operadores de relación

<><=>=

instanceof==!=

Page 33: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

33/55

Operadores lógicos

&&

||

^

Page 34: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

34/55

Expresiones compuestas para condicionales

if(x > 3 && (a + 1 <= c || d != !k)){}

Page 35: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

35/55

Condicionales

switch(variable){case v1: // …break;

case v2: // …break;

// …

default: // …break;

}

Page 36: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

36/55

Iteraciones

for(variable; condición; aumento){}

Page 37: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

37/55

Iteraciones

for(int x=0; x<10; x++){System.out.println(x);

}

Page 38: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

38/55

Iteraciones

while (condición){}

Page 39: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

39/55

Iteraciones

do{} while (condición);

Page 40: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

40/55

Ruptura

for(int i=0; i<10; i++){if(i == 5)break;

System.out.println(i);}

Page 41: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

41/55

Salto

for(int i=0; i<10; i++){if(i == 5)continue;

System.out.println(i);}

Page 42: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

42/55

Unidad mínima de compilación Java

// package

// imports

public class MiClase{public static void main(String[] args){// ...

}}

Page 43: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

43/55

Hola Mundo

public class HelloWorld{public static void main(String[] args){System.out.println(“Hello World“);

}}

HelloWorld.java

Page 44: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

44/55

Compilar y ejecutar

$ javac HelloWorld.java

$ java HelloWorld

Page 45: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

45/55

Flujos de E/S del sistema

System.in

System.out

System.err

Page 46: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

46/55

Salida

System.out.print(““)System.out.println(““)

System.err.print(““)System.err.println(““)

Page 47: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

47/55

Entrada estándar: Consoleimport java.io.Console;

class Greetings{

public static void main(String[] args){

Console cons = System.console();

System.out.print("What's your name ? "); 

String name = cons.readLine();

System.out.println("Oh, your name is " + name);

}}

No es compatible con el ambiente de Netbeans!

Page 48: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

48/55

Entrada estándar: Scannerimport java.util.Scanner;

class Greetings{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.print("What's your name ? "); 

String name = sc.nextLine();

System.out.println("Oh, your name is " + name);

}}

Page 49: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

49/55

Conversión de tipos: String → otros

String s0 = "10";String s1 = "5.123";String s2 = "true";

int i     = Integer.parseInt(s0);float f   = Float.parseFloat(s1);boolean b = Boolean.parseBoolean(s2);

System.out.println("Integer: " + i);System.out.println("Float: "   + f);System.out.println("Boolean: " + b);

Page 50: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

50/55

Conversión de tipos: String → otros

String str = "This is so wrong!";

int i = Integer.parseInt(str);

System.out.println("Integer: " + i);

Page 51: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

51/55

Conversión de tipos: String → otros

Exception in thread "main" java.lang.NumberFormatException: For input string: "This is so wrong!"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:492)at java.lang.Integer.parseInt(Integer.java:527)at TypeConv.main(TypeConv.java:9)

Page 52: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

52/55

Exceptions!

Exception in thread "main" java.lang.NumberFormatException: For input string: "This is so wrong!"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:492)at java.lang.Integer.parseInt(Integer.java:527)at TypeConv.main(TypeConv.java:9)

Page 53: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

53/55

Manejo de excepciones

String str = "This is so wrong!";

try{

int i = Integer.parseInt(str);

System.out.println("Integer: " + i);}catch(NumberFormatException e){

System.out.println("Error convirtiendo: " +e.getMessage());

}

Page 54: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

54/55

Conversión de tipos: otros → String

int x = 50;

String str1 = new Integer(x).toString();

String str2 = x + ““;

Page 55: Repaso desarrollo de software Parte #14.1_repaso_desarrollo_… · Conversión de tipos Manejo básico de excepciones. 3/55 Desarrollo de software Recibe un problema o Situación

55/55

Actividad

Desarrollar una aplicación en Java que solicite al usuario la cantidad de estudiantes del curso, por cada uno de ellos solicite su edad y la almacene en un arreglo. Finalmente calcule el índice del alumno mas jóven, el promedio de las edades e imprima las edades ingresadas.