Twitter - Quiz Tutors
 Iteration Backlog & Database - Computer Exam. Facebook - Quiz Tutors

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


Homepage