MIS 321 Final Exam

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

What is the Observer Pattern?

(Publisher-Subscriber) Pattern in which when one object changes state the dependents are notified and updated automatically; uses notification rather than polling

What are the advantages of an abstract class?

. An abstract class can declare fields and write bodies of code while also containing signatures that need to be overridden by more specific endeavors. . Different implementations of an abstract class will know some methods and will not know some methods

What are the disadvantages of an interface?

. Can not declare a member field(private or static variables) . Can not provide any code, just signatures

What are the advantages of an interface?

. Provides full abstraction . Can achieve multiple inheritance . Much looser coupled code

When should you use the factory pattern?

1. A class can't anticipate the class of objects it must create 2. A class wants its subclass to specify the object it creates

Advantages of the factory pattern

1. Allows sub-classes to choose the type of objects to create 2. Promotes loosely coupled code by eliminating the need to bind application-specific classes into the code

What are the drawbacks of the Strategy Pattern?

1. Application must be aware of all strategies to select the right one in the right situation 2. In some cases, it can cause the code to be more tightly coupled 3. Increases the number of objects in an application

What are the four stages of a sprint?

1. Backlog grooming 2. Determining Velocity 3. Technical Debt 4. Undocumented features (aka bugs)

What simplified design principle does the factory pattern help us meet?

1. Depend upon abstractions 2. Does not depend upon concrete classes - (D)

What are the 4 pillars of OOP?

1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism

What is the primary purpose of the analyze stage?

1. Gather, identify, analyze and manage the requirements. 2. Evaluate packaged software and select technology infrastructure. 3. Determine environmental and process needs to support the new capability.

What are the drawbacks of the Adapter Pattern?

1. Increased overhead 2. Requires chain of command to work properly which can become overwhelming if it gets too long

What are the drawbacks of the Decorator Pattern?

1. Many objects will appear to look alike 2. Can be difficult to debug due to first reason 3. Can complicate process of instantiating a component because you must also instantiate the wrapper

What are the characteristics of good requirements?

1. Necessary 2. Does not restrict design (what not how) 3. Verifiable (speak in positives) 4. Easy to understand by all 5. Achievable 6. Specify 1 and only 1 function 7. Unique 8. Traceable

What are the drawbacks of the Observer Pattern?

1. Random order observers are updated 2. Repeated updates when there is a series of incremental changes

What other types of APIs have we discussed?

1. SOAP(Simple Object Access Protocol) 2. GraphQL(Data manipulation language for APIs)

What is the agile acceptance criteria?

1. The tests that the product owner will use to grade the successful development of the user story. 2. Should help add to the conversation about the story. 3. Opportunity to discuss "better ways" and true priorities. 4. Often lead to new user stories, and that's OK!

Why learn design patterns?

1. Tried and proven solutions 2. Provides common vocabulary 3. Gets us out of the weeds early in the design process

What are the three types of Automated testing?

1. Unit tests 2. Integration 3. End-to-end

Disadvantages of the factory pattern

1. Whenever class criteria changes, every application object that uses the class must change 2. Because class selection criteria needs to take all factors, the implementation of an application object could contain complex conditional statements

What simplified principles does the Strategy Pattern help us meet?

1. encapsulate what varies so it won't affect the rest of your code 2. Code to an interface, abstract class, or super class not an implementation to exploit polymorphism 3. Favor composition over inheritance

What is methodology?

A body of practices, procedures, and rules that could be built based off of process, artifacts, terms, etc

What is a synchronous call?

A call in which the code execution waits for an event before continuing

What is an asynchronous call?

A call that does not block the program from the code execution

What is an Interface?

A class that only includes signatures that must be overriden

What is MVC?

A collection of patterns working together to form a design

What is the Decorator Pattern?

A pattern that attaches additional responsibilities to an object dynamically; provides flexible alternative to subclassing

What is the Strategy Pattern?

