CS 386 Final

Ace your homework & exams now with Quizwiz!

34) What are the problems of hard-coded values?

- Less flexible - the user cannot create new categories - Susceptible to programmer typos if the value appears in several places. ::Really should only be used if the value will never change

Given the following agile principles, what is the rationale behind it and how to adopt it in practice? "Individuals and interactions over process and tools"

??

Explain the goal of 3 workflows of the unified process.

Business Modeling - The goal is to understand the business of the organization (usually only the part relevant to the system). Requirements - The goal is to raise, document, and create an agreement among those involved about what will be built. Analysis and design - The goal is to analyze the requirements and design a solution to be implemented. Implementation - The goal is to turn design into executable code. Tests - The goal is to perform checks to ensure quality. Deployment - The goal is to put the system into operation. Configuration and change management - The goal is to manage changes in project artifacts. Project management - The goal is to coordinate the project. Environment - The goal is to ensure that processes, guides and tools are available to the team.

27) Give the most important non-functional requirement for the following type of systems: critical systems, real-time systems, and embedded systems.

Critical Systems - Reliability Real-time systems - performance Embedded systems - Functional suitability

What is the naming convention adopted in Java, Python, and in the Hungarian notation?

Java - camelCase for variables and names should be short yet meaningful (ex. myPackage); UpperCamelCase for classes; lowercase for packages (ex. mypackage); and uppercase for constants (ex. RED) Python - Snake_Case for both functions and variables (ex. my_package) Hungarian notation - use the type of the variable as a prefix (i.e. bBusy : boolean)

9) Explain why software deteriorates over time.

Software deteriorates over time because technology continues to push forward and update. As technology changes, changes in software must reflect this behavior. This, as well as bug fixes, and software improvements are required to keep a standard user base.

Give an example of a situation in which you would use the Singleton design pattern. Draw a class diagram.

Think SUPER MARIO. If you had 5 lives, you only want ONE instance of that mario. Otherwise if you had five of them on the screen at one time, if one of the dies, then the game registers that as a death and will end. With a singleton, you only allow ONE instance of an object to be created at any given time.

Given the following agile principles, what is the rationale behind it and how to adopt it in practice? "Working software over comprehensive documentation"

1. if your team spends months documenting their requirements, analysis, design, and test cases there is a good chance that what you have documented will be out of date by the time you are done. A. In today's business climate, needs change rapidly and that means the team needs to be able to adapt to changing requirements. 2. Another issue is that you may end up designing parts of the system that are not needed. A. teams waste effort and time by documenting features that may never get used. 3. According to the agile principles, the best way to create documentation that provides value without hindering progress is to write tests for the system.

38) A model has a class Account associated to a class AccountType, which has 3 subclasses (Checking, Savings, and Investment), each one implementing specific complex methods for calculating the monthly interest, defined respectively by the federal laws A, B, C. Your client now wants to allow the financial director to create new account types (10 new account types is foreseen). When an account type is created, the director chooses which federal law applies for that account type. How would change the model to accommodate this change, maintaining the good principles of OOP?

??

30) What is a Kanban and how it is used? (THINK TRELLO!)

A Kanban is a board for user stories that will easily allow for developers to update the stories as they move through the development process. These boards usually consist of backlog, todo, doing, done, and accepted. Where each story will move through the board until it is either discarded or completed. While they were originally made of whiteboards and post it notes, we now have modern Kanban like Trello, and Waffle.

What is a design pattern?

A design pattern is a reusable solution to a commonly occurring problem within a given context in software design.

3) What is the Hype Cycle?

A graphical representation that shows the life cycle stages a technology goes through conception to maturity and widespread adoption. 5 Stages: Technology Trigger: A potential technology breakthrough Peak of Inflated Expectations: Early publicity produces success story Trough of Disillusionment: Interests wane as experiments and implementations fail Slope of enlightenment: More instances of how the technology can benefit come about Plateau of Productivity: Mainstream adoption starts to take off

Explain the scrum method.

A product owner creates a prioritized wish list called a product backlog. During sprint planning, the team pulls a small chunk from the top of that wish list, a sprint backlog, and decides how to implement those pieces. The team has a certain amount of time — a sprint (usually two to four weeks) — to complete its work, but it meets each day to assess its progress (daily Scrum). Along the way, the ScrumMaster keeps the team focused on its goal. At the end of the sprint, the work should be potentially shippable: ready to hand to a customer, put on a store shelf, or show to a stakeholder. The sprint ends with a sprint review and retrospective. As the next sprint begins, the team chooses another chunk of the product backlog and begins working again.

