🇵🇰 CSS Computer Science · subject

CSS Computer Science Software Engineering & Compiler Construction Syllabus

The Software Engineering & Compiler Construction syllabus for CSS Computer Science in full: 6 chapters and 20 topics, every one listed below, plus 68 Software Engineering & Compiler Construction flashcards with answers.

6Chapters
20Topics
68Flashcards

Software Engineering & Compiler Construction syllabus: all 6 chapters

Expand any chapter to see its topics and sub-topics.

  1. Software Processes

    3 topics
    • Process Models
    • Requirements Engineering
    • Analysis Modeling
  2. Design & Construction

    4 topics
    • Design Concepts & Principles
    • Architectural Design
    • Implementation & Coding
    • Software Testing
  3. Quality, Maintenance & Management

    4 topics
    • Software Quality Assurance
    • Formal Specifications & Correctness
    • Maintenance & Evolution
    • Project Management & Process Improvement
  4. Compiler Phases & Lexical Analysis

    2 topics
    • Translators & Compiler Phases
    • Lexical Analysis
  5. Syntax & Semantic Analysis

    4 topics
    • Context-Free Grammars
    • Parsing Techniques
    • Syntax-Directed Translation
    • Semantic Analysis & Type Checking
  6. Code Generation & Optimization

    3 topics
    • Intermediate Code Generation
    • Target Code Generation
    • Code Optimization Techniques

CSS Computer Science Software Engineering & Compiler Construction flashcards — 68 questions with answers

  1. In software engineering, what is a process model (software process model)?

    An abstract representation of the software process: it describes the sequence of activities, the order in which they occur, and the deliverables/work products produced, providing a framework for managing development.

  2. Describe the Waterfall (classic life cycle) model and its main weakness.

    A linear, sequential model where phases (requirements, design, implementation, testing, maintenance) flow downward, each completed before the next. Weakness: rigid, no overlap, requirements must be fixed early, and working software appears very late.

  3. What is the key idea and main use of the Prototyping model?

    Build a quick, throwaway or evolutionary prototype to clarify vague requirements and get user feedback early. Used when requirements are unclear; risk is that hacked-together prototypes get mistaken for the final product.

  4. What characterizes the Incremental process model?

    Software is delivered in increments; the first increment is often a core product, and each later increment adds functionality. Combines elements of the waterfall applied iteratively, delivering usable software early.

  5. Describe Boehm's Spiral model and its defining feature.

    An evolutionary, risk-driven model that combines iterative prototyping with systematic waterfall aspects. Each loop (spiral) has four quadrants: objective setting, risk analysis/evaluation, development & testing, and planning the next iteration. Defining feature: explicit risk analysis each cycle.

  6. What is the RAD (Rapid Application Development) model?

    A high-speed incremental model emphasizing a very short development cycle (often 60-90 days) using component reuse and automated tools. Requires modular systems and adequate resources/teams; unsuitable for high technical-risk or non-modularizable systems.

  7. List the core values of the Agile Manifesto.

    (1) Individuals and interactions over processes and tools; (2) Working software over comprehensive documentation; (3) Customer collaboration over contract negotiation; (4) Responding to change over following a plan.

  8. In Scrum, what are the three roles, and what is a sprint?

    Roles: Product Owner, Scrum Master, and the Development Team. A sprint is a fixed-length time-box (typically 2-4 weeks) during which a potentially shippable product increment is produced.

  9. What is the V-model in software development?

    An extension of the waterfall where each development phase has a corresponding testing phase: requirements↔acceptance testing, system design↔system testing, architecture↔integration testing, module design↔unit testing, forming a V shape with coding at the bottom.

  10. What is requirements engineering, and what are its main activities?

    The process of establishing the services a customer requires and the constraints on the system. Main activities: elicitation (gathering), analysis/negotiation, specification (documentation), validation, and requirements management.

  11. Distinguish functional from non-functional requirements.

    Functional requirements describe what the system should do (specific services/behaviors). Non-functional requirements are constraints on services/behavior such as performance, reliability, security, usability, and standards compliance.

  12. What is requirements elicitation and name three techniques for it.

    The activity of discovering requirements from stakeholders. Techniques: interviews, questionnaires/surveys, brainstorming, observation/ethnography, use cases/scenarios, prototyping, and JAD (Joint Application Development) workshops.

  13. What is an SRS (Software Requirements Specification)?

    A document that completely describes the external behavior of the software: functional and non-functional requirements, interfaces, and constraints. It serves as the agreed contract between customers and developers (IEEE 830 is a standard format).

  14. What is requirements validation, and name one technique used for it.

    Checking that the documented requirements define the system the customer really wants — checking validity, consistency, completeness, realism, and verifiability. Techniques: requirements reviews, prototyping, and test-case generation.

  15. What is analysis modeling in software engineering?

    The activity that builds models representing customer requirements from three domains: information (data), functional (processing), and behavioral (states/events) — bridging requirements and design.

  16. What does a Data Flow Diagram (DFD) represent, and what are its four elements?

    A DFD models the flow of data through a system (function-oriented). Four elements: processes (transformations), data flows (arrows), data stores, and external entities (sources/sinks).

  17. What is a context diagram (Level 0 DFD)?

    The highest-level DFD that represents the entire system as a single process, showing its interactions (data flows) with external entities, but no internal detail.

  18. What is an Entity-Relationship Diagram (ERD) used for?

    To model the data/information domain: it depicts entities (objects/things), their attributes, and the relationships (with cardinality) between entities. It is the basis for database design.

  19. What is a State Transition Diagram (STD) in analysis modeling?

    A behavioral model showing the states a system can be in, the events that cause transitions between states, and the actions taken as a result of those transitions.

  20. What is a data dictionary in structured analysis?

    An organized repository that defines all data objects, data flows, and data stores used in the system — describing their composition, types, and meaning to ensure consistency.