A pattern that defines a family of algorithms(behaviors), encapsulates each one(ex: Fastball), and makes them interchangeable.

What is JavaScript?

A programming language that makes the webpage(the HTML) interactive. E.x: adding functionality to buttons

Agile methodology could be defined as

A structured but informal process in which we generate stories, code, test, and repeat. Implement then document. Typically done in iterations. Scrum is agile

What is a unit test?

A test that tests a single unit of the application without concerns to external dependencies such as files, databases, etc. Benefit: Quick to write and execute Disadvantage: Doesn't provide full picture due to ignorance of external dependencies

What is source control?

A tool used to manage updates and track file development during projects with multiple authors who access a common server

What are the disadvantages of an abstract class?

An abstract class does not provide full abstraction and can not achieve multiple inheritance Also more tightly coupled

What is an abstract class?

An abstract class is a middle ground between an interface and a full base class. An abstract class can have normal properties, fields, and methods but can also provide just the signature that needs to be overridden

How is an abstract class different from an interface?

An interface can only provide the signatures that must be overridden. It can not provide any body of code

How could project management be defined?

Application of knowledge, tools, skills, and techniques to project activities to meet project requirements

What is the Agile user story format?

As a <type of user>, I want <some goal>, so that <some reason>.

What type of pattern is the Observer Pattern?

Behavioral: Deals with dynamic interactions among classes and objects

What type of pattern is the strategy pattern?

Behavioral: Deals with dynamic interactions among classes and objects

What does CSS do?

CSS is used strictly for styling of the website(of the HTML). Also does not add functionality

What are the two types of version control?

Centralized(client server relationship) and Distributed(local repositories)

What simplified principles does the Decorator Pattern help us meet?

Classes should be open for extension but closed for modification(Ocp)

What is a compound pattern?

Combining two or more patterns into a solution that solves a recurring or general probelm

What simplified principles does the Adapter Pattern help us meet?

Converts the interface of a class into an interface the clients expect

D - DIP

Dependency Inversion Principle - Classes do not depend on very specific implementations; it should be easy to change things around without breaking the code

The concept of Inheritance, the third pillar of OOP, is what?

Deriving a new class from an existing class forming a hierarchy of classes. This forms an "is a" relationship rather than a "has a" relationship which is better

What type of version control is git?

Distributed

What are design patterns?

Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem

Who created the design patterns?

Gang of Four (GOF)

The concept of Encapsulation, the first pillar of OOP, is what?

Group related data and functions together to reduce complexity and increase reusability

The concept of Abstraction, the second pillar of OOP, is what?

Handle complexity by hiding unnecessary details from the users. User does not necessarily need to know the logic but they know that by calling a certain method it will do a certain thing.

What does HTML stand for?

Hypertext Markup Language

What does HTML do?

Instructs computer what to display on a web page; provides resource to display front end but does not allow for functionality

I - ISP

Interface Segregation Principle - Client should not have to depend on interfaces that they do not use; break interfaces into smaller pieces to offer more control

What programming language is asynchronous by nature?

JavaScript

L - LSP

Liskov's Substitution Principles - Subclass should not cause problems when being used instead of the parent class

Why would you use SQLite over something like MySql?

Local databases such as SQLite provide a host local to your computer which makes for quick testing, but would not be practical in a deployed database

What does MVC stand for?

Model View Controller

O - OCP

Open/Close Principles - Open for extension but closed for modification; extend functionality by adding new code rather than modifying old code and never break the core system as new functionality is added

What is the Adapter Pattern?

Pattern that lets classes work together that couldn't because of incompatible interfaces

Plan driven methodologies could be defined as

Plan, analyze the requirements, design, develop, test, implement, support

The concept of Polymorphism, the fourth pillar of OOP, is what?

Poly = many, morphism = forms. Consists of using different classes that adhere to the same interface. Each class can have it's own separate implementation of that interface

