Part III Flashcards
(124 cards)
What is a half adder?
XOR + AND; C - carry; S - sum
What is imperative and procedural programming?
Ex: FORTRAN, BASIC, Pascal, C, C++
• Programs are a list of tasks, subroutines
• Like a recipe: each step is a sequenced instruction
• Procedural languages allow programmer to define functions, subroutines (procedures) and reuse throughout the program
What is object oriented programming?
Ex: Java, Objective-C, VisualBasic.NET • Programs are a collection of interacting objects • Objects can have independent functions, characteristics, and states • A Class is a “blueprint” for an object – it describes the functions and characteristics that all objects in that class share in common – Ex: “the class of all dogs” • A specific member of a class is an Instance – Ex: “a beagle is an instance of a dog”
Describe OOP terminology
- Objects have Attributes (adjectives) and Methods (verbs)
- Instantiation involves creating a new object and setting initial parameters for the Attributes and Methods
- Ex: the class of “Dog” may have attributes for “fur color”, “name”, “breed” and methods for “bark” and “roll over”
What is encapsulation?
• Classes can demonstrate Encapsulation: can keep their attributes and methods private; control access to other parts of the program; either allow or restrict external invocation / modification
What is composition?
Composition
– Objects can be composed from smaller objects
– Ex: if you have a class that defines a “Point” as an X,Y coordinate, you can create a class for “Line” by reusing two “Point” objects
What is inheritance?
Inheritance
– Objects can inherit their structure from parent objects and extend their functionality
– Ex: Two classes for “Manager” and “Staff” may inherit the same basic structure of a parent class “Employee”.
What is polymorphism?
Polymorphism
– Objects can override their parent attributes/methods
– Details of the subclass implementation will determine which attribute/method is invoked
– Ex: class “Animal” may have a “makeNoise” method. SubClasses of “Animal” (Dog, Cat, Mouse) will all have a “makeNoise” method, but may implement it differently and can override the parent method
Compare accessors vs. mutators
Accessors (“getters”) are methods used to retrieve variable state
• Mutators (“setters”) are methods used to change variable state
What are types of qualitative data?
Nominal aka “Categorical”
– Think “data with names”
– Mutually exclusive, unordered, discrete categories of data, such as patient smoking status
– Mode (most frequently occurring value) is the only measure of central tendency • Ordinal
– Think “ordered data”
– Data that have a natural ordering
– Ex: “Small”, “Medium”, “Large”
– Ex: Asthma severity (“Intermittent”, “Mild Persistent”, “Moderate Persistent”, “Severe Persistent”)
– Ex: Likert scales of patient satisfaction, Pain scales
– Median (middle-ranked value) and Mode can be used to measure central tendency
What is quantitative data?
• Interval
– Data where the intervals between values represent the same distance
– Example: Year, Temperature. The difference between 32°F and 33°F is the same as the difference between 76°F and 77°F
– Arithmetic mean, median, and mode can be used as measures of central tendency
• Ratio
– Allows for additional comparison because “zero” means something and is not arbitrarily chosen
– Ex: Area, distance. Temperature in Kelvin is a ratio (because 300K has twice as much heat as 150K), but temperature in Fahrenheit is not (because zero Fahrenheit does not mean zero heat)
– Geometric mean (nth root of the product of n values), arithmetic mean, median and mode are allowed
Describe data transformations?
Interval Ratio – Your application stores a value for “year diagnosed with cancer” – that’s an Interval – In your software, you convert this to “years since diagnosis of cancer” – that’s a Ratio
- Interval Interval or Ratio Ratio – Example: Image processing, scaling an image: take every 2x2 cluster of pixels and calculate the average color value, assign it to a single 1x1 pixel.
- Interval Ordinal – Can group ranges of variable using “Binning” techniques, commonly used to smooth effects of minor observation errors – Take a continuous variable like “age in years”, group them into categories such a “Neonate”, “Infant”, “Toddler”, “Child”, “Adolescent”, “Adult” (implied order)
Be aware what you gain or lose when you transform data. When you compress image / audio files by downsampling, you can lose data When you bin continuous data into ordinal buckets, you lose data.
Describe trace tables
Slide 34
Describe a truth table
Slide 38
What is a hash function?
- Algorithm that maps data of arbitrary length to data of fixed length, an example of “binning”
- Returned value is known as “hash value”, “hash code”, “hash sum”, or “checksum”
- Uses in data integrity: – Checking that a file was not tampered with or downloaded incompletely (“MD5 Hash”) – Checking that a keystroke error did not occur (National Provider Identifier and LuhnAlgorithm, where last digit is a checksum)
• Uses in Cryptography – Websites should not store unencrypted passwords – Rule of thumb: if you click ‘forgot password’ on a website and they email you the password, they’re probably storing them
unencrypted, which is a no-no
• Uses in Indexing (as in databases) – Takes text strings and, via a hash, places them into “buckets” – Retrieving info is faster since program only has to look in that bucket
What is SDLC?
Software development life cycle
Need for standard approach to:
– Determine scope
– Organize programming tasks
– Determine testing requirements
– Manage resources & time commitments
– Deliver software on a reproducible schedule
What are the phases of SDLC?
Planning
–Gather requirements, determine scope and priority of work
•Software Implementation (what we often refer to as “Software Development or Design”)
–Actual development process
•Testing Verification vs. Validation
–Verification –“are you building the software right?” (does it meet specification, is the code high quality,
defect free, etc.)
–Validation –“are you building the right software?” (does it meet customer’s expectation, satisfy their needs,
do what it’s supposed to)
•Documentation
–critical for future enhancement, debugging, maintainability
•Deployment (what we often refer to as “Implementation”)
–Install, customize, train, evaluate
•Maintenance
–Process to collect new defects or enhancements, support users in ongoing fashion
What is Waterfall (SDLC)?
Move to next phase only when prior phase is done
•Option to revisit decisions, but usually go
through a formal change control process
•Highly structured, relatively inflexible
•Good for projects with stable requirements
•Advantages: defects are found sooner,
when they’re less costly to fix
•Disadvantage: a late breaking requirement
can be expensive or prohibitive
Steps Requirements Dev/Design Deploy/Implement Verification Maintenance
What is Spiral (SDLC)?
•“Risk oriented” software development
– One example of risk is poorly understood requirements
• Development broken into smaller efforts
• Each subproject designed to tackle an area of high risk
• Traditional phases
– Determine objectives, alternatives, constraints
– Identify and resolve risks
– Evaluate alternatives
– Develop deliverables for a given iteration and verify they are correct
– Plan the next iteration
– Commit to an approach for subsequent iteration
• Advantages: highest risk is tackled early on, when change is less expensive
What is Agile (SDLC)?
High focus on very small steps, frequent loops
• Extreme Programming (XP) and Scrum are two popular Agile variations
• Feedback provides regular testing and release of software
Scrum Terminology
– Product Owner person who represents client requirements. Writes user stories (brief statement that captures “who”, “what”, “why” of a simple requirement) and adds to backlog.
– Development team 3 9 programmers who are cross functional (can tradeoff coding, testing, documentation)
– Scrum Master rule enforcer and remover of impediments
– Sprint basic unit of development, predefined in duration and scope, chosen from list of backlog
– Daily Scrum what happened yesterday? What will happen today? Any obstacles?
•Advantage: Extremely flexible; assumes that clients will change requirements and is equipped to adapt to unpredicted challenges
What is system integration?
Process of linking subsystems in software architecture
– requires combination of software, hardware, interface sills
• Facilitated by strong understanding of standards
– HL7, Web Services, Networking
• Methods
– Vertical Integration
• Group systems by function into silos
• Integrate within a silo, but not necessarily between
– Star Integration
• Unique connection to each system that requires it
• High overhead for complex systems
– Horizontal Integration (via Enterprise Service Bus)
• One connection per system to ESB. ESB handles downstream connections
• Replacing a single system is much easier
What is quality assurance / testing?
- Goal: to mitigate project risk as early as possible, release good products
- Cost of fixing a defect is a function of project phase
Describe THERAC-25
- Radiation therapy machine
- Responsible for 6 accidents, 3 deaths due to massive radiation overdose from 1985 1987
- Attributed to failure to detect a “race condition” in software
- Poor design of error messages (“MALFUNCTION” followed by a number from 1 to 64)
- Personnel didn’t believe patient’s complaints
Describe software testing approaches
• Static testing reviewing code itself
• Dynamic testing apply test cases to code
• Test case development approaches
– White Box tests inner workings of a program (ex: was an order sent/received
correctly between systems)
• Code Coverage is an example of White Box testing programmer will develop a set of test conditions for all scenarios, all variables, all possible inputs with awareness of the internal design of the system.
– Black Box tests functionality from end user standpoint (ex: if user enters an
order, does EHR display the order is active and signed).
• Ex: specification testing, which may be insufficient to capture all defects