Software Engineering

Application Program Interface. A set of protocols which facilitates the way 2 programs work together.

———————-Client Library———————-
Also known as a helper library. A set of code used to accomplish a certain task. This is existing code.
———————-Client Library———————-

———————-Boiler Plate Code———————-
Code that is repetitive.
———————-Boiler Plate Code———————-

—————–Working Directory—————–
The directory where a current process is running on. Also known as “Current Working Directory”.
—————–Working Directory—————–

—————————–Resource Leak—————————–
When a computer process grabs a resource such as a file-handle or PID and never frees the resource.
—————————–Resource Leak—————————–

—————————–Design Patterns————————————
-What programming language?
-Where to deploy?
-Front end
-Back End


Bug Types
—————————–Design Patterns————————————

———–Spring Dependency Injection——————
Injecting one bean into another bean.
———–Spring Dependency Injection——————

——————–Java Beans——————
You can pass values in a bean though:
1. Constructor Arguments
2. Bean Properties (Requires that the value has a defined set method)
——————–Java Beans——————

———————–Environment Variables————————-
Dynamic named values that change the way a process runs in a certain environment. Basically, invoking these names invokes a process itself.
———————–Environment Variables————————-

In Java, this is the path to a class(s) and packages(s). The classpath starts at the package scope.

—————————————DATA LOADING——————————————————————————DATA LOADING—————————————Dynamic Loading: When a Library can be loaded to a program at runtime, which gives the program in runtime, the ablity to load those libraries and it’s functions to the program during runtime, giving the runtime program the ability to fully use the Library during runtime.—————————————DATA LOADING—————————————


————————————DISTRIBUTED APPLICATION————————————An application that runs on multiple servers concurrently.————————————DISTRIBUTED APPLICATION————————————
———————————————–ULM Class Diagram———————————————–(In Order of Coupling Strength) (Weak/Loose Coupling)-   –   –   –   –   –   –   –   –   –   –   –   –   –   –
Dependency(ORDERED): Weak class relationship.
(In Order of Coupling Strength) (Strong/Tight Coupling)-   –   –   –   –   –   –   –   –   –   –   –   –   –   –
(Unordered) __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
(Textual Definitions)+++++++++++++++++++++++++++++Loose Coupling: Defines a program with classes that do not depend much on each other, which gives the classes the ability to be easily changed/Added-to/Removed from the program with ease.Tight Coupling: Defines a program with classes that greatly depend on each other, which gives the classes the inability to be easily intergrated wit other classes, be edited, or remove classes from the program. Making changes to these classes is difficult.Association: A relationship between classifiers which is used to show that instances of classifiers could be either linked to each other or combined logically or physically into some aggregation.Aggregation: A “part-of” relationship between classes.Classifer: A class in am UML diagram is also knnown as a “classfier” when the class is written in UML form.Part/Whole relationship: A relationship bewtween multiple objects that together make up a new Object. In this case the object created from all the multipleobjects is the “Whole” & the objects used to create the final object are the “parts”, hence part/whole.Aggregate: A whole formeed by combining multiple elements.IS-A Relatioship: Example: Cat & Dog IS-A Animal. Used when planning to extend & inherit your class.HAS-A Relatioship: Example: Animal HAS-A Fur & Feet. Used when a class will use another class.(Textual Definitions)+++++++++++++++++++++++++++++
(SYMBOLS)****************************************—- —> x–> Association (Navigation from one class to one or more classes)◇ Aggregation (Whole/Part Relatioship)◆ Composition (Special type of Whole/Part Relatioship where the “Part” cannot exist separately from the “Whole”)- – – – Dependency (A class using another class as a parameter passed in a method) (A class using another class inside a method)—> Generalization (Also Known as inheritance)(SYMBOLS)****************************************
(Deep Explanations)========================-Association:                       |–| -Self-Association: Example: Person- (Just one class which points back to itself) (A person can be a manager of another person) -Binary-Association: Example: Company—-Worker (Two classes associated with each other) (Naviagtion is unspecified) (Also known as a “Bidirectional Association”) -Unary-Association: Example: Company—>Worker (Navigation from “Company to Worker” specified, & navigation from “Worker to Company” unspecified) (Also known as a “Unidirectional Association”) Exmaple: Companyx–>Worker (Navigation from “Company to Worker” specified, & navigation from “Worker to Company is forbidden”) -N-ary-Association: Exapmle: Company—-◇—-Worker (An Association with more than two classes. The “N” in “N-ary is a varible representing the umber of classes”) | |         Contract -Aggregation(A special type of Association): Example: Room◇—Wall (Whole/part relationship) (HAS-A relationship) (The part can exist separately from the whole) (Whole) (Part) (A wall can exist separately from a Room)   Composition: Example: Browser◆—Tab (A special type of Aggregation where the part cannot exist separetely from the whole) (Also called composite aggregation) (An object can be part of only one composite at a time) (Whole)   (Part) (A tab cannot exist separetely from the browser) (The browser can have one or more tabs) |———————–Dependency: Example: |Schedule              | |add(Meeting)          | |remove() {            |- – – >Meeting (Meeting is “using” Schedule. This is why we cal this a “Using Relatioship”) | Meeting meeting….  | |}                     |  ———————- A “using” relationship meaning if something changes in “Meeting”(such as a time change), this owuld affect “Schedule” but the reverse is not true.(A class using another class as a parameter passed in a method) (A class using another class inside a method) (A “using” relationship) (Weakest class relationship)
Generalization: Example: (Also know as inheritance) (IS-A type of relatiohsip) (Relatiohsip between a general thing and a more specific kind of thing(Such as a super-class & a sub-class) )
(Deep Explanations)========================(Unordered) __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ———————————————–ULM Class Diagram———————————————–



