Lecture 2 - Introduction Flashcards
(12 cards)
What is Software Crisis
A period in the history of software development when the industry faced significant challenges and difficulties in creating and maintaining software systems.
What is Software Development
A systematic process that outlines the phases a software project goes through from its initiation to its completion and maintenance.
Core Tasks of software development?
Analysis → Design → Construction → Test → Deliver
What is reference architecture?
- a set of key decisions applied across multiple related systems in the same domain (e.g., healthcare, banking).
- standard framework for consistency, efficiency, and reliability.
- Includes points of variation, allowing for customization to meet specific system requirements
What are design decisions?
- choices made during the creation or planning phase of a system
Principal vs Temporal Design Decisions?
- Principal: critical choices that affects overall architecture / behavior
- Temporal: These involve time-based choices that can change or evolve over the system’s lifespan.
What are stakeholders?
- individuals/groups interested in OR impacted by the development and deployment of a system architecture
What is Requirements Engineering?
- process of gathering, documenting, analyzing, prioritizing, validating, and managing requirements
- Goal: ensure the project meets stakeholder needs while minimizing risks
What are software requirements?
- specifications that define what a software system should accomplish and how it behaves
2 types of Basic requirements?
- Functional: describe specific tasks the system must PERFORM
- Non-Functional: describe behaviors/CHARACTERISTICS (usability, security, availability)
User Stories vs Use Cases?
- User Stories: short and simple descriptions of a feature from POV of customer (informal)
- Use Cases: identify, clarify, and organize requirements (has steps)
Requirements Prioritization
MO → S → CO → W
Must → should → could → would