What is the importance of coding conventions?

A set of guidelines for writing code for a specific programming language or technology. Improves readability and maintainability

16) What is a value proposition? Give examples.

A value proposition should illustrate the features that your product is providing that make it standout compared to other products on the market. A value proposition should focus on what customer problems you are solving, what customer needs you are satisfying, and why they will repeatedly pay for your solution. Apple iPhone 5c (different colors) Snowy Owl (Super warm, inner zipper maintains seal if outer breaks) GoPro (Very good for a niche market, ie sports fanatics)

36) When is it better to model something as an inheritance instead of an associated class?

An associated class is used when you want to give the user the control to add options or change certain things. Inheritance is useful when everything that you want is pre-defined, and the developer simply decides where to place a category in the inheritance tree.

29) Explain what includes and extends relationships are in use cases.

An includes relationship is if one case is accomplished(?) then the included case will also be accomplished. This is because the includes relationship between cases means that it is mandatory that both cases are completed. An extends relationship means when one case is accomplished the extended case may also be accomplished. If one case extends to another that just means that the extended case is optional.

What is difference between analysis and design?

Analysis is modeling and abstraction, it focuses on understand what the problem is. Model: simplified and abstract representation of a phenomenon or concrete situation, serving for reference, study, or analysis. Abstraction: separating one or more elements from a complex thing/representation. There is requirement analysis, object-oriented analysis, and domain analysis. Design = do right the thing = feasible post-analysis • Focus on the understanding of the solution (How?) • Architecture • Structure • Closer to the actual code • Classes' operations and attributes • Objects life cycle

10) Explain why people use the expression "There is no silver bullet"for software engineering.

Because there is not "one" software that solves all of the problems. (i.e. It may be good at storing arrays and adding to the data, but could be slow at accessing the data) (unchecked)

What are the benefits and the drawbacks of the waterfall model? WYSIWYG?

Benefits: Document Oriented Specialists for each phase Quality group approving each phase Facilitates management Drawbacks: Documentation is not readable to customers "Yes, this is what I asked for; But now that I have tried it, I have discovered that what I really want is something slightly different" or "you did not understand what I meant" Fights in contract renegotiations Errors are perceived very late Team impatience to start coding and client impatience to receive the software

What is the difference between white and black box testing? Give examples.

Black box testing - you know the functionality Testing the functionality of a system by observing its external behavior User point of view White box testing - you know the code Logical paths throughout the code are the code are tested (conditions, loops, calls) Exhaustive testing can grow very fast Developer's point of view

What is a build tool?

Build tools are programs that automate the creation of executable applications from source code. These are mainly used to make sure that when others make changes to a project, nothing breaks.

What is CMMI?

Capability Maturity Model Integration A process model that provides a clear definition of what an organization should do to promote behaviors that lead to improved performance. Maturity Levels: 1 - Initial: Unpredictable and reactive. Works gets completed but is often delayed and over budget. 2 - Managed: Managed on the project level. Projects are planned, performed, measured, and controlled. 3 - Defined: Proactive, rather than reactive. Organization-wide standards provide guidance across projects, programs, and portfolios. 4 - Quantitatively Managed: Measured and controlled. Organization is data-driven with quantitative performance improvement objectives that are predictable and align to meet the needs of internal and external stakeholders. 5 - Optimizing: Stable and flexible. Organization is focused on continuous improvement and is built to pivot and respond to opportunity and change. The organization's stability provides a platform for agility and innovation.

What is continuous integration and continuous deployment?

Continuous Integration Continuous integration is the practice of merging all developer working copies to a shared mainline several times a day. It's where you build and test software every time a software produces new code. Advantages: Avoids long integration times. Fast feedback Continuous Deployment Teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. Every code changes goes through the pipeline into production automatically. Any updated working version of the software is automatically pushed into production. Typically, the updates are smaller pieces of code. Advantages: Easier recovery if any problems occur from the deployment because the changes occur so often that it shouldn't be a lot of change.

39) Explain why an analyst can represent concepts either as data or source code elements. Give an example.

