repaso desarrollo de software parte #14.1_repaso_desarrollo_… · conversión de tipos manejo...
Post on 06-Oct-2020
1 Views
Preview:
TRANSCRIPT
1/55
Repaso desarrollo de softwareParte #1
Jorge Iván Meza Martínezjimezam@gmail.com
Especialización en Gestión de Redes de DatosUniversidad Nacional de Colombia – Sede Manizales
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
3/55
Desarrollo de software
Recibe un problema oSituación
Planea una solución
Realiza una implementación computacionalHardware / software
4/55
Modelo de desarrollo en cascada
Análisis
Diseño
Implementación
Pruebas
ImplantaciónMantenimiento
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.
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.
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.
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.
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
10/55
Implementación lenguajes dependientes de plataforma
HardwareHardware
Sistema OperativoSistema Operativo
Archivo ejecutable (*.exe)Archivo ejecutable (*.exe)
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
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)
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
14/55
Monolítico
vs.
Modular
15/55
Modularidad
Diseño
Implementación
● Acoplamiento● Cohesión
16/55
Paradigmas de programación
Programación imperativa o procedimental
Programación orientada a objetos
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
18/55
Comentarios
// …
/* … */
/** … */
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.
20/55
Palabras reservadas
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
22/55
Tipos de datos
● Booleanos– boolean
● Caracter– char
● Cadenas– String
23/55
Variables
int x;
x = 10;
int y = x;
24/55
Operadores aritméticos
*/%+
25/55
Operadores Unarios
+++~!
(casting)
26/55
Operadores de bits
<<>>>>>
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.
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
29/55
Arreglos n-dimensionales
int[] a;
a = new int[100];
a[5] = 77;
int x = a[5];
30/55
Arreglos n-dimensionales
for (int i=0; i<a.length; i++){a[i] = 0;
}
31/55
Condicionales
if(expresión){}else{}
32/55
Operadores de relación
<><=>=
instanceof==!=
33/55
Operadores lógicos
&&
||
^
34/55
Expresiones compuestas para condicionales
if(x > 3 && (a + 1 <= c || d != !k)){}
35/55
Condicionales
switch(variable){case v1: // …break;
case v2: // …break;
// …
default: // …break;
}
36/55
Iteraciones
for(variable; condición; aumento){}
37/55
Iteraciones
for(int x=0; x<10; x++){System.out.println(x);
}
38/55
Iteraciones
while (condición){}
39/55
Iteraciones
do{} while (condición);
40/55
Ruptura
for(int i=0; i<10; i++){if(i == 5)break;
System.out.println(i);}
41/55
Salto
for(int i=0; i<10; i++){if(i == 5)continue;
System.out.println(i);}
42/55
Unidad mínima de compilación Java
// package
// imports
public class MiClase{public static void main(String[] args){// ...
}}
43/55
Hola Mundo
public class HelloWorld{public static void main(String[] args){System.out.println(“Hello World“);
}}
HelloWorld.java
44/55
Compilar y ejecutar
$ javac HelloWorld.java
$ java HelloWorld
45/55
Flujos de E/S del sistema
System.in
System.out
System.err
46/55
Salida
System.out.print(““)System.out.println(““)
System.err.print(““)System.err.println(““)
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!
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);
}}
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);
50/55
Conversión de tipos: String → otros
String str = "This is so wrong!";
int i = Integer.parseInt(str);
System.out.println("Integer: " + i);
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)
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)
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());
}
54/55
Conversión de tipos: otros → String
int x = 50;
String str1 = new Integer(x).toString();
String str2 = x + ““;
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.
top related