Assembly Language

Instructions

  • Machine code was the first language sued to enter programs by early computer programmers.
  • The next advance in programming was to use mnemonics instead of binary code.
  • This was called assembly language/code.
  • Each assembly language instruction translates into one machine code instruction.

screen-shot-2016-12-15-at-08-58-46

Branch Instructions

  • Flow of the program can be altered using a conditional or unconditional branch instruction.
  • Conditional branch instruction cases a branch to a given label in the program depending on the value held in the accumulator.
  • Unconditional branch instruction will cause a branch whatever the value held in the accumulator.

Format of Machine Code

  • Basic structure of machine code instruction in a 16bit word was described as having a format similar to that shown below.

screen-shot-2016-12-15-at-09-06-56

  • LMC has only 11 instruction sets, with 100 memory locations.
  • Up to 16 registers in which calculations can be carried out, rather than a single accumulator.

Agile and Extreme Programming

Agile Methodologies

  • Came about in the early 2000s.
  • They are actually a group of development methods and not a single one.
  • They focus on the idea that requirements will constantly shift and change while software development is taking place.
  • This can only be dealt with by producing software in an iterative manner.
  • With each iteration of the software having increasing requirements and being shown to the user.

Extreme Programming

  • Involves an iterative approach much like RAD, however, the iterations are very short, often just a week long.
  • For this to work the company requesting the software will often “embed” a user in the development team.
  • New requirements will be built into successive iterations quickly and the user will be able to give instant feedback into the next iteration.
  • A key feature of Extreme programming is “paired programming”.
  • This is literally the idea of two programmers sitting side by side at one computer while the code is written. One drives and the other analyses giving instant feedback and advice. They would make sure to switch roles
    often
  • Although this sounds expensive it is claimed this approach produces much higher quality code sooner, thus saving a lot of time and effort later on.

Both
They are Similar to RAD, but much shorter time between iterations. A user becomes part of the development team to facilitate quick feedback. Paired programming: 2 heads are better than one. Code partner to review, advise and bounce ideas off.

System Analysis Methods

Waterfall
The waterfall model derives its name due to the cascading effect from one phase to the other. In this model each phase has a well-defined starting and ending point, with identifiable deliveries to the next phase. Note that the arrow goes up and down the “waterfall”, reflecting the fact that developers often have to re-work earlier stages in the light of experience gained as development signs of progress.

Rapid Application Development
The spiral model follows an ‘incremental’ approach. Once a prototype is built it is evaluated on various parameters like strengths and weaknesses, risk, etc. Follows the discipline of the waterfall model and each SDLC step is followed for all prototypes built: Requirements gathering, Systems Design, Implementation, Testing and finally Evaluation feeds back into new requirements.

Spiral Model
The Spiral Model actually has aspects from other models such as
the waterfall, incremental and RAD. The difference with the spiral model is that it is risk-driven. It acknowledged that risk is that the heart of many large-scale development projects. It is designed to take into account these risks while they arise in the project and then deal with them before they become major problems. The model has 4 stages, each taking up one quadrant of the spiral. Objectives and requirements are determined in quadrant one, followed by risks and issues. A prototype is then developed which is tested in quadrant three. After this, the project is either completes or if the user wants more the final quadrant works on what will go into the next spiral.

Closed Source vs Open Source

Closed Source
Close source software means the computer programs whose sourced is not published. The source code is not shared with the public for anyone to look at or change.

Open Source
Open source software is software that is open for everyone to use. The source code is shared with the public for anyone to look at or change.

The Nature of Application

Classification of Software

screen-shot-2016-11-16-at-13-57-01

Application Software

General Purpose Software
  • Word processor, spreadsheet, graphical package
  • Can be used for many different purposes
Special Purpose Software
  • Perform single specific task or a set of tasks.
  • For example, payroll and accounts packages, hotel booking system
  • May be bought “off the shelf”, ready to use
  • Bespoke software package that will satisfy their particular requirements

Virtual Machines

Virtualized Servers
Is a way of splitting one big server into smaller servers.

Boot Camp
Is a multi-boot utility including with Apple that assists users in installing Microsoft Windows.

Java Bytecode
Is the instruction set of the Java virtual machine. Each bytecode is composed of one or in some cases two bytes that represent the instruction, along with zero or more bytes for passing parameters.

Task 5

Why is the BIOS stored in ROM and CMOS or EEPROM?
The BIOS contents are stored on a flash memory chip so that the contents can be rewritten without removing the chip from the motherboard. Electrical Erasable Programmable Read Only Memory.

POST (Power On Self-Test)
IS the diagnostic testing sequence that a computer’s basic input/output system runs to determine if the computer keyboard, random access memory, disk drives, and other hardware are working correctly.

Boot Loader (Bootstrap)
Is a small program that places the Operating System of a computer into memory.

Operating System Kernel
To perform useful functions, processes need access to the peripherals connected to the computer, which is controlled by the kernel through device drivers. A device driver is a computer program that enables the operating system to interact with a hardware device.

Chernobyl Virus
Is a virus that destroys all computer data when an infected file is executed.

Dual BIOS
A dual BIOS is any computer motherboard that contains a main BIOS and a backup BIOS. This type of setup can help a motherboard recover from any problems encountered during a BIOS update. It also helps protect the BIOS from any potential virus, or any other data corruption that might occur.

Operating Systems

Functions of an Operating system:

An OS have several roles:
  • Managing the processor
  • Managing the memory
  • Handling externel peripherals
  • Utility programs
  • Networking
  • Security
  • Providing a user interface

Types of Operating systems:

  • Distributed – Locus
  • Embedded – Orbis
  • Multi-tasking – Windows
  • Multi-user – Windows and Big Iron
  • Real time – Rockwell Collins AFDS-770