Data: Can be changed by the user, meaning it has more flexibility and ability to add new elements. It is more susceptible to error through user mistakes. Source Code: Cannot be changed by the user, requiring another compilation for any serious changes or new elements. Only susceptible to errors made by the developer. This approach allows specific behavior to be modeled using specific classes. Say a system has different types of accounts. Making the account type an attribute of the account is a data representation as the type can easily changed by a simple setter method. Creating a new account type is just as easy. If the account types are represented as their own sub classes of a general Account class, this is a source code element representation. In order to add a new account type, a new subclass needs to be created. This requires the system to be recompiled with this new class now included. In order to change the account type in this representation, the account must be recreated, transferring the attributes of the old class to the new one.

Why the principle of high cohesion promotes good design?

Degree of connectivity between elements of same module, class or object. Each class must execute a very specific set of closely related actions. Keeps classes concise and easier to read, updates can be made to certain modules or features easily with high cohesion.

14) Explain design thinking.

Design thinking is an ideology supported by an accompanying process. The process starts by understanding the problem by first researching the situation of the users, defining a problem based on your research, generating multiple ideas on how to solve the issue, testing the validity of the ideas, building real tactile prototypes to represent the idea, test those prototypes and then implementing the idea if it passes those tests.

What are the steps/commands to get code from a Git repository, change it, and upload via a Pull-Request?

First create a branch Git pull origin master Git checkout -b pull name_of_branch Git push origin name_of_branch Once you have made changes to code.. Click pull request from git repository page Select branch from dropdown menu " Head Branch" Input title and description

20) What are functional and non-functional requirements? Give examples.

Functional The core of the requirements specification activity (main things that system actually does) What does the system do, what does it look like, what are the inputs, and how should the system respond to errors Non-functional Criteria that is used to judge the operation of the system rather than specific behaviors Trade-offs between requirements (8 attributes of product quality)

Why does the principle of encapsulation promotes good design?

How strongly an element is connected to, is aware of, or depends on other elements. Lower coupling results in higher modularity, less dependencies within the code, and allows more flexible code. High coupling indicates a high dependency between elements which is not good. It makes maintaining and updating code much more difficult. When trying to update or modify a section of code that is highly coupled, changes in other areas to be modified as well to include new changes.

15) What is a business model canvas?

In general, the canvas is the outline for the business that define any key relations with other entities that will work to support your business and the product you are working to create. The canvas usually starts out with guessing the majority of the fields involved then developing the necessary knowledge behind these guesses, turning them into facts.

Explain each of the 4 phases of the unified process.

Inception - Estimate It, Scope It The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. Elaboration - Reduce It, Mitigate It The primary objective is to mitigate the key risk items identified by analysis up to the end of this phase. Construction - Prototype It, Build It The primary objective is to build the software system. Transition - Deploy It, Document It The primary objective is to 'transit' the system from development into production, making it available to and understood by the end user.

What is a fluent API? Give an example.

It is a method for constructing object oriented APIs, where the readability of the source code is close to that of ordinary written prose. Example: JavaScript, Java

Explain the concept of clean code.

Meaningful Names ● Code is basically names and reserved words ● Choosing good names takes time but saves more than it takes ● Names should be expressive and should answer questions Functions should be small! ● Functions that do one thing can't be divided into sections ● Functions should do one thing ● Functions should do it well ● Functions should do it only ● One level of abstraction ● Functions should minimize the number of arguments Functions should minimize the number of arguments ● don't use flag arguments ● Functions should not have side effects ● Don't Repeat Yourself (DRY) ● "duplication may be the root of all evil in "software (Bob Martin - "Uncle Bob") Names are concise and descriptive Functions should be simple, short, and accomplish their function well without side effects

25) What is MVP and what is it for?

Minimal Viable Product - is a development technique in which a new product is developed with sufficient features to satisfy early adopters.

7) Explain why most software projects are delivered after the deadline, over the budget, with failures, or without satisfying the clients. How to improve this situation?

Most software projects are delivered after the deadline, over budget, with failures, and/or without satisfying the clients due to lack of communication between the developers and the customer. By assuming what the customer wants, and not constantly questioning the person that the software is being developed for, developers may not develop the proper product for the consumer. Delivering software after the deadline, and over budget typically occurs because either the developer and or the customer don't live up to the virtue of realistic expectations, causing too much work to be laid out in too short of a time.

