csci 387 final Flashcards

1
Q

design patterns

A

observer, adapter, bridge, singleton, strategy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

observer is

A

behavioral

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

strategy is

A

behavioral

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

singleton is

A

creational

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

adapter is

A

structural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

bridge is

A

structural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

regression testing

A

check that changes have not broken previously working code by re-running all tests

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

distributed software architectural patterns

A

master-slave, two-tier client-server, multi-tier client-server, distributed component, peer-to-peer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

pros and cons of master-slave

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

pros and cons of two-tier client-server

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

pros and cons of multi-tier client-server

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

pros and cons of distributed component

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

pros and cons of peer-to-peer

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what are the layers to arrange in client-server?

A

database, data management, application processing, presentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

software as a service

A

a way of deploying applications as thin client-server systems, where the client is a web browser - owned and managed by a software provider

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

SaaS examples

A

microsoft 365, google apps, dropbox

17
Q

Facebook (is/is not) SaaS

A

is not

18
Q

What is WSDL?

A

(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)

19
Q

the “what” of WSDL

A

interface specifying what operations the service supports

20
Q

the “how” of WSDL

A

binding; maps the abstract interface to a concrete set of protocols

21
Q

the “where” of WSDL

A

describes the location of a specific web service implementation

22
Q

what is SOAP?

A

a message exchange standard that supports service communication

23
Q

what is RESTful?

A

REpresentational State Transfer

An architectural style based on transferring representations of resources from a server to a client

24
Q

advantages and disadvantages of RESTful

A

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

25
Q

SOLID principles

A
single responsibility
open-closed
liskov substitution
interfae substitution
dependency inversion
26
Q

single responsibility principle

A

a class should have only one reason to change

27
Q

open-closed principle

A

extend the behavior of a module without changing it (should be closed for modification but open for extension)

28
Q

liskov substitution principle

A

subtypes must be substitutable for their base types (functions should be able to use objects of derived classes without knowing it)

29
Q

interface substitution principle

A

clients should not be forced to depend on methods they do not use

30
Q

dependency inversion principle

A

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

31
Q

how to apply SRP

A

new class

32
Q

how to apply OCP

A

abstraction of class/method

33
Q

how to apply LSP

A

extend base class?

34
Q

how to apply ISP

A

add an interface for classes to implement as needed but let the abstract class only include the general methods

35
Q

how to apply DIP

A

connect dependencies through an interface

36
Q

a risk can affect (3 things)

A

product, project, business

37
Q

4 different components of risk management

A

identification, analysis, planning, monitoring

38
Q

risk planning has 3 stages

A

avoidance, minimization, contingency