Software Dev Flashcards
First Generation language
First Generation language: Machine-level programming languages like Machine Code
Second Generation language
Second Generation language: The code is human readable. It must be converted into a machine readable form, a process called assembly, before it can be run. The language is specific to a particular processor family and environment. (example: Assembly)
Third Generation Language
Third Generation Language (High-Level Language): Established a logical structure to software. Improve human readability, automate lower level tasks and introduced more abstraction than second generation languages. Can operate independent of processor family or environment. (examples: COBOL, C, Basic)
Fourth Generation language
Fourth Generation language: Utilize graphical programmer interfaces to automate and increase the speed of code creation. Many fourth generation languages are interpreted. (examples: Java, ColdFusion, Ruby, Python).
CASE
CASE (Computer Aided Software Engineering): contains tools (supporting specific dev tasks), workbenches (supporting multiple activities), and environments (supporting all/part of the sw production process)
Compilers
Compilers: Convert source code from third generation, or later, languages into machine code. Compilers parse the instructions into machine code and store them in a separate file like an “.exe”.
Assembler
Assembler: Converts assembly language into machine language.
Interpreted languages
Interpreted languages: These languages are compiled on the fly each time the program is run. The source code is executed line by line by the interpreter. Examples of interpreters include ColdFusion Application Server and the JavaScript Engine in browsers.
Procedural Languages
Procedural Languages: Use subroutines, procedures, and functions. (examples: Basic, C, Fortran, Pascal).
Object-oriented languages
Object-oriented languages: Model the real world through the use of objects which combine tasks (methods) and data.
RAD
Rapid Application Development (RAD): A software development methodology that uses minimal planning in favor of rapid development and construction of iterative prototypes. The goal is to quickly meet business needs and technical concerns are secondary.
Configuration Management
Configuration Management: tracks changes to a piece of sw
Change management
Change management: broader, tracks changes across an entire sw program
Prototyping
Prototyping: A rudimentary working model of an information system or mockup of system design features
Software Escrow
Software Escrow: A process of having a third party store and archive software. Escrow is typically requested by customer acquiring software, to ensure maintenance and availability of the software. If the vendor goes out of business or fails to live up to the agreement, software escrow ensures that the customer still has access to the source code for future development and maintenance.
Data modeling
Data modeling: Defines how data components are associated with each other. Considers the data independently of the way it is processed.
Data Structure
Data Structure: Is a representation of the logical relationship between elements of data
Cohesive
Cohesive: A cohesive module can perform a single task with little or no help from other modules • Low Cohesion: Scatter brained, does several tasks. • High Cohesion: Focused on one task and is better for security purposes
The best programming uses the most cohesive modules possible, but because different modules need to pass data and communicate, they usually cannot be totally cohesive.
Coupling
Coupling: Is a measure of interconnection among modules in an application. • Low Coupling: Promotes module independence and is better for security purposes • High Coupling: Depend on other modules
The lower the coupling, the better the software design, because it promote module independence. The more independent a component is, the less complex the application is and the easier it is to modify and troubleshoot.
ORB
ORB (Object Request Brokers)- allow reuse of mature objects
o COM- MS sharing of objects written in different languages on a local system
o DCOM- MS sharing over multiple systems (eg OLE); supplanted by .NET
o CORBA- OMG networked object broker that separates objects into an object and an IDL (Interface Definition Language)
DDE
Dynamic Data Exchange (DDE): Enables different applications to share data by providing Inter-Process Communications (IPC). It is a communication mechanism that enables direct conversation between two applications.
DCE
Distributed Computing Environment (DCE): Is a set of management services with a communication layer based on Remote Procedure Call (RPC). It is a layer of software that sits on top of the network layer and provides services to the applications above it. The RPC function collects the arguments and commands from the sending program and prepares them for transmission over the network
DFS
Distributed File Services (DFS): Provides a single integrated file system that all DCE users can use to share files
.NET
.NET framework: An application framework that has a large library which different applications can call upon. The libraries provide functions as in data access, database connectivity, network communication, etc.
OLE
Object linking and embedding (OLE): Provides a way for objects to be shared on a local personal computer and to use COM as their foundation. OLE enables objects—such as graphics, clipart, and spreadsheets—to be embedded into documents
J2EE
Java Platform, Enterprise Edition (J2EE): J2EE is an enterprise Java computing platform. This means it is a framework that is used to develop enterprise software written mainly in the Java programming language. It provides Application Programming Interfaces (API) for networking services, fault tolerance, security, and web services for large-scale, multi-tiered network applications
SOA
Service-oriented architecture (SOA): A software design and software architecture design pattern based on discrete pieces of software providing application functionality as services to other applications. This is known as service-orientation
Mashup
Mashup: The combination of functionality, data, and presentation capabilities of two or more sources to provide some type of new service or functionality
SOAP
Simple Object Access Protocol (SOAP): An XML-based protocol that encodes messages in a web service environment. It defines an XML schema of how communication is going to take place. The SOAP XML schema defines how objects communicate directly.
SaaS
Software as a Service (SaaS): A model that allows applications and data to be centrally hosted and accessed by thin clients, commonly web browsers
Mobile code
Mobile code: Code that can be transmitted across a network, to be executed by a system or device on the other end
Bytecode
Bytecode: Intermediate code created by Java platform
JVM
Java Virtual Machine (JVM): Converts the bytecode to the machine code that the processor on that particular system can understand
Applets
Java Applets: Small components (applets) that provide various functionalities and are delivered to users in the form of Java bytecode. Java applets can run in a web browser using a Java Virtual Machine (JVM). Java is platform independent; thus, Java applets can be executed by browsers for many platforms
ActiveX
ActiveX: ActiveX is a loosely defined set of technologies developed by Microsoft for sharing information among different applications. ActiveX is an outgrowth of OLE (Object Linking and Embedding) and COM (Component Object Model).
Authenticode
Authenticode: A type of code signing, which is the process of digitally signing software components and scripts to confirm the software author and guarantee that the code has not been altered or corrupted since it was digitally signed. Authenticode is Microsoft’s implementation of code signing
OOP
Object Oriented Programming treats a program as a series of connected objects that communicate via messages. It utilizes modular design and reusable software components.
• Object Oriented Languages (C++, Java, Ruby, Python)
• Objects contain Data and Methods
• Objects obfuscate the details of the data and methods they contain
Objects
Objects: Objects have state/attributes and methods/behaviors. State is data about the object and behaviors are what the object does. An object stores its state in fields and exposes its behavior through methods. (example: A dog is an object with state values of fury, four legged, etc, and methods/behaviors like fetches sticks and barks)
Methods
Methods: These are actions or operations performed by an object. (example: addition, subtraction, etc.)
Class
Class: An template for creating objects which provides initial values for data (state) and defines methods
Messages
Messages: Data sent to or from an object