COSC 202 general

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/130

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 6:53 AM on 6/8/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

131 Terms

1
New cards

console

initial input/output device for a computer

2
New cards

what is git

tool to track changes to sets of files

3
New cards

what are git repositories

maintain code history, have commits of tracked files(nodes), edges record how nodes emerged, decentralized version management system, every member has repository of complete graph copy and these are synched

4
New cards

abstractions of git

web browser(github), graphical IDEs(Netbeans), command line git

5
New cards

sdlc and problem solving

organization recognizes problem, project team investigates/understands problem and solution requirements, solution is specified in detail, system that solves problem is built, system installed, used, maintained and enhanced

6
New cards

waterfall models: traditional predictive approach

assumes phases can be done sequentially, once a phase is done you fall over the waterfall to the next

7
New cards

modified waterfall models

reasonably thorough plan, project phases can overlap to influence each other, can go back if not fully thought out

8
New cards

concepts of adaptive approaches

incremental development, walking skeleton(built with bare-bones functionality)

9
New cards

generic adaptive approach

6 core processes span iterations with multiple iterations as needed, project focuses increase or decline as iterations progress(identify, plan, detail, design, build+test, deploy)

10
New cards

agile development

set of guidelines to develop information systems in unknown, rapidly changing environments, chaordic, 12 modelling principles

11
New cards

agile modelling principles

build only necessary models that are useful and at the right level of detail, incremental change, focus on stakeholder needs, adapt to specific project needs

12
New cards

four life cycle phases of unified process

inception, elaboration, construction, transition

13
New cards

inception unified process

what the system is going to be doing, cost to build, how long it will take to build

14
New cards

elaboration unified process

refine requirements and establish system architecture

15
New cards

construction unified process

build and test the system iteratively

16
New cards

transition unified process

deploy the system to users

17
New cards

product owner

client stakeholder who controls backlog

18
New cards

scrum sprint

a time controlled mini project to implement part of the system, scope can’t expand, time period is constant, daily meeting

19
New cards

properties of good quality requirements

understandable, complete, consistent, correct, unambiguous, testable, feasible, atomic

20
New cards

consequences of poor quality requirements

system delivered late and over budget, doesn’t meet customer needs(dissatisfied or scrapped), higher maintenance-related costs, unreliable or non-functional

21
New cards

causes of poor quality requirements

problem not well understood, misunderstanding between stakeholders, insufficient training, experience or access to stakeholders, evolving requirements, incomplete information, ambiguity, inconsistency

22
New cards

contents of requirements document

system services and functions, constrains for system operation and development, emergent system properties, application domain info, system environment. essential that doc is confirmed and signed off by stakeholders

23
New cards

requirements in unified process

elicited, modeled and refined during inception, elaboration and construction. implement functional before non-functional

24
New cards

requirements in extreme programming

based on user stories over individual requirements, continuous involvement of users who decide about functionality and scope

25
New cards

requirements in scrum

requirements owned and operated by product owner, only use user stories if create structure to product backlog

26
New cards

what is requirements elicitation

process of an analyst gathering information on what a system should do from as many sources as possible

27
New cards

ways to classify stakeholders

internal(within org, employees), external(outside org, suppliers), operational(interact w/system, customers), executive(use information or have financial interest w/o interacting, board of directors, investors)

28
New cards

information gathering from existing systems

need to identify deficiencies to be addressed in new system, don’t waste time and effort to reimplement same stuff, balanced review of current functions and new requirements

29
New cards

information gathering from models

primary output of requirements phase is large collection of models, learn more about problem by modelling, abstraction can reduce complexity, document all details, useful for communication between stakeholders and developers

30
New cards

what is review existing materials

obtain preliminary understanding of processes, use as guidelines to guide interviews, identify rules, discrepancies, exceptions, redundancies

31
New cards

interviews and discussions with users

effective way to understand business functions and rules, can prepare questions or have open discussion, may require multiple sessions, individuals or groups

32
New cards

pros of interviews

free and open answers, can ask follow up questions to gain insight or clarify answer, interviewee actively contribute

33
New cards

disadvantages of interviews

time consuming and resource intensive, success dependent on analyst communication skills, location or schedule can make it impractical

34
New cards

observe and document business processes

walk through or shadowing, may make users nervous, document using workflow diagrams, don’t need to observe all processes to same detail level

35
New cards

build protoypes

preliminary working model of larger and more complex system, accomplish one objective, build quickly, test concepts, evaluate look and feel

36
New cards

questionnaires

