Nepal Engineering Council · Chapter 8
Software Engineering and Object-Oriented Analysis & Design
Pick an answer for each question, then open “Show answer” to check it.
205 questions in 6 syllabus topics · 18 tagged from past exams or NEC model sets.
8.1 Software process and requirements
37 questions · ACtE0801
1. What is Incremental model in software development?
Aasadh 2081 exam- Option A: linear + waterfall
- Option B: linear + RAD
- Option C: iterative + waterfall
- Option D: iterative + RAD
Show hintHide hint
Combines linear phasing with waterfall approach.
Show answerHide answer
Answer: A. linear + waterfall
Incremental model combines linear sequencing with waterfall methodology for staged development.
2. Waterfall for?
- Option A: Software engineering
- Option B: Planning
- Option C: Hardware
- Option D: Management
Show hintHide hint
Oldest SDLC.
Show answerHide answer
Answer: A. Software engineering
Waterfall is oldest approach for software engineering development.
3. Spiral model feature?
- Option A: Agile
- Option B: Iterative
- Option C: Risk management
- Option D: Linear
Show hintHide hint
Emphasizes risk.
Show answerHide answer
Answer: C. Risk management
Spiral model prominently features risk management in each iteration.
4. Model difficult to maintain?
- Option A: Agile
- Option B: Iterative
- Option C: Spiral
- Option D: Waterfall
Show hintHide hint
Rigid structure.
Show answerHide answer
Answer: D. Waterfall
Waterfall's rigid sequential structure makes maintenance difficult.
5. Incremental model?
- Option A: linear + waterfall
- Option B: linear + RAD
- Option C: iterative + waterfall
- Option D: iterative + RAD
Show hintHide hint
Combined approach.
Show answerHide answer
Answer: A. linear + waterfall
Incremental combines linear sequencing with waterfall method.
6. RAD stands for?
- Option A: Rapid Application Doc
- Option B: Rapid Application Dev
- Option C: Relative App Dev
- Option D: None
Show hintHide hint
Quick development.
Show answerHide answer
Answer: B. Rapid Application Dev
RAD = Rapid Application Development methodology.
7. What are the key software characteristics?
- Option A: Source code length and compilation speed
- Option B: Intangibility, evolving nature, and complexity
- Option C: Hardware requirements and memory size
- Option D: Programming language and development tools
Show hintHide hint
Software isn't physical like hardware - think about what makes it unique.
Show answerHide answer
Answer: B. Intangibility, evolving nature, and complexity
Software characteristics distinguish it from hardware and other engineering products. Key characteristics: (1) Intangibility - software doesn't have physical form, exists only as code/instructions. Can't touch, see, or measure directly. (2) Evolving nature - software constantly changes (bug fixes, features, enhancements) throughout lifecycle. Unlike physical products with fixed design. (3) Complexity - software systems contain many interconnected components, logic, states, making understanding difficult. (4) Conformity - software must conform to environment (OS, hardware, user expectations). (5) Flexibility - easily modifiable (both advantage and disadvantage). (6) Non-linear development - unlike manufacturing with sequential steps, software development is iterative and unpredictable. (7) Invisible product - difficult to demonstrate progress (unlike partially built bridge). (8) Maintenance-intensive - ongoing support and updates required. These characteristics make software engineering challenging - hard to estimate, easy to introduce bugs, difficult to verify completeness. Understanding these characteristics crucial for applying appropriate development methodologies and managing expectations.
8. What are software quality attributes?
- Option A: Programming language choice and IDE selection
- Option B: Measurable characteristics defining software quality
- Option C: Number of lines of code and compilation time
- Option D: Team size and development cost
Show hintHide hint
Properties that define how good software is - reliability, performance, etc.
Show answerHide answer
Answer: B. Measurable characteristics defining software quality
Software quality attributes (non-functional requirements): measurable characteristics determining software excellence. Key attributes: (1) Reliability - software performs intended function consistently without failure. Measured by mean time between failures (MTBF). (2) Performance - response time, throughput, resource utilization. (3) Usability - ease of learning, use, user satisfaction. (4) Maintainability - ease of modifying, fixing, extending. (5) Portability - ability to run on different platforms. (6) Security - protection against unauthorized access, data integrity. (7) Scalability - performance maintained as load increases. (8) Availability - uptime percentage (99.9% uptime = high availability). (9) Testability - ease of testing, detectability of faults. (10) Efficiency - optimal resource usage (CPU, memory). Different from functional requirements (what system does), quality attributes define how well it does it. Conflicting attributes: security vs performance, reliability vs cost. Trade-offs necessary: high reliability expensive, perfect security impractical. Measuring quality: metrics like defect density (bugs/1000 lines), MTBF, response time. ISO 9126 standard defines quality model. Customer expectations: quality attributes more important to users than technical implementation details. Understanding quality attributes essential for meeting customer satisfaction and building successful software.
9. What is the Agile software process model?
- Option A: Linear sequential model with phases
- Option B: Iterative model emphasizing flexibility and rapid delivery
- Option C: One-phase big bang model
- Option D: Model requiring extensive planning upfront
Show hintHide hint
Focus on working software quickly, responding to change, iterations called sprints.
Show answerHide answer
Answer: B. Iterative model emphasizing flexibility and rapid delivery
Agile model: iterative, incremental approach emphasizing flexibility, rapid delivery, customer collaboration. Core principles (Agile Manifesto): individuals/interactions over processes, working software over documentation, customer collaboration over contracts, responding to change over plans. Key characteristics: (1) Iterative development - short cycles (sprints, 1-4 weeks), deliver working software frequently. (2) Incremental - build system in small, manageable chunks. (3) Customer involvement - continuous feedback, prioritization. (4) Adaptive - embrace changes even late in development. (5) Self-organizing teams - less hierarchical, more autonomy. (6) Continuous testing - test as you build, not post-development. Popular frameworks: Scrum (sprints, product backlog, daily standups), Kanban (continuous flow, work-in-progress limits), XP (pair programming, test-driven development). Advantages: faster time-to-market, early detection of problems, customer satisfaction, team morale, flexibility. Disadvantages: difficult planning costs upfront, requires experienced team, documentation often neglected, scalability challenges for large projects. Suitable for: changing requirements, rapid prototyping, startup environments, innovative projects. Not suitable for: fixed contracts, distributed teams, safety-critical systems, large stable projects. Metrics: velocity (story points completed per sprint), burndown charts (remaining work), cycle time. Modern standard: most organizations use Agile or hybrid approaches. Understanding Agile essential for contemporary software development.
10. What is the V-Model in software development?
- Option A: Linear model without feedback
- Option B: Model with validation/verification at each development stage
- Option C: Advanced iterative model
- Option D: Model with multiple versions
Show hintHide hint
V-shape reflects testing stages mirroring development stages.
Show answerHide answer
Answer: B. Model with validation/verification at each development stage
V-Model (Verification and Validation Model): extension of Waterfall with explicit testing phases. Structure (V-shape): left side (development down), right side (testing up), meeting at bottom (unit testing). Stages: Requirements → Design → Implementation → Unit Testing → Integration Testing → System Testing → Acceptance Testing → Deployment. Key aspect: each development stage has corresponding verification/validation stage. Requirements phase matches with Acceptance Testing, Design with System Testing, etc. Verification (did we build right?): checking against specifications. Validation (did we build the right thing?): checking against user needs. Advantages: (1) Clear testing phases. (2) Early testing planning. (3) Comprehensive defect detection. (4) Quality assured at each level. (5) Clear deliverables at each stage. Disadvantages: (1) Less flexible than Agile. (2) No working software until late. (3) Difficult handling requirement changes. (4) Lengthy development cycle. (5) Assumes stable requirements. Testing hierarchy: Unit → Integration → System → UAT. Unit testing: component level, developers test code. Integration testing: components together. System testing: entire system functionality. UAT: user acceptance. Suitable for: regulated industries, safety-critical systems, large projects with stable requirements. Popular in: automotive, aerospace, healthcare sectors. Modern approach: combine V-Model rigor with Agile flexibility. Understanding V-Model important for structured testing and quality assurance.
11. What is the Prototype Model in software development?
- Option A: Building final product in single phase
- Option B: Creating incomplete version to understand requirements better
- Option C: Testing model focusing on quality
- Option D: Evolutionary development without planning
Show hintHide hint
Build quick version to show customers and gather feedback.
Show answerHide answer
Answer: B. Creating incomplete version to understand requirements better
Prototype Model: creates working prototype to clarify requirements and design before full development. Prototyping process: (1) Requirements gathering - initial understanding. (2) Quick design - minimal planning. (3) Build prototype - rapid implementation, non-production quality. (4) Evaluate - show to users, gather feedback. (5) Refine - incorporate feedback, repeat. Two types: (1) Throwaway prototyping - prototype discarded, lessons learned inform production development. (2) Evolutionary prototyping - prototype evolved into final product. Advantages: (1) Early requirement clarification. (2) Risk reduction - identify issues before full development. (3) Improved user satisfaction - involved in design. (4) Reduced development time - less rework. (5) Better communication - visual reference. Disadvantages: (1) Resource intensive - multiple builds. (2) User confusion - prototype might become product. (3) Incomplete requirements - might miss functionality. (4) Quality concerns - prototype shortcuts replicated in final. (5) Scope creep - continuous refinement. Tools: RAD (Rapid Application Development) tools enable fast prototyping. Uses: UI/UX design, new technology exploration, uncertain requirements, proof-of-concept. Example: building prototype web interface to understand user workflow, then developing full application. Danger: prototype becomes product (technical debt). Best practice: explicitly plan throwaway vs evolutionary, clearly communicate expectations. Understanding prototyping valuable for requirement clarification and risk reduction.
12. What is the Iterative Model in software development?
- Option A: Single pass through development phases
- Option B: Repeating development cycles with refinement each iteration
- Option C: Model without planning
- Option D: Testing-only development approach
Show hintHide hint
Multiple cycles of design-implementation-test, improving each time.
Show answerHide answer
Answer: B. Repeating development cycles with refinement each iteration
Iterative Model: repeating development cycles (iterations), building product incrementally. Each iteration: design → implement → test → feedback → refine. Cycle duration: typically 1-4 weeks. Key differences from Waterfall: (1) Partial functionality each iteration. (2) Continuous feedback incorporation. (3) Risk identification early. (4) Parallel development possible. (5) Adaptive to change. Spiral Model variant: adds risk assessment to each iteration. Iterative process: Iteration 1 (basic features), Iteration 2 (more features), ... until complete. Advantages: (1) Early working software. (2) Risk reduction - problems identified quickly. (3) Better requirement understanding - refine over iterations. (4) Flexibility - adapt to changes. (5) Team feedback - learn from each iteration. Disadvantages: (1) Resource intensive - multiple builds. (2) Difficult scope management - feature creep. (3) Unclear end date - when to stop iterating. (4) Integration complexity - combining iterations. (5) Documentation challenges - changing product. Metrics: iteration velocity (progress per iteration), burndown (remaining work). Works well for: changing requirements, complex systems, learning projects, innovative software. Example: mobile app development (Iteration 1: core features, Iteration 2: performance, Iteration 3: UI polish). Planning: product backlog prioritizes features for each iteration. Contrast with Agile: Agile is specific iterative approach with defined framework. Understanding iterative development important for flexibility and continuous improvement.
13. What is the Big Bang Model in software development?
- Option A: Agile model emphasizing rapid delivery
- Option B: Model where minimal planning, all development at once, sudden completion
- Option C: Multiple phases waterfall approach
- Option D: Iterative refinement model
Show hintHide hint
Chaotic approach - code is written with minimal planning, suddenly all works or fails.
Show answerHide answer
Answer: B. Model where minimal planning, all development at once, sudden completion
Big Bang Model: minimal planning, resources allocated, developers build system with little structure or management. Process: initial vague requirements → intensive coding → suddenly system works (or fails). Characteristics: (1) Minimal requirements analysis. (2) No formal design phase. (3) Coding dominates timeline. (4) Testing happens late (or not at all). (5) Integration shock - components suddenly combined. (6) Unpredictable timeline. (7) No intermediate deliverables. Advantages: (1) Simple - no process overhead. (2) Fast initial development - coding immediately. (3) Suitable for small projects - one person. Disadvantages: (1) Unpredictable - timeline unknown. (2) High risk - might completely fail. (3) Quality issues - no planning/testing. (4) Difficult communication - unclear progress. (5) Rework extensive - late problem discovery. (6) Team confusion - no structure. When used: small throwaway projects, academic assignments, personal scripts. NOT suitable for: large systems, team projects, critical systems, complex requirements. Example: student writing quick utility program without planning. Contrast: Waterfall (planned phases), Agile (planned iterations), Big Bang (no plan). Testing shock: integration reveals problems late when expensive to fix. Communication nightmare: stakeholders unaware of progress until "bang". Modern practice: almost never used professionally (risky, unprofessional). Historical: used in early programming, recognized as problematic. Understanding Big Bang model important for appreciating why planning matters.
14. What are functional requirements?
- Option A: How well software works
- Option B: Specific functionality system must provide
- Option C: Performance characteristics
- Option D: User interface appearance
Show hintHide hint
What the system does - features, functions, calculations, data processing.
Show answerHide answer
Answer: B. Specific functionality system must provide
Functional requirements: specify what system does, specific features and functions. Examples: (1) System shall calculate monthly salary. (2) System shall generate invoice PDF. (3) User shall login with username/password. (4) System shall sort records by date. (5) System shall send email notification. Characteristics: (1) Specific - clearly defined functionality. (2) Testable - can verify it works. (3) Measurable - success criteria clear. (4) Written from user perspective. (5) Independent - one function not depend on another. Examples by domain: E-commerce (add to cart, checkout, payment), Banking (transfer funds, check balance), CRM (track customers, manage leads). Versus non-functional: Functional (what), non-functional (how well). Example contrast - Functional: "System shall display customer list". Non-functional: "Customer list shall display in under 2 seconds". Specification methods: use cases, user stories, detailed specification documents. Detail level: from high-level ("user can order product") to low-level ("clicking order button calls OrderService.submitOrder()..."). Common issues: (1) Incomplete - missing requirements. (2) Ambiguous - unclear interpretation. (3) Contradictory - conflicting requirements. (4) Infeasible - impossible to implement. Requirements management: track, trace, verify each requirement. Traceability: link requirements to design, code, tests. Understanding functional requirements crucial for system scope and test planning.
15. What are non-functional requirements?
- Option A: Features system doesn't need
- Option B: Quality attributes and constraints on system operation
- Option C: User-facing functionality
- Option D: Development team requirements
Show hintHide hint
How well, how fast, how secure - performance, reliability, security, usability.
Show answerHide answer
Answer: B. Quality attributes and constraints on system operation
Non-functional requirements: constraints and quality attributes defining how well system performs. Categories: (1) Performance - response time, throughput. Example: "System shall respond in under 2 seconds". (2) Reliability - uptime, fault tolerance. Example: "System shall have 99.9% availability". (3) Security - authentication, encryption, access control. Example: "All passwords shall be encrypted". (4) Usability - learning curve, user satisfaction. Example: "New user shall complete task in under 5 minutes". (5) Maintainability - code structure, documentation. Example: "Code shall follow naming conventions". (6) Portability - platforms supported. Example: "System shall run on Windows, Linux, macOS". (7) Scalability - handle growing data/users. Example: "System shall support 10,000 concurrent users". (8) Compliance - legal, regulatory. Example: "System shall comply with GDPR". Specification: measurable constraints with acceptance criteria. Examples: "Load time < 3 seconds", "Support 1 million records", "99.99% uptime SLA". Versus functional: Functional ("Generate report"), non-functional ("Report within 1 minute"). Importance: users care about quality more than features. Trade-offs: improving one might worsen another (security vs performance). Testing: performance tests verify speed, load tests verify scalability, security tests verify protection. Design impact: non-functional requirements drive architecture (database choice, caching, distribution). Understanding non-functional requirements crucial for meeting quality expectations and system success.
16. What is requirement elicitation in software engineering?
- Option A: Writing requirements documents
- Option B: Extracting and gathering requirements from stakeholders
- Option C: Testing requirements
- Option D: Organizing team meetings
Show hintHide hint
Techniques to understand what stakeholders need - interviews, surveys, observation.
Show answerHide answer
Answer: B. Extracting and gathering requirements from stakeholders
Requirement elicitation: process of extracting, discovering, and gathering requirements from stakeholders. Techniques: (1) Interviews - direct conversation with stakeholders. One-on-one detailed discussion, group interviews for consensus. (2) Surveys/Questionnaires - reach many stakeholders, structured questions, quantifiable responses. (3) Observation - watch current processes, identify pain points. (4) Prototyping - show prototype, gather feedback. (5) Workshops - group sessions, collaborative requirements building. (6) Brainstorming - generate ideas, identify possibilities. (7) Document analysis - examine existing systems, processes. (8) Domain expert consultation - leverage specialist knowledge. Challenges: (1) Stakeholder availability - busy schedules. (2) Communication gap - understanding terminology. (3) Hidden requirements - stakeholders don't know what they need. (4) Conflicting needs - different stakeholders want different things. (5) Requirements change - new needs emerge. (6) Scope creep - endless requirement gathering. Process: (1) Identify stakeholders - who has interest. (2) Prepare - what to ask. (3) Conduct - interviews, surveys. (4) Document - record findings. (5) Analyze - understand implications. (6) Validate - confirm understanding. Tools: notebooks, recording, mind mapping, requirements management software. Successful elicitation: clear communication, listening skills, domain knowledge, patience. Common mistakes: assuming you understand, insufficient stakeholder involvement, not documenting well, ignoring non-functional requirements. Understanding requirement elicitation essential for capturing correct requirements and reducing rework.
17. What is the software requirements document (SRD)?
- Option A: Design specification
- Option B: Comprehensive document defining what system shall do
- Option C: Code documentation
- Option D: Testing report
Show hintHide hint
Formal document listing all functional and non-functional requirements.
Show answerHide answer
Answer: B. Comprehensive document defining what system shall do
Software Requirements Document (SRD): formal, comprehensive document specifying all functional and non-functional requirements. Also called: requirements specification, system requirements document (SRS). Contents: (1) Introduction - project overview, scope. (2) Functional requirements - detailed specifications. (3) Non-functional requirements - quality attributes. (4) Use cases/user stories - typical usage. (5) System interfaces - external system interactions. (6) Data requirements - data types, formats. (7) Design constraints - platform, technology. (8) Glossary - terminology definitions. (9) Appendices - diagrams, detailed requirements. Format: can be narrative document or structured (tabular), should be clear, unambiguous, complete. Writing guidelines: (1) Be specific - "The system shall accept user input" (bad), "The system shall accept email address in format name@domain" (good). (2) Avoid ambiguity - use mandatory keywords (shall, should, may). (3) Be complete - cover all scenarios. (4) Organize logically - structured format. (5) Use templates - standardized structure. (6) Include examples - clarify complex requirements. Management: version control, change tracking, traceability (requirement → design → code → test). Reviews: stakeholder reviews for accuracy, completeness, feasibility. Uses: (1) Contract baseline - agreement between parties. (2) Development guide - what to build. (3) Testing reference - what to verify. (4) Communication - clear expectations. (5) Change management - baseline for scope control. Quality metrics: completeness (all requirements present), consistency (no contradictions), clarity (unambiguous), verifiability (testable). Understanding SRD essential for successful project execution and quality assurance.
18. What is requirement validation?
- Option A: Checking spelling in requirements document
- Option B: Ensuring requirements are correct, complete, and meet stakeholder needs
- Option C: Testing implemented system
- Option D: Organizing requirements by priority
Show hintHide hint
Did we capture the right requirements? Are they feasible? Do they satisfy users?
Show answerHide answer
Answer: B. Ensuring requirements are correct, complete, and meet stakeholder needs
Requirement validation: checking that requirements are correct, complete, consistent, and achievable. Validation vs Verification: Validation (building right product - are requirements correct?), Verification (building product right - does it implement requirements?). Validation checks: (1) Correctness - requirements accurately reflect stakeholder needs. (2) Completeness - all necessary requirements present, no gaps. (3) Consistency - no contradictions between requirements. (4) Clarity - unambiguous, understandable. (5) Feasibility - technically achievable with available resources. (6) Testability - can verify requirement is met. (7) Realism - reasonable costs, timeline. Techniques: (1) Review - formal review with stakeholders. (2) Walkthrough - present requirements, gather feedback. (3) Inspection - detailed systematic examination. (4) Prototype review - show prototype against requirements. (5) Checklist - standard questions. (6) Simulation - trace through use cases. (7) Prototyping - build, demonstrate, validate. Process: (1) Prepare - organize requirements. (2) Review - check for issues. (3) Present - show stakeholders. (4) Gather feedback - identify problems. (5) Resolve - fix issues. (6) Approve - sign-off validation. Common issues: missing requirements, incorrect understanding, conflicting requirements, infeasible requirements, inconsistent terminology. Stakeholder involvement: critical for validation - only they confirm correctness. Late validation problems: discovering wrong requirements after development expensive. Early validation: saves rework, reduces risk. Sign-off: stakeholder approval (often formal document signature). Traceability: validation documented, requirements marked as validated. Understanding validation crucial for ensuring project develops correct system.
19. The process to gather the software requirements from client, analyze and document them is known as.
NEC model set- Option A: Feasibility Study
- Option B: Requirement Gathering
- Option C: Requirement Engineering
- Option D: System Requirements Specification
Show hintHide hint
Requirements engineering encompasses the entire process of gathering, analyzing, and documenting requirements.
Show answerHide answer
Answer: C. Requirement Engineering
Requirement Engineering is the process of gathering software requirements from client, analyzing them, and documenting them. Requirements engineering is a core phase in software development lifecycle: (1) Gathers requirements from stakeholders, (2) Analyzes requirements for feasibility, consistency, completeness, (3) Documents requirements formally, (4) Manages requirement changes. Activities in requirements engineering: (1) Elicitation - Gather requirements through interviews, questionnaires, observation, (2) Analysis - Organize, evaluate, prioritize requirements, (3) Documentation - Create formal specification documents, (4) Validation - Ensure requirements meet needs, (5) Management - Track and control requirement changes. Requirements types: (1) Functional requirements - What system does (features, calculations, actions), (2) Non-functional requirements - How system works (performance, reliability, security), (3) Constraints - Budget, technology, time. Related but different concepts: (1) Feasibility study - Preliminary evaluation if project is viable, (2) Requirement gathering - Part of requirements engineering, (3) System Requirements Specification (SRS) - Document produced by requirements engineering. Requirements engineering output: (1) SRS (Software Requirements Specification) document - Formal specification, (2) Use cases - User interactions, (3) Acceptance criteria - Success measures. Why requirements engineering matters: (1) Prevents scope creep - Clear documented boundaries, (2) Reduces costly changes later - Early identification of issues, (3) Improves quality - Clear expectations reduce defects, (4) Enables planning - Accurate estimation and scheduling. Modern approaches: (1) Waterfall - Formal requirements upfront, (2) Agile - Iterative requirements refinement, (3) Hybrid - Combine approaches. Poor requirements engineering leads to: (1) Project failure, (2) Cost overruns, (3) Unsatisfied clients, (4) Poor quality software.
20. Agile model is most suitable for:
NEC model set- Option A: a) Projects with fixed requirements
- Option B: b) Projects with changing requirements
- Option C: c) Small, low-risk projects only
- Option D: d) Projects without customer interaction
Show hintHide hint
Agile emphasizes flexibility and adaptation. Which project type benefits most?
Show answerHide answer
Answer: B. b) Projects with changing requirements
Agile model is most suitable for projects with changing requirements. Agile's iterative approach allows requirements to evolve based on feedback and changing business needs. Unlike waterfall which requires fixed upfront requirements, agile accommodates change throughout development. This makes it ideal for innovative projects, startups, and domains where requirements aren't fully understood initially. Agile involves continuous customer interaction and regular delivery of working software.
21. Which of the following is common to all software engineering process models?
Recalled from Jan 2026 exam- Option A: Iterative development cycles
- Option B: Requirement analysis and planning
- Option C: Fixed timeline and resources
- Option D: Waterfall approach for all phases
Show hintHide hint
All software projects must start with understanding what needs to be built. What is common to all?
Show answerHide answer
Answer: B. Requirement analysis and planning
Requirement analysis and planning is common to all software engineering process models. Whether using Waterfall, Agile, Spiral, or any other model, every software development project begins with understanding requirements and planning. Different models handle these phases differently (Waterfall upfront, Agile iteratively), but all must address requirements and planning. Iterative cycles are not universal (Waterfall is mostly sequential). Timeline and resources vary greatly. The Waterfall approach is not used in all models. Requirement engineering is the foundational activity that all successful software projects share.
22. Which of the following best describes the commonality across different software engineering strategies?
Recalled from Jan 2026 exam- Option A: Code efficiency
- Option B: Sequential phases
- Option C: Requirement engineering
- Option D: Formal documentation only
Show hintHide hint
What aspect is fundamental to all software engineering approaches, regardless of methodology?
Show answerHide answer
Answer: C. Requirement engineering
Requirement engineering best describes the commonality across different software engineering strategies. All software engineering methodologies—whether Waterfall, Agile, DevOps, or others—must perform requirement engineering to understand what the software should do. Code efficiency varies by project. Sequential phases are specific to Waterfall. Formal documentation is not required in all approaches. Requirement engineering encompasses gathering, analyzing, documenting, and validating requirements. It's the common foundation that all software projects build upon, ensuring that developed software meets actual needs.
23. What is the first step in the software development process?
Recalled from Jan 2026 exam- Option A: Design
- Option B: Implementation
- Option C: Requirement gathering
- Option D: Testing
Show hintHide hint
Before designing or coding, what must you do first to understand the problem?
Show answerHide answer
Answer: C. Requirement gathering
Requirement gathering is the first step in the software development process. Before any design, implementation, or testing can occur, the project team must understand what the software needs to accomplish. This involves collecting, analyzing, and documenting functional and non-functional requirements from stakeholders. Poor requirement gathering leads to failed projects, rework, and scope creep. A solid foundation of well-understood requirements guides all subsequent development phases. This is why requirement engineering is often considered the most critical phase in software development.
24. Which software process model emphasizes iterative development with rapid feedback?
- Option A: Waterfall Model
- Option B: Agile Model
- Option C: V-Model
- Option D: Big Bang Model
Show answerHide answer
Answer: B. Agile Model
25. Non-functional requirements specify:
- Option A: System services
- Option B: System functions
- Option C: System constraints
- Option D: System users
Show answerHide answer
Answer: C. System constraints
26. Requirements elicitation techniques include:
- Option A: Interviews
- Option B: Questionnaires
- Option C: Observation
- Option D: All of these
Show answerHide answer
Answer: D. All of these
27. The software requirements document:
- Option A: Is optional in software development
- Option B: Specifies what the software should do
- Option C: Is only needed for large projects
- Option D: Is created after coding
Show answerHide answer
Answer: B. Specifies what the software should do
28. Functional requirements describe:
- Option A: How the system should perform
- Option B: What the system should do
- Option C: When the system should be delivered
- Option D: Who will use the system
Show answerHide answer
Answer: B. What the system should do
29. The V-Model in software development is characterized by:
- Option A: Parallel development activities
- Option B: Correspondence between development and testing phases
- Option C: Absence of testing phases
- Option D: Random development sequence
Show answerHide answer
Answer: B. Correspondence between development and testing phases
30. Computer-Aided Software Engineering (CASE) tools are used for:
- Option A: Replacing programmers
- Option B: Automating software development tasks
- Option C: Hardware design
- Option D: Network administration
Show answerHide answer
Answer: B. Automating software development tasks
31. Which of the following is NOT a software quality attribute?
- Option A: Reliability
- Option B: Usability
- Option C: Maintainability
- Option D: Profitability
Show answerHide answer
Answer: D. Profitability
32. Requirements validation ensures that:
- Option A: Requirements are implemented correctly
- Option B: Requirements reflect what users want
- Option C: Requirements are documented
- Option D: Requirements are prioritized
Show answerHide answer
Answer: B. Requirements reflect what users want
33. Which of the following is NOT an Agile software development methodology?
- Option A: Scrum
- Option B: Extreme Programming (XP)
- Option C: Waterfall
- Option D: Kanban
Show answerHide answer
Answer: C. Waterfall
34. The Prototype Model in software development is characterized by:
- Option A: Sequential development phases
- Option B: Building a working model early
- Option C: Avoiding user feedback
- Option D: Minimal documentation
Show answerHide answer
Answer: B. Building a working model early
35. The Big Bang Model in software development:
- Option A: Is highly structured
- Option B: Has well-defined phases
- Option C: Lacks planning and structure
- Option D: Is recommended for large projects
Show answerHide answer
Answer: C. Lacks planning and structure
36. Requirements management involves:
- Option A: Tracking and controlling changes to requirements
- Option B: Implementing requirements
- Option C: Testing requirements
- Option D: Designing system architecture
Show answerHide answer
Answer: A. Tracking and controlling changes to requirements
37. Interface specification in requirements engineering defines:
- Option A: System functionality
- Option B: How the system interacts with other systems
- Option C: System performance
- Option D: System reliability
Show answerHide answer
Answer: B. How the system interacts with other systems
8.2 Software design
17 questions · ACtE0802
38. RMI communication?
- Option A: client
- Option B: remote
- Option C: server
- Option D: any
Show hintHide hint
Remote method.
Show answerHide answer
Answer: B. remote
RMI (Remote Method Invocation) uses stub/skeleton with remote objects.
39. Modular decomposition?
- Option A: Creating modules
- Option B: Modules from subsystems
- Option C: Functional decomp
- Option D: Structural composition
Show hintHide hint
Module development.
Show answerHide answer
Answer: B. Modules from subsystems
Modular decomposition develops modules from subsystems.
40. What is software design?
- Option A: Writing code for implementation
- Option B: Planning how to build system satisfying requirements
- Option C: Creating graphical mockups
- Option D: Testing software
Show hintHide hint
Bridge between requirements and implementation - architecture, structure, detailed plans.
Show answerHide answer
Answer: B. Planning how to build system satisfying requirements
Software design: planning and architecting solution satisfying requirements. Bridge: transforms requirements (what to build) into design (how to build). Levels: (1) Architectural design - overall system structure, major components, interaction. (2) Detailed design - individual components, algorithms, data structures. (3) UI/UX design - user interface layout, interaction. Design process: (1) Understand requirements. (2) Identify design constraints. (3) Propose solutions. (4) Evaluate options. (5) Select best approach. (6) Document design. (7) Review with stakeholders. Design approaches: (1) Top-down - start overall, refine details. (2) Bottom-up - build components, combine. (3) Structured - decompose into smaller parts. (4) Object-oriented - identify objects, relationships. (5) Modular - independent components. Design concepts: (1) Abstraction - hide complexity. (2) Decomposition - break into parts. (3) Encapsulation - bundle data/behavior. (4) Cohesion - related functionality together. (5) Coupling - minimize dependencies. (6) Modularity - independent modules. Design decisions: (1) Architecture - monolithic vs microservices. (2) Database - relational vs NoSQL. (3) Framework - technology stack. (4) Patterns - design patterns, architectural patterns. Design documentation: diagrams (UML), specification documents, design rationale. Trade-offs: simplicity vs functionality, performance vs maintainability, cost vs quality. Validation: design reviews, architectural analysis, prototyping. Understanding design crucial for building maintainable, scalable systems.
41. What are design heuristics?
- Option A: Exact mathematical formulas
- Option B: Practical rules of thumb for good design
- Option C: Testing procedures
- Option D: Documentation standards
Show hintHide hint
Guidelines like high cohesion, low coupling, DRY principle.
Show answerHide answer
Answer: B. Practical rules of thumb for good design
Design heuristics: practical guidelines and rules of thumb for achieving good design. Not strict rules, but proven principles. Key heuristics: (1) High cohesion - related functionality together. (2) Low coupling - minimize dependencies. (3) Abstraction - hide complexity. (4) Modularity - independent modules. (5) Encapsulation - data hiding. (6) DRY (Don't Repeat Yourself) - code reuse. (7) KISS (Keep It Simple) - simplicity. (8) SOLID principles - five design guidelines. (9) Separation of concerns - different responsibilities. (10) Interface segregation - specific interfaces. SOLID principles: (1) Single Responsibility - one reason to change. (2) Open/Closed - open extension, closed modification. (3) Liskov Substitution - derived classes substitutable. (4) Interface Segregation - specific interfaces. (5) Dependency Inversion - depend on abstractions. Cohesion levels: (1) Functional cohesion - best. (2) Sequential - data flow. (3) Communicational - shared data. (4) Temporal - executed together. Coupling types: (1) Data - share data. (2) Control - control flow. (3) External - external references. (4) Content - access internals. Applications: (1) Module decomposition. (2) Class design. (3) Function design. (4) Interface design. Examples: (1) High cohesion - UserService handles user operations. (2) Low coupling - modules don't depend on each other. (3) Abstraction - expose methods, hide implementation. (4) Modularity - separate database, business, UI layers. Benefits: (1) Maintainability - easier to modify. (2) Testability - can test independently. (3) Reusability - use in different contexts. (4) Clarity - understand purpose. Understanding heuristics essential for professional design decisions.
42. What is architectural design in software systems?
- Option A: Designing database schema
- Option B: Overall structure of system components and their interactions
- Option C: User interface appearance
- Option D: Code formatting standards
Show hintHide hint
High-level design - major components, layers, communication patterns.
Show answerHide answer
Answer: B. Overall structure of system components and their interactions
Architectural design: high-level system structure, major components, their responsibilities, interactions. Sets foundation for detailed design. Architectural decisions: critical choices affecting entire system. Examples: (1) Monolithic vs Microservices - single vs distributed. (2) Layered vs Event-driven - layer isolation vs event flow. (3) Client-server vs Peer-to-peer. (4) Synchronous vs Asynchronous communication. (5) Relational vs NoSQL database. (6) Centralized vs Distributed caching. Architectural styles: (1) Layered (N-tier) - horizontal layers (presentation, business, data). (2) Microservices - independent services. (3) Event-driven - components react to events. (4) Client-server - central server, multiple clients. (5) Pipe-and-filter - data flows through stages. (6) Model-view-controller - separation of concerns. Architectural patterns: solutions to recurring architectural problems. Component design: identify major components, responsibilities, interfaces. Data flow: how data moves between components. Communication: synchronous (blocking), asynchronous (non-blocking). Documentation: architecture diagrams (boxes, arrows), specification documents, decisions rationale. Quality attributes driving architecture: (1) Performance - caching, distribution. (2) Scalability - horizontal/vertical scaling. (3) Reliability - replication, failover. (4) Maintainability - loose coupling, modularity. (5) Security - firewalls, encryption. (6) Usability - responsive UI. Trade-offs: simplicity vs scalability, performance vs maintainability, security vs performance. Evaluation: review against quality requirements, risk assessment. Example: E-commerce site might use layered architecture (presentation, business, data) with separate services (payment, inventory, shipping). Understanding architecture crucial for system success and evolution.
43. What is modular decomposition in software design?
- Option A: Breaking system into independent modules for maintainability
- Option B: Removing duplicate code
- Option C: Testing individual modules
- Option D: Sorting data into modules
Show hintHide hint
Divide and conquer - break large system into smaller, manageable pieces.
Show answerHide answer
Answer: A. Breaking system into independent modules for maintainability
Modular decomposition: dividing system into independent, self-contained modules. Benefits: (1) Manageability - smaller pieces easier to understand. (2) Reusability - modules used in other projects. (3) Team development - parallel development. (4) Testing - test modules independently. (5) Maintenance - change one module without affecting others. (6) Evolution - replace modules. Decomposition strategies: (1) Functional decomposition - by functionality (search module, payment module). (2) Data decomposition - by data (user data, product data). (3) Layer decomposition - by layers (presentation, business, data). (4) Feature decomposition - by features (authentication, reports). (5) Hierarchical - main system, subsystems, components. Module characteristics: (1) High cohesion - related functionality. (2) Low coupling - independent. (3) Clear interface - well-defined inputs/outputs. (4) Single responsibility. (5) Testable - can test independently. Module types: (1) Library - reusable functions/classes. (2) Service - provides functionality via interface. (3) Controller - orchestrates others. (4) Model - data representation. (5) View - presentation. (6) Utility - helper functions. Examples: (1) Web application - Auth module, User module, Product module, Order module. (2) Desktop app - UI module, Business logic module, Data access module. (3) Game - Graphics module, Physics module, Input module, State module. API design: modules communicate via well-defined APIs, not internals. Dependency management: track module dependencies, avoid circular. Tool support: dependency tools, module visualization. Understanding decomposition essential for manageable, scalable systems.
44. What is reference architecture?
NEC model set- Option A: It is a reference model mapped onto software components
- Option B: It provides data flow with comments
- Option C: It provides data flow with pieces
- Option D: It is a reference model mapped onto software components data flow with comments
Show hintHide hint
Reference architecture maps abstract models to concrete software components for implementation.
Show answerHide answer
Answer: A. It is a reference model mapped onto software components
Reference architecture is a reference model mapped onto software components. Architecture concepts: (1) Reference model - Abstract, conceptual model of system architecture independent of technology, (2) Reference architecture - Takes reference model and maps it to concrete software components, technologies, and frameworks, (3) System architecture - Specific implementation for particular system. Reference architecture bridge: (1) Provides guidance for actual system development, (2) Maps abstract concepts to implementation technologies, (3) Shows component interactions and relationships, (4) Serves as blueprint for development teams. Characteristics of reference architecture: (1) Technology-agnostic initially, but maps to specific technologies, (2) Component-based - Defines software components, (3) Pattern-based - Uses established patterns, (4) Guidance for implementation - Shows how to build actual systems. Benefits: (1) Consistency - Multiple systems follow same architecture, (2) Knowledge transfer - Teams understand common structure, (3) Best practices - Incorporates proven patterns, (4) Maintenance - Easier to maintain standardized architecture. Examples: (1) MVC architecture - Model-View-Controller reference architecture, (2) SOA - Service-oriented architecture reference, (3) Cloud reference architectures - AWS, Azure, GCP templates. Relationship to design: (1) Reference architecture guides detailed design, (2) Detailed design implements specific system, (3) Architecture shows component structure, (4) Design shows implementation details. Real-world usage: (1) Enterprise architecture - Organizational software strategy, (2) Product families - Multiple products sharing architecture, (3) Technology migration - Guide updating systems. Option D is technically describing the same thing more verbosely, but option A is the most concise correct answer.
45. Software design is concerned with:
- Option A: Defining requirements
- Option B: Specifying a solution that meets requirements
- Option C: Testing the software
- Option D: Maintaining the software
Show answerHide answer
Answer: B. Specifying a solution that meets requirements
46. Architectural design decisions involve:
- Option A: Detailed algorithm design
- Option B: User interface design
- Option C: System structure organization
- Option D: Code optimization
Show answerHide answer
Answer: C. System structure organization
47. Modular decomposition in software design aims to:
- Option A: Increase system complexity
- Option B: Reduce system maintainability
- Option C: Break the system into manageable components
- Option D: Eliminate the need for testing
Show answerHide answer
Answer: C. Break the system into manageable components
48. Reference architectures in software design:
- Option A: Are specific to individual projects
- Option B: Provide templates for common system types
- Option C: Replace the need for design
- Option D: Are used only in small projects
Show answerHide answer
Answer: B. Provide templates for common system types
49. Design heuristics are:
- Option A: Formal design methods
- Option B: Rules of thumb that guide design decisions
- Option C: Automated design tools
- Option D: Design documentation templates
Show answerHide answer
Answer: B. Rules of thumb that guide design decisions
50. Real-time software design focuses on:
- Option A: Systems with no time constraints
- Option B: Systems that must respond within specific time constraints
- Option C: User interface design
- Option D: Database design
Show answerHide answer
Answer: B. Systems that must respond within specific time constraints
51. Distributed object architectures:
- Option A: Centralize all processing
- Option B: Distribute objects across multiple systems
- Option C: Eliminate the need for objects
- Option D: Are only theoretical
Show answerHide answer
Answer: B. Distribute objects across multiple systems
52. Multiprocessor architecture in software design deals with:
- Option A: Single-processor systems
- Option B: Systems with multiple processors
- Option C: User interface design
- Option D: Database design
Show answerHide answer
Answer: B. Systems with multiple processors
53. Component-based software engineering focuses on:
- Option A: Building systems from pre-existing components
- Option B: Developing everything from scratch
- Option C: Eliminating the design phase
- Option D: Reducing user involvement
Show answerHide answer
Answer: A. Building systems from pre-existing components
54. Client-server architecture is characterized by:
- Option A: All processing done on one machine
- Option B: Distribution of processing between clients and servers
- Option C: Absence of network communication
- Option D: Single-user operation
Show answerHide answer
Answer: B. Distribution of processing between clients and servers
8.3 Software testing, cost estimation, quality and configuration management
94 questions · ACtE0803
55. What does software quality management consist of?
- Option A: SQA and SQC
- Option B: SQA and SQM
- Option C: SQM and SQC
- Option D: SQP and SQA
Show hintHide hint
Assurance and Measurement.
Show answerHide answer
Answer: B. SQA and SQM
Software Quality Management includes SQA (Software Quality Assurance) and SQM (Software Quality Management).
56. Quality management consist?
- Option A: SQA and SQC
- Option B: SQA and SQM
- Option C: SQM and SQC
- Option D: SQP and SQA
Show hintHide hint
Assurance and measurement.
Show answerHide answer
Answer: B. SQA and SQM
Quality management includes SQA (assurance) and SQM (measurement).
57. Not correct testing technique?
- Option A: Integration
- Option B: Collaboration
- Option C: System
- Option D: Unit
Show hintHide hint
Not testing type.
Show answerHide answer
Answer: B. Collaboration
Collaboration is not testing technique; correct types are unit, integration, system testing.
58. Software testing NOT correct?
- Option A: Integration
- Option B: Collaboration
- Option C: System
- Option D: Unit
Show hintHide hint
Invalid testing term.
Show answerHide answer
Answer: B. Collaboration
Collaboration testing doesn't exist; valid types are unit, integration, system.
59. Software macroscopic schedule?
- Option A: Distribute effort
- Option B: Allocate tasks
- Option C: Project planning
- Option D: All
Show hintHide hint
Complete scheduling.
Show answerHide answer
Answer: D. All
Software macroscopic schedule distributes effort and allocates tasks across duration.
60. What is unit testing in software testing?
- Option A: Testing entire system functionality
- Option B: Testing individual components/functions in isolation
- Option C: User acceptance testing
- Option D: Performance testing
Show hintHide hint
Test smallest testable units - functions, methods, classes.
Show answerHide answer
Answer: B. Testing individual components/functions in isolation
Unit testing: testing smallest testable software components (functions, methods, classes) in isolation. Purpose: (1) Verify correctness - code does what intended. (2) Detect bugs early - cheaper to fix. (3) Enable refactoring - safely modify knowing tests verify. (4) Document behavior - tests show expected behavior. (5) Facilitate debugging - pinpoint failures. Characteristics: (1) Isolated - tests don't depend on other tests. (2) Fast - execute quickly. (3) Automated - run without manual intervention. (4) Repeatable - same result every run. (5) Self-checking - pass/fail clear. Tools: JUnit (Java), NUnit (.NET), pytest (Python), Mocha (JavaScript). Structure (Arrange-Act-Assert): (1) Arrange - set up test data. (2) Act - execute code. (3) Assert - verify result. Example: void testAddition() { assertEquals(4, add(2, 2)); }. Test coverage: percentage of code tested. Goal: high coverage (>80%). Mocking: simulate dependencies. Example: mock database, mock network. Assertions: verify expected results. Common: assertEquals, assertTrue, assertThrows. Benefits: (1) Confidence - know code works. (2) Quick feedback - failure detected immediately. (3) Regression prevention - catch unintended changes. (4) Quality - fewer bugs in production. (5) Cost - fixing early cheaper. Limitations: (1) Time consuming - write and maintain tests. (2) Incomplete - can't test all scenarios. (3) False confidence - might miss bugs. (4) Maintenance - update when code changes. Best practices: (1) One assertion per test. (2) Descriptive names. (3) Independent tests. (4) Arrange-act-assert structure. (5) Test edge cases. Understanding unit testing essential for quality code and bug prevention.
61. What is integration testing?
- Option A: Testing individual functions
- Option B: Testing how components work together
- Option C: Testing user interface
- Option D: System deployment testing
Show hintHide hint
Test interaction between units/modules - data flow, interfaces.
Show answerHide answer
Answer: B. Testing how components work together
Integration testing: testing how components/modules interact and work together. Focuses on: (1) Interface correctness - parameters, return values. (2) Data flow - correct data passing. (3) Interaction - components communicate properly. (4) Side effects - unexpected behavior. Scope: more than unit testing, less than system testing. Follows unit testing in sequence. Approaches: (1) Big Bang - integrate all at once. Disadvantage: hard to isolate problems. (2) Incremental - integrate progressively. Bottom-up (build from components up), Top-down (start from top level). Advantages: incrementally easier debugging. (3) Sandwich - combine bottom-up and top-down. Process: (1) Plan - integration order, test cases. (2) Setup - environment, test data. (3) Execute - run tests. (4) Verify - check results. (5) Report - document findings. Test cases: (1) API contracts - parameters, return values correct. (2) Data exchange - data correctly passed. (3) Error handling - handle component failures. (4) Concurrent access - multiple components accessing resources. (5) Performance - acceptable speed combined. Tools: API testing (Postman), test frameworks, mocking libraries. Example: test that UserService and Database components interact correctly (UserService calls Database correctly, receives data correctly). Database testing: verify queries, stored procedures, triggers. API testing: verify endpoints, parameters, responses. Stubs/mocks: simulate dependencies not yet built. Common issues: (1) Interface mismatches - parameters don't match. (2) Data format errors - incompatible formats. (3) Timing issues - race conditions. (4) Performance - acceptable separately, slow together. Understanding integration testing crucial for multi-component system reliability.
62. What is system testing?
- Option A: Testing individual modules
- Option B: Testing complete integrated system against requirements
- Option C: Testing code quality
- Option D: Developer testing
Show hintHide hint
End-to-end testing - entire system functioning as specified.
Show answerHide answer
Answer: B. Testing complete integrated system against requirements
System testing: testing complete, integrated system against functional and non-functional requirements. Scope: entire system from user perspective, all components integrated. Follows integration testing. Types: (1) Functional testing - verify all features work. (2) Performance testing - response time, throughput acceptable. (3) Load testing - handles expected load. (4) Stress testing - handles exceed load. (5) Usability testing - user-friendly. (6) Security testing - protected against threats. (7) Compatibility testing - works on supported platforms. (8) Recovery testing - recovers from failures. (9) Compliance testing - meets standards. Process: (1) Plan - define test scope, requirements. (2) Design - test cases, scenarios. (3) Setup - system, environment, data. (4) Execute - run test cases. (5) Report - document results, defects. Test environment: mirrors production as closely as possible. Test data: realistic data reflecting production. Regression testing: verify fixes don't break existing functionality. Scenarios: real-world use cases. Example: E-commerce system test - user registers, searches products, adds to cart, checks out, pays, receives confirmation. Each step verifies requirement met. Metrics: (1) Test case pass rate. (2) Defect severity/count. (3) Coverage - requirements tested. (4) Performance - response times. (5) Uptime - availability. Sign-off: system approved ready for deployment if tests pass. Challenges: (1) Complexity - many components. (2) Time - extensive testing. (3) Environment - hard to replicate production. (4) Regression - prevent new bugs. Understanding system testing crucial for release quality assurance.
63. What is acceptance testing (UAT)?
- Option A: Developer testing
- Option B: Testing by end-users to verify system meets requirements
- Option C: Code review process
- Option D: Performance benchmarking
Show hintHide hint
User acceptance testing - users test real-world usage.
Show answerHide answer
Answer: B. Testing by end-users to verify system meets requirements
Acceptance testing (UAT): final testing by end-users/stakeholders to verify system meets business requirements. Purpose: (1) Verify functionality meets needs. (2) User acceptance - comfortable using system. (3) Business value - delivers promised benefits. (4) Go/no-go decision - proceed to production. Types: (1) User acceptance testing - end-users test. (2) Operational acceptance testing - IT/operations test infrastructure. (3) Contract/regulatory acceptance - verify contractual requirements. (4) Alpha/beta testing - limited user groups test. Process: (1) Plan - UAT objectives, participants. (2) Setup - realistic environment, data. (3) Test - users execute test cases, real scenarios. (4) Feedback - users provide feedback. (5) Resolve - address issues, fixes. (6) Sign-off - formal approval. Test cases: (1) Business scenarios - real use cases. (2) Data scenarios - typical, edge cases. (3) Workflow - entire processes. (4) Integration - different departments. (5) Performance - acceptable speed. Participants: (1) Business users - domain knowledge. (2) Subject matter experts - business process. (3) IT/Operations - technical concerns. (4) Project manager - schedule, scope. Differ from system testing: (1) System testing (IT/QA) - compliance with specs. (2) Acceptance testing (Business) - meets business needs. Example: HR system UAT - employees test hiring process, payroll, benefits. Success criteria: (1) All test cases pass. (2) Acceptable defect count. (3) User satisfaction. (4) Performance acceptable. (5) No showstoppers. Approval: formal sign-off, business stakeholder approval. Understanding UAT essential for ensuring business value and user satisfaction.
64. What is software quality assurance (SQA)?
- Option A: Testing software only
- Option B: Comprehensive activities ensuring software meets quality standards
- Option C: Code review process
- Option D: Performance optimization
Show hintHide hint
Broader than testing - planning, processes, reviews, metrics.
Show answerHide answer
Answer: B. Comprehensive activities ensuring software meets quality standards
Software Quality Assurance (SQA): comprehensive approach ensuring software meets quality standards and requirements. Broader than testing. Activities: (1) SQA planning - define quality standards, processes. (2) Process definition - how to develop software. (3) Code reviews - peer examination. (4) Formal technical reviews - structured reviews. (5) Testing - unit, integration, system. (6) Metrics - measure quality. (7) Traceability - requirements → code → test. (8) Configuration management - version control, change management. (9) Defect tracking - record, analyze defects. (10) Corrective actions - improve based on findings. SQA vs Testing: SQA (process, prevention), Testing (verification, detection). SQA encompasses testing but broader. Planning: (1) Quality objectives - what acceptable? (2) Metrics - how measure? (3) Process - how ensure? (4) Roles - who responsible? (5) Tools - what tools needed? Standards: ISO 9001 (quality management), ISO/IEC 27001 (security), CMMI (capability maturity). Formal reviews: (1) Walkthrough - informal presentation. (2) Inspection - formal systematic examination. (3) Audit - compliance verification. Metrics: (1) Defect density - defects per size. (2) Reliability - mean time between failures. (3) Code coverage - percentage tested. (4) Customer satisfaction. (5) On-time delivery. Defect management: (1) Report - document defect. (2) Classify - severity, priority. (3) Assign - to developer. (4) Fix - resolve issue. (5) Verify - confirm fix. (6) Close - mark resolved. Example: E-commerce system SQA. Define quality (uptime 99.9%, defect density <1/1000). Planning (reviews weekly, testing comprehensive). Metrics (track defects, measure reliability). Benefits: (1) Quality assurance - prevent issues. (2) Cost reduction - fix early. (3) Customer satisfaction. (4) Team coordination. Understanding SQA essential for building quality software.
65. What is configuration management in software engineering?
- Option A: System configuration settings
- Option B: Managing software versions, changes, and releases
- Option C: Build configuration
- Option D: Database configuration
Show hintHide hint
Version control, change tracking, release management - history and changes.
Show answerHide answer
Answer: B. Managing software versions, changes, and releases
Configuration management: managing software versions, changes, releases, and configurations. Purpose: (1) Track versions - what changed when. (2) Manage changes - control modifications. (3) Release management - deliver versions. (4) Traceability - relate changes to requirements. Activities: (1) Configuration identification - identify items to manage. (2) Version control - manage versions. (3) Change management - control changes. (4) Release management - manage releases. (5) Status tracking - track status. (6) Audits - verify compliance. Version control: maintaining multiple versions. Repository stores versions, history. Systems: Git, SVN, Mercurial. Features: (1) Versioning - track versions. (2) Branching - parallel development. (3) Merging - combine branches. (4) History - see changes over time. (5) Rollback - revert changes. Change management: (1) Request change - document need. (2) Review - evaluate impact. (3) Approve - management approval. (4) Implement - make changes. (5) Verify - confirm implementation. (6) Communicate - notify stakeholders. Release management: (1) Plan release - decide version, date. (2) Build - compile, package. (3) Test - system testing. (4) Deploy - move to production. (5) Support - production support. Configuration items: source code, documentation, test cases, build scripts, etc. Baseline: approved, fixed set of items. Changes tracked against baseline. Tools: Git (version control), Jenkins (CI/CD), Jira (change tracking). Benefits: (1) Traceability - what changed, why. (2) Collaboration - team coordination. (3) Quality - prevent bad changes. (4) Compliance - regulatory requirements. (5) Recovery - restore previous versions. Example: bugfix workflow. Create branch, fix bug, test, merge, release new version. Understanding configuration management essential for team coordination and quality.
66. Which of the following testing is sometime called as Acceptance testing?
NEC model set- Option A: White-box testing
- Option B: Grey box testing
- Option C: Alpha testing
- Option D: Beta testing
Show hintHide hint
Beta testing is done by end users in real environment. Acceptance testing validates if system meets requirements.
Show answerHide answer
Answer: D. Beta testing
Beta testing is sometimes called Acceptance testing. Testing types and their purposes: (1) Alpha testing - Internal testing by development/QA team before release, closed environment, (2) Beta testing - Limited release to end users, real-world environment, gathers user feedback, sometimes called acceptance testing, (3) White-box testing - Tests internal code structure, requires code knowledge, (4) Grey box testing - Tests with some knowledge of internal structure. Why beta testing is acceptance testing: (1) End users validate if system meets their needs, (2) Tests in real-world conditions (not controlled lab), (3) Determines if system is acceptable for production, (4) User feedback on functionality, performance, usability. Alpha vs Beta: (1) Alpha - Controlled by development team, many defects acceptable, (2) Beta - Limited external users, fewer defects, closer to production quality. Acceptance criteria: (1) Functionality requirements met, (2) Performance acceptable, (3) Usability satisfactory, (4) No critical defects. Related testing: (1) User Acceptance Testing (UAT) - Formal acceptance testing, (2) System testing - Tests complete system before release, (3) Integration testing - Tests component interactions, (4) Unit testing - Tests individual units. Testing sequence: (1) Unit → Integration → System → UAT → Alpha → Beta → Release. Modern perspectives: (1) Continuous testing - Testing throughout development, (2) DevOps - Automated testing in pipeline, (3) Agile - Testing in sprints, (4) User involvement - Early and continuous feedback. Why acceptance testing matters: (1) Prevents wrong product release, (2) Catches real-world issues, (3) Validates business requirements, (4) Improves quality before general release.
67. Which testing is performed after fixing defects to ensure previous functionality still works?
NEC model set- Option A: a) Unit testing
- Option B: b) Smoke testing
- Option C: c) Acceptance testing
- Option D: d) Regression testing
Show hintHide hint
After bug fixes, we retest to ensure we didn't break existing functionality. What's this?
Show answerHide answer
Answer: D. d) Regression testing
Regression testing is performed after fixing defects to ensure previous functionality still works. It verifies that bug fixes don't introduce new bugs and that existing features continue functioning. Regression testing re-runs previously passing tests on modified code. It's critical after changes to maintain software quality. Automated regression test suites help catch regressions early and frequently.
68. Which of the following testing phases is sometimes called acceptance testing?
Recalled from Jan 2026 exam- Option A: White-box testing
- Option B: Grey-box testing
- Option C: Alpha testing
- Option D: Beta testing
Show hintHide hint
Acceptance testing involves real users testing near-final software. Which phase is this?
Show answerHide answer
Answer: D. Beta testing
Beta testing is sometimes called acceptance testing. Beta testing involves real users (external to the development team) testing the software in a real environment before final release. Beta testers verify that the software meets their needs and is acceptable for deployment. Beta testing occurs after alpha testing (internal testing) and is the final stage before release to production. It's a form of user acceptance testing (UAT). Alpha testing is internal. White-box and grey-box refer to testing techniques based on code visibility, not phases.
69. Unit testing involves:
- Option A: Testing individual components
- Option B: Testing the entire system
- Option C: Testing user acceptance
- Option D: Testing system integration
Show answerHide answer
Answer: A. Testing individual components
70. Integration testing focuses on:
- Option A: Testing individual modules
- Option B: Testing interactions between modules
- Option C: Testing user requirements
- Option D: Testing system performance
Show answerHide answer
Answer: B. Testing interactions between modules
71. Test case design techniques include:
- Option A: Black-box testing
- Option B: White-box testing
- Option C: Both A and B
- Option D: Neither A nor B
Show answerHide answer
Answer: C. Both A and B
72. Software cost estimation methods include:
- Option A: COCOMO model
- Option B: Function point analysis
- Option C: Expert judgment
- Option D: All of these
Show answerHide answer
Answer: D. All of these
73. Test automation:
- Option A: Eliminates the need for manual testing
- Option B: Uses software tools to control test execution
- Option C: Is only suitable for small projects
- Option D: Increases testing time
Show answerHide answer
Answer: B. Uses software tools to control test execution
74. Software quality assurance:
- Option A: Is only concerned with testing
- Option B: Is a comprehensive approach to ensuring quality
- Option C: Is only needed for critical systems
- Option D: Is performed only at the end of development
Show answerHide answer
Answer: B. Is a comprehensive approach to ensuring quality
75. Formal technical reviews in software development:
- Option A: Replace testing
- Option B: Are conducted by managers only
- Option C: Help identify defects early
- Option D: Are optional activities
Show answerHide answer
Answer: C. Help identify defects early
76. Configuration management in software engineering deals with:
- Option A: Hardware setup
- Option B: Managing changes to software artifacts
- Option C: Network configuration
- Option D: User interface design
Show answerHide answer
Answer: B. Managing changes to software artifacts
77. Version control systems are used for:
- Option A: Tracking changes to source code
- Option B: Testing software
- Option C: Designing user interfaces
- Option D: Estimating project costs
Show answerHide answer
Answer: A. Tracking changes to source code
78. CMMI stands for:
- Option A: Computer Managed Model Integration
- Option B: Capability Maturity Model Integration
- Option C: Complex Management Model Interface
- Option D: Comprehensive Maintenance Model Integration
Show answerHide answer
Answer: B. Capability Maturity Model Integration
79. ISO 9001 is a standard related to:
- Option A: Programming languages
- Option B: Quality management systems
- Option C: Network protocols
- Option D: Database design
Show answerHide answer
Answer: B. Quality management systems
80. System testing involves:
- Option A: Testing individual components
- Option B: Testing component interactions
- Option C: Testing the complete system
- Option D: Testing user acceptance
Show answerHide answer
Answer: C. Testing the complete system
81. Acceptance testing is performed by:
- Option A: Developers
- Option B: Testers
- Option C: Project managers
- Option D: Customers or users
Show answerHide answer
Answer: D. Customers or users
82. Metrics for testing include:
- Option A: Code coverage
- Option B: Defect density
- Option C: Test case effectiveness
- Option D: All of these
Show answerHide answer
Answer: D. All of these
83. The COCOMO model is used for:
- Option A: Software design
- Option B: Software testing
- Option C: Software cost estimation
- Option D: Software maintenance
Show answerHide answer
Answer: C. Software cost estimation
84. Project staffing in software engineering involves:
- Option A: Determining the number and skills of personnel needed
- Option B: Designing the system architecture
- Option C: Testing the software
- Option D: Maintaining the software
Show answerHide answer
Answer: A. Determining the number and skills of personnel needed
85. Statistical software quality assurance uses:
- Option A: Formal methods
- Option B: Statistical sampling and analysis
- Option C: User feedback
- Option D: Code reviews
Show answerHide answer
Answer: B. Statistical sampling and analysis
86. Change management in configuration management deals with:
- Option A: Organizational changes
- Option B: Controlling changes to software artifacts
- Option C: User interface changes
- Option D: Hardware changes
Show answerHide answer
Answer: B. Controlling changes to software artifacts
87. Software metrics provide:
- Option A: Subjective assessments
- Option B: Quantitative measures of software attributes
- Option C: Design patterns
- Option D: Testing strategies
Show answerHide answer
Answer: B. Quantitative measures of software attributes
88. Version and release management involves:
- Option A: Managing different versions of software artifacts
- Option B: Designing the system
- Option C: Testing the software
- Option D: Maintaining hardware
Show answerHide answer
Answer: A. Managing different versions of software artifacts
89. CASE tools for configuration management assist in:
- Option A: Software design
- Option B: Managing software changes and versions
- Option C: Software testing
- Option D: User interface design
Show answerHide answer
Answer: B. Managing software changes and versions
90. The testing in which code is checked
- Option A: Black box testing
- Option B: White box testing
- Option C: Red box testing
- Option D: Green box testing
Show answerHide answer
Answer: B. White box testing
91. Acceptance testing is also known as
- Option A: Grey box testing
- Option B: White box testing
- Option C: Alpha Testing
- Option D: Beta testing
Show answerHide answer
Answer: D. Beta testing
92. Which of the following is non-functional testing?
- Option A: Black box testing
- Option B: Performance testing
- Option C: Unit testing
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Performance testing
93. Beta testing is done at
- Option A: User’s end
- Option B: Developer’s end
- Option C: User’s & Developer’s end
- Option D: None of the mentioned
Show answerHide answer
Answer: A. User’s end
94. Unit testing is done by
- Option A: Users
- Option B: Developers
- Option C: Customers
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Developers
95. Behavioral testing is
- Option A: White box testing
- Option B: Black box testing
- Option C: Grey box testing
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Black box testing
96. Which of the following is black box testing
- Option A: Basic path testing
- Option B: Boundary value analysis
- Option C: Code path analysis
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Boundary value analysis
97. Which of the following is not used in measuring the size of the software
- Option A: KLOC
- Option B: Function Points
- Option C: Size of module
- Option D: None of the mentioned
Show answerHide answer
Answer: C. Size of module
98. Test cases should uncover errors like
- Option A: Nonexistent loop termination
- Option B: Comparison of different data types
- Option C: Incorrect logical operators or precedence
- Option D: All of the mentioned
Show answerHide answer
Answer: A. Nonexistent loop termination
99. Which of the following errors should not be tested when error handling is evaluated?
- Option A: Error description is unintelligible
- Option B: Error noted does not correspond to error encountered
- Option C: Error condition causes system intervention prior to error handling
- Option D: Error description provide enough information to assist in the location of the cause of the error
Show answerHide answer
Answer: A. Error description is unintelligible
100. In which testing level the focus is on customer usage?
- Option A: Alpha Testing
- Option B: Beta Testing
- Option C: Validation Testing
- Option D: Both Alpha and Beta
Show answerHide answer
Answer: D. Both Alpha and Beta
101. A ______________ is the second phase of software testing in which a sampling of the intended audience tests the product.
- Option A: Alpha
- Option B: Beta
- Option C: Gamma
- Option D: Delta
Show answerHide answer
Answer: B. Beta
102. Beta Testing is also known as _________ testing.
- Option A: Field
- Option B: Unit
- Option C: Functional
- Option D: Box
Show answerHide answer
Answer: A. Field
103. ___________ is a type of software testing which verifies that software, which was previously developed and tested, still performs correctly after it was changed or interfaced with other software.
- Option A: Unit Testing
- Option B: Regression Testing
- Option C: Stress Testing
- Option D: Functional Testing
Show answerHide answer
Answer: B. Regression Testing
104. Software Testing with real data in real environment is known as
- Option A: alpha testing
- Option B: beta testing
- Option C: regression testing
- Option D: none of the mentioned
Show answerHide answer
Answer: B. beta testing
105. Which of the following testing tools examine program systematically & automatically?
- Option A: Code Inspector
- Option B: Static Analyzer
- Option C: Standard Enforcer
- Option D: Coverage Analyzer
Show answerHide answer
Answer: B. Static Analyzer
106. Beta Testing is done by
- Option A: Developers
- Option B: Testers
- Option C: Users
- Option D: All of the mentioned
Show answerHide answer
Answer: C. Users
107. Testing done without planning and Documentation is called
- Option A: Unit testing
- Option B: Regression testing
- Option C: Ad-hoc testing
- Option D: None of the mentioned
Show answerHide answer
Answer: C. Ad-hoc testing
108. Which of the following term describes testing?
- Option A: Finding broken code
- Option B: Evaluating deliverable to find errors
- Option C: A stage of all projects
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Evaluating deliverable to find errors
109. What is Cyclomatic complexity? (Note: Cyclomatic complexity measures the amount of decision logic in the program module. Cyclomatic complexity gives the minimum number of paths that can generate all possible paths through the module.)
- Option A: Black box testing
- Option B: White box testing
- Option C: Yellow box testing
- Option D: Green box testing
Show answerHide answer
Answer: B. White box testing
110. White Box techniques are also classified as
- Option A: Design based testing
- Option B: Structural testing
- Option C: Error guessing technique
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Structural testing
111. Which of the following is/are White box technique?
- Option A: Statement Testing
- Option B: Decision Testing
- Option C: Condition Coverage
- Option D: All of the mentioned
Show answerHide answer
Answer: D. All of the mentioned
112. What are the various Testing Levels?
- Option A: Unit Testing
- Option B: System Testing
- Option C: Integration Testing
- Option D: All of the mentioned
Show answerHide answer
Answer: D. All of the mentioned
113. Software Maintenance includes
- Option A: Error corrections
- Option B: Enhancements of capabilities
- Option C: Deletion of obsolete capabilities
- Option D: All of the mentioned
Show answerHide answer
Answer: D. All of the mentioned
114. What type of software testing is generally used in Software Maintenance?
- Option A: Regression Testing
- Option B: System Testing
- Option C: Integration Testing
- Option D: Unit Testing
Show answerHide answer
Answer: A. Regression Testing
115. What is testing process’ first goal?
- Option A: Bug prevention
- Option B: Testing
- Option C: Execution
- Option D: Analyses
Show answerHide answer
Answer: A. Bug prevention
116. Name an evaluation technique to assess the quality of test cases.
- Option A: Mutation analysis
- Option B: Validation
- Option C: Verification
- Option D: Performance analysis
Show answerHide answer
Answer: A. Mutation analysis
117. Test should be conducted for every possible
- Option A: data
- Option B: case
- Option C: variable
- Option D: All of the mentioned
Show answerHide answer
Answer: D. All of the mentioned
118. Which of the following is not a part of bug report?
- Option A: Test case
- Option B: Output
- Option C: Software Version
- Option D: LOC
Show answerHide answer
Answer: D. LOC
119. Which is a black box testing technique appropriate to all levels of testing?
- Option A: Acceptance testing
- Option B: Regression testing
- Option C: Equivalence partitioning
- Option D: Quality assurance
Show answerHide answer
Answer: C. Equivalence partitioning
120. Which of the following is the way of ensuring that the tests are actually testing code?
- Option A: Control structure testing
- Option B: Complex path testing
- Option C: Code coverage
- Option D: Quality assurance of software
Show answerHide answer
Answer: C. Code coverage
121. Effective testing will reduce _______ cost.
- Option A: maintenance
- Option B: design
- Option C: coding
- Option D: documentation
Show answerHide answer
Answer: A. maintenance
122. Which of the following is not a SQA plan for a project?
- Option A: evaluations to be performed
- Option B: amount of technical work
- Option C: audits and reviews to be performed
- Option D: documents to be produced by the SQA group
Show answerHide answer
Answer: B. amount of technical work
123. Degree to which design specifications are followed in manufacturing the product is called
- Option A: Quality Control
- Option B: Quality of conformance
- Option C: Quality Assurance
- Option D: None of the mentioned
Show answerHide answer
Answer: B. Quality of conformance
124. Which of the following is not an appraisal cost in SQA?
- Option A: inter-process inspection
- Option B: maintenance
- Option C: quality planning
- Option D: testing
Show answerHide answer
Answer: C. quality planning
125. Who identifies, documents, and verifies that corrections have been made to the software?
- Option A: Project manager
- Option B: Project team
- Option C: SQA group
- Option D: All of the mentioned
Show answerHide answer
Answer: C. SQA group
126. The primary objective of formal technical reviews is to find _________ during the process so that they do not become defects after release of the software.
- Option A: errors
- Option B: equivalent faults
- Option C: failure cause
- Option D: none of the mentioned
Show answerHide answer
Answer: A. errors
127. Which of the following is not an effective project manager quality?
- Option A: Problem solving
- Option B: Managerial identity
- Option C: Influence and team building
- Option D: None of the mentioned
Show answerHide answer
Answer: D. None of the mentioned
128. Quality Management in software engineering is also known as
- Option A: SQA
- Option B: SQM
- Option C: SQI
- Option D: SQA and SQM
Show answerHide answer
Answer: A. SQA
129. Quality also can be looked at in terms of user satisfaction which includes
- Option A: A compliant product
- Option B: Good quality output
- Option C: Delivery within budget and schedule
- Option D: All of the mentioned
Show answerHide answer
Answer: D. All of the mentioned
130. Inspections and testing are what kinds of Quality Costs?
- Option A: Prevention
- Option B: Internal Failure
- Option C: External Failure
- Option D: Appraisal
Show answerHide answer
Answer: D. Appraisal
131. According to Pareto’s principle, x% of defects can be traced to y% of all causes. What are the values of x and y?
- Option A: 60, 40
- Option B: 70, 30
- Option C: 80, 20
- Option D: No such principle exists
Show answerHide answer
Answer: C. 80, 20
132. What is Six Sigma?
- Option A: It is the most widely used strategy for statistical quality assurance
- Option B: The “Six Sigma” refers to six standard deviations
- Option C: It is the most widely used strategy for statistical quality assurance AND The “Six Sigma” refers to six standard deviations
- Option D: A Formal Technical Review(FTR) guideline for quality walkthrough or inspection
Show answerHide answer
Answer: C. It is the most widely used strategy for statistical quality assurance AND The “Six Sigma” refers to six standard deviations
133. Which of the following is not a core step of Six Sigma?
- Option A: Define
- Option B: Control
- Option C: Measure
- Option D: Analyse
Show answerHide answer
Answer: B. Control
134. What kind of quality cost is incurred when an error is detected in a product prior to shipment?
- Option A: Prevention
- Option B: Internal Failure
- Option C: External Failure
- Option D: Appraisal
Show answerHide answer
Answer: B. Internal Failure
135. Non-conformance to software requirements is known as
- Option A: Software availability
- Option B: Software reliability
- Option C: Software failure
- Option D: None of the mentioned
Show answerHide answer
Answer: C. Software failure
136. According to ISO 9001, inspection and testing comes under which management responsibility?
- Option A: Process control
- Option B: Document control
- Option C: Control of nonconforming products
- Option D: Servicing
Show answerHide answer
Answer: A. Process control
137. Which granularity level of testing checks the behavior of module cooperation?
- Option A: Unit Testing
- Option B: Integration Testing
- Option C: Acceptance Testing
- Option D: Regression Testing
Show answerHide answer
Answer: B. Integration Testing
138. Which of the following is a black box testing strategy?
- Option A: All Statements Coverage
- Option B: Control Structure Coverage
- Option C: Cause-Effect Graphs
- Option D: All Paths Coverage
Show answerHide answer
Answer: C. Cause-Effect Graphs
139. A set of inputs, execution preconditions and expected outcomes is known as a
- Option A: Test plan
- Option B: Test case
- Option C: Test document
- Option D: Test Suite
Show answerHide answer
Answer: B. Test case
140. In which test design each input is tested at both ends of its valid range and just outside its valid range?
- Option A: Boundary value testing
- Option B: Equivalence class partitioning
- Option C: Boundary value testing AND Equivalence class partitioning
- Option D: Decision tables
Show answerHide answer
Answer: A. Boundary value testing
141. Which of the following is not a part of a test design document?
- Option A: Test Plan
- Option B: Test Design Specification
- Option C: Test Case Specification
- Option D: Test Log
Show answerHide answer
Answer: D. Test Log
142. CMM stands for
- Option A: Capability Management Module
- Option B: Conservative Maturity Model
- Option C: Capability Maturity Module
- Option D: Capability Maturity Model
Show answerHide answer
Answer: D. Capability Maturity Model
143. According to ISO 9001, the causes of nonconforming product should be
- Option A: deleted
- Option B: eliminated
- Option C: identified
- Option D: eliminated and identified
Show answerHide answer
Answer: D. eliminated and identified
144. Which of the following requires design control measures, such as holding and recording design reviews and qualification tests?
- Option A: CMM
- Option B: ISO 9001
- Option C: ISO 9000-3
- Option D: None of the mentioned
Show answerHide answer
Answer: C. ISO 9000-3
145. _______ states that, where appropriate, adequate statistical techniques are identified and used to verify the acceptability of process capability and product characteristics.
- Option A: ISO 9001
- Option B: ISO 9000-4
- Option C: CMM
- Option D: All of the mentioned
Show answerHide answer
Answer: A. ISO 9001
146. Which of the following uses empirically derived formulas to predict effort as a function of LOC or FP?
- Option A: FP-Based Estimation
- Option B: Process-Based Estimation
- Option C: COCOMO
- Option D: Both FP-Based Estimation and COCOMO
Show answerHide answer
Answer: D. Both FP-Based Estimation and COCOMO
147. Which one is not a size measure for software product?
- Option A: LOC
- Option B: Halstead’s program length
- Option C: Function Count
- Option D: Cyclomatic Complexity
Show answerHide answer
Answer: D. Cyclomatic Complexity
148. Software schedule distributes?
- Option A: Effort
- Option B: Tasks
- Option C: Duration
- Option D: All
Show hintHide hint
Complete distribution.
Show answerHide answer
Answer: D. All
Software schedule distributes estimated effort across project duration for specific tasks.
8.4 Object-oriented fundamentals and analysis
26 questions · ACtE0804
149. What software model represents behavior and interactions?
- Option A: Class diagram
- Option B: Sequence diagram
- Option C: Use case diagram
- Option D: Activity diagram
Show hintHide hint
Shows system interactions with actors.
Show answerHide answer
Answer: C. Use case diagram
Use case diagrams represent system behavior and interactions between system and external actors.
150. UML diagram for flow?
- Option A: Class diagram
- Option B: Sequence diagram
- Option C: Activity diagram
- Option D: Use case
Show hintHide hint
Flow of activities.
Show answerHide answer
Answer: C. Activity diagram
Activity diagram models flow of control or data in system.
151. Association represents?
- Option A: Inheritance
- Option B: Dependency
- Option C: Relationship
- Option D: Encapsulation
Show hintHide hint
Classes connected.
Show answerHide answer
Answer: C. Relationship
Association represents relationship between classes in UML.
152. Object-oriented analysis purpose?
- Option A: Identify objects
- Option B: Define requirements
- Option C: Model system
- Option D: All
Show hintHide hint
Complete analysis.
Show answerHide answer
Answer: D. All
OOA identifies objects, defines requirements, and models system.
153. Three phases of OO dev?
- Option A: Analysis, Design, Test
- Option B: Analysis, Design, Programming
- Option C: Requirement, Impl, Deploy
- Option D: Planning, Exe, Maint
Show hintHide hint
OO development phases.
Show answerHide answer
Answer: B. Analysis, Design, Programming
OO development has three phases: OO analysis, OO design, OO programming.
154. UML diagram for requirements?
- Option A: Flowchart
- Option B: Sequence
- Option C: Use case
- Option D: Data flow
Show hintHide hint
User requirements.
Show answerHide answer
Answer: C. Use case
Use case diagrams facilitate requirements gathering and user interactions.
155. General purpose organizing element?
- Option A: Component
- Option B: Node
- Option C: Package
- Option D: Class
Show hintHide hint
Grouping mechanism.
Show answerHide answer
Answer: C. Package
Package is general mechanism for organizing elements into groups.
156. Sequence diagram vertical line?
- Option A: time
- Option B: message
- Option C: object
- Option D: class
Show hintHide hint
Temporal.
Show answerHide answer
Answer: A. time
Vertical line in sequence diagram represents time progression.
157. What are use cases in software development?
- Option A: Test case documentation
- Option B: Descriptions of system interactions from user perspective
- Option C: UI layout designs
- Option D: System architecture diagrams
Show hintHide hint
How users interact with system - user-centric scenarios, happy path, exceptions.
Show answerHide answer
Answer: B. Descriptions of system interactions from user perspective
Use cases: descriptions of interactions between actor (user/system) and system from user perspective. Benefits: (1) Capture requirements - functional requirements in user language. (2) Communication - business stakeholders understand. (3) Test basis - basis for test case design. (4) Design input - how to design user interface. (5) Documentation - user perspective reference. Components: (1) Actor - user/external system. (2) Precondition - initial state. (3) Main flow - happy path steps. (4) Alternative flows - variations. (5) Postcondition - final state. Example: Use case "Withdraw money" from ATM. Actor: Customer. Precondition: Card inserted, PIN verified. Main flow: (1) Enter amount. (2) Verify sufficient balance. (3) Dispense cash. (4) Print receipt. Postcondition: Cash dispensed, balance updated. Formats: (1) Brief - 1-2 paragraphs. (2) Expanded - step-by-step detailed. (3) Fully dressed - includes everything, more formal. Template: (1) Name - verb-noun. (2) Actors. (3) Preconditions. (4) Main success scenario. (5) Alternative scenarios. (6) Postconditions. Use case diagram: visual representation, actors, use cases, relationships. Benefits documentation: narrative, understandable, business language. Test case derivation: use case steps → test cases. Example: ATM use case generates test cases for withdrawal, balance check, insufficient funds. Organizing: user goal (high-level), system interaction (detailed). Common mistakes: (1) Too many steps - break into smaller use cases. (2) Too abstract - insufficient detail. (3) Implementation details - focus on interaction. (4) Missing alternatives - handle exceptions. Understanding use cases crucial for requirement capture and testing.
158. What is the Unified Modeling Language (UML)?
- Option A: Programming language
- Option B: Standard notation for software modeling and design
- Option C: Testing framework
- Option D: Database schema language
Show hintHide hint
Visual language for designing systems - diagrams, standardized notation.
Show answerHide answer
Answer: B. Standard notation for software modeling and design
UML (Unified Modeling Language): standardized visual notation for modeling software systems. Purpose: (1) Communication - shared understanding. (2) Analysis - analyze requirements. (3) Design - document design. (4) Implementation - guide coding. (5) Documentation - system reference. Diagram types: (1) Structural - static structure. (1a) Class diagram - classes, relationships. (1b) Component diagram - components, dependencies. (1c) Deployment diagram - hardware, deployment. (2) Behavioral - dynamic behavior. (2a) Use case diagram - actors, use cases. (2b) Sequence diagram - interaction sequence. (2c) Collaboration diagram - object interactions. (2d) State diagram - state transitions. (2e) Activity diagram - workflow. Key concepts: (1) Class - attributes, methods. (2) Relationships - association, inheritance, dependency. (3) Multiplicity - number of instances. (4) Visibility - public (+), private (-), protected (#). (5) Stereotypes - extensions. Standards: UML 2.5 current standard, widely adopted. Tools: ArchiMate, Visual Paradigm, Lucidchart, draw.io, Enterprise Architect. Benefits: (1) Clear communication - visual understanding. (2) Standards - everyone speaks same language. (3) Code generation - tools generate code from UML. (4) Reverse engineering - extract UML from code. (5) Documentation - design documentation. Class diagram example: Student class with attributes (name, id) and methods (enroll, withdraw). Associations: Student enrolls in Course (one-to-many). Inheritance: CourseTeacher inherits from Person. Advantages: (1) Standardized - widely understood. (2) Tool support - many tools. (3) Complete - covers all aspects. Disadvantages: (1) Learning curve - complex notation. (2) Overhead - significant diagrams for small projects. (3) Maintenance - keep diagrams current. Understanding UML essential for professional software modeling and communication.
159. What is object-oriented development cycle?
- Option A: Database schema development
- Option B: Iterative process of analysis, design, implementation for OO systems
- Option C: Testing methodology
- Option D: Code compilation steps
Show hintHide hint
Phases from requirements to deployment - analyze, design, code, test.
Show answerHide answer
Answer: B. Iterative process of analysis, design, implementation for OO systems
OO Development Cycle: iterative process for building OO systems. Phases: (1) Requirements analysis - identify use cases, user requirements. (2) OO Analysis - model system objects, relationships. (3) OO Design - architectural design, class design. (4) Implementation - code classes, methods. (5) Testing - unit, integration, system tests. (6) Deployment - release to production. (7) Maintenance - support, updates. Characteristics: (1) Iterative - repeat phases, refine each iteration. (2) Incremental - build functionality gradually. (3) User-centric - focus on user needs. (4) Object-focused - identify objects, responsibilities. Phases detailed: Analysis phase: (1) Identify actors and use cases. (2) Define requirements. (3) Model system objects. (4) Show relationships, associations. (5) Behavior representation. Design phase: (1) Transform analysis into design. (2) Architectural decisions. (3) Class design - attributes, methods. (4) Relationship design - inheritance, composition. (5) Design patterns application. Implementation phase: (1) Write classes. (2) Implement methods. (3) Handle exceptions. (4) Initialize objects. Testing phase: (1) Unit tests - individual classes. (2) Integration tests - class interactions. (3) System tests - complete functionality. (4) Acceptance tests - user verification. Advantages: (1) Clear methodology - structured approach. (2) Maintainability - OO principles. (3) Reusability - objects, classes. (4) Scalability - modular structure. (5) Flexibility - change objects independently. Iterations: repeat cycle for refinement, improvements, additional features. Agile alignment: cycles short (sprints), frequent feedback. Example: Banking system development - identify Customer, Account objects, relationships, then design classes, implement, test. Understanding OO development cycle essential for structured system building.
160. What is a sequence diagram?
- Option A: Shows class structure
- Option B: Shows interaction sequence between objects over time
- Option C: Represents state changes
- Option D: Displays deployment architecture
Show hintHide hint
Timeline diagram - objects top, messages down showing interaction sequence.
Show answerHide answer
Answer: B. Shows interaction sequence between objects over time
Sequence diagram: UML diagram showing interaction sequence between objects/actors over time. Shows message passing, method calls. Components: (1) Actor/Object - at top, rectangle with name. (2) Lifeline - dashed line down from actor/object. (3) Messages - arrows between lifelines showing communication. (4) Activation boxes - rectangle on lifeline showing active period. Example: User login sequence. (1) User enters credentials. (2) LoginController receives request. (3) AuthService validates credentials. (4) Database queries user. (5) Database returns user. (6) AuthService verifies password. (7) Returns token. (8) LoginController displays success. Message types: (1) Synchronous - solid arrow, waits for response. (2) Asynchronous - open arrow, doesn't wait. (3) Return - dashed arrow back. (4) Self-call - arrow to own lifeline. Numbering: messages numbered (1, 2, 3...) showing order. Activation: thick rectangle on lifeline during message handling. Fragments: optional (conditions), loop (repetition), alt (alternatives). Timing: horizontal position shows time, top earlier. Benefits: (1) Understand interaction - see message flow. (2) Design communication - how objects interact. (3) Test basis - test interaction. (4) Documentation - reference behavior. Uses: (1) System behavior design. (2) Detailed design. (3) Communication protocol. (4) Use case realization. Example: E-commerce checkout. (1) Customer clicks checkout. (2) OrderService creates order. (3) PaymentService processes payment. (4) InventoryService reserves items. (5) NotificationService sends confirmation. Tools: ArchiMate, UML tools generate automatically. Understanding sequence diagrams essential for interaction design and communication protocols.
161. What is the purpose of representing system behaviour in OOAD?
NEC model set- Option A: To document system architecture and components
- Option B: To identify potential risks and challenges
- Option C: To understand and model the dynamic aspects of the system
- Option D: To create user interfaces and interactions
Show hintHide hint
System behavior describes how the system acts over time. What does behavior representation model?
Show answerHide answer
Answer: C. To understand and model the dynamic aspects of the system
The purpose of representing system behavior in OOAD (Object-Oriented Analysis and Design) is to understand and model the dynamic aspects of the system. System behavior vs structure: (1) Structure - What components exist (static view) - class diagrams, (2) Behavior - How components interact over time (dynamic view) - sequence diagrams, state diagrams. Behavior representation techniques in OOAD: (1) Sequence diagrams - Show object interactions in sequence, (2) State diagrams - Show state changes and transitions, (3) Activity diagrams - Show workflow and activities, (4) Collaboration diagrams - Show interactions in space. Why behavior is important: (1) Completes understanding beyond structure, (2) Reveals design issues - Interactions may show problems, (3) Enables verification - Can check if behavior meets requirements, (4) Guides implementation - Clear behavior helps coding, (5) Improves communication - Visualizes complex interactions. What behavior includes: (1) Object interactions - Message passing between objects, (2) State changes - How objects change state, (3) Event handling - Response to events, (4) Timing - Sequence and concurrency of operations. Related but different purposes: (1) Architecture/components documentation - Structural representation, (2) Risk identification - Different analysis, (3) UI/interaction creation - Different phase of design. Practical example: (1) E-commerce system structure - User, Order, Payment classes, (2) E-commerce behavior - User creates order, payment processed, order fulfilled (shows dynamics). Implementation impact: (1) Guides code structure - How methods call each other, (2) Identifies missing classes/methods - Revealed in behavior analysis, (3) Helps concurrency design - Multiple threads/processes. Modern development: (1) Agile uses simpler representations, (2) Still important for complex systems, (3) Automated tools generate from code.
162. Which UML diagram shows system functionality from a user perspective?
NEC model set- Option A: a) Class Diagram
- Option B: b) Deployment Diagram
- Option C: c) Sequence Diagram
- Option D: d) Use Case Diagram
Show hintHide hint
This diagram shows interactions between users and the system. What is it?
Show answerHide answer
Answer: D. d) Use Case Diagram
The Use Case Diagram shows system functionality from a user perspective. It displays actors (users/external systems) and their interactions with the system through use cases (system functions). Use case diagrams help gather requirements and communicate system behavior to stakeholders. They're often the starting point for system design, identifying what the system should do from users' viewpoints.
163. Which of the following UML diagrams is classified as a static diagram?
Recalled from Jan 2026 exam- Option A: Sequence diagram
- Option B: Use case diagram
- Option C: Collaboration diagram
- Option D: State diagram
Show hintHide hint
Static diagrams represent structure, not behavior or interactions. Which one?
Show answerHide answer
Answer: B. Use case diagram
Use case diagram is classified as a static diagram in UML. Static diagrams represent the static structure of a system and don't show behavior or interactions over time. Use case diagrams show actors and use cases without temporal sequencing. Sequence diagrams are dynamic (show interaction over time). Collaboration diagrams are dynamic (show communication patterns). State diagrams are dynamic (show state transitions). UML diagrams are divided into structural (static) and behavioral (dynamic) categories. Static diagrams include class diagrams, object diagrams, and use case diagrams.
164. Object-oriented development is based on the concept of:
- Option A: Procedural programming
- Option B: Objects that encapsulate data and behavior
- Option C: Sequential execution
- Option D: Top-down design
Show answerHide answer
Answer: B. Objects that encapsulate data and behavior
165. Use cases in object-oriented analysis:
- Option A: Describe system architecture
- Option B: Describe system behavior from a user's perspective
- Option C: Define programming language syntax
- Option D: Specify hardware requirements
Show answerHide answer
Answer: B. Describe system behavior from a user's perspective
166. The Unified Modeling Language (UML) is:
- Option A: A programming language
- Option B: A visual modeling language for software systems
- Option C: A testing framework
- Option D: A project management methodology
Show answerHide answer
Answer: B. A visual modeling language for software systems
167. A conceptual model in object-oriented analysis represents:
- Option A: System implementation details
- Option B: Real-world concepts and relationships
- Option C: Database schema
- Option D: User interface design
Show answerHide answer
Answer: B. Real-world concepts and relationships
168. Associations in object-oriented modeling represent:
- Option A: Inheritance relationships
- Option B: Relationships between classes
- Option C: Method implementations
- Option D: Database tables
Show answerHide answer
Answer: B. Relationships between classes
169. System behavior in object-oriented analysis can be represented using:
- Option A: Class diagrams
- Option B: Sequence diagrams
- Option C: Component diagrams
- Option D: Deployment diagrams
Show answerHide answer
Answer: B. Sequence diagrams
170. The object-oriented development cycle typically includes:
- Option A: Analysis, design, implementation, testing
- Option B: Coding, testing, deployment
- Option C: Requirements, coding, maintenance
- Option D: Planning, execution, closure
Show answerHide answer
Answer: A. Analysis, design, implementation, testing
171. A conceptual model in object-oriented analysis focuses on:
- Option A: Implementation details
- Option B: Domain concepts and relationships
- Option C: User interface design
- Option D: Database schema
Show answerHide answer
Answer: B. Domain concepts and relationships
172. In UML, a use case diagram shows:
- Option A: System classes
- Option B: System functionality from a user's perspective
- Option C: System implementation details
- Option D: System deployment
Show answerHide answer
Answer: B. System functionality from a user's perspective
173. Attributes in object-oriented modeling represent:
- Option A: Operations that objects can perform
- Option B: Properties of objects
- Option C: Relationships between objects
- Option D: Object inheritance
Show answerHide answer
Answer: B. Properties of objects
174. System behavior in object-oriented analysis can be represented using:
- Option A: Class diagrams
- Option B: State diagrams
- Option C: Component diagrams
- Option D: Deployment diagrams
Show answerHide answer
Answer: B. State diagrams
8.5 Object-oriented design
19 questions · ACtE0805
175. OOD process first step?
- Option A: Analysis
- Option B: Design
- Option C: Implementation
- Option D: Testing
Show hintHide hint
Before design.
Show answerHide answer
Answer: A. Analysis
First step of OOD is object-oriented analysis.
176. What are design patterns in software engineering?
- Option A: Decorative design elements
- Option B: Reusable solutions to common design problems
- Option C: Design documentation format
- Option D: UI layout patterns
Show hintHide hint
Proven solutions used across projects - Singleton, Observer, Factory, etc.
Show answerHide answer
Answer: B. Reusable solutions to common design problems
Design patterns: reusable solutions to recurring problems in software design. Provide templates, best practices, proven approaches. Benefits: (1) Reusability - solve similar problems faster. (2) Communication - shared vocabulary. (3) Quality - proven solutions tested. (4) Maintainability - familiar structure. Categories: (1) Creational - object creation (Singleton, Factory, Abstract Factory, Builder). (2) Structural - composition, relationships (Adapter, Decorator, Facade, Proxy). (3) Behavioral - communication, responsibility (Observer, Strategy, Template Method, State). Common patterns: (1) Singleton - single instance throughout application. Example: Logger, DatabaseConnection. (2) Factory - create objects without specifying exact classes. (3) Observer - notify multiple objects of state change. Example: event handlers. (4) Adapter - make incompatible interfaces compatible. (5) Decorator - add behavior dynamically. (6) Strategy - encapsulate interchangeable algorithms. (7) Template Method - define algorithm skeleton, subclasses fill details. Advantages: (1) Proven solutions - reduce bugs. (2) Code reusability. (3) Loose coupling. (4) Team communication. (5) Faster development. Disadvantages: (1) Complexity - might be overkill. (2) Learning curve - understand patterns. (3) Over-engineering - apply unnecessarily. (4) Rigidity - patterns can be restrictive. Gang of Four: Gamma et al. book defining 23 classic patterns. Architectural patterns: MVC, MVP, MVVM (design at system level). Anti-patterns: bad solutions repeated (opposite of patterns). Understanding patterns important for professional development and code quality.
177. What is a class diagram in UML?
- Option A: Describes use case flow
- Option B: Shows classes, attributes, methods, and relationships
- Option C: Represents deployment architecture
- Option D: Describes system state transitions
Show hintHide hint
Static structure diagram - classes and their organization.
Show answerHide answer
Answer: B. Shows classes, attributes, methods, and relationships
Class diagram: UML diagram showing classes, attributes, methods, and relationships among classes. Represents static structure. Components: (1) Class box - name, attributes, methods. (2) Attributes - properties, data members. Format: visibility name: type = default. (3) Methods - operations, member functions. Format: visibility name(params): returnType. (4) Visibility - + (public), - (private), # (protected). Relationships: (1) Association - objects related. Line connects classes, multiplicity (1, *, 1..*). (2) Inheritance - "is-a" relationship. Arrow from derived to base. (3) Dependency - one class depends on another. Dashed arrow. (4) Composition - part-of relationship. Filled diamond. (5) Aggregation - has-a relationship. Empty diamond. Example: Student class with attributes (name, id, email) and methods (enroll(), withdraw()). Course class with attributes (name, code) and methods (addStudent(), removeStudent()). Association: Student enrolls in Course (multiplicity: Student 1..* to Course 1..*). Inheritance: GraduateStudent and UndergraduateStudent inherit from Student (triangle arrows). Attributes: int age, string name (private), double gpa (public). Methods: void enroll(Course c), boolean isEligible(). Multiplicity symbols: 1 (exactly one), * (zero or more), 0..1 (optional), 1..* (one or more). Abstract class: name italicized, shown with <<abstract>>. Interface: shown with <<interface>> stereotype. Instance names: underlined when showing specific instances. Uses: (1) System design - blueprint. (2) Code generation - tools generate code. (3) Communication - discuss design. (4) Documentation - reference. Creation: draw classes, add attributes/methods, add relationships. Tools support: most UML tools. Understanding class diagrams essential for OO design communication.
178. What is a collaboration diagram in UML?
- Option A: Shows use case relationships
- Option B: Shows object interactions with focus on relationships
- Option C: Represents component dependencies
- Option D: Displays system deployment
Show hintHide hint
Similar to sequence diagram but emphasizes relationships, numbers show order.
Show answerHide answer
Answer: B. Shows object interactions with focus on relationships
Collaboration diagram: UML diagram showing object interactions emphasizing relationships and links. Similar to sequence diagrams but different view. Components: (1) Objects - rectangles with name. (2) Links - lines connecting objects (relationships). (3) Messages - numbered arrows showing communication order. Representation: spatial arrangement shows relationships, numbering shows sequence. Example: Library system. (1) Customer object. (2) Library object. (3) Book object. Link between Customer and Library (customer interacts with library). Link between Library and Book (library manages books). Messages: 1: request_book, 2: search, 3: return_book (numbered in order). Advantages over sequence: (1) Emphasize relationships - which objects interact. (2) Compact - focus on important interactions. (3) Spatial organization - object placement meaningful. Disadvantages: (1) Time less clear - must read numbering. (2) Less intuitive - relationships less obvious. (3) Complex for large systems - can become cluttered. Message types: (1) Synchronous - arrow, waits. (2) Asynchronous - open arrow. (3) Return - dashed. (4) Self-call - to self. Sequence shown by numbers: 1, 2, 3... or 1, 1.1, 1.2, 2... for nested. Example: Student enrollment. Student → Registrar (1: enroll). Registrar → Course (2: add_student). Course → Student (3: confirm). Uses: (1) Class interaction design. (2) Understanding relationships. (3) Protocol design. (4) System behavior. Creation: identify objects, draw links (relationships), add numbered messages. Understanding collaboration diagrams important for interaction design emphasis on relationships.
179. What is visibility in OO design?
- Option A: How clearly you can see objects
- Option B: Determining what methods/attributes are accessible to other classes
- Option C: Visibility on screen
- Option D: Scope of variables
Show hintHide hint
public, private, protected - who can access from outside class.
Show answerHide answer
Answer: B. Determining what methods/attributes are accessible to other classes
Visibility (access control): determining which class members accessible from outside class. Levels: (1) Public (+) - accessible everywhere. (2) Private (-) - accessible only within class. (3) Protected (#) - accessible within class and derived classes. (4) Package/Internal - accessible within package/assembly. Benefits: (1) Encapsulation - hide implementation. (2) Control - prevent misuse. (3) Security - protect sensitive data. (4) Flexibility - change internals without affecting external. Design decisions: (1) Public methods - intended interface. (2) Private attributes - internal state. (3) Protected - for inheritance. (4) Accessors - getter/setter methods. Example class: class BankAccount { private double balance; private string accountNumber; public void deposit(double amount) { } public double getBalance() { } }. Balance private (protect from external modification), deposit/getBalance public (intended interface). Protected example: class Person { protected string ssn; }; class Employee : public Person { can access ssn }; external code cannot. Design principle: minimize public interface, hide internals. Class members visibility: attributes usually private, methods usually public. Accessors: private data accessible via public getter/setter methods. Controlled modification: setter methods validate before changing. Abstract data type: encapsulate implementation, expose interface. API design: public methods form API, rest private. Benefit: internal changes don't affect callers. Danger: too much private restricts flexibility, too much public exposes internals. Design consideration: balance between protection and flexibility. Implementation: corresponds to public/private/protected keywords in code. Understanding visibility essential for proper encapsulation and API design.
180. What are design patterns in context of OO design?
- Option A: Code formatting standards
- Option B: Proven reusable solutions to common OO design problems
- Option C: Design document templates
- Option D: UI pattern library
Show hintHide hint
Singleton, Factory, Observer, Strategy - reusable design solutions.
Show answerHide answer
Answer: B. Proven reusable solutions to common OO design problems
Design patterns in OO: reusable, proven solutions to recurring design problems. Provide templates, best practices. Creational patterns (object creation): (1) Singleton - ensure single instance. Example: Logger, Database connection. (2) Factory - create objects without specifying exact classes. Example: create different types of documents. (3) Abstract Factory - create family of related objects. (4) Builder - construct complex objects step-by-step. (5) Prototype - create by copying existing object. Structural patterns (composition, relationships): (1) Adapter - make incompatible interfaces compatible. (2) Decorator - add behavior dynamically. (3) Facade - simplified interface to complex subsystem. (4) Proxy - placeholder/surrogate for another object. (5) Bridge - decouple abstraction from implementation. (6) Composite - treat individual/group uniformly. Behavioral patterns (communication, responsibility): (1) Observer - notify multiple objects of state change. (2) Strategy - encapsulate interchangeable algorithms. (3) Template Method - define algorithm skeleton, subclasses fill details. (4) State - encapsulate state-dependent behavior. (5) Command - encapsulate requests. (6) Iterator - access elements sequentially. (7) Mediator - centralized communication. Example Singleton: class Logger { static Logger* instance; Logger() { } public: static Logger* getInstance() { if(!instance) instance = new Logger(); return instance; } }. Benefits: (1) Proven - tested, reliable. (2) Communication - shared vocabulary. (3) Reusability - use across projects. (4) Quality - following best practices. Application: identify problem, apply pattern. Architectural patterns (system-level): MVC, MVVM, Repository, Service Locator. Anti-patterns: common bad solutions (opposite of patterns). Understanding patterns essential for professional OO design.
181. In object-oriented design, what does visibility refer to?
NEC model set- Option A: The physical appearance of an object
- Option B: The accessibility of class members from other parts of the program
- Option C: The process of creating instances of classes
- Option D: The relationship between classes in a system
Show hintHide hint
Visibility controls who can access class members. What determines this scope?
Show answerHide answer
Answer: B. The accessibility of class members from other parts of the program
In object-oriented design, visibility refers to the accessibility of class members (attributes and methods) from other parts of the program. Visibility levels: (1) Private - Accessible only within the class, (2) Protected - Accessible within class and derived classes, (3) Public - Accessible from anywhere, (4) Package/Internal - Accessible within same package (language-dependent). How visibility works: (1) Restricts access to class internals, (2) Enforces encapsulation - Hide implementation details, (3) Provides interface - Define what's public API, (4) Prevents misuse - Hide methods not meant for external use. Example: class BankAccount { private double balance; // Only accessible within class public void deposit(double amount) { // Accessible from anywhere balance += amount; } }; Why visibility matters: (1) Encapsulation - Hide internal state, (2) Maintainability - Can change internal implementation without affecting external code, (3) Security - Prevent unintended access/modification, (4) Interface clarity - Clear API for users of class. Different from: (1) Physical appearance - Refers to visual representation, not access, (2) Instance creation - Separate from visibility, (3) Relationships - Separate concept (inheritance, composition). Visibility hierarchy: (1) Most restrictive - Private (only class), (2) More permissive - Protected (class + subclasses), (3) Least restrictive - Public (everywhere). Best practices: (1) Make data members private, (2) Provide public getter/setter methods if needed, (3) Public for methods that form interface, (4) Protected for methods subclasses need. Visibility in UML diagrams: (1) Private: -, (2) Protected: #, (3) Public: +, (4) Package: ~. This is fundamental to object-oriented design quality.
182. Which principle of OOD promotes code reusability?
NEC model set- Option A: a) Encapsulation
- Option B: b) Inheritance
- Option C: c) Abstraction
- Option D: d) Polymorphism
Show hintHide hint
Which OOP principle allows a class to acquire properties of another class?
Show answerHide answer
Answer: B. b) Inheritance
Inheritance promotes code reusability in OOP. A derived class inherits properties and methods from a base class, avoiding code duplication. Instead of rewriting similar code, you create a base class with common functionality and derive specialized classes from it. This reduces code size, improves maintainability, and enables polymorphic behavior. All OOP principles contribute to code quality, but inheritance directly enables reusability.
183. Which diagram describes the vocabulary of a system?
Past question- Option A: Object Diagram
- Option B: Class Diagram
- Option C: Interaction Diagram
- Option D: Activity Diagram
Show hintHide hint
Vocabulary = types of things and their relationships. Which UML diagram shows this?
Show answerHide answer
Answer: B. Class Diagram
Class Diagram describes the vocabulary of a system in UML (Unified Modeling Language). UML Diagram Types: (1) Class Diagram - Static structure, vocabulary, (2) Object Diagram - Instance snapshots, (3) Interaction Diagram - Message sequence, (4) Activity Diagram - Workflow, behavior. Class Diagram Purpose: (1) Defines vocabulary - Classes, attributes, methods, (2) Shows relationships - Inheritance, association, (3) Describes static structure, (4) Blueprint for implementation. What Class Diagram Shows: (1) Classes - Types of objects in system, (2) Attributes - Data members, (3) Methods - Operations/functions, (4) Relationships - How classes relate, (5) Multiplicity - How many instances. Example Components: (1) Box representing class, (2) Class name at top, (3) Attributes in middle section, (4) Methods in bottom section. Relationships Shown: (1) Inheritance (is-a) - Arrow with triangle, (2) Association - Line between classes, (3) Aggregation - Weak composition, (4) Composition - Strong containment, (5) Dependency - Dashed arrow. Why 'Vocabulary': (1) Defines system terminology, (2) Identifies object types, (3) Shows attribute types, (4) Explains relationships, (5) Communication tool between teams. Example: Student-Course System (1) Student class - name, ID, GPA, (2) Course class - code, title, credits, (3) Relationship: Student enrolls in Course. Other Diagrams: (1) Object Diagram - Shows specific instances at runtime, (2) Interaction Diagram - Shows communication between objects, (3) Activity Diagram - Shows workflow and actions. Notation Elements: (1) Visibility: + public, - private, # protected, (2) Multiplicity: 1, 0..1, *, 1..*. Practical Use: (1) Design phase - Plan system structure, (2) Documentation - System design record, (3) Communication - Stakeholder understanding, (4) Code generation - From diagrams to code. This demonstrates UML understanding for system design.
184. Design patterns in object-oriented design are:
- Option A: Programming language features
- Option B: Reusable solutions to common problems
- Option C: Testing strategies
- Option D: User interface templates
Show answerHide answer
Answer: B. Reusable solutions to common problems
185. The transition from analysis to design in object-oriented development involves:
- Option A: Eliminating all analysis models
- Option B: Refining analysis models to include implementation details
- Option C: Starting design from scratch
- Option D: Skipping the design phase
Show answerHide answer
Answer: B. Refining analysis models to include implementation details
186. Visibility in object-oriented design refers to:
- Option A: User interface appearance
- Option B: Access control for attributes and methods
- Option C: System documentation
- Option D: Project transparency
Show answerHide answer
Answer: B. Access control for attributes and methods
187. Collaboration diagrams in UML show:
- Option A: Static structure of the system
- Option B: Dynamic interactions between objects
- Option C: System deployment
- Option D: User interface layout
Show answerHide answer
Answer: B. Dynamic interactions between objects
188. A class diagram in UML shows:
- Option A: Object interactions
- Option B: System behavior
- Option C: Classes, attributes, methods, and relationships
- Option D: System deployment
Show answerHide answer
Answer: C. Classes, attributes, methods, and relationships
189. Elaborating use cases in object-oriented design involves:
- Option A: Eliminating use cases
- Option B: Adding implementation details to use cases
- Option C: Replacing use cases with class diagrams
- Option D: Ignoring use cases
Show answerHide answer
Answer: B. Adding implementation details to use cases
190. A collaboration diagram in UML shows:
- Option A: Static structure
- Option B: Message exchanges between objects
- Option C: System deployment
- Option D: User interface
Show answerHide answer
Answer: B. Message exchanges between objects
191. Design patterns in object-oriented design:
- Option A: Should be avoided
- Option B: Provide reusable solutions to common problems
- Option C: Are specific to individual projects
- Option D: Replace the need for design
Show answerHide answer
Answer: B. Provide reusable solutions to common problems
192. A class diagram in object-oriented design shows:
- Option A: Object interactions
- Option B: System behavior
- Option C: Classes, attributes, methods, and relationships
- Option D: System deployment
Show answerHide answer
Answer: C. Classes, attributes, methods, and relationships
193. Visibility in object-oriented design includes concepts like:
- Option A: Public, private, protected
- Option B: Red, green, blue
- Option C: Small, medium, large
- Option D: Fast, medium, slow
Show answerHide answer
Answer: A. Public, private, protected
8.6 Object-oriented design implementation
12 questions · ACtE0806
194. ............................ level is where the model becomes compatible and executable code
NEC model set- Option A: Abstract level
- Option B: Application level
- Option C: Implementation level
- Option D: All of the above
Show hintHide hint
Which level is where the model is actually realized as executable code?
Show answerHide answer
Answer: C. Implementation level
Implementation level is where the model becomes compatible and executable code. Design levels in software engineering: (1) Abstract level - Conceptual design, high-level specifications, independent of implementation details, (2) Application level - Business logic and workflows, domain-specific representations, (3) Implementation level - Concrete realization in actual programming language or hardware, executable code. At implementation level: (1) Abstract designs are translated into concrete code, (2) Platform-specific decisions are made, (3) Programming language is chosen, (4) Data structures and algorithms are implemented, (5) Code becomes compilable/interpretable and executable. Mapping process: (1) Abstract model → Implementation level design → Source code → Compiled/interpreted code, (2) Each step adds implementation details. Why implementation is different: (1) Language-specific - Java, C++, Python implementations differ, (2) Platform-specific - Different OS, architecture implementations, (3) Performance considerations - Optimizations at this level, (4) Constraints - Memory, processor, network limitations. Software development flow: (1) Requirements gathering → Abstract modeling, (2) System design → Abstract/application levels, (3) Detailed design → Implementation-ready specs, (4) Implementation → Executable code, (5) Testing and deployment. The term 'compatible' means compatible with target platform/language. The term 'executable' means can be run on target system. This is the critical transition from design to reality.
195. What is mapping design to code in OO implementation?
- Option A: Translating UML diagrams directly into code
- Option B: Converting design models to executable code following OO principles
- Option C: Database schema mapping
- Option D: API endpoint definition
Show hintHide hint
Design classes become actual classes, associations become member variables.
Show answerHide answer
Answer: B. Converting design models to executable code following OO principles
Mapping design to code: transforming OO design (class diagrams, sequence diagrams) into executable code. Process: (1) Class diagram → class definitions. (2) Attributes → member variables. (3) Methods → function implementations. (4) Relationships → reference/pointer members. (5) Sequence diagrams → method implementations. Class mapping: Design class "Student" with attributes (name: string, id: int) and methods (enroll(), withdraw()) maps to: class Student { private string name; private int id; public void enroll() { } public void withdraw() { } }. Attribute types: design type → code type. Associations: design association → reference. One-to-many association: Student enrolls in multiple Courses → vector<Course*> courses member. Inheritance: design inheritance → class inheritance. abstract class in design → abstract class in code. Interface → interface/pure virtual class. Method signatures: design method signature → code method. Parameters, return types from design. Implementation details: design provides skeleton, implementation adds logic. Example collaboration diagram → method calls sequence. Visibility: design visibility (public/private) → code access specifiers. Constants: design constants → const in code. Collections: design "many" → array/vector/list. Pointers/references: design associations → pointers/references. Lazy initialization: design might show object creation → code implements pattern. Design by contract: pre/postconditions → assertions/validation. Code generation: tools generate skeleton from design, developer implements methods. Manual approach: follow design structure, implement methods. Advantages design → code: (1) Consistency - design reflected. (2) Traceability - requirements → design → code. (3) Maintainability - design visible. (4) Quality - follows design principles. Understanding mapping crucial for code reflecting design intent.
196. What is creating class definitions from design diagrams?
- Option A: Drawing UML diagrams
- Option B: Implementing classes based on design specifications
- Option C: Database table creation
- Option D: UI component design
Show hintHide hint
Design class box → actual class code with attributes and methods.
Show answerHide answer
Answer: B. Implementing classes based on design specifications
Creating class definitions: implementing actual classes from design class diagrams. Process: (1) Identify class from diagram. (2) Extract attributes (with types, defaults). (3) Extract methods (with signatures). (4) Add relationships (member variables). (5) Implement methods. (6) Add constructor, destructor. Class diagram to code: Design shows class "Product" with attributes (name: string, price: double, quantity: int) and methods (getPrice(), updateQuantity()). Code implementation: class Product { private: string name; double price; int quantity; public: Product(string n, double p, int q); string getName() const; double getPrice() const; void updateQuantity(int newQty); }. Constructor: initialize attributes. Destructor: cleanup if needed. Methods: implement behavior. Validation: add parameter validation, error handling. Default values: if design specifies default, code implements. Associations: other class references added as members. Example: Order contains multiple Items → vector<Item> items member. Inheritance: diagram shows with arrow → code shows class inheritance. Interface implementation: diagram shows interface → code implements virtual methods. Constants: design constants → code const members. Static members: shared across instances. Getter/setter: access private attributes safely. Method implementation: design method skeleton, implement business logic. Documentation: code comments match design documentation. Iterative refinement: design might need adjustment during implementation (code generation feedback). Tools: reverse engineering extracts design from code, forward engineering generates code from design. Example E-commerce: Product class, Order class, Customer class from design to code. Understanding this mapping crucial for design-to-code consistency.
197. What is creating methods from collaboration diagrams?
- Option A: Designing class structure
- Option B: Implementing method bodies based on interaction sequences
- Option C: Creating database queries
- Option D: Designing user interface
Show hintHide hint
Collaboration diagram shows message sequence → implement that sequence in methods.
Show answerHide answer
Answer: B. Implementing method bodies based on interaction sequences
Creating methods from collaboration diagrams: implementing method logic based on interaction sequences shown. Process: (1) Identify message sequence. (2) Determine which class implements method. (3) Implement calls to other objects in sequence. (4) Handle parameters, return values. Example: Collaboration diagram for checkout. (1) Order receives checkout message. (2) Order calls PaymentService.process(). (3) Order calls InventoryService.reserve(). (4) Order sends confirmation. Code implementation: void Order::checkout() { PaymentService payment; if(payment.process(totalAmount)) { InventoryService inventory; if(inventory.reserve(items)) { sendConfirmation(); } } }. Message sequence → method calls sequence. Parameters: diagram shows message parameters → method parameters. Return handling: diagram shows return → code captures return value. Conditionals: diagram conditional flow → code if statements. Loops: diagram loops → code for loops. Error handling: diagram doesn't show, code implements. Timing: sequence order → call order. Objects: diagram objects → code object references/instances. Dependencies: diagram links → code needs references/pointers to other objects. Activation order: which methods called in which order. Asynchronous: diagram async messages → code might use callbacks/threads. Object creation: diagram might show object creation → code implements construction. Method calls: diagram messages → code method calls. Delegation: diagram shows one object asking another → code delegates. Example: Authentication sequence - (1) LoginController calls AuthService.authenticate(). (2) AuthService calls Database.getUser(). (3) Validates credentials. (4) Returns token. Method bodies follow interaction flow. Testing: interaction tests verify message sequence. Understanding this crucial for implementing correct interaction patterns.
198. What is exception handling in OO implementation?
- Option A: Ignoring errors in code
- Option B: Managing error conditions and exceptional situations in code
- Option C: Throwing away problematic code
- Option D: Type conversion errors
Show hintHide hint
try-catch blocks, throwing exceptions for error handling.
Show answerHide answer
Answer: B. Managing error conditions and exceptional situations in code
Exception handling: managing error conditions and exceptional situations in OO code. Purpose: (1) Graceful error handling - not crash. (2) Error communication - inform caller. (3) Resource cleanup - ensure cleanup happens. (4) Control flow - different paths. Exception types: (1) Checked exceptions - compile-time (Java), must handle. (2) Unchecked exceptions - runtime, optional handling. Standard exceptions: runtime_error, invalid_argument, out_of_range, logic_error, etc. Throwing: throw std::runtime_error("Error message"); signals error condition. Catching: try { risky_code(); } catch(exception& e) { handle_error; }. Multiple catch: different exception types handled differently. Example: File operations. try { File f("data.txt"); data = f.read(); } catch(FileNotFound& e) { cout << "File not found"; } catch(PermissionDenied& e) { cout << "No permission"; } catch(exception& e) { cout << "General error"; }. Cleanup: destructors called automatically (RAII pattern), ensuring cleanup. Custom exceptions: class custom_error : public exception { }. Advantages: (1) Clear error handling. (2) Separation - error logic separate from normal. (3) Propagation - errors propagate up. (4) Cleanup - automatic cleanup. Disadvantages: (1) Overhead - exceptions slow. (2) Complex control flow - harder follow. (3) Performance - exception handling cost. Best practices: (1) Throw specific exceptions. (2) Catch specific exceptions. (3) Don't use exceptions for normal flow. (4) Clean up resources properly. (5) Document what exceptions thrown. Design perspective: specify exceptions in design (which methods throw what). Implementation: match design, throw appropriate exceptions. Testing: test error paths, verify correct exceptions thrown. Understanding exception handling crucial for robust error management.
199. How are relationships between classes represented when mapping design to code?
NEC model set- Option A: Through inheritance and implementation of interfaces
- Option B: Through the use of composition and aggregation
- Option C: Through static method calls and global variables
- Option D: Through conditional statements and loops
Show hintHide hint
Design relationships (inheritance, implementation) map to code structures.
Show answerHide answer
Answer: A. Through inheritance and implementation of interfaces
Relationships between classes are represented when mapping design to code through inheritance and implementation of interfaces. How relationships map to code: (1) Inheritance (is-a relationship) - Subclass extends superclass using 'extends' keyword, (2) Implementation (implements relationship) - Class implements interface using 'implements' keyword, (3) Composition (has-a relationship) - One object contains another as member, (4) Aggregation (weak has-a) - Similar to composition but looser coupling. Code examples: (1) Inheritance: class Dog extends Animal { }, (2) Interface: class Car implements Vehicle { }, (3) Composition: class Car { private Engine engine; }, (4) Association: relationships between independent classes. UML to code mapping: (1) Generalization (inheritance arrow) → extends keyword, (2) Realization (dashed line) → implements keyword, (3) Composition (filled diamond) → strong member reference, (4) Aggregation (hollow diamond) → weak member reference. Why inheritance/interface for relationships: (1) Direct language support - Built-in mechanisms, (2) Type hierarchy - Enables polymorphism, (3) Contract definition - Interface specifies contract. Limitations of other options: (1) Static method calls - Don't represent persistent relationships, (2) Global variables - Poor design, creates coupling, (3) Conditionals/loops - Used in logic, not relationship representation. Relationship multiplicity: (1) One-to-one - Single reference, (2) One-to-many - Collection member, (3) Many-to-many - Complex collections. Best practices: (1) Prefer composition over inheritance - More flexible, (2) Design to interfaces - Enables substitution, (3) Minimize coupling - Reduces dependencies. Modern languages: (1) Java - extends, implements, composition, (2) C++ - inheritance, interfaces (abstract), composition, (3) Python - inheritance, duck typing. Note: While composition/aggregation are important, the question asks about mapping design (UML relationships) to code, where inheritance and interfaces are the direct language constructs.
200. Mapping design to code involves:
- Option A: Translating UML diagrams to programming language constructs
- Option B: Skipping the design phase
- Option C: Eliminating object-oriented features
- Option D: Using only procedural programming
Show answerHide answer
Answer: A. Translating UML diagrams to programming language constructs
201. Creating class definitions from design class diagrams involves:
- Option A: Ignoring the design
- Option B: Implementing attributes, methods, and relationships
- Option C: Using only global variables
- Option D: Avoiding encapsulation
Show answerHide answer
Answer: B. Implementing attributes, methods, and relationships
202. Exception handling in object-oriented programming:
- Option A: Should be avoided
- Option B: Provides a mechanism for handling runtime errors
- Option C: Is only available in Java
- Option D: Decreases code reliability
Show answerHide answer
Answer: B. Provides a mechanism for handling runtime errors
203. The programming and development process in object-oriented implementation:
- Option A: Ignores the design
- Option B: Translates design artifacts into code
- Option C: Replaces object-oriented concepts with procedural ones
- Option D: Eliminates the need for testing
Show answerHide answer
Answer: B. Translates design artifacts into code
204. Creating methods from collaboration diagrams involves:
- Option A: Ignoring the diagrams
- Option B: Implementing the messages as methods
- Option C: Eliminating methods
- Option D: Using only global functions
Show answerHide answer
Answer: B. Implementing the messages as methods
205. Exception handling in object-oriented programming:
- Option A: Should be avoided
- Option B: Provides a structured way to handle errors
- Option C: Is only available in C++
- Option D: Decreases code reliability
Show answerHide answer
Answer: B. Provides a structured way to handle errors