csci 387 final Flashcards
design patterns
observer, adapter, bridge, singleton, strategy
observer is
behavioral
strategy is
behavioral
singleton is
creational
adapter is
structural
bridge is
structural
regression testing
check that changes have not broken previously working code by re-running all tests
distributed software architectural patterns
master-slave, two-tier client-server, multi-tier client-server, distributed component, peer-to-peer
pros and cons of master-slave
Pros: good for use in real-time systems where it is important to meet processing deadlines
Cons: not good for systems where it is not easy to predict the distributed processing that is required/where processing can be easily localized to slave processors
pros and cons of two-tier client-server
Pros: simplest form; simple to manage the clients
Cons: heavy processing load on both the server and the network (thin client model), new versions of the application have to be installed on all clients (fat client model)
pros and cons of multi-tier client-server
Pros: avoids problems with scalability and performance from thin-client, avoids problems of system management from fat-client
Cons: you have to decide what services should be included in each layer
pros and cons of distributed component
Pros: allows system designer to delay decisions on where and how services should be provided, flexible and scalable, allows resources to be added as required, possible to reconfigure the system dynamically
Cons: more complex to design than client-server systems (difficult to visualize and understand), standardized middleware for distributed component systems has never been accepted
pros and cons of peer-to-peer
Pros: takes advantage of the computational power and storage of a large number of networked computers
Cons: lack of central management is a security concern
what are the layers to arrange in client-server?
database, data management, application processing, presentation
software as a service
a way of deploying applications as thin client-server systems, where the client is a web browser - owned and managed by a software provider