Methodology
4 properties of Software:
- Conformity
- Invisibility
- Complexity
- Changeability
Fundamental Process:
- Specification: specify the requirement
- Development(Design and Implementation)
- Validation
- Evolution
Plan-driven: pre-plan all things and follow the plan Agile: frequent release of the software. Test-First -> Scrum: An Agile with a project management framework
Agile Principle:
- Customer involvement
- Incremental delivery
- People not process
- Embrace change
- Maintain simplicity
Requirement Engineering Process:
- Elicitation and Analysis: Discovering requirements from stakeholder
- Specification: Converting requirements into standard form
- Validation: Checking the requirements actually define the required system
Elicitation Techniques:
- Interview
- Questionnaire
- Focus Group: group interview
- Observation
UML diagram:
- Activity
- Use case
- Sequence
- Class
- State Machine
System Architecture:
- Components
- How they use other's functionality and data
- manage between components
Architecture:
- Pipe and Filter
- Client and Server
- Layered
- Repository
- Model-View-Controller
Design OO System:
- Understand the context and interaction with system
- Design architecture
- Identify principle
- Develop model
- Specify interfaces
OOD Principles:
- Single Responsibility
- Open/ Closed: Open for extension, Close for modification
- Liskov Substitution : child>= parent
- Interface Segregation
- Dependency Inversion
Design Patterns:
- Creational:
- Singleton
- Factory
- Structural
- Adapter
- Facade
- Behavioral
- Observer
- Strategy
Static Testing:
- WalkThrough
- Inspection
Dynamic Testing:
- White box testing:
- Statement
- Decision
- Condition
- Multiple-Condition
- Black box testing
Testing:
- Unit Testing
- Integration Testing
- System Testing
Maintenance:
- Bug fixing
- Modifying software
- Implementing requirements
DS
DS's Main purpose:
- Transparency
- Openness
- Scalable
DS's Main Challenges:
- No Global Clock
- Concurrency
- Failure Handles
- Scalability
- Heterogeneity
Middleware features:
- Remote method Invocation
- communication between group of process
- Event notification
- partition/placement/retrieval of shared object
- replication of shared object
- Real-time Multimedia Transmission
Transparency:
- Access
- Location
- Replication
- Mobility
- Scaling
- Failure
Performances:
- Responsiveness
- Throughput
- Balancing Computational Loads
Failure Handling:
- Detect
- Mask
- Tolerate
- Recover
- Redundancy
QoS:
- Reliability
- Security
- Performance
- Adaptability
Clock Synchronization Algorithms:
- Centralized:
- Cristian's
- Berkeley
- Decentralized:
- Averaging
- Multiple External Time Sources
Mutual exclusion:
- Centralized
- Distributed
- Token Ring
Election:
- Ring
- Bully
File System:
- Organization
- Storage
- Retrieval
- Naming
- Sharing
- Protection
File System Modules:
- Directory
- File
- Access control
- Block
- Device
File System Components:
- File Servers
- Clients
- File Services
Flat File System Components:
- Flat File Service
- Directory Services
- Client Module
Route Influence:
- Destination
- Bandwidth
- Network Topology
- Routing Table
- Load Balancing
- Network Congestion
DHT:
- Decentralized
- Scalability
- Fault Tolerance
Reliable Multicast:
- Integrity
- Validity
- Agreement
GMS:
- Member change Interface
- Failure detection
- Notifying membership changes
- Group address expansion
Requirements of Group view update:
- Order
- Integrity
- Non-triviality
Replication System Components:
- Client
- Front End
- Replica Manager
RS request:
- Request
- Coordination
- Execution
- Agreement
- Response
Easy to be attack:
- Resource Sharing
- Exposed Interfaces
- Insecure Networks
- Known Algorithms
Security Threats:
- Leakage
- Tampering
- Vandalism
Method of Attacks:
- Eavesdropping
- Masquerading
- Message Tampering
- Replay
- Dos
Uses of Cryptography:
- Secrecy and Integrity
- Authentication
- Digital Signatures
Cryptography's Applications:
- Digital Certificates
- Access Control
- Capabilities