Sunteți pe pagina 1din 13

CLASH OF CLANS

1) Comunicación: El objetivo era lanzar un juego que hiciera competencia a los


videojuegos famosos de ese año (2012). La idea fue colocar un juego de estrategia en
tiempo real al más puro estilo del mítico juego age of empires ya que no existía nada
similar hasta el momento, que nadie le hiciese la competencia en el mercado y que fuera
gratuito.
Requerimientos:
 Estrategia tiempo real
 gratuito
 iOS & Android

2) Planeacion o plan del proyecto de software

Descripción: Se trata de un épico juego compuesto de combate y estrategia, donde


deberemos construir nuestra aldea, entrenar a nuestras tropas y vencer al resto de
jugadores basado en dos sistemas operativos móviles que son iOS & Android.

Definir Costos:

 Podemos usar modelos económicos como COCOMO para estimar el costo


 Realizar un análisis detallado de los software que actualmente existen y basarnos
en un estimado dependiendo la herramienta a utilizar para el desarrollo
 Evaluar la cantidad de recursos humanos que se utilizaran para el software
Tareas Técnicas

Recolección de Datos:

 Revisión Documental
 Cuestionario Abierto & Cerrado
 Encuestas
Exhaustivas y parciales
Directas o indirectas
Hechos y encuestas de opinión
 Entrevistas

Recursos

 Recursos Humanos

Gerente de Proyecto
Líder de Proyecto
Analista de Sistemas
Diseñador
Ingeniero de Software
Responsable de Calidad
Responsable de Pruebas
Administrador de la Configuración del Proyecto

 Herramientas de Software.

Sistema operativo iOS & Android


Desarrollo en Appcelerator Titanium.

Riegos del Proyecto

 Las estimaciones y pronósticos de costo son inexactos.


 Las partes interesadas desarrollan expectativas inexactas (creer que el
proyecto va a lograr algo que no está en los requisitos, planes, etc.).
 Los usuarios tienen expectativas inexactas.
 La formación del personal es inadecuada o no basada en experiencia
profesional.
 La arquitectura es de baja calidad.
 Viabilidad del proyecto.
Cronograma de Actividades
3) Modelado
4) Construcción
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label_a"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Operando A:"/>
<EditText
android:id="@+id/op_a"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label_a"/>
<TextView
android:id="@+id/label_b"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/op_a"
android:text="Operando B:"/>
<EditText
android:id="@+id/op_b"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label_b"/>
<Button
android:id="@+id/sumar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/op_b"
android:layout_alignParentLeft="true"
android:layout_marginLeft="1dip"
android:onClick="cSumar"
android:text="+" />
<Button
android:id="@+id/restar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/sumar"
android:layout_alignTop="@id/sumar"
android:onClick="cRestar"
android:text="-" />
<Button
android:id="@+id/multiplicar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/restar"
android:layout_alignTop="@id/restar"
android:onClick="cMultiplicar"
android:text="*" />
<Button
android:id="@+id/dividir"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/multiplicar"
android:layout_alignTop="@id/sumar"
android:onClick="cDividir"
android:text="/" />
<TextView
android:id="@+id/texto_resultado"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/dividir"
android:text="Resultado:"/>
<TextView
android:id="@+id/resultado"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/texto_resultado"
android:text="Realice operación para obtener
resultado"/>
</RelativeLayout>
package com.android.calculadora;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;

public class Calculadora extends Activity {

// Instancias de objetos a usar


private double valor_a, valor_b;
private EditText op_a, op_b;
private TextView resultado;

public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Asignamos los objetos


this.op_a = (EditText) findViewById(R.id.op_a);
this.op_b = (EditText) findViewById(R.id.op_b);
this.resultado = (TextView)
findViewById(R.id.resultado);
}

