Software Development Flashcards
Software development methodology wherein a system is developed incrementally with repeated cycles of design, implementation, and testing.
This methodology emphasizes continuous delivery of working software that is developed, tested, and fixed over short intervals that are referred to as iterations or sprints which are typically 1 to 3 weeks in duration.
This methodology is guided by a set of 4 simple principals:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan.
Agile Development
The practice of writing compound words or phrases such that each work or abbreviation begins with a capital letter.
Camel Case
The term used in a try/catch programming block used to “______” and handle errors or exceptions as they occur during the execution of a program.
Catch
Single lines or blocks of lines intended for documentation inside a program that describe a section of code and is not “seen” by the computer.
Comments
In programming, this is an agreed upon style of writing code by using indentation, capitalization practices, and use of meaningful identifier names to improve the readability of code.
Conventions
The process of including comments inside of a program that are non-executable, but help explain a section of code to help someone trying to learn about the program more quickly understand what it does.
Documentation
A program is considered this if it won’t crash, regardless of bad input of missing files or some other such bad situations that it might encounter.
Several ways to ensure that a program can overcome adverse conditions is through the use of unit testing, input protection, data validation, and exception handling.
Robust Programs
A program is made up of many parts, each of which performs a crucial task. This is the process of testing each individual process to make sure the task it is performing is working in all possible conditions, so that when it is incorporated into the larger process, its function is flawless.
Unit Testing
These two ideas go hand in hand in the development of a robust software package. Protecting against bad data entering a software process includes some way of testing a piece of data to make sure it is in the proper form, such as making sure that someone’s name is actually a string of characters, and not a numeric value, or that someone’s age is indeed a valid number, and not a word or phrase.
Input Protection and Data Validation
An error in programming is that “thrown” when something bad happens in a program, usually during runtime. Generally there are two types: checked and unchecked, checked meaning they are checked during compile time, and unchecked when they are thrown during runtime.
Exception
An exception is an error, plain and simple, that might occur during the execution of a program. A program developer must consider all possible ways that something might break a program, and then protect against that possibility. A robust program is one where all possible “bad” scenarios have been considered and “handled.”
Exception Handling
A program design methodology that allows the system developer to define the system software in convenient stages.
Incremental Development
Programming constructions that are devised to simplify the logic of detecting invalid data. Examples include try, catch blocks, and assertions.
Input Protection
Part of the documentation process in programming, this is often listed in describing the expected state prior to the execution of a method or function in the program, in order for that method to properly execute. For example, the precondition for a binary search is the list provided is in natural ascending order.
Postcondition
A term used to describe the effort a programmer should take to make source code easy to read and easy to understand. Good organization of the code and meaningful variable names help readability, and liberal use of comments can help the reader understand what the program does and why.
Programming Style