Database, Object, Iteration Backlog
The key terms of this Computer Science Exam include Object, Database, Web App, iteration Backlog, Development Environment, Information.
Observer
behavioral design pattern – subscription mech to notify multiple objects about any events happening that the object is observing
– get notified when state changed
Subject = object being watched
ex: Action/Event interface
SQl Injection
Insert malicious sql code into sql query through web app user input
– break database
Solution to SQL injection
User PrepareStatement and PrepareStatement.setString
setString sanitizes input before inserting to sql query
Cross-site Scripting (XSS)
Injection attack
inserting html code into user input
loading malicious script inserted into html
What is the difference between Design Principles and Design Patterns?
Design principles – well-proven, higher-level abstractions, language-independent
Design patterns – lower level, more specific, language-dependent
Design Patterns
proven reusable soln (prescription) to a commonly occurring problem
Name all design patterns discussed in class
DAO Design Pattern
Dependency Injection Pattern
MVC Pattern
DAO Design Pattern
Decoupling database (persistence) and rest of application
– adding a layer of abstraction (Data Access Object)
Business Object –Uses–> DAO –Encapsulates–>Data Source
Agile Process
Reqs –> Design –> Build –> Test –> Deploy (Repeat)
Iteration Backlog
Tasks planned to be implemented in the iteration
Agile Estimating
Adding time/cost estimation to each user story
– Getting estimates from multiple people
– Estimating “effort required” in terms of “ideal days” or “Story Points” (combine complexity & uncertainty)
– Using relative estimates (e.g. this feature requires twice the effort we put for that feature)
When estimating
– include time required for learning/researching
– as if the task is the only work being implemented
Encapsulation
information hiding – having well-defined user interface, meaning user does not need to know the underlying mechanisms
inheritance
different classes with some same functionalities
REUSE
is-a relationship
API Endpoint
point of entry that allows client-server interaction
API Development Environment (ADE)
ex: Postman
for developing, testing, documenting
201
Created
200
success
204
no content
404
not found
400
bad
403
forbidden
Dependency Inversion Principle
low-level – change
higher-level – not changed
DAO (low-level)
Controller (high-level)
changing low-level should not change high-level
(changing engine in car does not change the functionality of car)
to make high level less dependent on low level – add abstraction layer: both high and low levels depend on abstraction layer
project backlog
subset of user stories for this iteration