← Columbia W1007 Object-Oriented Design in Java Export Options Alphabetize Word-Def Delimiter Tab Comma Custom Def-Word Delimiter New Line Semicolon Custom Data Copy and paste the text below. It is read-only. Select All accessor A method that accesses an object (examines an attribute of it) but does not change it. action listener (java gui) listener interface for receiving action events activation bar in sequence diagrams (UML) Bars in a sequence diagram that indicate when a method is called aggregation (relationship) The has a relationship between classes agile methodology a form of extreme programming that aims for customer satisfaction through early and continuous delivery of useful software components association (relationship) An association between classes - that models a relationship between 2 objects that is not covered by another, more specific relationship - in which one can navigate from objects of one class to objects of the other, usually by following object references awt (java gui) Abstract Windowing Toolkit, is used for interacting with platform-specific user-interface components and events. big ball of mud (design pattern) software system that lacks a perceivable architecture. spaghetti code. A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and-baling-wire, spaghetti-code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. class diagram (UML) A diagram that depicts classes and their relationships cohesion A class is cohesive if its features support a single abstraction composition (relationship) has-a relationship between classes - a stronger form of aggregation in which the contained objects do not have an existence independent of their container coupling the degree to which classes are related to each other by dependency. CRC An index card representing a class, listing its responsibilities and its collaborating classes dependency (relationship) The uses relationship between classes, in which one class needs services provided by another. design patterns A description of a design problem and a proven solution. Standard design techniques and templates that are widely recognized as good practice for solving common object-oriented design problems. Such solutions have been proved efficient and effective by the experienced developers. don't repeat yourself (design principle) principle of software development aimed at reducing repetition of information of all kinds. The DRY principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system." encapsulation In OOP, also known as information hiding, is the hiding of implementation details. Can be within a class or large unit, so that the use the API to access an object. extreme programming (XP) breaks a project into tiny manageable phases, iterate with user feedback; do tiny parts to completion then move on to next iteration like agile, breaks project into tiny pieces, the faster the communication the faster the results, four parts: planning, designing, coding, testing facade (design pattern) A design pattern that teaches how to simplify a subsystem consisting of multiple classes by introducing a facade class that exposes all capabilities of the subsystem as methods. factory method (design pattern) D.P. that teaches how to supply a method that can be overridden to create objects of varying types. inheritance (relationship) The is a relationship between a more general superclass and a more specialized subclass. interfaces A set of agreed-upon rules that an object follows so that it can be used uniformly. is like a class but has no implementation, has no fields, has no method implementations just the headings, used to provide a minimal archetype for classes, classes can be built as extensions, is a polymorphic type. Also: The methods and fields of a class that are not private. Also: a type with no instance variables, only abstract methods and constants, used to express common operations or services so that a variety of types can make use of them iterable (design pattern) Iterator is an object that can inspect all elements in a container such as a linked list. law of demeter A design guideline that states that a method should not operate on global objects or objects that are a part of another object layout manager (java gui) a class that arranges user interface components inside a container. lifeline in sequence diagrams (UML) The vertical line below an object in a sequence diagram that indicates the time during which the object is alive. listener (java gui) (event listener) mouse listener (java gui) The listener interface for receiving "interesting" mouse events (press, release, click, enter, and exit) on a component. mouse motion listener (java gui) The listener interface for receiving mouse motion events on a component such as mouse moves and drags. multiplicity (or cardinality) the # of objects that participate in an association: in the UML representation of an association, one can note the multiplicity or cardinality at each end as follows: 0..1 No instances, or one instance (optional, may) 1 Exactly one instance 0..* or * Zero or more instances 1..* One or more instances (at least one) mutator a method whose purpose is to modify the state of an object mvc (design pattern) Model/view/controller architecture that decouples the state, visual representations, and manipulation mechanisms of a data structure. object a value of a class type object oriented programming designing a program by discovering objects, their properties, and their relationships observer (design pattern) DP that teaches how an object can notify other objects about events. partial ordering an ordering relationship that is transitive, reflexive and antisymmetric, but in which not all elements can necessarily be compared with each other (sorted completely). That is, there may be an x and y such that one cannot say if x ⩽ y or y ⩽ x. polymorphism selecting a method among several that have the same name on the basis of the actual types of the implicit parameters (also used with constructors). an important use of polymorphism is to promote loose coupling and extensibility (you can supply your own classes that implement given interfaces) is the ability to create a variable, a function, or an object that has more than one form. The primary usage of polymorphism is the ability of objects belonging to different types to respond to method, field, or property calls of the same name, each one according to an appropriate type-specific behavior. The programmer (and the program) does not have to know the exact type of the object in advance, and so the exact behavior is determined at run-time (this is called late binding or dynamic binding). principle of least surprise (design principle) When two elements of an interface conflict, or are ambiguous, the behavior should be that which will least surprise the user; in particular a programmer should try to think of the behavior that will least surprise someone who uses the program, rather than that behavior that is natural from knowing the inner workings of the program. the expectation that function or method names intuitively match their behavior and the application of sensible defaults. sequence diagram (UML) diagram that depicts a sequence of method calls singleton (design pattern) In software engineering, the singleton pattern is a design pattern that is used to restrict instantiation of a class to one object. (This concept is also sometimes generalized to restrict the instance to a specific number of objects - for example, we can restrict the number of instances to five object software engineering a systematic approach to the analysis, design, assessment, implementation, testing, maintenance and reengineering of software, that is, the application of engineering to software state diagram (UML) diagram that depicts state transitions and their causes swing (java gui) is the primary graphical user interface toolkit for providing graphical elements in Java programs. It was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT) with a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. It has more powerful and flexible components than AWT. In addition to familiar components such as buttons, check box and labels, Swing provides several advanced components such as tabbed panel, scroll panes, trees, tables and lists. total ordering an ordering relationship in which all elements can be compared with each other (sorted completely). A total ordering is transitive, reflexive, symmetric, and total. x ⩽ y && y ⩽ z → x ⩽ z, x ⩽ x, x ⩽ y && y ⩽ x → x = y for any x and y, x ⩽ y || y ⩽ x UML Unified modeling language- notation for specifying, visualizing, constructing, and documenting the artifacts of software systems. UML includes a standardized graphical notation that may be used to create an abstract model of a system: the UML model. use case description of a possible sequences of actions/interactions between a user and the system. user interface Hardware, software, or both, that allow a user to interact with and perform operations on a system, program, or device. waterfall methodology an activity-based process in which each phase in the SDLC (Sys. Development Life Cycle) is performed sequentially from planning through implementation and maintenance