\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{ravikiran} \pdfinfo{ /Title (sad-final-exam.pdf) /Creator (Cheatography) /Author (ravikiran) /Subject (SAD final exam 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}{666666} \definecolor{LightBackground}{HTML}{F5F5F5} \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{SAD final exam Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{ravikiran} via \textcolor{DarkBackground}{\uline{cheatography.com/21942/cs/4369/}}} \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}ravikiran \\ \uline{cheatography.com/ravikiran} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 10th June, 2015.\\ Updated 13th May, 2016.\\ 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} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Program Design}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Part of design phase of SDLC \newline % Row Count 1 (+ 1) Determine what code modules are required Determine how code modules will work together to form the programDevelop specific instructions for development team on how code modules should be written \newline % Row Count 6 (+ 5) Techniques in program designStructure chart Program specifications \newline % Row Count 8 (+ 2) Designing ProgramsPlanning before coding generally improves the development processNever begin writing code without having a \newline % Row Count 11 (+ 3) complete understanding of what code must doMitigates risk of: \newline % Row Count 13 (+ 2)  Inefficient programs  Incompatible programs  Programs missing key functionality-{}-{}- Program design goalProgram design that is modular and flexible \newline % Row Count 17 (+ 4) Top-down modular approach to designDetermine major program components first,then detailed sub-components supporting them Eases understanding and communication of designProcess of program decomposition \newline % Row Count 22 (+ 5) Designing ProgramsModular design advantagesCode that is easier to understand Code that is reusable Code that has less redundancy Code that is easier to maintainProgram modules should be decomposed until they perform a single function-{}-{}-Program design documentPrepared at completion of program designComponents Program structure chart  Program specificationsStructure ChartHierarchical, high-level depiction of all \newline % Row Count 31 (+ 9) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Program Design (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{modular components of an programEmphasizes structure and reusability Modules should perform a single functionDetails sequence, selection, and iteration of modules-{}-{}- Structure Chart \seqsplit{SyntaxModulesControl} module Higher-level module that contains logic for calling and controlling sub-component modulesSubordinate module Low-level module contains logic for performing \newline % Row Count 8 (+ 8) specific function when called by the control moduleLibrary module Generic module used by multiple control module. Loops Iteration – execution of subordinate modules repeated Conditional line  Selection – subordinate execution based on condition.Couples \newline % Row Count 14 (+ 6) Shows information passed between modules Data couples Passing data \newline % Row Count 16 (+ 2) Control couples Passing parameters, flags, system messages-{}-{}-Building a structure chart -{}-Types of processesAfferent Provide inputs into the systemCentral Perform critical functions in the system operationEfferent Produce outputs of the system-{}-{}-Module structures 1.Transaction structure Control module calls subordinate modules based upon a condition or selection that handle specific transactions Correspond to higher levels of DFD and structure chart 2.Transform Structure Control module calls several subordinate modules in sequence to create a specific output Forms a process to transform inputs into an output  Correspond to lower levels of DFD and structure char-{}-Program design guidelines 1.High Cohesion-{}- Modules should perform a single function efficiently  Modules easy to understand and develop 2.Loose coupling \newline % Row Count 34 (+ 18) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Program Design (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ Modules are independent from one another  Data passed between modules is limited  Modules easy to modify without impacting others 3.High fan-in \newline % Row Count 4 (+ 4)  Multiple control modules should call a single subordinate module Sign of proper module reuse 4.Low fan-out Single control module has few subordinate modules Maximum of seven subordinate modules per control Control modules are not overly complex. Program specification -{}- Explicit instructions for development team on how code modules should be writtenDevelop program specification for each module in structure chart.Program information Events that trigger functionality in the program Inputs and outputs Structured English and pseudocode% Row Count 16 (+ 12) } \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}{System Acquisitions and Arch}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{System acquisition strategiesApproaches to system acquisition Influences on acquisition strategy Selecting an acquisition strategy-{}-{}-Architecture design \newline % Row Count 4 (+ 4) Elements of an architecture design Creating an architecture design-{}-Approaches to System Acquisition Three ways to approach creation of a systemCustom development Packaged software Outsourcing-{}-Systems Acquisition and ArchitectureSystem acquisition strategiesApproaches to system acquisition Influences on acquisition strategySelecting an acquisition strategyArchitecture designElements of an architecture design Creating an architecture design-{}-{}-Approaches to System AcquisitionThree ways to approach creation of a system1.Custom development 2.Packaged software: 3.Outsourcing-{}-{}-Influences on Acquisition Strategy 1.Business need2.Time frame3.Inhouse experience-{}-{}-Selecting an Acquisition Strategy \newline % Row Count 19 (+ 15) Alternative matrixEvaluate pros and cons of design alternatives Weight criteria according to importance Avoid subjective bias toward preferences \newline % Row Count 23 (+ 4)  Independent ratings by each analyst-{}-Architecture DesignInformation systems are \seqsplit{distributedArchitecture} design determines how system \newline % Row Count 26 (+ 3) will be distributed across \seqsplit{computersNon-functional} requirements play key role-{}-{}-VirtualizationServer \seqsplit{virtualizationPartitioning} physical server into several \newline % Row Count 30 (+ 4) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{System Acquisitions and Arch (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{independent virtual serversReduced hardware requirementsStorage \seqsplit{virtualizationCombining} multiple storage devices into single \newline % Row Count 3 (+ 3) virtual storage spaceImproved storage and retrieval speed-{}-Creating an Architecture DesignNon-functional requirements used to guide \newline % Row Count 6 (+ 3) architecture design decisionsOperational requirements Performance requirements Security requirements Cultural and political requirements% Row Count 9 (+ 3) } \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}{Implementation}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{\seqsplit{ImplementationConstruction} of the new systemThorough job in analysis and design phases lead to a successful implementation of the system \newline % Row Count 3 (+ 3) Developing the system's softwareLargest component of SDLC in time and cost Generally presents the fewest problemsDesign and execution of system testing Develop system documentation-{}-{}-Managing the Programming Process \newline % Row Count 8 (+ 5) Coordinating programming activitiesRegular meetings Programming standards and guidelines Software development areas Development, testing, and productionCode management systems Version control  Program log  Program check-in / check-out-{}-{}-TestingWriting programs is fun Testing and documentation are not Professional organizations spend more time \newline % Row Count 16 (+ 8) and money in testing than writing programsRisk associated with system failure is severeTesting is insurance; expenditure justifiedTesting often performed by systems analyst Four types of tests Unit, integration, system, and acceptance tests  Most errors found in integration and system testing-{}-{}-Developing DocumentationSystem documentationCreated in analysis and design phases \newline % Row Count 25 (+ 9) Enable maintenance of system after installationUser documentation \newline % Row Count 27 (+ 2) User manuals, training manuals, help systems Designed to assist users of the system Good documentation takes time Allocate resources to documentation in project plan-{}-{}-Organizational TransitionPeople are generally resistant to changeBusiness processes and computer systems become habitual, people become \seqsplit{comfortableImplementation} of a new system challenging Managing organizational change Unfreeze, transition, refreeze Prior SDLC phases help users prepare for change Migration plan guides the transition Post-implementation establishes new system-{}- Migration plan \newline % Row Count 40 (+ 13) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Implementation (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Decisions, plans, procedures guiding transition Conversion strategy Business contingency plan-{}-Conversion strategyConversion style Defines how abruptly the new system is introducedConversion locations Defines what portion of the organization transitionsConversion styleDirect conversion \newline % Row Count 7 (+ 7)  Instant replacement of the old system with the new  High risk  Any problems have dramatic impact on organization-{}-{}-Business contingency planning \newline % Row Count 11 (+ 4) Withstand impact of problems with new systemProper project management and migration planning helps to ensure smooth transitionParallel conversion provides a fallback Plan for worst-case scenario – no system-{}-Post-Implementation \seqsplit{ActivitiesInstitutionalize} use of new systemEstablish as normal way of doing business Refreeze organization after successful transition Three key post-implementation activities System support  Maintenance  Project assessmentSystem supportProviding assistance to users after \newline % Row Count 22 (+ 11) implementationSystem transferred to operations group Provide online support, guides, FAQs Help desk Level 1 and 2 support staff-{}-{}-System maintenanceRefining system after implementation to ensure \newline % Row Count 27 (+ 5) it continues to meet business needsSubstantially more resources devoted to system maintenance than initial developmentChange request Changes performed through smaller SDLC cycle  Bug fixes – highest priority Enhancements – second priorityProject \seqsplit{assessmentOrganizational} learning Understand successes and failures in system development activitiesProject team review Focuses on way project team performed activitiesSystem review Focuses on extent system provided benefits promised% Row Count 38 (+ 11) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}