Bom dia, estou com essa questão pra resolver, esta sendo um desáfio, mas preciso de ajuda.
Questão Única
Você foi contratado(a) para criar um software para gerência de projetos de desenvolvimento de
sistemas. O software irá controlar tarefas que precisam ser feitas e em que fases estas estão. As
fases são: BACKLOG (repositório de tarefas a serem feitas), TODO (selecionadas para serem feitas
num período, como em 1 semana ou 1 mês), DOING (tarefas que estão sendo executadas num dado
momento), e DONE (tarefas concluídas). Observe que há um fluxo a ser seguido: BACKLOG →
TODO → DOING → DONE e esse fluxo deve ser respeitado. Ou seja, uma tarefa não pode pular
etapas. Logo, a ideia é automatizar o comportamento, algo que costuma ser feito manualmente.
Como ponto de partida, o cliente forneceu para você um código base tendo como tarefas a
realização das ADs do CEDERJ. Este estudo de caso serve como exemplo porque o fluxo básico de
tarefas de desenvolvimento de sistemas e tarefas do dia-a-dia são similares:
class Board {
static int BACKLOG = 0;
static int TODO = 1;
static int DOING = 2;
static int DONE = 3;
String labels[] = {"BACKLOG", "TODO", "DOING", "DONE"};
Phase phase[] = new Phase[4];
public Board() {
for (int i=0; i<4; i++)
phase[i] = new Phase();
}
public void add(Card c) {
phase[BACKLOG].adiciona(c);
}
public void prepare(Card c) {
phase[BACKLOG].remove(c);
phase[TODO].adiciona(c);
}
public void start(Card c) {
phase[TODO].remove(c);
phase[DOING].adiciona(c);
}
public void finish(Card c) {
phase[DOING].remove(c);
phase[DONE].adiciona(c);
}
public String toString() {
String saida = "";
for (int i=0; i<4; i++)
saida += labels[i] + "\n" + phase[i].toString() + "\n";
return saida;
}
}
public class AD1_2023_2 {
public static void main(String[] args) {
Board semestre2023_2 = new Board();
Card fazerAD1 = new Card("Fazer a AD1");
semestre2023_2.add(fazerAD1);
Card fazerAD2 = new Card("Fazer a AD2");
semestre2023_2.add(fazerAD2);
System.out.println(semestre2023_2);
semestre2023_2.prepare(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.start(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.finish(fazerAD1);
System.out.println(semestre2023_2);
}
}
A classe Board representa um quadro de controle similar à ilustração apresentada a seguir:
Além desta classe, são usadas também as classes Phase e Card. A implementação dessas duas
classes é o que o cliente lhe pediu e ele exige que sua implementação seja completamente
compatível com o código fonte fornecido.
Pergunta
Gustavo Ferreira
Bom dia, estou com essa questão pra resolver, esta sendo um desáfio, mas preciso de ajuda.
Questão Única
Você foi contratado(a) para criar um software para gerência de projetos de desenvolvimento de
sistemas. O software irá controlar tarefas que precisam ser feitas e em que fases estas estão. As
fases são: BACKLOG (repositório de tarefas a serem feitas), TODO (selecionadas para serem feitas
num período, como em 1 semana ou 1 mês), DOING (tarefas que estão sendo executadas num dado
momento), e DONE (tarefas concluídas). Observe que há um fluxo a ser seguido: BACKLOG →
TODO → DOING → DONE e esse fluxo deve ser respeitado. Ou seja, uma tarefa não pode pular
etapas. Logo, a ideia é automatizar o comportamento, algo que costuma ser feito manualmente.
Como ponto de partida, o cliente forneceu para você um código base tendo como tarefas a
realização das ADs do CEDERJ. Este estudo de caso serve como exemplo porque o fluxo básico de
tarefas de desenvolvimento de sistemas e tarefas do dia-a-dia são similares:
class Board {
static int BACKLOG = 0;
static int TODO = 1;
static int DOING = 2;
static int DONE = 3;
String labels[] = {"BACKLOG", "TODO", "DOING", "DONE"};
Phase phase[] = new Phase[4];
public Board() {
for (int i=0; i<4; i++)
phase[i] = new Phase();
}
public void add(Card c) {
phase[BACKLOG].adiciona(c);
}
public void prepare(Card c) {
phase[BACKLOG].remove(c);
phase[TODO].adiciona(c);
}
public void start(Card c) {
phase[TODO].remove(c);
phase[DOING].adiciona(c);
}
public void finish(Card c) {
phase[DOING].remove(c);
phase[DONE].adiciona(c);
}
public String toString() {
String saida = "";
for (int i=0; i<4; i++)
saida += labels[i] + "\n" + phase[i].toString() + "\n";
return saida;
}
}
public class AD1_2023_2 {
public static void main(String[] args) {
Board semestre2023_2 = new Board();
Card fazerAD1 = new Card("Fazer a AD1");
semestre2023_2.add(fazerAD1);
Card fazerAD2 = new Card("Fazer a AD2");
semestre2023_2.add(fazerAD2);
System.out.println(semestre2023_2);
semestre2023_2.prepare(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.start(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.finish(fazerAD1);
System.out.println(semestre2023_2);
}
}
A classe Board representa um quadro de controle similar à ilustração apresentada a seguir:
Além desta classe, são usadas também as classes Phase e Card. A implementação dessas duas
classes é o que o cliente lhe pediu e ele exige que sua implementação seja completamente
compatível com o código fonte fornecido.
package Application;
import Entities.Board;
import Entities.Card;
import Entities.Phase;
public class Program {
public static void main(String[] args) {
Board semestre2023_2 = new Board();
Card fazerAD1 = new Card("Fazer AD1");
semestre2023_2.add(fazerAD1);
Card fazerAD2 = new Card("Fazer AD2");
semestre2023_2.add(fazerAD2);
System.out.println(semestre2023_2);
semestre2023_2.prepare(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.start(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.finish(fazerAD1);
System.out.println(semestre2023_2);
}
}
package Entities;
public class Board {
static int BACKLOG = 0;
static int TODO = 1;
static int DOING = 2;
static int DONE = 3;
String labels[] = {"BACKLOG", "TODO" , "DOING", "DONE"};
Phase phase [] = new Phase[4];
public Board() {
for (int i=0; i<4; i++)
phase[i] = new Phase();
}
public void add(Card c) {
phase[BACKLOG].adiciona(c);
}
public void prepare(Card c) {
phase[BACKLOG].remove(c);
phase[TODO].adiciona(c);
}
public void start (Card c) {
phase[TODO].remove(c);
phase[DOING].adiciona(c);
}
public void finish(Card c) {
phase[DOING].remove(c);
phase[DONE].adiciona(c);
}
public String toString() {
String saida = "";
for (int i=0; i<4; i++)
saida +=labels[i] + "\n" + phase[i].toString() + "\n";
return saida;
}
package Entities;
public class Card {
private String title;
public Card(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
@Override
public String toString() {
return title;
}
public void add(Card card) {
// TODO Auto-generated method stub
}
}
package Entities;
public class Phase {
private List<Card> cards = new ArrayList<>();
public void adiciona(Card card) {
card.add(card);
}
public void remove(Card c) {
}
@Override
public String toString() {
StringBuilder phaseContent = new StringBuilder();
for (Card card: cards) {
phaseContent.append(card.getTitle()).append("\n");
}
return phaseContent.toString();
}
}
ERRO DE EXECUÇÃO.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
List cannot be resolved to a type
ArrayList cannot be resolved to a type
List cannot be resolved to a type
at Entities.Phase.<init>(Phase.java:6)
at Entities.Board.<init>(Board.java:16)
at Application.Program.main(Program.java:11)
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.