Give 4 practices adopted in the Extreme Programming.

Pair programming- two programmers on one terminal TDD Continuous integration Coding standards

Explain how polymorphism can be used to promote good design.

Polymorphism promotes design extensibility by allowing different data types to be handled by using a uniform interface Polymorphism is the ability to "take on many forms", it is basically method overloading. It basically allows similar code to be reused without repeating code (removes possible code smells). It also enables the ability to take a general superclass and to take some of its general definitions of objects or methods and to allow subclasses to take on those definitions and to extend them in a specific manner. The link has some good bullet points on the advantages of polymorphism under the "Usages and Advantages of Polymorphism" http://www.onlinetutorialspoint.com/java/oops/types-of-polymorphism-and-advantages.html

What is refactoring? Give an example of one of the refactoring proposed by Martin Fowler in his book "Refactoring: Improving the Design of Existing Code"

Refactoring is the process of restructuring existing computer code without changing its external behavior. It will improve upon nonfunctional attributes of the code. ::Move Field A field is, or will be, used by another class more than the class on which it is defined. Create a new field in the target class, and change all its users.

What is a code smell? Give 3 examples.

Refers to any symptom in the source code of a program that possibly indicates a deeper problem. Large class/ God Class Too many parameters Duplicated code

What is regression testing?

Regression testing is testing that is performed to confirm that code still works after being changing it in some way, from minor refactoring to major implementation changes or after the code has been integrated with another system.

Explain why and how mock objects are used for unit testing.

Simulate objects - Isolate one object from the (system?, not in slides) Useful for isolating the test of one object from another or when we have objects that are difficult to create, to reproduce, that are slow, etc. You configure the expectation of object behavior Frameworks JMock EasyMock Mockito

1) What is software engineering and how does it differ from other engineering disciplines?

Software engineering is the systematic approach using disciplines like computer science to develop high-quality solutions to software problems. How it's different from other engineering disciplines: Each solution is so unique that it's difficult to create one method to create effective and reliable software. Solutions have low manufacturing costs are low and are not restricted by physical entities like physics.

Explain what is TDD and how it may improve class design.

TDD stands for test driven development, supports incremental class design, gives feedback on problems early before they become a problem. Process Cycle: write a test that fails see it fail make the test pass in the simplest possible way see it pass refactor to remove duplication of data and code

How the metric LCOM1 is calculated?

Take each pair of methods in the class. If they access disjoint sets of instance variables, increase P by one. If they share at least one variable access, increase Q by one. LCOM1 = P - Q, if P > Q LCOM1 = 0 otherwise LCOM1 = 0 indicates a cohesive class LCOM1 > 0 indicates that the class needs or can be split into two or more classes, since its variables belong in disjoint sets.

26) What is ISO 25010: 2011 for? Cite some 4 characteristics defined by the standard.

The ISO 25010: 2011 have defined a set of non-functional requirements that most software works to achieve. Focusing on anyone of the requirements will result in some kind of trade-off with another one of the requirements (ie focusing on security will result in a lose of usability) Performance Portability Security Usability

Give an example of a situation in which you would use the Bridge design pattern. Draw a class diagram.

The Problem: You have a set of methods that you might want to implement in two or more different ways. An example of where the bridge would be useful is with thread scheduling that has two different thread schedulers (preemptive and time sliced schedulers) with different operating systems. With it being able to operate on UNIX and Windows, the diagram would look like: Adding the ability to operate on another class adds great complexities: The problem with this situation adding just one more feature (new operating system, new thread scheduler) can cause this diagram and complexity to grow exponentially. The solution: The bridge pattern reduces the complexity by separating this inheritance into "two orthogonal hierarchies". Create one inheritance hierarchy for platform independent abstraction and on inheritance hierarchy for platform dependent implementations.

How the metric of Cyclomatic Complexity (MacCabe) is calculated?

The complexity of a program, V(G), can be defined as V(G) = E - N + 2P where, E = number of edges in the flow graph N = number of nodes in the flow graph P = number of nodes that have exit points If V(G) is larger than 10, consider splitting up the method. The more complex the program is, the harder it is to test and comprehend.

11) Explain the concept of "the mythical man-month."

The main idea of "the mythical man-month" is throwing more man power at a late software project will only make it later. Any projects being developed will only slow down with the more people you have working on it later in its lifetime.