limited and specific info from many stakeholders, preliminary business insight, not for high detail, closed-ended for direct answer or open-ended questions for elaboration

37
New cards

research vendor solutions

take advantage of existing knowledge and solutions, can avoid costly mistakes and save time and money, risky to buy before requirements are fully known

38
New cards

advantages of researching vendor solutions

Helps users generate new ideas about how best to perform business function, existing solutions could be excellent, often cheaper and less risky to buy than build

39
New cards

validating requirements

essential, ensure info is correct, implement quality control early, review findings and models, project manager responsible for system quality, review conducted by analyst and stakeholders, review after document creation

40
New cards

revisiting requirements

independent, identify which to implement not when, iteration includes a requirements collection and prioritization activity. Scrum: product backlog, UP: inception and elaboration, XP: user stories

41
New cards

why is eliciting requirement difficult

users unable to articulate, ignorant of tech, may contradict each other, language barriers between analyst and user, need multiple user sources to understand, analyst lack skills to obtain requirements

42
New cards

why UML

helps develop effective and correct designs, better communication w/stakeholders, big picture view of project, independent of programming language, standard for OO system modeling

43
New cards

what are use case diagrams

high level view of what a system does and who uses it, represents users perspective, mainly in requirements specification, to-do list, specifies participants and relationships in use cases

44
New cards

benefits of use case diagrams

informal, simple, flexible, easy to construct, easily understood by users and developers, improves communication, can be used to confirm requirements, provide good overview of functionality, link analysis to design, used to infor subsequent development tasks

45
New cards

actor

roles that people have when interacting with the system(employee), external systems or hardware that are essential to system operation(paypal)

46
New cards

use case

a discrete unit of system functionality, activity from actor perspective

47
New cards

extend dependency

use case has optional subordinate tasks that extend functionality when needed, useful for specialized actors(international student needs visa check to enroll at uni)

48
New cards

include dependency

mandatory, subordinate tasks that can occur in any order(enroll at univeristy includes issue id card)

49
New cards

require dependency

mandatory, independent tasks that must be completed first, forces sequence(log in requires authentication of user)

50
New cards

inheritance

via specialization: subclass, subtype. subclasses inherit public state and behavior, can override superclass behavior

51
New cards

inheritance via specialization

subclasses inherit all public members, can replace or customize inherited method, can add specialized method, can’t be subclasses of anything else

52
New cards

inheritance via interface implementation

public methods and constant fields, specifies common behavior, can implement multiple interfaces, no implementation in interface

53
New cards

class diagram

structural aspects of an OO system(class types, class relationships, class fields and methods), used throughout development process

54
New cards

stereotypes in class diagrams

add further meaning or clarification, can be attached almost anywhere, field-«unique» class«abstract» «interface»

55
New cards

Association names

association-verb phrases between classes(assigns,reserves)

56
New cards

Role names

indicates role of class in association ex. reserved by (conceptual), implies field in class opposite, includes visibility(implementation)

57
New cards

Navigability

whether you can follow an association from one class to another, which class has reference or can access another class. Always include relevant role names. who can access whom

58
New cards

aggregation

one class is made up of one or more other classes, container and content instances can exist seperately

59
New cards

composition

stronger form of aggregation, container and content instances cannot exist separately, multiplicity of at least 1 at both ends, deleting container deleted contents and creating container creates contents, ex. loan includes several loan items

60
New cards

associative classes

many to many relationship with additional fields resolved into another class(loan and item into loan item)

61
New cards

ERD vs class diagram

ERD: required values have dot, role names reversed(left to right), separate cardinality and participation, built in unique ID

Class: detailed multiplicity, richer semantics(right to left), navigability and visibility, include methods

62
New cards

lifeline sequence diagram

indicate lifetime of an object, timespan between object construction and destruction, explicit («construct») vs implicit construction, explicit(x) vs implicit destruction, vertical dashed or solid line

63
New cards

activation bars sequence diagrams

indicate an object is doing something, caused by incoming message and ended by a return, can be nested

64
New cards

messages sequence diagrams

start at lifeline-internal, end at lifeline=activate object, end at participant=create object, start/end outside system=external. can attach guard(true/false condition) where message only sent if condition is true, asterisk indicate looping(until false or to every object in collection)

65
New cards

public API vs private implementation

public API defines what class should do, contract, stable as possible. Private implementation defines how class behaves: don’t expose, how data is stored, can change to improve speed, reduce memory, etc.

66
New cards

java Collection interface

container for groups of objects(lists, sets, stacks, trees), has common behavior(add, remove, size), anything coded to work with collection will accept any collection type. public API specifies collection, private uses arrayList.

