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
SaaS examples
microsoft 365, google apps, dropbox
Facebook (is/is not) SaaS
is not
What is WSDL?
(Web Service Definition Language): allows a service interface and its bindings to be defined (what operations the service supports, how the service is accessed, where the service is located)
the “what” of WSDL
interface specifying what operations the service supports
the “how” of WSDL
binding; maps the abstract interface to a concrete set of protocols
the “where” of WSDL
describes the location of a specific web service implementation
what is SOAP?
a message exchange standard that supports service communication
what is RESTful?
REpresentational State Transfer
An architectural style based on transferring representations of resources from a server to a client
advantages and disadvantages of RESTful
Advantages of RESTful: CRUD operations, data is exposed and accessed using URL
Disadvantages of RESTful: not good for complex interfaces, no standards for the interface, implement your own infrastructure
SOLID principles
single responsibility open-closed liskov substitution interfae substitution dependency inversion
single responsibility principle
a class should have only one reason to change
open-closed principle
extend the behavior of a module without changing it (should be closed for modification but open for extension)
liskov substitution principle
subtypes must be substitutable for their base types (functions should be able to use objects of derived classes without knowing it)
interface substitution principle
clients should not be forced to depend on methods they do not use
dependency inversion principle
high-level modules should not depend on low-level modules but both should depend on abstractions; abstractions should not depend on details but details should depend on abstractions
how to apply SRP
new class
how to apply OCP
abstraction of class/method
how to apply LSP
extend base class?
how to apply ISP
add an interface for classes to implement as needed but let the abstract class only include the general methods
how to apply DIP
connect dependencies through an interface
a risk can affect (3 things)
product, project, business
4 different components of risk management
identification, analysis, planning, monitoring
risk planning has 3 stages
avoidance, minimization, contingency