Show the other 48 Software Engineering & Compiler Construction flashcards
  1. Define the design concepts: abstraction and refinement.

    Abstraction is suppressing detail to focus on essential features (procedural and data abstraction). Refinement (stepwise refinement) is the complementary top-down process of elaborating an abstraction into increasing detail.

  2. Define modularity and explain its benefit.

    Modularity is dividing software into separately named and addressable components (modules) that are integrated to satisfy requirements. Benefit: it makes complexity manageable (divide and conquer), easing development, testing, and maintenance.

  3. Define cohesion and coupling, and state the design goal.

    Cohesion measures how strongly related the responsibilities within a single module are; coupling measures the degree of interdependence between modules. Design goal: high (strong) cohesion and low (loose) coupling.

  4. List the levels of cohesion from worst to best.

    Coincidental, logical, temporal, procedural, communicational, sequential, and functional (best).

  5. List common types of coupling from worst (tightest) to best (loosest).

    Content, common, external, control, stamp, and data coupling (loosest/best). No coupling is ideal where possible.

  6. What is information hiding (Parnas) and why is it desirable?

    Each module hides its internal design decisions/data behind a well-defined interface, so other modules cannot access them. Desirable because it limits the impact of changes and reduces coupling, improving maintainability.

  7. What is functional independence in design?

    Designing modules with single-minded purpose and aversion to excessive interaction — achieved through high cohesion and low coupling — yielding modules that are easier to develop, test, and maintain.

  8. What is software architecture (architectural design)?

    The overall structure of the software: the components (modules/subsystems), their externally visible properties, and the relationships/interactions among them — the high-level framework on which detailed design is built.

  9. Describe the client-server architectural style.

    A distributed style with servers offering services and clients requesting them over a network. Servers are passive providers; clients are active requesters. Promotes separation of concerns and scalability.

  10. Describe the layered (n-tier) architectural style.

    Software is organized into hierarchical layers, each providing services to the layer above and using services of the layer below. Example: presentation, business logic, and data layers. Promotes separation and portability.

  11. What is the pipe-and-filter architectural style?

    A style where data flows through a series of processing components (filters), connected by pipes that pass output of one as input to the next. Each filter transforms data independently; classic in Unix pipelines and compilers.

  12. What is the Model-View-Controller (MVC) pattern?

    An architecture that separates the application into Model (data/business logic), View (presentation/UI), and Controller (handles input and updates model/view). It decouples data from presentation, easing modification.

  13. What is a software architectural pattern vs. a design pattern?

    An architectural pattern addresses system-wide structural organization (e.g., layered, MVC, client-server). A design pattern is a reusable solution to a recurring problem at the module/class level (e.g., Singleton, Observer, Factory).

  14. What is refactoring in implementation/coding?

    The process of changing a software system's internal structure to improve it (readability, simplicity, maintainability) without altering its external observable behavior.

  15. What are coding standards and why are they used?

    Agreed conventions for naming, formatting, commenting, and structuring code. Used to improve readability, consistency, and maintainability, and to reduce errors across a development team.

  16. What is the difference between verification and validation?

    Verification: 'Are we building the product right?' — conformance to specification. Validation: 'Are we building the right product?' — conformance to user needs/intended use.

  17. Define unit, integration, system, and acceptance testing.

    Unit testing checks individual components/modules. Integration testing checks interfaces between combined modules. System testing checks the complete integrated system against requirements. Acceptance testing validates the system with the customer/user.

  18. Compare black-box and white-box testing.

    Black-box (functional) testing examines functionality without knowledge of internal code, based on specifications. White-box (structural/glass-box) testing examines internal logic/structure, designing tests from the code's paths and conditions.

  19. What is cyclomatic complexity and how is it computed?

    A white-box metric (McCabe) measuring the number of independent paths through a program. Computed as V(G) = E - N + 2 (edges minus nodes plus 2 for a connected flow graph), or = number of predicate nodes + 1, or number of regions.

  20. Define the equivalence partitioning and boundary value analysis test techniques.

    Equivalence partitioning divides input data into classes that should be processed identically, testing one representative per class. Boundary value analysis tests at and around the edges of input ranges, where errors commonly occur.

  21. What is the difference between alpha and beta testing?

    Alpha testing is done by users at the developer's site in a controlled environment with the developer present. Beta testing is done by end users at their own sites in real conditions, without the developer, reporting issues back.

  22. What are test stubs and drivers in integration testing?

    A stub is a dummy module that simulates a called (lower-level) module not yet developed (used in top-down testing). A driver is a dummy program that calls/invokes a module under test (used in bottom-up testing).

  23. What is regression testing?

    Re-running existing tests after changes (bug fixes, enhancements) to ensure that the modifications have not introduced new defects or broken previously working functionality.

  24. What is Software Quality Assurance (SQA)?

    A planned and systematic set of activities (audits, reviews, standards, process monitoring) applied throughout the software process to provide confidence that the software conforms to established requirements and quality standards.

  25. What is a formal technical review (FTR), and what is the most common example?

    A planned meeting of technical staff to evaluate a software work product, find defects, and verify conformance to standards. The most common example is the inspection (e.g., Fagan inspection); walkthroughs are a less formal variant.

  26. What is the CMMI and what are its maturity levels?

    Capability Maturity Model Integration: a process-improvement framework. Its five staged maturity levels are: (1) Initial, (2) Managed, (3) Defined, (4) Quantitatively Managed, and (5) Optimizing.

  27. What are formal specifications and formal methods?

    Formal specifications use mathematically-based notation (e.g., Z, VDM, B) to precisely describe what a system should do. Formal methods apply mathematical techniques to specify, develop, and verify software, enabling rigorous proof of correctness.

  28. In program correctness, what are preconditions and postconditions?

    A precondition is an assertion that must be true before a program/operation executes; a postcondition is an assertion guaranteed true after it executes (given the precondition held). Used in Hoare logic: {P} S {Q}.

  29. What is a loop invariant in program correctness proofs?

    An assertion (condition) that holds true before and after each iteration of a loop. It is used to prove the partial correctness of loops; combined with a termination argument it proves total correctness.

  30. Distinguish partial correctness from total correctness.

    Partial correctness: if the program terminates and the precondition held, the postcondition holds (does not guarantee termination). Total correctness = partial correctness PLUS a guarantee that the program terminates.

  31. What are the four types of software maintenance?

    Corrective (fixing faults), Adaptive (adjusting to changed environment/platform), Perfective (improving performance/adding enhancements), and Preventive (improving maintainability/reducing future faults).

  32. What is software evolution, and what does Lehman's first law state?

    Software evolution is the continual change of software after delivery to keep it useful. Lehman's first law (Continuing Change): a program used in a real-world environment must continually change or become progressively less useful.

  33. What is reverse engineering vs. re-engineering in maintenance?

    Reverse engineering analyzes existing software to recover its design/specifications (abstracting from code to higher-level representations). Re-engineering examines and alters a system to reconstitute it in a new form (restructure/improve) while preserving function.

  34. What is the COCOMO model and its basic effort equation?

    COnstructive COst MOdel (Boehm) estimates effort/cost from size. Basic COCOMO: Effort = a Ă— (KLOC)^b person-months, where a and b depend on project mode (Organic: 2.4, 1.05; Semi-detached: 3.0, 1.12; Embedded: 3.6, 1.20).

  35. What is Function Point (FP) analysis used for?

    A size/functionality metric independent of programming language, computed from counts of external inputs, outputs, inquiries, internal logical files, and external interface files, adjusted by complexity factors — used for estimation and productivity measurement.

  36. In project management, what does a critical path in a network (PERT/CPM) represent?

    The longest path of dependent activities through the project network, which determines the minimum project duration. Activities on the critical path have zero slack/float; any delay in them delays the whole project.

  37. What is risk management in software projects, and its key activities?

    The process of identifying, analyzing, and controlling risks that threaten a project. Key activities: risk identification, risk analysis (probability and impact), risk prioritization, and risk mitigation/monitoring/management (RMMM).

  38. What is a Gantt chart used for in project management?

    A bar chart that schedules project activities against a calendar timeline, showing start/finish dates, durations, and overlaps of tasks — used to track progress and visualize the schedule.

  39. What is a translator, and name the three main types.

    A translator is a program that converts source code from one language to another. Three types: compiler (high-level to machine/target code, whole program), interpreter (executes source statement-by-statement), and assembler (assembly language to machine code).

  40. Compare a compiler with an interpreter.

    A compiler translates the entire source program to target code once, then runs it (faster execution, errors reported at compile time). An interpreter translates and executes line-by-line each run (slower, easier debugging, no separate object code).

  41. List the phases of a compiler in order.

    Lexical analysis (scanning), syntax analysis (parsing), semantic analysis, intermediate code generation, code optimization, and code generation — supported by the symbol table and error handler throughout.

  42. What does the lexical analyzer (scanner) do, and what does it output?

    It reads the source character stream and groups characters into meaningful tokens (lexemes), removing whitespace and comments. Output: a stream of tokens (e.g., identifiers, keywords, operators), and it builds entries in the symbol table.

  43. What does the syntax analyzer (parser) do?

    It takes tokens from the lexical analyzer and checks them against the grammar (usually context-free), building a parse tree / syntax tree and reporting syntax errors.

  44. What is the role of semantic analysis in a compiler?

    It checks the parse tree for semantic consistency — type checking, scope resolution, and ensuring operations are meaningful (e.g., matching declarations with uses) — and annotates the tree with type information.

  45. What is a token, lexeme, and pattern in lexical analysis?

    A token is a category/abstract symbol (e.g., identifier, number). A lexeme is the actual sequence of characters matched (e.g., 'count'). A pattern is the rule (often a regular expression) describing the form lexemes of a token take.

  46. Compare top-down and bottom-up parsing.

    Top-down parsing builds the parse tree from the root (start symbol) down to leaves, predicting productions (e.g., recursive descent, LL parsers). Bottom-up parsing builds from leaves (tokens) up to the root by reductions (e.g., shift-reduce, LR parsers).

  47. What is the symbol table in a compiler?

    A data structure used by the compiler to store information about identifiers (names, types, scope, memory location, etc.). It is created and maintained across phases and consulted for semantic checks and code generation.

  48. What is intermediate code, and give a common form.

    A machine-independent representation generated between front-end and back-end, easing optimization and retargeting. A common form is three-address code (e.g., t1 = a + b), other forms include quadruples, triples, and abstract syntax trees.

CSS Computer Science Software Engineering & Compiler Construction FAQ

What is in the CSS Computer Science Software Engineering & Compiler Construction syllabus?

CSS Computer Science Software Engineering & Compiler Construction is split into 6 chapters: Software Processes, Design & Construction, Quality, Maintenance & Management, Compiler Phases & Lexical Analysis, Syntax & Semantic Analysis and Code Generation & Optimization. Together they contain 20 topics.

How many chapters are in CSS Computer Science Software Engineering & Compiler Construction?

6 chapters, containing 20 topics. The largest chapter is Design & Construction, with 4 topics.

Are there flashcards for CSS Computer Science Software Engineering & Compiler Construction?

Yes — a 68-card Software Engineering & Compiler Construction deck, printed in full in the flashcards section of this page and available in the Examius app with spaced repetition. The free plan covers one exam of your choice, including its flashcards; Examius Pro, a one-time purchase, unlocks every other exam and deck.