What are you actually managing when it comes to project management?

Project tradeoffs(Iron triangle): Scopes, resources, and schedule. Also mitigating risks, process facilitation, and managing/exceeding expectations

Out of the three APIs we have learned, what is the most popular type?

REST

Which type of API have we been using this semester?

REST(Representational Stage Transfer)

SOLID stands for

S- Single Responsibility Principle O- Open/Close Principles L- Liskov's Substitution Principles I- Interface Segregation Principle D- Dependency Inversion Principle

Examples of Agile methodologies:

SCRUM, XP, Crystal, FDD

S - SRP

Single Responsibility Principle - A class should have one and only one reason to change; very small classes with precise names > large classes with generic names

What simplified principles does the Observer Pattern help us meet?

Strive for loosely coupled designs between objects that interact

What type of pattern is the Adapter Pattern?

Structural: Lets classes work together that previously could not

What type of pattern is the Decorator Pattern?

Structural: Lets classes work together that previously could not

What is an end-to-end test?

Test that drives an application through the UI; used primarily for the "happy path"(path in which everything works correctly) Benefit: Provides greatest confidence test-wise since it mimics an actual user Disadvantage: Slow and brittle to changes. Get lots of false fails

What is an integration test?

Tests the application with it's external dependencies Benefit: Shows more of the picture Disadvantage: Takes longer to write and execute

Composition is what?

The "has a" type relationship. Book "has a" author. Therefore you might make an Author class, containing name and email, for the Author field in the Book class

What is the "testing pyramid?"

The order in which you should test: 1. Unit test(favor these over end-to-end) 2. Integration tests(to cover unit test gaps) 3. End-to-end test(primarily for happy path)

What is the purpose of requirements traceability?

To make sure that work is tied together by LLR adhering properly to HLM so that if there is an issue or there is something unnecessary the developer knows where to begin

What is the purpose of use cases?

To understand users, roles, goals and how they interact with the system; user path(user experience)

What type of automated testing will you use the most and why?

Unit testing, because the lower level unit tests must work before you can move up the testing pyramid

What are the responsibilities of MVC?

User- interact with the view Controller- ask the model to change its state and asks the view to change Model- notifies the view when its state has changed View- asks the model for the state

Examples of Plan driven methodologies:

Waterfall, ADM, SDLC

What is an example of an asynchronous call?

When fetching an API in JavaScript, using the .then and .catch functions in order to make the JavaScript flow synchronously like C#(which is synchronous by nature)

When would you want to use Agile Methodology?

When you have:. A client who you can speak to frequently. High potential for changing requirements. High project complexity(applies to both methodologies). Culture of Empowerment(culture that deviates from sets of rules and encourages more creativity)

When would you want to use Plan Drive Methodology?

When you have:. Well defined requirements. High project team turnover. A large team. High project complexity(applies to both methodologies)

How do most people handle CSS?

With Twitter Bootstrap. You can call classes that will handle the CSS for you and make it much easier to use

What is automated testing?

Writing code to test code ran in an automated fashion, typically following each commit

What is an epic in agile?

a large body of work that can be broken down into a number of smaller stories

What is the factory pattern?

defines an interface for creating an object, but lets the subclass decide which class to instantiate

How do you write an autoincrementing PK with SQLite?

id INTEGER PRIMARY KEY

How do you write an autoincrementing PK with MySql?

id INTEGER PRIMARY KEY AUTO_INCREMENT

What is multithreading?

is the ability of a program or an operating system process to manage its use by more than one user at a time and to even manage multiple requests by the same user without having to have multiple copies of the programming running in the computer


संबंधित स्टडी सेट्स

Wrong Answers/Concepts to go over

View Set

Which words need to be Capitalized? Don't click on WRITE OR SPELL

View Set

LESSON 5 - Interpersonal Skills in Organizations 7e

View Set

US History Chapter 10-18 Final Study Guide

View Set