Requirements, Design, Architecture Flashcards
7 activities for requirements gathering
inception
elicitation
elaboration
specification
validation
negotiation
management
what is requirements inception?
identify the client’s problem, users, and needs
what is requirements elicitation?
to figure out what the user wants in a software system
what is requirements elaboration?
to refine and get more detailed wants/needs from the clients/users
what is requirements specification?
a formalization of the wants
what is requirements validation?
figure out the metrics for customer approval
how can we show that we have built something to the customers liking
what is requirements negotiation?
resolves conflicts over cost, time and scope and find an appropriate balance
what is requirements management?
determine who is tracking the requirements, and the people responsible for certain requirements
8 requirements modeling approaches
scenario approach (paragraph based)
class approach
event-state behavior approach
data approach (db and functions acting on it)
data flow architecture (like assembly line)
OO analysis
Reusable focus
UML
What are CRC cards?
Class responsibility collaboration cards. They detail the functionality of a class and everything that class interacts with
3 types of classes
entity classes
boundary classes
controller classes
what is an entity class?
a class that acts a wrapper for data
what is a boundary class?
a class that manages communication with the outside
what is a controller class?
a class that performs actions and tasks
describe an a sequence or poll diagram
each pole is a class and the lines between them represent communication between the design classes
whats does FURPS stand for?
functionality usability reliability performance support
5 design class types
UI class (front end)
business class (user domain classes)
process class (CS level classes that support business classes)
persistent class (like a database)
system class (things like logging, networking etc.)
8 Architectural Styles
data centered (use DB)
data flow (sequential)
call & return (function calls)
RPC (remote procedure call)
OO (with agents, data, and methods)
layered (embedded systems)
MVC (model view controller)
others
what is SOLID
single responsibility
open-closed principle
Liskov substitution principle
interface segregation
dependency inversion
What is S in SOLID
single responsibility
a given function/class/module whatever has a single overall functionality
What is O in SOLID
open-closed principle
code is open to extension but closed to modification
What is L in SOLID
liskov substitution principle
any derived class instance should be able to be used in place of a parent class instance. When so, the derived class should act as a parent class
What is I in SOLID
interface segregation
when a module interacts with a helper, the helper should have a wrapper API for these interactions that only exposes the information the module needs while hiding any other information that it doesn’t
What is D in SOLID
dependency inversion
any interactions or dependencies that a module has with a helper should be through a helper API (or abstraction) and not the helper itself
“depend on abstractions not concretions”