\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{AlexHoratio (Horatio)} \pdfinfo{ /Title (wjec-a2-computing-unit-3-4-3-5.pdf) /Creator (Cheatography) /Author (AlexHoratio (Horatio)) /Subject (WJEC A2 Computing Unit 3.4-\textgreater{}3.5 Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{WJEC A2 Computing Unit 3.4-\textgreater{}3.5 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{AlexHoratio (Horatio)} via \textcolor{DarkBackground}{\uline{cheatography.com/21127/cs/16034/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}AlexHoratio (Horatio) \\ \uline{cheatography.com/horatio} \\ \uline{\seqsplit{alexhoratiogamedev}.blogspot.com} \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 8th June, 2018.\\ Updated 8th June, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Programming Paradigms}} \tn % Row 0 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Imperative}} & Directly telling the computer what to do via a series of instructins. {\bf{Procedural}} and {\bf{object-oriented}} programming are both subsets of imperative programming. \tn % Row Count 7 (+ 7) % Row 1 \SetRowColor{white} \{\{ac\}\}{\bf{Declarative}} & This is where the programmer can "{\bf{declare}}" what the solution should look like, and the language will obtain the results without the programmer explicitly telling it how. A common example of this is {\bf{SQL}}. \tn % Row Count 16 (+ 9) % Row 2 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Procedural}} & This is where a program is given a sequence of instructions - a {\bf{procedure}} - to solve a problem or perform a task. For example, {\bf{C}} and {\bf{Pascal}} are both procedural languages. \tn % Row Count 23 (+ 7) % Row 3 \SetRowColor{white} \{\{ac\}\}{\bf{Logic}} & The language is given a set of facts and rules about what is happening, and the computer can then extrapolate data. If the computer is told that B is the child of A, it would deduce that A is the father of B. An example is {\bf{Prolog}} \tn % Row Count 32 (+ 9) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Programming Paradigms (cont)}} \tn % Row 4 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Functional}} & This is a language that uses {\bf{functions}} to obtain and calculate values. For instance, {\bf{double(4)}} would return the value 8. Examples of this are {\bf{C++}} or {\bf{Python}}. \tn % Row Count 7 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Low Level Programming}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Low level code involves working very closely with the physical inner-workings of the computer, for example directly pushing to {\bf{registers}} and the {\bf{accumulator}}.} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Low level languages are usually:} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}{\bf{1.}} Difficult for programmers to use since even simple tasks require a lot of code. \{\{nl\}\} {\bf{2.}} Used to develop performance-intensive programs or tasks. \{\{nl\}\} {\bf{3.}} Very small in terms of file size \{\{nl\}\} {\bf{4.}} Usually hard-coded onto ROM chips for small jobs} \tn % Row Count 11 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Types of Changeover}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Direct Changeover}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}The old system is taken away and the new system is implemented completely overnight. This is {\bf{risky}}, since if the new program has errors it could be catastrophic.} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Parallel Running}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}The old system is run alongside the new system for a while. This involves duplicating all the work done on both systems, but if there are errors in the new system then things are not as catastrophic.} \tn % Row Count 11 (+ 6) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Piloting}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}The new system can be tested out by one branch of the company at a time so that if anything fails, the entire company is not in trouble.} \tn % Row Count 15 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Phased Changeover}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Part of the new system is used, then once all the problems have been worked out then another part can be used.} \tn % Row Count 19 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Types of Documentation}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Technical Manual}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}This would include technical details for use by a programmer. For example it might involve {\bf{data flow diagrams}}, {\bf{flowcharts}}, {\bf{variable lists}} or {\bf{data dictionaries}}.} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{User Manual}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}This is written for use by the end user. This might involve instructions for starting and installing the program, clerical procedures, how to use the program, or fixes for common errors.} \tn % Row Count 10 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Object-Oriented Programming}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{What is it?}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Object-Oriented languages are languages which deal with "objects". Objects usually have a set of attributes and methods which are specific to that type. Objects are usually instances of {\bf{Classes}}.} \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{What's a class?}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}A class is a "template" for an object to be generated from. This would outline the member variables(or {\bf{attributes}}) and methods for use later in the program.} \tn % Row Count 11 (+ 5) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{What's inheritance?}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}A class can inherit from another class. This is commonly used for creating a very broad definition(e.g, Animal) and then extending it for more specific functionality(e.g Dog). A class which inherits from another class will have all the attributes and methods of the class it inherits from.} \tn % Row Count 19 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{High Level Languages}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{High level languages are languages which create a great deal of abstraction between the programmer and the CPU itself. Examples of this are {\bf{C}}, {\bf{Java}} and {\bf{Python}}.} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{High level languages are usually:} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}{\bf{1.}} Easier for humans to understand \{\{nl\}\} {\bf{2.}} Problem-oriented \{\{nl\}\} {\bf{3.}} Used to develop programs which can run on different processors} \tn % Row Count 9 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{System Life Cycle}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{1. Problem Definition}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}State the {\bf{aims}} and {\bf{objectives}} for the program.} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{2. Feasibility Study}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Determine whether the project is economically/technically viable. This might involve {\bf{legality}}, {\bf{time expense}}, {\bf{monetary expense}} or {\bf{technological complexity}}.} \tn % Row Count 8 (+ 5) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{3. Investigation}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Carry out {\bf{questionnaires}}, {\bf{interviews}}, {\bf{observations}} and {\bf{study existing documents}} to determine some of the requirements for the program.} \tn % Row Count 13 (+ 5) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{4. Design}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Create a detailed design for the new system, involving {\bf{database modelling}}, {\bf{screen designs}} and map out what {\bf{processes}} will need to be carries out on the data.} \tn % Row Count 18 (+ 5) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{5. Development}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}The program is actually created. Alongside this, the program will be tested via either {\bf{alpha}}, {\bf{beta}} or {\bf{acceptance}} testing. {\bf{Alpha testing}} is performed by people employed by the company who have not worked on the project. {\bf{Beta testing}} involves giving the program to people outside the company for testing. {\bf{Acceptance testing}} involves giving the program to the client for feedback.} \tn % Row Count 28 (+ 10) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{6. Implementation/Changeover}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Changing from the old system to the new system. There are many different approaches to this, such as {\bf{parallel running}}, {\bf{phased changeover}}, etc.} \tn % Row Count 33 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{System Life Cycle (cont)}} \tn % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{7. Maintenance/Review}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}The system is maintained via either {\bf{adaptive}}, {\bf{corrective}} or {\bf{perfective}} maintenance.} \tn % Row Count 4 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.94103 cm} x{3.03597 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Types of Languages}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Event Driven Languages}} & These are languages which can wait for an event to occur, such as a key press. When an event occurs it is handled by an {\bf{event handler}}. \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} {\bf{Markup Languages}} & These are a set of instructions to denote how an item should look, or how data is to be organized. Examples of this include {\bf{HTML}} and {\bf{XML}}. \tn % Row Count 13 (+ 7) % Row 2 \SetRowColor{LightBackground} {\bf{Visual Languages}} & A visual language uses graphical representations of code in order to make it more intuitive for inexperienced programmers. An example of this is {\bf{Scratch}} \tn % Row Count 20 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Polymorphism}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Polymorphism}} is when a single operator(for example, {\bf{+}}) has multiple meanings depending on data type. + could mean either integer addition or string contatenation, based on the context its used.} \tn % Row Count 5 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Encapsulation}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Encapsulation}} involves the usage of "{\bf{getters}}" and "{\bf{setters}}" in order to prevent things from changing without consequences.} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{For example, if the weight of a plane was updated, the fuel per hour would also need to be updated. This would be calculated and set appropriately via a {\bf{setter}}.} \tn % Row Count 7 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Syntax Diagrams}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/horatio_1528455553_Screenshot from 2018-06-08 11-59-01.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Backus Naur Form}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{BNF}} is a standard for writing the rules of syntax in a language.} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{BNF uses three symbols to define syntax:} \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{::=}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}"is defined by"} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{|}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}"OR"} \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{\textless{} \textgreater{}}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Define a variable} \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{An example of this is the following:} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}{\bf{1.}} `\textless{}digit\textgreater{} ::= 0|1|2|...|9` \{\{nl\}\} {\bf{2.}} `\textless{}integer\textgreater{} ::= \textless{}digit\textgreater{} | \textless{}digit\textgreater{} \textless{}integer\textgreater{}`} \tn % Row Count 12 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Types of Maintenance}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Perfective}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}This involves improving the system to run faster or perform better for its intended objective.} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Adaptive}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}If there are changes in the company structure, requirements, etc then the system may need to be {\bf{adapted}} to fit the new specification.} \tn % Row Count 7 (+ 4) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Corrective}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}This involves correcting problems or bugs in the program that were not noticed or fixed during testing.} \tn % Row Count 11 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Waterfall Approach}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{See above, also the waterfall approach is gay} \tn % Row Count 1 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Agile Approach}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The Agile Approach is designed to be a {\bf{more flexible}} alternative to the {\bf{Waterfall Approach}}. Agile involves working closely with the client. Unfortunately, Agile usually yields {\bf{less detailed documentation}} and {\bf{less specific deadlines}} than the Waterfall Approach. There are two well known implementations of the Agile Approach.} \tn % Row Count 7 (+ 7) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Extreme Programming}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}This emphasizes four areas of the Agile approach which are {\bf{communication}}, {\bf{simplicity}}, {\bf{feedback}} and {\bf{courage}}. The developers are frequently given opportunities for regular feedback from other developers and the client. Also, they often program in pairs known as {\bf{pair programming}}.} \tn % Row Count 15 (+ 8) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Scrum}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}{\bf{Scrum focuses on regular iterations to create prototypes quickly}}. Scrum usually involves having iterations called "{\bf{sprints}}", where at the end of each sprint the team will reconvene and update each other on the progress that has been made.} \tn % Row Count 22 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}