Questões de Arquitetura de Software - Padrões de projeto (Design Patterns) para Concurso
Foram encontradas 499 questões
A engenharia de software é um a disciplina do
conhecimento humano que aplica princípios da engenharia ao
desenvolvimento de software. N o entanto, existem diferenças
significativas entre as engenharias clássicas — mecânica, civil,
elétrica— e a engenharia de software, muitas delas decorrentes das
diferenças de natureza entre o produto ou sistema resultante da
atividade das engenharias clássicas e a engenharia de software.
A engenharia de software desdobrou-se em várias áreas
especializadas, como as áreas de requisitos de software, de análise
e projeto de software, de implementação de software, de testes de
software, de gestão de configuração, entre outras. N a interface entre
as engenharias clássicas e a de software insere-se a engenharia de
sistemas, abordada colateralmente na ISO/IEC 12207.
O emprego de padrões de projeto reusáveis, como façade, builder e singleton, é uma prática com nível inferior de abstração, quando comparado ao emprego de estilos arquiteturais de software, como camadas, cliente-servidor e peer-to-peer.
I. Visa garantir que uma classe só tenha uma única instância e prover um ponto de acesso global a ela.
II. Visa definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado os seus dependentes sejam notificados e atualizados automaticamente.
Os design patterns descritos em I e II são, respectivamente:
Com base nessas informações, indique o padrão adotado.
O padrão Abstract Factory é corretamente aplicável, quando necessário, para fornecer uma biblioteca de classes e não revelar suas interfaces.
Os padrões de projeto são úteis tanto na fase de planejamento da arquitetura quanto na de desenvolvimento e codificação.
O padrão Prototype pode ser usado no desenvolvimento de programas escritos com a linguagem PHP 5.0, atuando como padrão estrutural que permite construir tanto classes quanto objetos.
O padrão Facade assemelha-se ao Mediator no aspecto em que este abstrai um subsistema de objetos a fim de fornecer uma interface encapsulada na forma como um conjunto de objetos interage entre si.
O padrão Singleton garante que uma classe tenha somente uma instância, fornecendo, assim, um ponto global de acesso a essa instância.
O padrão de projeto que descreve essa estrutura é
package ServiceLayer;
public interface ServiceA {
int srvA1();
int srvA2();
int srvA3();
}
package ServiceLayer;
public interface ServiceB {
int srvB1();
int srvB2();
}
package ServiceLayer;
public class Services {
private Services() {
}
public static ServiceA serviceA() {
return new CL01();
}
public static ServiceB serviceB() {
return new CL01();
}
}
package ServiceLayer;
class CL01 implements ServiceA, ServiceB{
public int srvA1()
{ // código irrelevante }
public int srvA2()
{ // código irrelevante }
public int srvA3()
{ // código irrelevante }
public int srvB1()
{ // código irrelevante }
public int srvB2()
{ // código irrelevante }
}
O trecho de código a seguir mostra como os serviços disponíveis são executados.
{
ServiceA s1=Services.serviceA();
ServiceB s2=Services.serviceB();
s1.srvA1();
s2.srvB1();
// código irrelevante
}
Essa arquitetura usou variações de dois padrões de projeto conhecidos, que são:
de acordo com os conceitos da análise e do projeto orientado a
objetos e tenha sido utilizada, como ferramenta para modelagem, a
UML (Unified Modeling Language), versão 2.0, julgue os próximos
itens.