——————————————–Algorithmic Time Complexity——————————————–In BigO notation, we only care about the most significant portion of complexity. However, using BigO we can also determine “Best Case” & expected case.  “O” is used in BigO notation in reference to “order of the function”, which represents the growth rate of a function.
Constant Complexity: -Constant upper bound amount of time, un-affected by any input parameters. –
Linear Complexity: -Upper bound time dependant on in input parameters. As input increases, time complexity increases proportiaonally to the input size.    -O(n)     -“n” in the largestt input
Log Complexity: -O(log n)
Factorial Complexity: -O(n!)
Polynomial Complexity: -O(n^a) -The base of the expression represents the input -“n” must not be negative. -All basic arithmetic operations ((i.e.) Addition, subtraction, multiplication,division), comparison operations, sort operations are considered as polynomial time algorithms.
Exponential Complexity: -O(2^n) || -O(a^n)
———————Search——————— Binary Search: -The list being searched must already be sorted before being queried. -Steps: -1. Take the middle element of the list, and compare it’s value with the defined target-value (The value which is being queried) -2. If the value of the middle element is equal to the target value, you have found your match, else; -Check if the middle element is less than the target value, if so, disregard your middle element and all elements greater than it. Now you will only focus on the elemnts less than the middle element. 3. Repeat the process until you find your target.

———————Sorting——————— Sorting VS Search: Sorting is more expensive than search. ———————Sorting———————

BigO Notation Explanation for the beginner:

Algorithm Steps:-Find a pivot that divides the array into 2 halves-Quicksort the left halve-Quicksort the right halve
Also known as partition-sort.
All elements to the right of the pivot must be greater than the pivot.All elements to the left of the pivot must be smaller than the pivot.
is pivot < rightis pivot > left
Pivot is equal to left or right, as it switches of from left & right.

Asymptotic Complexity: The amount of time required for an algorithm to accomplish it’s task based on logical implementation.
Non-Deterministic Algorithm: A software algorithm whihc may exhibit different behaviour on multiple runs, even if these multiple runs insert the same input into the software.——————————————–Algorithmic Time Complexity——————————————–



—————————————DATA LOADING—————————————Transferring data from one resource to another.—————————————DATA LOADING—————————————



——————————-VIDEO——————————-Field: a still picture.Frame: Two fields. The playback from one field to the other creates a motion illusion.
Progressive vs Interlaced (You are able to de-interlace digital video) Video
Interlaced Footage:-Good for TV-Should be de-interlaced for playback on Youtube
Progressive Footage:
Tips:-Keep footage consistent——————————-VIDEO——————————-



———————————–SINE WAVE———————————–A sine wave is described by three quantities: amplitude, period, and frequency. The amplitude is the peak value of the wave in either the positive or negative direction, the period is the time it takes to complete one cycle of the wave, and the frequency is the number of complete cycles per unit of time (the reciprocal of the period).———————————–SINE WAVE———————————–



——————————————————————- PROGRAMMING CONCEPTS ——————————————————————-
***********************MODEL-VIEW-CONTROLLER***********************Model View Controller
_View1 (Text Areas, Buttons)Controller–| -View2 (Text Areas, Buttons)
Functional Decomposition: Breaking down a Software concept into the simplest of functions.


Design-By-Contract Made of of pre-conditions and post-conditions

MVC Dataflow Chart
View –> Controller –> Model  |  |  ↓View <– Controller <–Model***********************MODEL-VIEW-CONTROLLER***********************


