Intro To Software Engineering Flashcards
What is the definition of Software Engineering?
The process of designing, developing, testing, and maintaining software systems.
List the key principles of Software Engineering.
- Scalability
- Maintainability
- User-Centric Design
What are the phases of the Software Development Life Cycle (SDLC)?
- Requirements Gathering
- Design
- Implementation
- Testing
- Deployment
- Maintenance
What are the two main SDLC models?
- Waterfall
- Agile
What are functional requirements?
What the software should do (e.g., login system).
What are non-functional requirements?
Performance, security, scalability.
What tools help visualize software requirements?
UML (Unified Modeling Language) diagrams.
What is modularity in software design?
Breaking the software into smaller, manageable parts (modules).
Define reusability in software engineering.
Using existing components to save time.
What does low coupling and high cohesion mean?
Parts of the software should work independently but cohesively.
What is the purpose of version control?
To manage code changes.
What are two best practices for code quality?
- Write clean, understandable code
- Include comments
What is unit testing?
Testing individual components.
What is integration testing?
Ensuring modules work together.
What is the focus of system testing?
Testing the entire system.