CS 307 Exam 1

Ace your homework & exams now with Quizwiz!

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.


Related study sets

NET260.30 Linux Network Administration Chapter 1

View Set

chap 40, 41, 42, 43 for part 2 final exam

View Set

NCLEX Style Practice Questions: Nitroglycerin Management

View Set

Lesson 4: Configuring IP Networks

View Set