What is the Problem-Solution Fit and what is its importance?

The problem-solution fit is identifying and validating a problem or need in a market, that enough people care about, and the ability to create a feasible solution to solve said problem. This fit is important for actually identifying potential problems that some software solution can actually solve. Being able to find problems within a market to solve is just as hard, if not harder, than actually coming up with a solution to the problem itself. This fit also helps to drive innovation and development within software engineering.

Give an example of a situation in which you would use the Template Method design pattern. Draw a class diagram.

Think of a cookie cutter. The cookie cutter is a template that is not actually a cookie. But you can use that template to cut out chocolate chip cookies, sugar cookies, etc. ABSTRACTION is the same idea. It is simply a template for an idea which can be implemented in different ways. The problem: When you have a range of different subclasses with the same superclass. Each subclass to execute the same a sequence of methods in the same order but be able to call different methods. The solution: Put the sequence of methods into a "template method" that's not overridden by the subclasses. The template method will hold the various virtual 'hook Method' calls that can be overriding. Example: A system that can compile an app for either Android or Iphone. Template uses an abstract class with a final method, template method, that contains the same sequences. The template method will call abstract methods will hold the "various virtual hook methods" which holds the variation of calls. Difference between strategy and template is that in strategy, it is an interface and all methods/algorithms must be rewritten for each strategy. In template, an abstract class is used and some methods remain the same while helper methods are rewritten.

Give an example of a situation in which you would use the Command design pattern. Draw a class diagram.

Think of a universal remote. That remote is responsible for simply executing a command. The commands could be anything, but the remote doesn't care how it is done it simply executes said command. The client (me) presses a button, and the remote calls whatever command is necessary, and executes it. The Problem: This design pattern encapsulates all information and code needed to perform an action that will be executed at some later time. The Solution: To encapsulate everything to do some action at some time, we need four things: A command, receiver, invoker, and client. The command holds information to call the receiver. The invoker knows how to execute a command but does know anything specific about the command just the interface. The invoker object, command objects are held by a client object. The client decides when to execute which points. The client executes a command by passing the command object to the invoker object. Example: A light switch. We don't know when it will be called. The command object is the interface Command, it doesn't know the specifics of what a command is. The receiver is the Light class. The invoker is the RemoteControl class because it calls the actual commands from the Command object. The client is the Client class, it decides when and which specific actions occur.

Give an example of a situation in which you would use the Strategy design pattern. Draw a class diagram.

Think of splitting a solution to a problem into different strategies. For a class diagram this is as simple as allowing a class to take in a strategy that the programmer would design and implementing it through a method. The problem: have a range of objects that belong to the same class and you want to be able to change the behavior of a method based on the context of the object without changing the class the object belongs to. The solution: Defines different algorithms that want to be used in the behavior of a method and encapsulates each algorithm. Different pricing schemes for varying scenarios, happy hour vs normal. For the example below, we want to be able to bill differently depending on the context of the situation (different billings are the different algorithms). To solve this problem, encapsulate each billing strategy within new methods and they will be used accordingly.

Given the following agile principles, what is the rationale behind it and how to adopt it in practice? "Responding to change over following a plan"

This agile process replaces project plans with release schedules and burn-down charts that can accommodate change. 1. We make the plans so complex and detailed that they're difficult to modify when example input changes occur. Better to trust the process, good or bad, than to try and force a plan. Customer may not know entirely what they want right away. Involving them at every stage allows the project to be made of up many short term plans made with better and more current information rather than a single long term plan

40) Give an example of a model that contains an unnecessary redundancy.

This is redundant because you could just go through Section to see the other objects, there does not need to be a direct connection from Course to Student.

18) How does the Consumer Development methodology work?

This methodology works through software engineers gaining a better understanding of their stakeholders to develop a solution that will actually solve some problem. It involves a much more open and easily accessible relationship between understanding the customer and developing a product. Ideally, the customer will give you the best possible understanding of the product that you are looking to develop for them.

What is the difference between unit, integration, and acceptance tests?

Unit tests: test of an individual unit, done by the programmer, generally white box, automation desirable Integration tests: units are combined and the interaction among them is tested, done by the programmer when they integrate the change to the codebase, mix of black box and white box, automation desirable Acceptance tests: test if the system meet the acceptance criteria, generally done from the GUI, black box, can be also automated Functional testing, stress testing, performance testing, usability testing, ...