67
New cards

ethic conduct/misconduct

trade secrets, whistle-blowing, conflicts of interest, misrepresentation, breach of contract, bribery and fraud,

68
New cards

Belbin’s 9 team roles

social: resource investigator, team worker, co-ordinator. thinking: plant, monitor evaluator, specialist. action: shaper, implementer, completer finisher

69
New cards

bugs

imperfection where it does not meet its requirements

70
New cards

error

human action results in mistake

71
New cards

failure

event where system does not meet requirements within specified limits

72
New cards

fault

cause of bug

73
New cards

crash

a bug where the app freezes

74
New cards

unit testing

divide code into units for testing, consider scale of units, test units of code independently. tests should be executed frequency and automatically(CI) before committing and commits should trigger tests. should be optimized

75
New cards

how unit testing support software development

separation of concerns, early discovery of problems, help documentation and specification

76
New cards

how to isolate unit tests

use mock to test functionality of unit in isolation, does not require databse connection. Mocks a real service, returns a dummy data corresponding to dummy input. Simulate behavior of an implementation of that interface

77
New cards

lifecycle of tests

set up test environment, run test code, check test results, aggregate results into summary, failing tests should break CI builds

78
New cards

when bugs are not your fault

defective libraries, memory leakages, defective hardware, conflict between library versions, operating system bugs

79
New cards

when to use command line debugging

bug exists in another environment(target machine) but not on own machine

80
New cards

version control systems

software that tracks and manages changes to a project's files over time. ability to roll back, used for documentation, dependency(external libraries) management(clones obtain all dependencies), configuration files, configuration parameters (everyone has same setup)

81
New cards

good practices in version control

frequent check ins, meaningful commit messages, freeze code changes close to release data, only address critical bugs or only certain developers touch code

82
New cards

does CI help developers deliver functionalities quicker

CI quickens software delivery, changes that increase coverage become more frequent after CI adoption

83
New cards

when to model with subtypes

for conceptual modeling(model mutual exclusivity) but not for implementation(simpler code)

84
New cards

dealing with data history

create a many to many relationship. employee can hold many positions over time and position may be held by many employees, position history tracks it. think about current data required and what we need a historical record of

85
New cards

how redundancy arises

ad hoc databases(temporary for one purpose, spreadsheets), poor database design(poor analysis or ERDs), modification to existing systems

86
New cards

normalization

formal process of eliminating unnecessary redundancy in relations by splitting relations into smaller chunks, restructures database into semantically independent components

87
New cards

software architecture

is the system implemented as one piece, few/many distinct components, does it run on one machine, multiple machines or in the cloud

88
New cards

the ascent of information systems

monolithic/standalone, separation of components, distribution of components, cloud of billions and billions of nodes

89
New cards

monolithic architecture

system includes all relevant code in one executable, self-contained, no separation of responsibilities, easy to deploy, awkward to upgrade

90
New cards

separation of responsibilities

partition system into logically separated parts, easier to upgrade individual parts, deploy different parts in different locations, system parts more cohesive

91
New cards

containers and release engineering

deploy in production-like environments, efficiently store, update and distribute software and its accompanying configuration

92
New cards

parallel header/lines

multiple sets of line associated with the same header representing different aspects. ex. sale header has sale line w/product and shipment w/shipment line

93
New cards

why public and private need to be decoupled

more stable: not exposing internal implementation and can change without breaking behavior, more flexible: less coding required to switch implementations

94
New cards

APIs

allow code to interact with others’ applications, activate and use after applications are built, can work across on server or internet-wide, define interactions points with code, need developers to understand data model

95
New cards

web technologies provide convenient APIs

can access sources identified by URLs, and the HTTP protocol provides public methods that we are expected to use on the internet, specifying how data will be transferred.

96
New cards

Representational State Transfer (REST)

standard architecture style of building APIs, provide public behavior to API users and force barrier between developers code. Different web browsers can connect to different web servers, when you interact with a server they don’t remember you, uniform interface that codifies HTTP methods on URLs

97
New cards

external APIs and architecture

each microservice offer an API to interact with other microservices. Microservice actualized via containers and these containers talk to each other via their APIs

98
New cards

optimizing SQL DAO programming

multiple row operations, connection pools keep connections alive, reuse prepared statements, combine queries, batched requests

99
New cards

transactions in JDBC/Jdbi

default is auto-commit where each statement is a separate transaction, if transaction is multiple lines, disable auto-commit and manage yourself

100
New cards

subquery

select statement embedded inside another SQL statement