CS 307 Exam 1
Implementation File
(.cpp) file defining the behaviors (functions) of the class.
Instantiation
(noun) The object that is created during the process of Instantiation (v). An instance of a class.
What are the three main Parts of The Unified Modeling Language (UML)?
1. Basic Building Blocks 2. Rules controlling how the blocks are put together 3. Common mechanisms applied throughout the language
What are the 3 parts of a use case?
1. Clear Value 2. Starts and Stops 3. External Initiator
Show how to define a pointer to a function given the function arguments and return type. Show how to set the function pointer pointing to a function of the appropriate type, and how to use the pointer to call the function. WILL BE ON THE TEST.
void myFunction(int x) { cout << " x = " << x << endl; } //Example function somewhere in code void (*funcPtr)(int); //Declare a function pointer funcPtr = myFunction; //Set the pointer to myFunction funcPtr(255); //Call the function using the pointer
Requirement Specification
a complete description of the behavior of a system to be developed. After you think you have all the information you need from the user write down a preliminary list of requirements clearly stating each detail.
What is an enumerated data type?
a data type where every possible value is defined as a symbolic constant. Makes code more readable. example: enum Number {ZERO, ONE, TWO, THREE, FOUR, FIVE, TEN=10, ELEVEN}; example 2: enum Wind_dir{NORTH_WIND, SOUTH_WIND, EAST_WIND, WEST_WIND}; Declaring variable with example 2 enum. Win_dir dir = NORTH_WIND;
inheritance
a mechanism by which one class acquires the proprties (member variables and member functions) of another class
Object Oriented Programming
a programming paradigm using "objects" (data structures consisting of data fields and methods together with their interactions) to design applications and computer programs. In Glossary: The use of data abstraction, inheritance and dynamic binding (memory allocation) to construct programs that are collections of interacting objects. The process of using objects as the building blocks of a program. aka Bottom Up Design.
Message
a request sent from one object to another object telling the receiving object to apply one of its' methods to itself.
object
a software bundle consisting of a set of variables defining the state and a set of functionsdefining the behavior
Unified process
a software engineering method developed by Booch, Jacobson, and Rumbaugh which takes an iterative and incremental approach to program development
regression fault
an error in the program introduced when fixing another
requirement
an expression of desired behavior for a software system. it is a specific thing your system has to do to work correctly
What are the five phases of software development in the Waterfall Method which was an example of the Classical paradigm? What are the other two phases that are sometimes added?
1. Requirements Specification 2. Analysis 3. Design 4. Implementation 5. Testing The two that are sometimes added are : 1. Post-Delivery Maintenance 2. Retirement
What are the seven steps in the Unified Process of Software Engineering developed by Booch, Jacobson, and Rumbaugh?
1. Requirements Workflow 2. Analysis Workflow 3. Design Workflow 4. Implementation Workflow 5. Test Workflow 6. Post-delivery Maintenance 7. Retirement
What are the 3 characteristics of an object?
1. State 2. Defined Behaviors 3. Defined ways of modifying the State.
What were the three parts of Modular Programming in the Structured or Classical paradigm approach to software engineering that was primarily used from 1975 to 1985?
1. Structured Systems Analysis 2. Structured Programming 3. Structured Testing
An object, as it relates to software engineering, is a software "bundle" consisting of what two things?
1. Variables that define the states the object can exist in. 2. A set of functions that define the behavior of that object.
List, and briefly define, the four types of type-casting used in C++.
1. static_cast - normal type 2. reinturpret_cast - pointer type 3. const cast - toggles variables const status 4. dynamic cast - changes pointer to parent class into pointer to subclasses.
Explain what default arguments to functions are and show how you would declare default values for arguments to a function in the function's prototype.
Default values for arguments to a function in the function's prototype. CANNOT SKIP ANY OF THE ARGUMENTS IN A CALL.
Briefly explain what the following design principle means relative to object oriented software design: Program to an interface, not an implementation.
Define an interface instead of a class; then you can add new children to the parent and keep the same functions.
A semantic relationship in which a change on one thing may cause changes in the other thing. One of the 4 types of relationships.
Dependency
During which Workflow of the Unified Process do you usually decide on what member variables, and functions will be needed in each class as part of the Detailed Design?
Design Workflow
Briefly explain what the following design principle means relative to OO software design: Identify the aspects of your application that vary and seperate them from what stays the same.
Design your software in such a way that when changes happen they are easy to implement because the places where changes need to be made are isolated in separate classes.
Defined requirements in the format <verb> the <something>for/of/to a(n) <something else>
Feature Drive Programming
Two week cycle following a 2-step process each time
Feature Drive Programming
Simply put this describes the relationship of a parent class to its subclasses. One of the 4 types of relationships.
Generalization.
Briefly explain what the following design principle means relative to object oriented software design: Favor composition over inheritance.
Making a class type part of another classes member fields. This demonstrates a "has a" relationship.
Defines a realationship in which one class specifies something that another class will perform. Example: The relationship between an interface and the class that realizes or executes that interface. One of the 4 types of relationships.
Realization.
During which Workflow of the Unified Process do you usually write each of the following documents: Software Development Plan, Requirements Definition Document, Requirements Specification Document?
Requirements Workflow
During which workflow of the unified method do you write the software development plan for the project
Requirements workflow
What is function overloading? Show how to create an overloaded function in a class.
Same named functions, but different arguments list.
Daily Stand-up Meeting
Scrum
Product Backlog
Scrum
Sprints
Scrum
User Stories
Scrum
A behavior that specifies the sequences of states an object or interaction goes through during its' lifetime in response to events. One of the 2 types of Behavioral Things.
State Machine.
One of the three types of Building Blocks that make up the Unified Modeling Language (UML) is Things. What are the four types of Things?
Structural Things, Behavioral Things, Grouping Things, Annotational Things,
In the definition of a class (in the .h file) what is the syntax for indicating the class has more than one parent class, i.e. has multiple inheritance?
class MultipleInheritance : public One, public Two
In the definition of a class (in the .h file) what is the syntax for indicating the class is a sub-class of another class?
class myNewClass : public My Class
Virtual Function
declared as virtual in the parent class, all sub-classes are required to override it.
True or False Logical data modeling which is part of structure systems analysis is an important part of the unified method of software engineering
false
True or False Structured programming is another name for object oriented programming
false
Data Hiding
hide the internal data from you; control outside access; a class interface allows the internal data & methods to be hidden; The practice of hiding the details of a function, class, or data structure with the goal of controlling access to the details of the implementation of a class or structure. See Data Encapsulation.
During which phase of the unified method is the aim to determine if it is worthwhile to develop the target software product
inception phase
Message
instead of thinking of calling a function in an instance of a class you could think of sending it one of these, telling it what to do
Cast the double value 7.9 to 7
int x = static_cast<int>(7.9);
Regression Fault
introduce a bug while fixing another bug
data hiding
making the internal state of an object not directly accessible but requiring all interactions to modify the internal state to be performed through the object's methods
Structured/Classical development paradigm
modular programming; top-down programming; focuses on the action the program will take. Very little focus on data or data structures. Structured in the sense of organizing what was going on. Requirements Specification Phase Analysis Phase Design Phase Implementation Phase Testing Phase
Instance
objects created while the program is running
Loose-coupling, Delegation
objects don't know what is going on in an object when they call it
Encapsulation
packaging both the data and functions into an object - led to the idea of classes; The separation of the representation of data from the applications that use the data at a logical level. A programming language feature that enhances information hiding. Another term for Data Abstraction. See Information Hiding.
Transition phase
primary aim is to ensure the client's requirements have been met.
Implementation Workflow
primary aim is to implement the design in the chosen language; work is done on the test plan. Activities: asiign modules to team member, write code, integrate code from all team members, revise code as required while testing.
Construction phase of Unified Process
primary aim is to produce the first operation version of the software
Explain the Design Workflow
primary aim is to refine the products of the Analysis Workflow until they are in a form that can be implemented. Write the Software Design Plan. Work Continues on the Software test PLan. Activitites: Plan the Detailed Design and keep meticulous records of all design decisions.
Unified Process (Method)
primary methodology used today; an iterative, incremental, and adaptable approach to software development.
Member access specifiers
public, private, and protected.; assign to access scope
During which level of the CMMI are basic project management processes established to track cost, schedule, and functionality?
repeatable
True or False Data flow modeling as part of software engineering involves drawing flow charts of an application's behavior
true
True or False Object oriented programming is an attempt to make computer programs more closely model the way people think of and interact with the world around them
true
A physical element existing at run time and represents a resource. One of the 7 structural things.
Node.
Which level of CMMI? -- Continuous process improvement is conducted by using feedback from the software development processes
Level 5 - Optimizing
What are the 4 steps that should be followed in determinging the requirements of a system?
1. Elicitation 2. Analysis 3. Specification 4. Validation
What are the four phases (iterations) in the Unified Process of Software Engineering developed by Booch, Jacobson, and Rumbaugh and what is the primary aim of each?
1. Inception Phase 2. Elaboration Phase 3. Construction Phase 4. Transition Phase
What are some good techniques to use when eliciting requirements of a system? We listed 8 different activities.
1. Interviews with Stakeholders 2. User Observations 3. Brainstorming 4. Prototyping 5. Questionnaires 6. Workshops 7. Define use cases. 8. Anticipating future requirements.
Interface File
A class consists of an interface (.h) file defining the states (member variables) and behaviors (prototyping the functions) of the class
What is a class and how does it relate to an object in a software system?
A class is a structure that defines the behavior and fields of an object. A class is like the blueprint for an object.
Inheritance
A mechanism by which one class acquires the properties (member variables and member functions) of another class.Multiple Inheritance multiple parent classes
Briefly discuss the concept of object interacting by exchanging messages.
A message must have a receiver, a method to invoke, and arguments to the method.
Object
A software "bundle", usually thought of as being a class or structure consisting of a set of variables which define the states the object can exist in and a set of functions that define the behavior of that object. Software objects are often used to model the real-world objects that you find in everyday life.
Requirement
A statement of what is to be provided by a computer system or software product. An expression of desired behavior for a software system. It's a specific thing your system has to do to work correctly.
What is a reference variable? Show how to create and use one.
A variable that is an alias for another variable. int iVar; int& iRef = iVar;
Briefly explain what the following design principle means relative to object oriented software design: Classes should be open for extension but closed for modification.
AKA Open-closed Principle(OCP) Soldier Class and Weapons Interface are closed for modification; soldier is open for extension through composition and weapon is open for extensions through subclasses.
Like a class but it represents behavior that runs concurrent with other behaviors, i.e. threading. One of the 7 structural things.
Active Class.
In Structured Systems Analysis which is part of the Structured/Classical paradigm what was involved in each of the following techniques: (1) Logical Data Modeling, (2) Data Flow Modeling, (3) Entity Behavior Modeling.
All three: Logical Data Modeling, Data Flow Modeling, and Entity Behavior Modeling.
During which Workflow of the Unified Process do you usually decide on what classes will be needed as part of the Architectural Design?
Analysis Workflow
A structural relationship describing links between objects. May also include labels to indicate number and role of the links. In the example there may be any number of employees, each of which has 0 or 1 employer. The double arrowhead is used to indicate a "has-a" relationship, meaning there is 1 employer who may have many employees. One of the 4 types of relationships.
Association
The three main parts of the Unified Modeling Language are?
Basic building blocks, rules, and common mechanisms
encapsulation
Binding together both the data and the functions which act on the data into a unit (object)
An object with defined attributes and operations. One of the 7 structural things
Class.
What are containers in the STL?
Classes that hold things. ordered collections: (vector, list, deque) unordered collections: (set, multiset, map, multimap) other containers: (bitset, valarray)
Structured Systems Analysis is a part of which approach to program development
Classical Paradigm
A larger pattern of behaviors and actions. Example: All classes and behaviors that create the modeling of a moving tank in a simulation. One of the 7 structural things.
Collaboration
A physical and replaceable part of a system that implements a number of interfaces. Example: a set of classes, interfaces, and collaborations. One of the 7 structural things.
Component
During which of the four phases (iterations) in the Unified Process do you do each of the following activities: Produce the first operational version (beta release) of the software?
Construction Phase
Tasks are rated by number of people (color) and sensitivity to error (hardness)
Crystal Family
Requirements Analysis
Determining exactly what the software should do. It is the process of studying and analyzing what the customer wants in order to develop a stated list of requirements.
During which of the four phases (iterations) in the Unified Process do you do each of the following activities: Refine the initial requirements, architecture, risks and priorities, redefine the business case
Elaboration Phase
Retirement Workflow
Eventually a time is reached when postdelivery maintenance is no longer cost effective. Reasons for retirement 1.) proposed changes require a complete redesign 2.) even a small change requires major work 3.) documentation has not been kept update 4.) original hardware or is has been replaced
Briefly explain what the following design principle means relative to object oriented software design: Strive for loosely coupled designs between objects that interact.
Example: The class that utilizes the interface weapon knows nothing about the caller or how it performs its actions.
Frequent releases, short duration cycles
Extreme Programming
Pair Programming
Extreme Programming
Regular builds, integration testing, and rapid feedback
Extreme Programming
Data Abstraction
Hiding how any of an object's behaviors are performed so that nothing outside the object becomes dependent on the object performing some action in particular way
During which of the four phases (iterations) in the Unified Process do you do each of the following activities: Determine if it is worthwhile to develop the target software product
Inception Phase
Five Levels of Capability in the Capability Maturity Model
Initial, Repeatable, Define, Managed, Optimizing
A behavior made up of a set of messages exchanged among a set of object in a particular context to accomplish a specific purpose. One of the 2 types of Behavioral Things.
Interaction.
A collection of functions that specify a service of a class or component, i.e. externally visible behavior of that class. One of the 7 structural things.
Interface
Organizes work using a bulletin board divided into four columns Queue, Work-in-Progress, Testing, Live (delivered)
Kanban
One of its basic principles is ELIMINATE WASTE
Lean Software Development
Which level of CMMI? -- There are few standards and success depends on individual efforts and heroics.
Level 1 - Initial
Which level of CMMI? -- Basic project management processes are established to track cost, schedule, and functionality
Level 2, Repeatable
Which level of CMMI? -- The company uses standardized processes for both management and software engineering.
Level 3 - Define
Which level of CMMI? -- Detailed measures of the software development process and product
Level 4 - Managed
A symbol to display comments. The one type of Annotational thing.
Note.
A general purpose mechanism for organizing elements into groups. The one type of Grouping thing.
Package.
What is Structured Systems Analysis?
Part of Modular Programming in Structured or Classical paradigm. Involved the three important techniques of logical data modeling, data flow modeling, and entity behavior modeling.
What is Data Flow Modeling?
Part of Structured System Analysis. Analysis of how data is going to be input and moved from point to point, and how output, produced a flow chart - data flow diagram.
What is Entity Behavior Modeling ?
Part of Structured System Analysis. Identifying all the events that could affect the different data entities?
What is Logical Data Modeling?
Part of Structured System Analysis. What are going to be the data requirements and entities (first instances of objects)
Explain the Requirements Workflow of the Unified Process.
Primary Aim is to Determine the customer's needs; write the Requirements Definition Document and work is begun on the Software Test Plan. Understand the Application domain, arry out the concept exploration, and define the constraints.
Explain the Analysis Workflow of the Unified Process.
Primary aim is to analyze and refine the requirements; write the Software Development PLan and teh Requirements Specification Document and/ or a set of UML Diagrams. Work continues on the Software Test plan. Activities: list all the requirements with technical details, determine what the deliverables will be, list the major milestones, determine what the budget will be, prepare Architectural Design.
Inception Phase of Unified Process
Primary aim is to determine if it is worthwhile to develop the target software product.
Elaboration phase of Unified Process
Primary aim is to refine the initial requirements, refine the architecture, monitor the risks and refine their priorties, redefine the business case, produce the software management plan
Post-delivery Maintenance
Primary aim is to revise code to correct errors found after delivery and to add upgrades and enhancements. Activities: document changes , perform regression testing
Testing Workflow
Primary aim is to verify and validate that all parts of the product function correctly. Activities: test, test, test.
Polymorphism
The ability of different sub-classes of a parent class to inherit functions from the parent class yet implement the functions in very different ways.
Polymorphism
The abuility to use the same naed function in sub classes of a parent class to perform different actions
Step-Wise Refinement
The process in software design of starting off at a high level of abstraction and working down through an iterative process to add more and more detail to the design
One of the three Parts that make up the Unified Modeling Language (UML) is Building Blocks. What are the three types of Building Blocks?
Things, Relationships, and Diagrams
During which of the four phases (iterations) in the Unified Process do you do each of the following activities: Ensure the client's requirements have been met
Transition Phase
During which phase of the Unified Method is the aim to ensure the client's requirements have been met?
Transition phase
A sequence of actions that a system performs that yields an observable result. Used to structure behavior in a model. Is realized by a collaboration. One of the 7 structural things.
Use Case.