CSC 3380

Ace your homework & exams now with Quizwiz!

ontology

a formal representation of knowledge as a set of concepts within a domain, and the relationships between those concepts

un-trapped errors

no exception in the language but program still has problems

streamlined design

...

daily build

a development activity where a complete system is compiled and linked every day (usually overnight), so that a consistent system is available at any time including all latest changes. (synchronization points)

state machine

a diagram that shows the state of software then its action which changes it to another state.

composition

a way to combine simple objects or data types into more complex ones. it is the critical building block of many basic data structures, makes a member of an object

capability maturity model (CMM)

model provides policies, procedures, guidelines, and best practices to allow an organization to develop a standardized approach to software development that can be used across many different groups. offers a framework that enables different organizations to implement continuous improvement, uses levels 1-5, with 5 being the most mature.

entity instance

our knowledge of the existence of a thing

spiral

process model that combined elements of both design and prototyping in stages it is intended for large, expensive, and complicated projects. its diagram shows four quadrants that represent four standard periods in each cycle. it encourages prototyping, focuses on risks, enables rework, and incorporates existing models.

behavioral

property about changes of structural and relational properties

relational

property about relations among things

structural

property about the thing itself

composition

reduces mental complexity by combining ideals or objects, allows grouping of several concepts into one concept (object association)

aggregation

reference to an object

properties

represent other knowledge about a thing

trapped errors

results in an error before compilation

dynamic checking

run time type checking as opposed to compile time check

strongly typed language

safe language, language checks for potential problems and provides useful error messages, java and c++ are examples.

concept

set of common properties of various things, useful in helping people store/retrieve knowledge about those things, helps in minimizing effort to keep track of our knowledge, helps infer characteristics of the things which the concept embraces.

agile development

software mythologizes that promotes adaptive planning, customer value (normally requires the customer onsite), and rapid response to change. has short (1-3 week) releases. it is not plan-driven and has self-organizing teams. works best for small projects and teams, requires highly skilled workers

extreme programming

the first agile process, business-value driven (customers can see product soon early on), has rapid iterations and short span releases, democratic management, team has collective ownership of code, uses clean simple code, test-driven. arose from "hacker" culture C

refactoring

the process of changing a computer program's internal structure without modifying its external functional behavior or existing functionality, in order to improve internal quality attributes of the software

type checking

the process of checking that every expression is used according to its type. the compiler checks every expression based on the declared types of the names involved.

encapsulation

the process of combining a data structure's data with the methods that act upon the data inside the same module,

transform

traditional process model that takes abstract requirements as input and transforms them step by step to executable code through stepwise refinements, the problems included many limitations, tool-intensive, may not support unanticipated evolution, and was quickly outdated. it does have stable requirements and tool availability

evolutionary

traditional process model where a project is separated into smaller waterfall models. allowed for good customer support problems: produced spaghetti code, makes products un-integratable, fosters wrong and unchangeable decisions, makes migrating to new systems difficult.

waterfall

traditional process model where programers follow strict phases and should not return to an already completed phase. review is done before moving onto a new phase but return to a phase is highly discouraged. problems:minimized prototyping, wastes effort on elaborate but incorrect designs and codes (reduces risk). it was replaced by the evolutionary (incremental process)

code and fix

traditional process model where programmers, without much design, begin producing code while testing along the way. problems: it was poorly structured, user-unfriendly, and unmaintainable.

regression testing

type of software testing that provides a general assurance that no additional errors were introduced in the process of fixing other problems (retesting a modified program)

seam software process (TSP)

used to implement CMM key tasks and activities, increase quality and profitability of a project, improve control and vision to multiple participants in the project, model of organization management

requirements

user stories that customers write about features they want in the project, does not use computer language and is easy to understand.

principle of least privilege

users should have access only to data they need to do their job, encapsulation allows for this in OOD

Iterative and Incremental Development

(IID), can be a part of agile and plan-driven development. have planned increments until customer is satisfied, have long time boxes (given time to work on a part of the project), feature/success driven (only after completing a feature do you continue on). also has early risk management analysis

polymorphism

allowing a single function to be used with different types of data (specifically, different classes of objects). i.e. a polymorphic function definition can replace several type-specific ones, and a single polymorphic operator can act in expressions of various types, it is a particular kind of association of subclasses with a superclass and a client class.

decomposition

also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain.

object oriented development (OOD)

approach to systems development that uses the object as the basic unit of systems analysis and design. The system is modeled as a collection of objects and the relationship between them (messages being passed and performance of the activity communicated), began with C++, its structuring is based on abstraction

inheritance

class can use another class' properties, methods, variables, ect. one of the main ways of constructing new classes in OOD

CRC

classes, responsibilities, and collaborations. it allows for efficient communication between teams,

smoke test

code worked on by coding/testing pairs submitted for the daily build, code that breaks the build is fixed immediately.

static checking

compile time type checking as opposed to run time checking

personal software process

concentrated on improving the software process on an individual level as opposed to a team format

software architecture

defines the way the individual parts of a software is connected to each other to form the system

data abstraction

encapsulation, an object is a self-contained data type with its own operations

operator overloading

extending built-in operators ( +, -, *, >, <, etc.) so that they work with user-defined types, allowed in OOD,

plan-driven development

have predictability and assurance as its goals, does well with larger teams and projects, focus on contract provisions rather than customer interaction, culture thrives on order and procedure, refactoring is expensive but can make use of less experienced workers (Cockburn 1B level) 1

behavior abstraction

information hiding, how operations work is hidden

function-oriented development

its system was a collection of functions, focus was an algorithm use due to lack of computing power, used an invocation hierarchy for structuring, only had a single thread of control, simultaneous function operations were not supported

Cockburn personnel chart

levels of software method understanding and use that rank workers from a 1 to 3 depending on skills.

composites

made up of simpler composite instances with


Related study sets

Philippine-American War (1899-1902)

View Set

DSM Module 12: Rotational Kinematics

View Set

Chapter 15: Pregnancy; O'Meara: Maternity, Newborn, and Women's Health; PREPU Level 5

View Set

NASM CPT Section 1 Practice Test

View Set