1/61
A set of vocabulary flashcards covering key terms, models, concepts, and processes from the lecture notes on Software Engineering and SDLC.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software Engineering
Systematic approach to the design, development, testing, and maintenance of software; combines engineering principles with programming to build high-quality software.
Software Process
Set of activities and outcomes that produce a software product; engineers perform these activities.
SDLC (Software Development Life Cycle)
The process model used to plan, design, build, test, and deploy software.
Waterfall Model
A linear, sequential SDLC model where each phase is completed before the next; best when requirements are fixed.
RAD Model (Rapid Application Development)
An SDLC model that emphasizes quick UI demos and time-boxed iterations with component reuse to speed up development.
Spiral Model
A risk-driven SDLC model that develops software in cycles with ongoing risk assessment and refinement; suited for large, complex projects.
V-Model
A validation-oriented SDLC model where each development stage has a corresponding testing activity; emphasizes verification and validation.
Incremental Model
Software is built and delivered in increments, delivering core functionality first and adding more features in later iterations.
Agile Model
An iterative, incremental approach emphasizing fast releases, customer feedback, and adaptability to change.
Iterative Model
Develop a basic system and refine it step-by-step through repeated cycles.
Big Bang Model
Direct coding with little or no planning; high risk and suitable mainly for small prototypes.
Prototyping Model
Create a working model to explore requirements; used for gathering user feedback before finalizing the system.
Throwaway Prototype
A prototype meant to be discarded after requirements are clarified and used to inform the final system.
Evolutionary Model
Develop core features first and progressively add more; useful for large projects where early usage is possible.
Concurrent Development Model
Development activities can proceed in parallel, with ongoing integration and feedback; involves states like under development and awaiting changes.
Unified Process Model (UP/RUP)
An iterative, incremental, architecture-centric, use-case driven approach; phases include Inception, Elaboration, Construction, Transition.
UPM/RUP Phases: Inception
Initial phase focused on communication and planning to define project scope and requirements.
UPM/RUP Phases: Elaboration
Modeling and refinement phase to define architecture and mitigate risks.
UPM/RUP Phases: Construction
Development phase where software components are built and integrated.
UPM/RUP Phases: Transition
Deployment phase delivering the system to users and collecting feedback.
Requirements Engineering
The process of identifying and documenting client needs and constraints.
Use Case
A description of how users interact with the system to achieve goals; captures functional requirements.
Scenario-Based Modeling
Modeling using real-life stories to illustrate user interactions with the system.
Class-Based Modeling
Modeling focused on objects (classes) and their functions.
Functional Modeling
Modeling of system functionality in terms of operations and data flows.
Behavioral Modeling
Modeling how the system reacts to external inputs and events.
Validating Requirements
Ensuring requirements are correct, complete, and agreed upon by stakeholders.
Software Architecture
The high-level structure of a software system and the organization of its components.
Architectural Styles (Patterns)
Common structural approaches for software systems, such as client–server.
Client-Server Architecture
A model where clients request services from centralized servers.
Component-Level Design
Design of small, reusable software components (e.g., payment module).
User Experience Design (UX)
Designing how users interact with a system to ensure satisfaction and ease of use.
UI Design (Golden Rules)
Guidelines to create user-friendly interfaces and intuitive layouts.
Design Evaluation and Usability
Assessing design quality and how easy it is for users to use the system.
Fundamentals of Testing
Core testing concepts, including Unit, Integration, and System Testing.
Unit Testing
Testing individual components or units in isolation.
Integration Testing
Testing how integrated components work together.
System Testing
Testing the complete, integrated software system.
Black Box Testing
Testing without knowledge of internal code structure; focuses on inputs and outputs.
White Box Testing
Testing with knowledge of internal code, logic, and structure.
Security Testing
Evaluating the system’s security controls and vulnerability to threats.
Performance Testing
Assessing system responsiveness and stability under load.
Test Strategies for Web Applications
Testing across parts of a web app (login, cart, payment) across browsers and devices.
Review Techniques
Formal and informal methods for evaluating work products (code reviews, peer reviews).
Software Quality Assurance (SQA)
Activities to ensure software quality, including standards and process adherence.
Six Sigma
A quality standard focused on reducing errors and variation (ISO 9000 related concepts).
ISO 9000
Quality management standards used to ensure consistent product quality.
Software Configuration Management (SCM)
Managing changes to software across versions, typically using version control systems like Git.
Git
A distributed version control system used for tracking code changes and collaborating.
Software Measurement & Quality Metrics
Quantitative measures used to assess software quality and process effectiveness.
Umbrella Activities
Ongoing activities that support the software process (tracking, formal reviews, SQA, SCM, documentation, reusability, metrics, risk management).
Formal Technical Reviews (FTRs)
Structured reviews to assess technical work and ensure quality before progress.
Reusability Management
Managing and leveraging reusable software components across projects.
Risk Management
Identifying, analyzing, and mitigating risks to project success.
Dataflow Model
A modeling approach that represents the process as data transformations.
Workflow Model
A model of activities organized as a sequence with inputs, outputs, and dependencies, often performed by humans.
Role/Action Model
Model that defines the roles of people involved and the actions the system performs.
HMS (Hospital Management System)
A domain example used to illustrate software systems for hospitals (patient registration, scheduling, billing).
Data Modeling
Defining data objects and their relationships to support information needs.
Data Flow Diagrams (DFD), ER Diagrams, Flow Charts
Documentation types used to model data movement, entities, and processes.
Prototype Model vs. Final System
Prototype is a preliminary working model for exploring requirements; the final system is built atop validated requirements.
Evolutionary Model (Evolutionary Prototyping)
An approach that evolves the system in increments with ongoing customer feedback.