Viser opslag med etiketten SWK. Vis alle opslag
Viser opslag med etiketten SWK. Vis alle opslag

onsdag den 24. marts 2010

Glossary - Nutt

Turnaround Time
In Computing Turnaround time is the total time taken between the submission of a program for execution and the return of the complete output to the customer.
___________________________________________
FCFS
First-come, first-served (sometimes first-in, first-served; first-come, first choice; or simply FCFS) is a service policy whereby the requests of customers or clients are attended to in the order that they arrived, without other biases or preferences.
___________________________________________
Gantt chart
A Gantt chart is a type of bar chart that illustrates a project schedule. Gantt charts illustrate the start and finish dates of the terminal elements and summary elements of a project. Terminal elements and summary elements comprise the work breakdown structure of the project. Some Gantt charts also show the dependency (i.e, precedence network) relationships between activities.
___________________________________________
SJN - Shortest Job Next(Shortest Job First)

Shortest job next is a scheduling policy that selects the waiting process with the smallest execution time to execute next.

Shortest job next is advantageous because of its simplicity and because it maximizes process throughput (in terms of the number of processes run to completion in a given amount of time). It also minimizes the average amount of time each process has to wait until its execution is complete. However, it has the potential for process starvation for processes which will require a long time to complete if short processes are continually added. Highest response ratio next is similar but provides a solution to this problem.

Shortest job next scheduling is rarely used outside of specialized environments because it requires accurate estimations of the runtime of all processes that are waiting to execute.

___________________________________________
Scheduling
Scheduling refers to the way processes are assigned to run on the available CPUs, since there are typically many more processes running than there are available CPUs. This assignment is carried out by softwares known as a scheduler and dispatcher.

The scheduler is concerned mainly with:

  • CPU utilization - to keep the CPU as busy as possible.
  • Throughput - number of processes that complete their execution per time unit.
  • Turnaround - total time between submission of a process and its completion.
  • Waiting time - amount of time a process has been waiting in the ready queue.
  • Response time - amount of time it takes from when a request was submitted until the first response is produced.
  • Fairness - Equal CPU time to each thread.
___________________________________________
RR - Round Robin

The scheduler assigns a fixed time unit per process, and cycles through them.

  • RR scheduling involves extensive overhead, especially with a small time unit.
  • Balanced throughput between FCFS and SJN, shorter jobs are completed faster than in FCFS and longer processes are completed faster than in SJN.
  • Fastest average response time, waiting time is dependent on number of processes, and not average process length.
  • Because of high waiting times, deadlines are rarely met in a pure RR system.
  • Starvation can never occur, since no priority is given. Order of time unit allocation is based upon process arrival time, similar to FCFS.

Designpatterns

Design Patterns - Wikipedia


Singleton Pattern
"In software engineering, the singleton pattern is a design pattern that is used to restrict instantiation of a class to one object (an implementation of the mathematical concept of singleton). This is useful when exactly one object is needed to coordinate actions across the system. The concept is sometimes generalized to systems that operate more efficiently when only one object exists, or that restrict the instantiation to a certain number of objects (say, five). Some consider it an anti-pattern, judging that it is overused, introduces unnecessary limitations in situations where a sole instance of a class is not actually required, and introduces global state into an application."

public class Singleton {
// Private constructor that prevents automatic creation of a public
private Singleton() {}

private static class SingletonHolder {
private static Singleton instance = new Singleton();
}

public static Singleton getInstance() {
return SingletonHolder.instance;
}
}

______________________________________________
Facade Pattern

The facade pattern is a software engineering design pattern commonly used with Object-oriented programming. (The name is by analogy to an architectural facade.)

A facade is an object that provides a simplified interface to a larger body of code, such as a class library. A facade can:

  • make a software library easier to use and understand, since the facade has convenient methods for common tasks;
  • make code that uses the library more readable, for the same reason;
  • reduce dependencies of outside code on the inner workings of a library, since most code uses the facade, thus allowing more flexibility in developing the system;
  • wrap a poorly-designed collection of APIs with a single well-designed API (as per task needs).

An Adapter is used when the wrapper must respect a particular interface and must support a polymorphic behavior. On the other hand, a facade is used when one wants an easier or simpler interface to work with.


______________________________________________
Mediator Pattern
(Example in the link)

Define an object that encapsulates details and other objects interact with such object. The relationships are loosely decoupled.

fredag den 26. februar 2010

First Normal Form

http://en.wikipedia.org/wiki/First_normal_form

First normal form (1NF or Minimal Form) is a normal form used in database normalization. A relational database table that adheres to 1NF is one that meets a certain minimum set of criteria. These criteria are basically concerned with ensuring that the table is a faithful representation of a relation[1] and that it is free of repeating groups.[2]

The concept of a "repeating group" is, however, understood in different ways by different theorists. As a consequence, there is no universal agreement as to which features would disqualify a table from being in 1NF. Most notably, 1NF as defined by some authors (for example, Ramez Elmasri and Shamkant B. Navathe,[3] following the precedent established by Edgar F. Codd) excludes relation-valued attributes (tables within tables); whereas 1NF as defined by other authors (for example, Chris Date) permits them.


-----------------------------------------------------

http://en.wikipedia.org/wiki/Database_normalization

In the field of relational database design, normalization is a systematic way of ensuring that a database structure is suitable for general-purpose querying and free of certain undesirable characteristics—insertion, update, and deletion anomalies—that could lead to a loss of data integrity

tirsdag den 23. februar 2010

ACID

ACID er en måde at sikre at database transaktioner forløber ordentligt.


