From the category archives:

Software Engineering

The Agile Manifesto

May 18, 2010

The agile manifesto is a set of 12 principles for developing software in an agile manner, somewhat similar to eXtreme Programming. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Deliver working [...]

Read the full article →

A Brief Overview of eXtreme Programming

May 18, 2010

eXtreme Programming (XP) is an agile development methodology developed by Kent Beck et al. It emphasises the human aspect of software development and how issues such as respect, trust and communication are key issues along with purely technical aspects of software development. It is agile in the sense that Beck is strongly against giant requirement [...]

Read the full article →

Deductive Reasoning Agents

May 7, 2010

A deductive reasoning agent is one that contains an explicitily represented, symbolic model of the world. It then makes decisions via symbolic reasoning. Limitations When building an agent this way there are two key problems that have to be solved. The Transduction Problem This is the problem of translating the real world into accurate, adequate [...]

Read the full article →

Agent Tasks

May 3, 2010

After defining some basic concepts related to agent architecture it is important that we understand how to provide agents with the means to complete tasks. We want agents to be able to complete the tasks we specify but without us having to tell them how to complete the task.

Read the full article →

Agent Architecture

May 3, 2010

Following on from our introduction to agents it’s important to understand the architecture of agents. Abstract Architecture Environment We assume the environment may be in any of a finate set of discrete, instantaneous states, defined as: E = {e,e,,…}. Actions Agents are assumed to have a repertoire of possible actions: Ac = {α,α,,…}. Run A [...]

Read the full article →

What is an Agent?

April 29, 2010

An agent is a computer system that is capable of independent action on behalf its user/owner (figuring out what to be done to satisfy design objectives, not constantly being told). The main idea behind agents is the idea that they are autonomous: they are able act independently, exhibiting control over their internal state. Definition An [...]

Read the full article →

Project Management for Adults – Why bother with Risk Managament?

April 25, 2010

If a project has no risk, don’t do it! Risks and benefits always go hand in hand. A Risk Metaphor Imagine your company, and your competitors as a set of down escalators. You are obliged to climb the escalator. If you pause, even for a second, you will begin to fall behind. Whoever, reaches the [...]

Read the full article →

Floyd-Hoare Logic

April 25, 2010

Floyd-Hoare Logic is a formal system with a set of logical rules for reasoning rigorously about the correctness of computer programmes. The central feature is the Hoare triple. Hoare Triples A Hoare triple {P} C {Q} is a formula. P, Q are fomulae in a base logic (e.g. full predicate logic etc.) and C is [...]

Read the full article →

A Simple Assertion Language for Formal Verification

April 21, 2010

Following on from our introduction of the basic concepts required to start to understand formal verification, we shall define a simple assertion language. An assertion is a logic formula describing a set of states with some “interesting” property. Also, recall that States = Stacks x Heaps, so an assertion can refer to both stack and [...]

Read the full article →

Stacks, Heaps, Variables and Pointers

April 21, 2010

It is important to have a solid understanding of the difference between stacks and heaps, and variables and pointers, before one can embark on the task of learning about Formal Verification of C-like languages. What’s Formal Verification? Formal Verification is a branch of Computer Science responsible for formally proving the “correctness” of programmes. Usually, this [...]

Read the full article →