Predicate/Open-Statement: A statement, either true or false, that is displayed as a variable, and threfore, cannot be a proposition since it this variable is undefined and contains no formal-proof.//Predicate: The formal-proof to which the subject is being compared to.
The Stuides of this is known as: First-Order-Logic -Made up of predicates.
Proposition: A formal-proof. -Also known as: Propositional-Logic, Sentential-Logic, Statement-Logic. -Can only contain values of 0 or 1 The studies of this is known as: Propositional Logic (First-Order-Logic)
Proof by contradiction ************************LOGIC************************


*********************GOOD PROGRAMMING PRACTICES*********************You should program deliberately, and not by coincidence.*********************GOOD PROGRAMMING PRACTICES*********************

*********************************BITS, PROCESSORS, & MORE*********************************A bit vs. the value of a bit.

The way data flows through the ALU & registers (& other hardware components) is what determines the instruction translation of micro-architecture.  Assembly language represents the state of a CPU (RF,mem)  Main data created by software for hardware to process: -Addresses -Data -Instructions  A computer is made up of: -Processor -Memory -I/O   Big Endian: Lowest to Largest.  Little Endian: Largest to Lowest.

Image web-optimization. Low pixel images.   This PC has a Computer Architecture of Little Endian Words.  The significance of bits are based on permutations & not combinations, since the order of the bits matter.  In unsigned Arithmetic, a carryoff at the left-end always signifies an overflow, in Twos-Complement signed arithemtic, it only matters if you are writing numbers of the same sign.  Hardware overflow.  Casting in Java truncates, it does NOT round.
A CPU performs widening & opening on byte values which are lower or greater than it’s CPU set word architecture.*********************************BITS, PROCESSORS, & MORE*********************************


Let’s make this process as sequential and simple ass possible, with detailed explanations.
Step 1:
git status

Step 2:
git init

Step 3:
git status

Step 4: (The actual Origin .git link/URL):
git remote add origin

Step 5: (“chris” in this case is the name of my branch) -OR git pull origin master (master branch of repo):
git pull origin chris

Step 6:
git add .

Step 7:
git commit -m "a comment about my changes made"

Step 8 (“chris” in this case is the name of my branch):
git push origin HEAD:chris


After finishing, it usually good practice to cleanup your Git settings in the current directory that your were using Git on
Extra Step (In order to delete the local GIT repo):
rm -rf .git

******************************** Sorting Algorithms ********************************Linear-Search/Sequential-Search: The simplest search algorithm consisting of checking every elemnt in a set sequentially until the tarrget is matched to an element in the set.
Insertion Sort: (As elements are scanned, each element position-sequentially scanned is compared to the smallest element available that is ahead of it, if it finds such element, the two elements swap places. This occurs until the elements are placed in their correct position)
Best explanation:
3,1,0,3,8,2,5,4,3,2 [Beggining array value] [Beggining sorted-array value][Total of 10 digits]
1,0,3,8,2,5,4,3,2 [Pass 1 | Unsorted Array]3 [Pass 1 | Sorted Array]
0,3,8,2,5,4,3,2 [Pass 2 | Unsorted Array]1,3 [Pass 2 | Sorted Array]
3,8,2,5,4,3,2 [Pass 3 | Unsorted Array]0,1,3 [Pass 3 | Sorted Array]
8,2,5,4,3,2 [Pass 4 | Unsorted Array]0,1,3,3 [Pass 4 | Sorted Array]
2,5,4,3,2 [Pass 5 | Unsorted Array]0,1,3,3,8 [Pass 5 | Sorted Array]
5,4,3,2 [Pass 6 | Unsorted Array]0,1,2,3,3,8 [Pass 6 | Sorted Array]
4,3,2 [Pass 7 | Unsorted Array]0,1,2,3,3,5,8 [Pass 7 | Sorted Array]
3,2 [Pass 8 | Unsorted Array]0,1,2,3,3,4,5,8 [Pass 8 | Sorted Array]
2 [Pass 9 | Unsorted Array]0,1,2,3,3,3,4,5,8 [Pass 9 | Sorted Array]
[Pass 10 | Unsorted Array]0,1,2,2,3,3,3,4,5,8 [Pass 10 | Sorted Array]
[Pass 11 | Unsorted Array] [FINAL PASS]0,1,2,2,3,3,3,4,5,8 [Pass 11 | Sorted Array][Total of 10 digits]
Selection Sort:3,1,0,3,8,2,5,4,3,2 [Beggining array value]3,1,0,3,8,2,5,4,3,2 [Pass 1 ()]3,1,0,3,8,2,5,4,3,2 [Pass 2]

******************************** Sorting Algorithms ********************************——————————————————————- PROGRAMMING CONCEPTS ——————————————————————-



