1/30
Flashcards created to review key concepts and terminology from Software Engineering lecture on MVC and REST.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Client-Server Architecture
A distributed application structure that partitions tasks or workloads between service providers (servers) and service requesters (clients).
Three-Tier Architecture
A software architecture pattern that separates an application into three layers: presentation, logic, and data.
MVC Pattern
Model-View-Controller; an architectural pattern that separates an application into three interconnected components.
Separation of Concerns
A principle for separating a computer program into distinct features that overlap in functionality as little as possible.
Statelessness (in REST)
A principle where no state information is stored in the server; each request from a client contains all the information needed to process that request.
Idempotency (in REST)
A property that ensures that executing the same operation multiple times results in the same state and response.
Addressable Resources
In REST, everything is represented as a resource identifiable by a URL.
Well-Defined Operations
In REST, the standard HTTP methods (GET, POST, PUT, DELETE) define the operations that can be performed on resources.
Structured Data
Data that is organized in a predictable format, such as HTML, XML, or JSON, making it easily parseable.
Service-Oriented Architecture (SOA)
An architectural pattern based on the concept of services, where software components provide services to other components via a communication protocol.
Asynchronous Communication
A method of communication where sending and receiving can happen independently, allowing for non-blocking operations.
REST API
An application programming interface (API) that adheres to REST architectural constraints and enables interaction with RESTful services.
MVC Frameworks
Software frameworks that utilize the Model-View-Controller pattern to facilitate the development of user interfaces.
Functional Requirement
A specific behavior or function of a software system as defined by user requirements.
Synchronous internet
Blocking, execution of each operation depends on the one before and the task requires a response before moving on
Software entropy
as a software system ages, it becomes increasingly risky that a change to the existing software will result in unexpected problems or failure
System Architecture
Very high-level design for complex systems, often includes business processes
High-level(software architecture)
Modularity, internal interfaces, data sources and external interfaces
Low level design
Detailed algorithms and data structures
Generic web browswer
UI, Browser engine, rendering engine, data persistence, XML parser, networking, JavaScript interpreter and backend display
Peer-to-peer architecture pattern
Multiple computers, communicate through input and output over network
Layered architecture pattern
Organized hierarchically layers providing a service to layer above, layer acts as client to the layer below
Risk Management Cycle
Identify, Analyze, Prioritize, Plan, Mitigate, Monitor
Usability
Effectiveness, efficiency and satisfaction
User centered design
Approach to design that involves the user a great deal, in many phases
Effectiveness
Accuracy and completeness in achieving goalsE
Efficiency
resources expended
Satisfaction
Comfort, acceptability
Persona
Description of archetypical, hypothetical and imaginary user
Data driven personas
created from user-reported usage data
5 E’s
Effective, efficient, engaging, easy to learn and error tolerant