1/24
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software (Definition)
Code + Data + Documents. Includes programs, data structures/files, and documentation.
Software Engineering
Disciplined application of engineering principles to design, develop, test, and maintain software. Goal: High-quality, cost-effective software.
Two Methodologies of Software Engineering
1. Software Lifecycle (Technical "how-to" of development). 2. Project Management (Ensures effective execution).
Business Requirements Document
Describes business goals/objectives from stakeholder perspective. Output of conceptualization.
Requirements Analysis
Negotiation with stakeholders to define system inputs, outputs, data formats, computations, etc.
System Requirement Specification (SRS)
Outlines hardware/software requirements, interfaces, performance, security, compliance.
Functional Requirements
What the software must do (e.g., "User can save a file").
Non-Functional Requirements
How the software behaves (e.g., performance, usability, security).
Architectural Design (High-Level)
Defines system structure, components, interactions, technologies. Documented in System Architecture Document.
Component Design (Low-Level)
Modular elements with high-cohesion (related responsibilities) and low-coupling (minimal dependencies).
API Design
Rules for how components communicate (internal/external). Must be unambiguous.
UI Design
Focuses on user-friendly layouts, aesthetics, and interaction flow.
Database Design
Organizes data storage (e.g., relational/NoSQL), ensures integrity, security, and efficiency.
Implementation Documents
Includes code comments, version control logs, and embedded documentation.
Unit Testing
Tests individual statements/modules.
Integration Testing
Verifies subsystems work together.
System Testing
Validates the complete implementation.
Acceptance Testing
Demonstrates software meets customer needs.
Traceability Matrix
Maps test cases to requirements to ensure all are tested.
Deployment Plan
Strategy (manual/automated) to move software to production.
User Manual
Instructions for end-users.
Maintenance Phase
Fix defects or add enhancements post-deployment.
High-Cohesion
Components have closely related responsibilities.
Low-Coupling
Components have minimal dependencies on each other.
Reusability
Designing components to be reused in other systems/parts.