—————————————-USEFUL LINKS—————————————-http://localhost/PHP-Practice/
Awesome tutorial on WordPress:
Changing Max-Upload size in CPanel:
Latest WordPress ping list:
Upgrading WordPress Version:
Useful Online Tools:-
Check Internet Speed:
Create YouTube Intros
Image Converter Online:
Audio Cutter Online:

Free wordcount on webpages:
Image Resizer By Width & Height Instead of Pixels (Easy Resizing):
Test SSH connections:—————————————-USEFUL LINKS—————————————-



—————————————-TECHNICAL STANDARD—————————————-A publicly accepted technical standard.—————————————-TECHNICAL STANDARD—————————————-



———————————–EMAIL———————————–EMail:IMAP is Synchronized, POP is not.
Tutorial on connecting gmail to outlook client : On Yahoo:———————————–EMAIL———————————–



———————————————-SERVERS———————————————-Apache: Web Server. Used for handling HTTP requests.
TomCat: Used for processing JSP pages and responding back with HTML/JSP pages.———————————————-SERVERS———————————————-



———————————————ARP PROTOCOL———————————————ARP (Address Resolution Protocol): Used to find the Mac address of a destination by using the destination’s IP address as basis.How it works:Source Host wants to send something to Destination host, so source host sends an ARP request to the destination for the first connection to be able to discover the destination’s MAC address in order to send the data it needs to to the destination.
[MAC Addresses are tied to an IP adress]Source IP: MAC: AAADestination IP: MAC: ???Source Host sends ARP request to Destination HostDestination Host saves the Source Host’s MAC addressDestination Host responds to ARP request by sending back it’s MAC address to the Source HostNow Source Host can successfully send data to Destination Host, and vice versa
Sample ARP table of a HostDevice 1IP: MAC: AAADevice 2IP: MAC: BBB———————————————ARP PROTOCOL———————————————



—————————————-PROGRAMMING LANGUAGE TYPES—————————————-Strongly vs Weakly typed Programming Languages:Strongly Typed: JavaWeakly Typed: Bash—————————————-PROGRAMMING LANGUAGE TYPES—————————————-



————————————————VARIABLES————————————————Invariant: Does not change.
AntiPattern: A bad practice of some sort.————————————————VARIABLES————————————————



————————————————LANGUAGE CONSTRUCT————————————————The syntax and format of a programming language.————————————————LANGUAGE CONSTRUCT————————————————



———————————————–DIRECTIVE———————————————–Directive: Tells a compiler how the input the compiler consumes should be compiled. It’s sort of like hints and pre-conditions for the compiler before it compiles it’s input.———————————————–DIRECTIVE———————————————–



——————————–HASH TABLE——————————–A Hash Table is an Array coupled with a Hash Function.——————————–HASH TABLE——————————–



————————REDIRECT VS FORWARDING————————Redirect: From the requested page, the browser first gets that page, then goes to another page.
Forward: The page requested is served, but the actaul contents of the page requested is actually content from another page.————————REDIRECT VS FORWARDING————————



————————–LEXICOGRAPHY————————–Lexographic: (also known as lexical order, dictionary order, alphabetical order or lexicographic(al) product)
Lexicography: The design, compilation, use and evaluation of general dictionaries, i.e. dictionaries that provide a description of the language in general use.
Term Rewriting: For example, when you are working on a math problem, and you work through it step by step, rewriting the problem every step of the way as you simplify it. In this scenario, you are ‘Rewriting Terms’.
Natural Order: In Java, natural order is the order is which numbers & Strings are normally ordered. Normal order for Strings would be alphabetical order & normal order for numbers would be based on value (Ex: {0,1,2,3,4,5})————————–LEXICOGRAPHY————————–



————————-QUALITY————————-Assertion: A type of validation. A check. Is usually of boolean type, if true, the assertion is met, else, the program throws an exception, or quite simply, the program crashes. Helps ensure program correctness.
Invariant: A set of code conditions which do must remain constant at the beggining and termination of a method. The specific set of conditions may change throughout the method, but at the termination of the method, the set of conditions must return to their constant values/behaviors.————————-QUALITY————————-



—————————————-RANDOM—————————————-An addon can be a plugin, but a Plugin cannot be an AddOn.
Base Memory: Minum amount of RAM required for an OS to properly operate
Conventional DHCP ports are 67 & 68
In programming terms, loading basically means pushing in data in a certain function or variable, or some other type of construct.
An addon can be a plugin, but a Plugin cannot be an AddOn.
Base Memory: Minum amount of RAM required for an OS to properly operate
Conventional DHCP ports are 67 & 68
In programming terms, loading basically means pushing in data in a certain function or variable, or some other type of construct.—————————————-RANDOM—————————————-