1/49
Flashcards covering key terms and concepts from lecture notes on UML diagrams, software engineering process models, and the software life cycle.
Class Diagram
A diagram that describes the structure of a system by showing the system's classes, their attributes, and the relationships among the classes.
Visibility Notations in UML
Symbols placed before a class member's name to specify access level: + for Public, # for Protected, - for Private, and ~ for Package.
Association
A linkage between two classes, normally represented as a line, which can be adorned with role names, ownership indicators, multiplicity, visibility, and constraints.
Association Class
An association that itself has attributes and operations, visualized as a regular class connected to an association line with a dashed line.
Qualifier
An identifier attribute used in a qualified association to select a particular object from another in a one-to-many relationship, symbolized by a small rectangle adjoining the class on the 'one' side.
Bi-Directional Association
A standard association represented by a solid line where both classes are aware of each other and their relationship.
Uni-Directional Association
An association drawn as a solid line with an open arrowhead where two classes are related, but only one class knows that the relationship exists.
Reflexive Association
An association in which a class is associated with itself, occurring when a class has objects playing a variety of roles.
Aggregation
A 'has a' relationship formed when a class is composed of a collection of other classes without strong lifecycle dependency.
Composition
A stronger form of aggregation relationship that connotes a strong lifecycle association between the whole class and its part classes.
Generalization
An 'is a' relationship used to define reusable elements in a class diagram, where child classes inherit common functionality from a parent class.
Interface
A collection of operations that a class carries out.
Realization
The relationship through which a class carries out or implements an interface.
Unified Modeling Language (UML)
A standardized (ISO/IEC 19501:2005), general-purpose visual modeling language in software engineering used to specify, visualize, construct, and document artifacts of software systems.

UML Diagram Types Classification
The taxonomy dividing UML diagrams into Structural Diagrams (showing static architecture) and Behavioral Diagrams (showing dynamic object behaviors and changes over time).
Static View
A view of a system model that emphasizes the static structure of the system using objects, attributes, operations, and relationships.
Dynamic View
A view of a system model that emphasizes dynamic behavior by showing collaborations among objects and changes to internal states.
Component Diagram
A structural diagram describing how a software system is split up into components and showing the dependencies among these components.
Composite Structure Diagram
A structural diagram describing the internal structure of a class and the collaborations that this structure makes possible.
Deployment Diagram
A structural diagram showing system architecture as the deployment of software artifacts to deployment targets and hardware execution environments.
Object Diagram
A structural diagram showing a complete or partial view of the structure of an example modeled system at a specific time.
Package Diagram
A structural diagram describing how a system is split up into logical groupings by showing the dependencies among these groupings.
Profile Diagram
A structure diagram describing a lightweight extension mechanism to UML by defining custom stereotypes, tagged values, and constraints.
Stereotype
A profile class which defines how an existing metaclass may be extended as part of a profile.
Metaclass
A profile class and packageable element which may be extended through one or more stereotypes.
Activity Diagram
A behavior diagram describing the step-by-step business and operational workflows of components in a system.
UML State Machine Diagram
A behavior diagram that describes the states and state transitions of a system.
Use Case Diagram
A behavior diagram describing system functionality in terms of actors, their goals represented as use cases, and dependencies among use cases.
Communication Diagram
A behavior diagram showing interactions between objects or parts in terms of sequenced messages, combining static structure and dynamic behavior information.
Interaction Overview Diagram
A behavior diagram providing an overview of the flow of control where nodes are interactions or interaction uses.
Sequence Diagram
A behavior diagram showing how objects communicate with each other in terms of a sequence of messages and indicating their relative lifespans.
Timing Diagram
A special form of sequence diagram where the focus is on timing constraints across a period of time, with time increasing from left to right and lifelines shown in vertical compartments.
Software Engineering
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
Software Process
A series of steps involving activities, constraints, and resources that produce an intended output, also referred to as a software life cycle.
Code-and-Fix Process Model
A life-cycle model in which product code is implemented without requirements, specifications, or design, and continuously reworked until satisfying the client.
Waterfall Model
A classic life cycle model suggesting a systematic, sequential approach to software development progressing from requirements to planning, modeling, construction, and deployment.
V-Model
A variation of the waterfall model depicting the relationship between quality assurance actions and communication, modeling, and early construction activities.
Rapid Application Development (RAD) Model
An incremental model that achieves rapid development through component-based construction and heavy component reuse, creating functional systems within 60 to 90 days.
Prototyping Model
An evolutionary process model assisting engineers and customers to better understand system requirements through iterative quick design, prototype creation, and customer evaluation.
Spiral Model
An evolutionary process model coupling the iterative nature of prototyping with the systematic aspects of the waterfall model, developing software in evolutionary releases.
Feasibility Study
An activity in the software life cycle determining whether a proposed development project is worthwhile.
Market Analysis
An activity within the feasibility study phase determining if there is a potential market for a software product.
Requirement Elicitation
The process of obtaining requirements from the customer and gathering information about the work environment or domain in which the final product will function.
Domain Analysis
The process of determining what tasks and structures are common to a specific problem area.
Architectural Design
High-level functional decomposition of a system into components, specifying services, resource sharing, and dependencies between separate components.
Unit Testing
Testing conducted by the original developer to verify that each individual coded component meets its specifications.
Integration Testing
Testing performed as individual components are combined to ensure the integrated system meets requirements and correctly manages shared resources.
System Testing
Testing the complete software system in an environment that matches the operational environment.
Alpha Testing
Testing of software performed by the customer at the developer's site.
Beta Testing
Testing of software performed by the customer at the customer's site.