Skip to content

Instantly share code, notes, and snippets.

@nlguillemot
Created August 7, 2012 06:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nlguillemot/3282517 to your computer and use it in GitHub Desktop.
Save nlguillemot/3282517 to your computer and use it in GitHub Desktop.
practice test for SENG 271

OO Concepts

Define the following terms in OO context.

  • class
  • object
  • interface
  • abstract
  • concrete
  • inheritence
  • composition
  • aggregation

Name three OO principles.

Extract the classes and define use cases for the following vague description.

A local restaurant has suddenly burst in popularity and the servers are now regularly forgetting the details of orders. You need to design the software for a terminal which allows servers to keep track of which orders belong to which table and which customers made which orders. The bill should be possible to create automatically and all actions should be recorded to make end-of-the-month reports automatic.

UML

Draw an example of each diagram. Examples don't need to exhaustively show the model's features.

  • class model
  • sequence diagram
  • activity diagram
  • state diagram
  • component diagram
  • deployment diagram

Draw a class model for your restaurant design.

Patterns

Give a motivation, a description, and an example use for each of the following patterns.

  • Decorator
  • MVC
  • Command
  • Factory
  • State
  • Singleton
  • Adapter
  • Template Method
  • Observer

Consider three patterns for use in your design, and evaluate if they are worth using.

VCS

Describe it.

What is the motivation?

Name three popular VCS software tools.

Give 2 examples of how it affected your development process.

Use case modeling

Describe it.

What is the motivation?

Why is it important?

Prepare two fully dressed use cases for your restaurant computer system design.

Testing and correctness

Describe unit tests and coverage tests.

What is the motivation of testing?

Present 2 advantages vs 2 disadvantages.

Describe Right BICEP.

Describe CORRECT.

Describe 4 tests you could use on your restaurant system design based on Right BICEP and CORRECT.

Prototyping & Tracer Bullets

Give a motivation for both of these methods.

Compare them. (pros & cons)

Concurrency

Name 3 challenges in programming concurrently.

What is the advantage of concurrency?

What is the name of the brilliant yet underrated programming paradigm that was devised to deal with concurrency elegantly? (Hint: starts with 'func' ends with 'tional')

Give a brief, theoretical advantage of functional programming for concurrency.

Aspect oriented programming

List 2 buzzwords that originate from aspect oriented programming.

Aspect Oriented Programming tries to solve a problem that doesn't exist by proposing a poor model. Describe this nonexistant problem.

What is an aspect?

What is a pointcut?

@nlguillemot
Copy link
Author

the last two parts are totally not biased whistle

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment