
1. Software Engineering- discipline devoted to the design, production, and maintenance of the
computer programs that are developed on time and within cost estimations using tools and
techniques.
2. Software Life Cycle
a. Problem Analysis- understanding nature of problem to be solved.
b. Requirements elicitation- determining exactly what the program must do.
c. Requirements Specification- specifying the functional and non functional requirements
d. High and Low level Design- Recoding how the program meets requirement from big
picture overview to detailed design.
e. Implementation of the Design- Coding it in computer language
f. Testing and Verification- Detecting and fixing errors
g. Delivery- Turning over the tested program to the customer or user
h. Operation- Actually using the program
i. Maintenance- Add or modify the function of the program
3. 5 Steps to build a good program
a. Determine exactly what the program must do and do it correctly
b. A readable and understandable program that can be easily modified.
c. Designing general routines that can be reused in the future
d. Completed on time and within budget.
4. Data Abstraction- A model of a complex system that includes only the details essential to the
perspective of the viewer of the system. Separating the data type into data that makes sense to
the human.
5. Information Hiding- hiding the details of the function or data structure with the goal of
controlling access to the details of a module or structure.
6. Abstract Data Type- A class of data objects specified independently with a defined set of
properties and operations that process the data objects.
7. Data Encapsulation- Separation of data from applications that use the data at a logical level;
enforces information hiding.
1. Specification File- Declares a class to represent the ADT. Goes into a header file(.h)
2. Implementation File- A (.cpp) file that includes only the functions of the class to access the data
members.
a. Public: Client code can access these functions.
b. Private: can only be accessed only by code in implementation file