public void cSumar(View view) {


if(this.op_a.getText().toString().length() > 0 &&
this.op_b.getText().toString().length() > 0) {
this.valor_a =
Double.parseDouble(this.op_a.getText().toString());
this.valor_b =
Double.parseDouble(this.op_b.getText().toString());
this.resultado.setText(Double.toString((this.valor_a +
this.valor_b)));
}
}

public void cRestar(View view) {


if(this.op_a.getText().toString().length() > 0 &&
this.op_b.getText().toString().length() > 0) {
this.valor_a =
Double.parseDouble(this.op_a.getText().toString());
this.valor_b =
Double.parseDouble(this.op_b.getText().toString());
this.resultado.setText(Double.toString((this.valor_a -
this.valor_b)));
}
}
public void cMultiplicar(View view) {
if(this.op_a.getText().toString().length() > 0 &&
this.op_b.getText().toString().length() > 0) {
this.valor_a =
Double.parseDouble(this.op_a.getText().toString());
this.valor_b =
Double.parseDouble(this.op_b.getText().toString());
this.resultado.setText(Double.toString((this.valor_a *
this.valor_b)));
}
}

public void cDividir(View view) {


if(this.op_a.getText().toString().length() > 0 &&
this.op_b.getText().toString().length() > 0) {
this.valor_a =
Double.parseDouble(this.op_a.getText().toString());
this.valor_b =
Double.parseDouble(this.op_b.getText().toString());
if(this.valor_b != 0) {
this.resultado.setText(Double.toString((this.valor_a /
this.valor_b)));
}
else {
this.resultado.setText("Infinito");
}
}
}
}
5) Despliegue

2 de agosto del 2012


6) Seguimiento y control del proyecto de software

 Vigilar las desviaciones del plan.


 Emprender acciones correctivas.
 Recibir y evaluar cambios en los proyectos solicitados.
 Cambiar los calendarios del proyecto.
 Adaptar los niveles de recursos.
 Cambiar el alcance del proyecto.
 Regresar a la etapa de planeación para hacer ajustes
7) Administración del riesgo

 No compatibilidad con algún sistema operativo android & iOS.


 No conexión estable de internet para los jugadores.
 Bugs que presente el juego al momento de realizar compras con tarjetas.
 Lentitud de la plataforma al momento de ejecutarse.
 Juego con un tamaño de espacio muy grande.

8) Aseguramiento de la calidad del software

 El control de la documentación del software y de los cambios realizados


 Revisiones técnicas formales en el proceso del software.
 Descubrir errores en la función.
 Garantizar que el software ha sido representado de acuerdo con ciertos
estándares predefinidos.

9) Revisiones técnicas

 Análisis y chequeo del código


 Revisión de la matriz
 Rendimiento de la plataforma vs conexión
 Calidad de los fps

10) Medición

De acuerdo a como se comporte el software en un tiempo determinado (6 meses)


se evaluara los puntos anteriores mencionados en revisiones técnicas y en pro de
ellos se implementaran evaluación con la finalidad de implementar una mejora
cada vez más perfecta al usuario.

11) Administración de la configuración del software:

 Manejo, aprobación y seguimiento de las peticiones de cambio.


 Versiones mejoradas para el cliente
 Modificar la versión actual con mejoras para los bugs presentados
12) Administración de la reutilización

Software heredado, de acuerdo a la primera versión lanzada se reutilizara


el mismo diseño o esquemas presentados anteriormente con el ámbito de
mejorar y establecer algo más congruente con el fin de llegar a una
estabilización del software requerido para los usuarios que tengan un
teléfono móvil y eso a futuro implementar más videojuegos del mismo tipo
pero con el cambio de temáticas diferentes.

13) Preparación y producción del producto del trabajo

 Permitir añadir nuevos clientes y gestionar los existentes


 Preparar nuevos presupuestos y consultarlos
 Permitir y gestionar las nuevas órdenes de trabajo como soporte y
mantenimiento de software.

S-ar putea să vă placă și