- Atomicity - Enden skal alle dele af en transaktion udføres, eller ingen bliver udført. Hvis et system f.eks. går ned halvvejs gennem en transaktion, skal der enden roles back til før transaktionen blev startet eller også skal resten af transaktionen udføres.


- Consistency - Consistency sikrer at databasen er i en valid stadie hele tiden, f.eks. at integrity constrains bliver overholdt. Har vi foreksempel en attribut som kun kan indeholde positive integers, og der i en transaktion forsøges at sætte den til en negativ integer skal der "roles back" til det tidligere stadie, hvor integriteten var valid.


- Isolation - Isolation sikrer at to transaktioner, som bliver udført samtidig ikke har indflydelse på hinanden. Det gøres ved at udføre den ene transaktion før den anden, eller færdig gøre en del af transaktionen som som har med en bestemt tabel at gøre, før den næste transaktion får lov at komme til denne tabel.


- Durability - Sikrer at database udføre resten af en transaktion hvis der skulle ske server nedbrud, dette sikres ved at have logs over de udførte handlinger.


http://databases.about.com/od/specificproducts/a/acid.htm

http://en.wikipedia.org/wiki/ACID

mandag den 22. februar 2010

Databasenoter

Relationer = en tabel

Tuple = en række i en tabel

Række = tuple (En relation består af tupler == en table består af rækker)

Kardinalitet i en tabel = antal rækker i en tabel

Null værdi = ingen værdi

Attributter = Overskrift på kolonnen

Domain = attributtens type (varChar, int, osv.)

Primære nøgle = Formål er at udpege en bestemt række (unik) – alle tabeller skal have en primære nøgle der ikke må være null

Kandidat nøgle = De nøgler der kan være primære nøgle

Fremmed nøgle = Er en attribut der ikke er primære nøgle i en tabel, men primære nøgle i en anden tabel


Referentiel integritet:

Hvis man har en fremmed-nøgle (FK) der refererer til en primær-nøgle (PK) skal alle FK-værdier findes som PK-værdier (e.g. FK'ere skal refere til eksisterende PK'ere).

Hvis man sletter rækker med PK'ere kan der derfor opstå problemer. Disse problemer kan håndteres på en af følgende måder:

1. RESTRICT: Checker om det vil give et problem at slette, og hvis det gør, så bliver det ikke gjort (e.g. man får en "exception"). Man kan så løse de problemer der måtte være, og så dernæst slette.

2. CASCADE: Sletter rækker med tilhørende FK (cascade-effekten gentages om nødvendigt også for disse, osv.). En automatisk proces, men til gengæld har vi ikke rigtig styr på hvad der sker.

3. SET TO NULL: Man sætter FK til null, for at indikere manglende reference.


Normalformer:

Man normaliserer fordi:

- Det fjerne redundans (e.g. at det samme står flere steder)

- Anomalier:

- Update: ændrer et sted mere ikke alle steder

- Insert: indsætter allerede eksisterende data, men "staver" forkert


- Det minimere brug af null-værdier

- tvetydig semantik (e.g. uklar betydning)

("hvad betyder semantik, og hvordan staver man til syntaks?")


- Man vil undgå tab af information

- at man sletter en ting, kan bevirke at andre informationer kan gå tabt

(at slette en studerende kan f.eks. slette oplysninger om et fag)


1NF:

- Alle attributter må kun have én værdi ("ingen repeterende felter")


= Man laver _ikke_ flere tabeller (det gør man ellers ifm. 2NF og 3NF)

= Man laver flere rækker (én for hver af værdierne i attributterne med flere værdier)


+ Det skaber mere redundans!


2NF:

- 1NF + Alle attributter skal være fuldt funktionel afhængig (FD) af PK. Dvs. at ved en sammensat PK er en attribut ikke kun afhængige af dele af PK.


= Man finder først en PK for hver tabel, ved at se på FD imllem attributterne.


= _Fuldt_ afhængig er kun et problem hvis man har en _sammensat_ PK


= Man deler tabeller i to

= e.g. laver en ny tabel med de attributter, der ikke er _fuldt_ FD af PK, med

de dele af PK, som de er (fuldt) FD af (som bliver PK i den nye tabel).

= den oprindelige tabel mister disse attributter, dog beholder den PK fra den nye tabel som FK.


+ Fjerner normalt redundans i den oprindelige tabel (e.g. den får færre rækker)


3NF:

- 2NF + Ingen transitive afhængigheder (e.g. ingen FD mellem ikke-PK-nøgle-attributter)


= Man deler tabeller i to

= e.g. laver en ny tabel med de attributter, der er FD af ikke-PK-nøgle-attribut,

med den attribut som de er FD af (som bliver PK i den nye tabel).

= den oprindelige tabel mister disse attributter, dog beholder den PK fra den nye tabel som FK.


+ Fjerner normalt redundans i den oprindelige tabel (e.g. den får færre rækker)

= Postnummer-eksempel er et velkendt eksempel på 3NF


SWK - 22 feb - Monday



http://www.docjava.dk/default_1024_0768.htm

http://en.wikipedia.org/wiki/Singleton_pattern
In software engineering, the singleton pattern is a design pattern that is used to restrict instantiation of a class to one object.

3 Lags Deling


En Lagdeling i 3 lag, brugt i programmering hvor pilene representere hvad der snakker med hvad. præsentations laget, snakker med logik-laget, som snakker med data-laget.

Præsentations laget: Er det lag der representere vores User Interface, altså det brugeren ka se på skærmen.

(Business) Logik-laget: Er det lag der sørger for at præsentations laget, forstår og ka snakke med Data-laget.

Data-lager: Er det lag der sørger for alt data, lagring af data, samt tilgang til data.