28) Explain the philosophical difference between writing complete use-case descriptions and writing user stories. By philosophical difference consider that it is not in relation to * how * to write each of the requirements, but to the motivation that led to defining the format in question.

User stories are used as a form of dialogue between developer and stakeholder, allowing for communication and discussion about a feature to be implemented. Easily represents the Who, What, and Why for the feature. Usually is a chunk of functionality to implement for a set of requirements that can be easily accomplished or estimated. Use-case descriptions will often describe in more detail than a user story how a user will interact with the system or how components of a system will interact with each other. They also help to detail the general flow of the interaction and how different things can happen at different stages in the interaction. Use-cases may detail one user-story but will often be split into multiple user stories depending on the complexity of the user case.

What is the difference between verification and validation?

Verification - Does the concept fit the customer's needs? Did I build what I said I would? Verification = the evaluation of whether or not a product complies with the requirements? Tests Validation - Does the design fit the concept? Did I build what I need? Validation = The assurance that a product meets the needs of the customer and other stakeholders. User evaluation

22) Compare how requirements engineering is done in a waterfall cycle and in a iterative cycle.

Waterfall goes through each step of the process, ideally never going back to a previous step in the cycle. For an example, once you have established the requirements for the software and moved on to analysis, you cannot go back to requirements. However, in an iterative model, you will go through the process once, then go back and reevaluate any changes that need to be made to any portion of the design. This allows for a much more realistic development cycle using the strengths of software engineering practices.

35 )When is it better to model something as an enumeration instead of an associated class?

When data is more permanent and needs to be of a specific thing such as types of products that mostly go unchanged.

43) When is it worth it to store in a database the value of a derived property?

When it is a value that needs to be fixed in time.

Given the following agile principles, what is the rationale behind it and how to adopt it in practice? "Customer collaboration over contract negotiation"

When we focus on a contract, we get a false sense of security and think everyone agrees to what is being done. Collaboration with a customer should never stop, so that way developers can get a sense of how the customer feels through every phase of development.

41) When are user actions represented in a class diagram?

Whenever the user has some sort of interaction with the elements of the system. They are usually denoted by a name of the action over the link between the user and the system element.

Explain two techniques of validation.

While users use the system Observation, monitor the users' reactions such as facial and other gestures Ask users to think-aloud (https://en.wikipedia.org/wiki/Think_aloud_protocol) Stream of consciousness: whatever they are thinking about Contextual inquiry Ask questions while users work After they used the system Semi-structured Interviews, Ask a few users open-ended questions after the use of the system Focus groups, Ask a group of users open-ended questions after the use of the tool Surveys.Ask many users specific questions

42) How can you change a 1 to many association to register the history of this association? Give an example.

You need to make it many to many. (i.e.) Driver to vehicle.

Discuss the practice of separation of concerns.

a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern. A concern is a set of information that affects the code of a computer program.

37) When is it better to model something as an associated inheritance instead of an inheritance?

associated inheritance would give the user the ability to add a child class that didn't already exist, which is good if the developers wanted to give users more control. In the event that the developers did not want the user to have much control, one would use plain old inheritance.

Give an example of a situation in which you would use the Composite design pattern. Draw a class diagram.

combine (two or more images) to make a single picture, especially electronically. In this case, one can think of an employee. An employe can be a supervisor or a normal worker. Each employee might have the same methods, but an employee HAS A SUPERVISOR. The Problem: application needs to manipulate a hierarchical collection of primitive and composite objects and to be able to treat them the same. The solution: Have a base class called Component, with both Primitive and Composite classes inheriting from it. Composite design pattern treats this situation as a tree structure to represent the hierarchy.

Discuss the practice of convention over configuration.

is a software design paradigm used by software frameworks that attempt to decrease the number of decisions that a developer using the framework is required to make without necessarily losing flexibility. You only have to write specific code for sections if you deviate from what is standard.


Related study sets

Unit 2: Lesson 5: The Composition of Seawater Assessment Questions

View Set

Exam 2 Prep - Cultural Psychology

View Set

accounting chapter five vocabulary

View Set

Microeconomics Final Exam Review

View Set

Lab Admin Notecards Beaker (Content not owned by Me)

View Set

Chapter 5 Developing the Research Plan

View Set