Question

In: Computer Science

From your research, discuss how the design patterns that you found support a key aspect of software design such as scalability, adaptability, security, dependability, etc.

In your own word write 500–600 words that respond to the following questions on Architectural design patterns, and complete the following:

  • From your research, discuss how the design patterns that you found support a key aspect of software design such as scalability, adaptability, security, dependability, etc.
  • Include specific examples of design decisions that you would make based on the design patterns.

Solutions

Expert Solution

SOFTWARE ARCHITECTURE PATTERNS (610 words)

Software Architecture Patterns are a reusable solution templates to a commonly occurring software engineering problems like computer hardware performance limitations, high availability and minimization of a business risk. Software Architecture Patterns are similar to Software Design Pattern (solution templates for commonly occurring problem within the context in software design) in their general structure and design but not in functionality and scope (have larger scope). The commonly available Software Architecture Patterns include:

Layered pattern: Used to design the software as a series layers of abstractions

1. Client-server pattern: Used to structure the system as two main applications – a server and a set of clients. The server provides services to multiple client on request.

2. Master-slave pattern: Used to structure the system as two components – a master and a set of slaves. The master distributes the work among slaves and computes a final result from the results which the slaves return.

3. Pipe-filter pattern: Used to structure the system that consists of any number of components (filters) that transform or filter the provided data, before passing it on using connections (pipes) to other components.

4. Broker pattern: Used to structure the system as a distributed software structure with independent components that can communicate with each other by remote service invocations.

5. Peer-to-peer pattern: Used to structure the system as a set of individual components called known as peers that all have equal capabilities and can function both as a client, requesting services from other peers, and as a server, providing services to other peers

6. Event-bus pattern: Used to structure the system as a set of events and a set of 4 components; event source, event listener, channel and event bus. Sources publish messages to channels on an event bus. Listeners subscribe to particular channels and are notified of the published messages in the subscribed channel.

7. Model-view-controller pattern: Used to structure the system as a set of different views of the same data to its users by separating application’s data model, presentation layer, and control aspects.

8. Blackboard pattern: Used to structure a system for which no deterministic solution strategies are known. Here the system will be structured as a set of three main components – blackboard, knowledge source and control component that work together to form the pattern

The selection of an appropriate software architecture depends on the nature of the problem and the other architectural parameters like

· Scalability

· Adaptability

· Security,

· Robustness,

· Reliability,

· Fault-tolerance

· Manageability

· Efficiency,

· Performance,

· Throughput,

· Bandwidth requirements,

· Space utilization

· Extensibility,

· Evolvability,

· Maintainability

· Modularity,

· Independence,

· Re-usability,

· Openness,

· Composability,

· Portability

· Completeness and correctness

· Ease-of-construction

· Ease-of-use

Scalability: The scalability depends on the parameters extensibility, modularity, composability, ease-of-construction, ease-of-use, space utilization, re-usability, openness, maintainability, etc. In terms of scalability, the peer-to-peer patterns are best. These patterns are highly scalable regarding resources and computing power. Scalability is a problem for event-bus and client-server patterns.

Adaptability: A poorly selected software design pattern could increases the total cost and duration of development cycle as the proposed software product has to be adapted to the selected pattern.

Security: Security becomes a pressing issue as the system is more distributed and the components are more independent. For example, master-slave or client-server patterns are more centralized and it is easier to implement the required security aspects as compare to distributed peer-to-peer patterns.

Dependability: Dependability can be measured in terms of reliability, robustness, fault-tolerance. The architecture patterns that are more centralized (master-slave or client-server patterns) less dependable as in the event of failure of master or server, the whole system will be down. Distributes systems like peer-to-peer patterns are more dependable as work of a pattern that is currently down can be distributed to other peers.


Related Solutions

What are the key challenges in Software Defined Networks (SDN). How will you migrate from a...
What are the key challenges in Software Defined Networks (SDN). How will you migrate from a traditional network to an SDN based network?
So how can engineering systems fail with faulty designs? Discuss how it could be from missing one of the key features noted in the methodical process for design and design evaluation.
Methodical process for design and design evaluationSo how can engineering systems fail with faulty designs? Discuss how it could be from missing one of the key features noted in the methodical process for design and design evaluation. What if the process seemed to be followed to the letter, could a system still fail?
Assume you have isolated S.aureus from your skin. Design an experiment on how would you determine...
Assume you have isolated S.aureus from your skin. Design an experiment on how would you determine whether it is penicillin and erythromycin resistant? (Make sure to include a hypothesis and how you would design the experiment. Also include proper controls and discuss briefly the techniques you would use). I need one page please.
How is conducting graduate-level research different from research you did in your undergraduate program? Provide specific...
How is conducting graduate-level research different from research you did in your undergraduate program? Provide specific examples.
Discuss, using outside resources to support your assertions, how compliance burdens directly impact entrepreneurship.   Do you...
Discuss, using outside resources to support your assertions, how compliance burdens directly impact entrepreneurship.   Do you see a trend regarding what legal and regulatory climates foster entrepreneurship? Why might this matter? If you were a policy maker, what would you recommend to attract the entrepreneurial-minded?
You’ll create a security infrastructure design document for a fictional organization. Your plan will be evaluated according to how well you met the organization's requirements.
You’ll create a security infrastructure design document for a fictional organization. Your plan will be evaluated according to how well you met the organization's requirements. Points will be awarded based on how well you met these requirements, considering the security implications of your choices.The following elements should be incorporated into your plan:Authentication systemExternal website securityInternal website securityRemote access solutionFirewall and basic rules recommendationsWireless securityVLAN configuration recommendationsLaptop security configurationApplication policy recommendationsSecurity and privacy policy recommendationsIntrusion detection or prevention for systems containing...
Discuss the role of institutional racism in your life. How have you benefited from, or been...
Discuss the role of institutional racism in your life. How have you benefited from, or been harmed by, institutional racism? How does it affect the way you view others? How does it affect the way you view yourself? Is it more subtle than other forms of racism?
RESEARCH REPORT -How could you prevent an attacker with Aircrack from getting into your Wi-Fi? -What...
RESEARCH REPORT -How could you prevent an attacker with Aircrack from getting into your Wi-Fi? -What is the recommended way to mitigate telnet risk? -What information can you see when someone uses SSH? -How do you create a hidden file in Linux? -What is the /etc/shadow file? -Explain what each part of this command does: sudo tcpdump tcp -i eth1 -s 0 -C 50 -w Cap.txt -During SFTP what version of cryptographic key exchange was used?
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT