Software engineering is a discipline that involves the application of engineering principles to the design, development, maintenance, testing, and evaluation of software and systems. It encompasses a wide range of activities and methodologies aimed at creating high-quality software that meets the needs of users and stakeholders.
Key aspects of software engineering include:
- Requirements Engineering: Gathering, analyzing, documenting, and validating the requirements of software systems. This involves understanding the needs of users and translating them into a specification that guides the development process.
- Software Design: Creating a blueprint for the software system based on the requirements. This includes architectural design, which defines the overall structure of the system, as well as detailed design of individual components and modules.
- Software Development: Implementing the design through coding, testing, and debugging. This stage involves selecting appropriate programming languages, tools, and frameworks, as well as following best practices to ensure the reliability, maintainability, and scalability of the software.
- Software Testing: Verifying that the software meets its requirements and behaves as expected. This includes both manual and automated testing techniques to identify defects and ensure the quality of the software.
- Software Maintenance: Making modifications to the software after it has been deployed to fix bugs, add new features, or adapt to changes in requirements or the operating environment.
- Software Project Management: Planning, organizing, and coordinating the activities of a software development project to ensure that it is completed on time and within budget. This includes tasks such as resource allocation, scheduling, risk management, and communication with stakeholders.
- Software Quality Assurance: Implementing processes and standards to ensure that the software meets quality objectives such as reliability, efficiency, and user satisfaction. This involves techniques such as code reviews, quality metrics, and continuous integration.
- Software Configuration Management: Managing changes to the software and its associated documentation throughout the development lifecycle. This includes version control, change tracking, and release management to ensure that the software remains stable and consistent.
Software engineering draws on concepts and techniques from various fields such as computer science, mathematics, project management, and systems engineering. It is essential for building complex, reliable, and scalable software systems that power modern technology in diverse domains such as finance, healthcare, transportation, and entertainment.
CS302: Software Engineering Exam Quiz Answers
Question 1: Which of these are the generic activities that software engineers do?
- Planning, designing, programming, testing, and marketing
- Analysis, design, implementation, testing, and maintenance
- Reviewing, risk management, measurement, and production
- Communication, planning, modeling, construction, and deployment
Question 2: Which of the following disciplines does software engineering have the most in common with?
- Automation and robotics
- Modeling and thinking about code
- Communication and manufacturing
- Designing hardware and writing code
Question 3: Which of the following are the main ways that software products are characterized?
- Necessity, certainty, flexibility, and testability
- Usability, maintainability, dependability, and efficiency
- Number of GUIs, database independence, bandwidth, and size
- Number of files, codebase size, programming language, and domain
Question 4: You are managing a software project for the human resource department. The test data is all current company employee files. The project team test results will be presented during the phase acceptance walk-through. A user team member remarks that the use of employee data in violation of the software engineering code of ethics. Which component of the code of ethics might the team member be referencing?
- Competency
- Confidentiality
- Integrity
- Personal use
Question 5: Which of the following software development life cycle phases involves creating modeling diagrams?
- Design
- Implementation
- Maintenance
- Testing
Question 6: Which of the following life cycle models is easy to understand and implement, works well on large/mature products and weak teams, and fits in with other engineering process models?
- Spiral model
- Waterfall model
- Incremental model
- Evolutionary model
Question 7: Which of the following is a situation where the iterative life cycle development process is more suitable than the sequential life cycle development process?
- When requirements are well defined, such as with DSS
- When the prototype will be used as the completed project
- When multiple deliverables are able to be completed simultaneously
- When rapid development of part of the system can ease a critical work situation for users
Question 8: Which of the following deliverables is part of the analysis phase?
- Error report
- System proposal
- System configurations
- Initial operation of the system
Question 9: Which of the following roles is the person who is to transform a technology-free statement of user requirements into a high-level architecture?
- Team Leader
- System Analyst
- Project Manager
- System Designer
Question 10: Which of the following is one of the main principles of Rapid Application Development?
- Fast development and delivery of the final system at a low cost
- Maximizing programmers’ productivity by providing tight-knit components
- Modeling across layers using Extended Enterprise Modeling Language (EEML)
- Joint application design (JAD), where users are intensely involved in system design
Question 11: Which of the following statements about Spiral development is true?
- It organizes the elements of the problem and the solution in one step
- Each spiral begins with reviewing database transactions and commits
- Each cycle involves a progression through the same sequence of steps
- It focuses on minimizing project cost by implementing it as one spiral block
Question 12: What is the language property that selects the actual modules to execute during the application operation?
- Dynamic binding
- Inheritance
- Polymorphism
- Encapsulation
Question 13: Which of the following statements best describes inheritance?
- Deriving new objects from existing objects
- Deriving new classes from existing classes
- Using the methods from an existing library in another library
- Using the defined data from an existing library in another library
Question 14: How many operations are in this class?
- 1
- 2
- 3
- 4
Question 15: Which of the following is a property of data that describes that it is vague in meaning, or could be subject to multiple meanings?
- Diversity
- Ambiguity
- Semanticity
- Incompleteness
Question 16: In general, what kind of process do we use to validate the information received from any source as part of a data collection process?
- Justification
- Semantic
- Testifying
- Triangulation
Question 17: Which of the data/requirements gathering techniques is used for an executive information systems application?
- Meetings
- Interviews
- Observation
- Questionnaires
Question 18: There are a number of techniques for gathering requirements. Which of the following is the best technique for gathering correct requirements?
- Observation
- Reviewing software
- Reviewing external documents
- Reviewing internal documents
Question 19: In order to gather requirements, a software engineering company may develop different types of questions to use when interviewing stakeholders. Which of the following types of questions is best to use in interviews to gather complete and correct requirements?
- Structured
- Close-ended
- Open-ended
- Unstructured
Question 20: A software engineer who observed and documented as a user of a proposed software application performed a particular task. This software engineer then validated the documented task with a senior stakeholder. What did the software engineer do?
- Analysis
- Coding
- Design
- Inheritance
Question 21: A project walk-through at the end of the requirements gathering phase includes which of the following?
- Consistency check
- Database design
- Project plan
- Test Plan
Question 22: When performing an object-oriented analysis to identify objects, which of the following is placed in the “problem space”?
- Attribute
- Instance
- Object
- Subroutine
Question 23: A software engineering company and its customer selected requirements from a number of requirements that should be contained in a proposed software application. What did they do?
- Determined the scope
- Designed the project
- Managed the project
- Requested a proposal
Question 24: Which of the following activities is completed during the program design phase?
- Document programs
- System tests each program
- Unit test system
- User acceptance tests
Question 25: Which of the following diagrams best models this situation?
“Cars may have many passengers, they come and go.”
Question 26: Which of the following statements about object-oriented programming languages is true?
- They work as database management systems within other programs
- Their programs made from objects that interact with their own methods
- Their objects correspond to the main libraries in the main program structure
- Their data is contained in attributes and their code takes the form of methods
Question 27: Which kind of programming language is used to build applications out of integrated sets of application-specific reusable parts?
- Toolkit language
- Linguistic language
- Notations language
- Configuration language
Question 28: Which of the following statements about a software configuration item (SCI) is true?
- It is the first step in controlling changes to identify items
- It serves as a reference for the software design and analysis process
- It is used to investigate the current status of specific software elements
- It is an aggregation of software designated for configuration management
Question 29: Which of the following is the best description of a unit test?
- It is performed for each of the smallest units of code
- It is the last testing done before sending code to production
- It verifies users’ satisfaction for each unit function in the code
- It is conducted for each graphical user interface in the software
Question 30: What is the purpose of the regression tests?
- To perform an objective, unbiased assessment of the application database
- To ensure that changes to an application have not led to unintended problems
- To verify that the functional specifications are met and GUIs operate as desired
- To verify the logic and processing for suites of modules that perform some activity
Question 31: A software engineer wrote a function to add two numbers. Which of the following should be used to test the function?
- Unit testing
- System testing
- Integration testing
- User acceptance testing
Question 32: Which testing approach is used to determine the correctness of output based on their inputs?
- Red-box testing
- Gray-box testing
- Black-box testing
- White-box testing
Question 33: When creating a test plan of a system that’s supposed to do different actions based on different conditions, what is the best specification-based technique you should use to verify the relationships between the input and the output?
- Decision tables
- Random testing
- Equivalence partitioning
- Boundary-value analysis
Question 34: Comparing between a software engineer (SE) and a project manager (PM), which of the following statements is true?
- The SE designs the system, while the PM implements strategies
- The SE develops the budget, while the PM monitors and controls the budget
- The SE designs system test cases, while the PM executes those tests cases
- The SE designs and applies unit tests, while the PM designs and applies system tests
Question 35: Which of the following statements about project managers is true?
- They develop financial and organizational assessments
- They usually deal with tech support and equipment issues
- They negotiate with users about GUIs and database types
- They act as a buffer between technical staff and team leaders
Question 36: Which of the following responsibilities does the project manager perform when he or she is selecting and evaluating project personnel?
- Acting as liaison
- Identifying project tasks
- Monitoring the project
- Managing the project staff
Question 37: How would you ensure that relevant and useful data is collected about a software project?
- Conduct a feasibility analysis
- Review and evaluate the code
- Implement a measurement process
- Evaluate the software’s performance
Question 38: Which of the following could be a valid actor in the use case diagram of a chat software?
- GUI
- Database
- Participant
- Connection Socket
Question 39: You are developing address book software that should be compatible with Microsoft Windows, let the user back up data easily, and have a user-friendly GUI. The system should take the actions needed to make managing contacts simple, including logging in using a password, adding, removing and searching contacts (by first name, last name, phone number or any other field), making calls, and sending emails. Which of the following must be represented as a class in the class diagram?
- Contact
- Password
- Address Book
Question 40: XYZ Company decided to develop a software solution to make their work easier. The system will be used to manage appointments by viewing, adding, removing, and updating appointments. Which of the following should be part of the class diagram?
- System
- Company
- Appointment
- Management
Question 41: You are working on software for a company where “each manager has a project and there is no project without a manager”. Which of the following diagrams represents that quote?
Question 42: As a part of your test plan, which of the following would you do to check the system’s behavior against the customer’s requirements?
- Call virtual testers to do correctness testing
- Run the system in different platforms with different input
- Work with team members to conduct qualification testing
- Turn off each GUI and test the system modules individually
Question 43: As a software engineer, which of the following would you do to implement error guessing techniques?
- Generate test cases randomly, using operational profiling
- Run one test case for each module in the system in a random order
- Design test cases, execute them, and then modify them dynamically
- Design test cases that attempt to determine the most plausible faults
Question 44: Which of the following is a programming technique that you should keep in mind when trying to write efficient software?
- Do not use parameter passing often
- Use bottom-up design for complex problems
- Be sure to use external storage concurrently
- Keep local variables within functions or methods
Question 45: James is a software engineer who is working in a new project. One of his managers recommended that he illegally use a copyrighted code snippet instead of writing the code from scratch. Which software engineering code of ethics principles best applies to this situation?
- Software engineers shall be fair to and supportive of their colleagues
- Software engineers shall act in a manner that is in the best interests of their employer
- Software engineers shall ensure that their products meet the highest professional standards
- Software engineers shall respect the work required to produce inventions and computing artifacts
Question 46: Which of the following are parts of the maintenance phase in the software development life cycle?
- User maintenance, site selection, preparation, and file conversion
- Translating requirements into a representation and documentation
- Detecting errors in the software’s requirements, design, and coding
- Updating and improving the software to ensure continued usefulness
Question 47: Which of the following roles is the person who is familiar with multiple application areas with very good communication and interpersonal skills, knows programming-in-the-large, and can translate requirements into specifications?
- Programmer
- System Analyst
- Project Manager
- System Designer
Question 48: Which of the following statements about the Agile process is true?
- It demands fixed features, not fixed time
- It has a high emphasis on analysis and design
- It is best when requirements are vague or changing
- A typical iteration takes somewhere between 4 to 6 months
Question 49: Which of the following is true about a static method?
- It deals only with private data members and methods
- It should be unique and must only return static values
- It belongs to the class rather than the object of a class
- It takes no parameters and does not return any values
Question 50: What does (-) represent in this class?
- Public attribute
- Private attribute
- Protected attribute
- Derived attribute
Question 51: Which of the following is the best way to model this code snippet?
Class Manager {
Worker workers [];
}
Class Worker {
}
Question 52: Data differs on several important dimensions, and each dimension is important in defining the requirements of applications. Which of the following is one of these dimensions?
- Amount
- Execution
- Importance
- Structure
Question 53: Which of the following is an example of software stakeholders?
- Users, who will use the software
- Testers, who are responsible for testing the software
- Cybersecurity teams, who are responsible for verifying online security
- Project managers, who have a responsibility for the legal ramifications of the software
Question 54: If you are working on specifying the requirements for simple software products as a system analyst, which of the following documents will you be producing regularly?
- Design diagrams documents
- System definition documents
- System requirements documents
- Software requirements documents
Question 55: When performing an object-oriented analysis to identify processes, which of the following is placed in the “problem space”?
- Activity
- Comment
- Status
- Subroutine
Question 56: Which type of language would be best if you wanted to write a series of commands that would be interpreted one by one at runtime?
- Scripting
- Functional
- Procedural
- Object-oriented
Question 57: Which kind of programming language is the simplest type of construction language, where software engineers choose from a limited set of predefined options to create new or custom software installations?
- Toolkit language
- Visual language
- Configuration language
- Object-oriented language
Question 58: In each test level, a strategy for testing must be chosen. Which of these strategies looks at the specific logic of the application to verify how it works?
- Black-box
- White-box
- Top-down
- Bottom-up
Question 59: You are developing an online search engine. The search engine is expected to receive hundreds of thousands of requests. What type of plans should you consider in order to test the system load?
- Hire thousands of users to test the system at the same time
- Create thousands of virtual users using a performance testing tool
- Install the system on a distributed multi-purpose cluster-computing framework
- Ask each of your team members to generate a series of requests in the system
Question 60: Which of the following skills is needed by both software engineers and project managers?
- Critical thinking
- Allocating resources
- Strong programming
- Experience with algorithms
Question 61: Which of the following responsibilities is performed when the project manager is reporting project status?
- Acting as liaison
- Eliciting tasks
- Managing the project staff
- Monitoring the project
Question 62: During which of the following processes do you apply the Plan, Do, Check, and Act (PDCA) approach?
- When projects fall behind schedule
- When projects lack sufficient resources
- When improving the quality of software products
- When adding more records to system databases
Question 63: As a project manager making a project plan, you are afraid that some of the required hardware might not be delivered on time. What management activity should you consider to address this issue?
- Increase the budget of the project
- Consider this issue as a potential risk
- Allocate a different type of hardware instead
- Eliminate this hardware from required resources
Question 64: You are developing an online web portal for a local school. Which of the following could you consider as a use case name?
- HTTPS
- About Us
- Homepage
- Enroll in a course
Question 65: In order to verify the interactions between software components, which of the following should you do?
- Include integration testing in your test plan
- Verify the output of the system for different inputs
- Conduct unit testing for each module in the system
- Call for a meeting to verify with components developers
Question 66: What is the name of this class?
- Flight
- flightNumber
- getArrivalTime
- Integer
Question 67: Which of the following statements about the software development life cycle (SDLC) is true?
- It starts by turning software design into a set of specifications
- All of its phases emphasize both generalization and classification
- Users and stakeholders are essential players in each of its phases
- It allows for a high level of management control and documentation
Question 68: Which of the following is a situation where the sequential life cycle development process is more suitable than the iterative life cycle development process?
- When the prototype will be used as the completed project
- When multiple deliverables are able to be completed simultaneously
- When rapid development of the system can ease a critical work situation for users
- When requirements are well defined, such as with an order-entry/transaction system
Question 69: Which of the following software development life cycle models would be preferred when the goal is to understand the customer’s requirements, and to develop a better definition of requirements for the system?
- Spiral model
- Waterfall model
- Incremental model
- Evolutionary model
Question 70: Which development phase is extremely critical, time-consuming, and requires proper planning to execute specified cases?
- Coding
- Design
- Feasibility study
- Testing
Question 71: Which of the following is a main feature of the Unified process?
- It involves sequential development of the system and the construction of prototypes
- It is based on Unified Modeling Language and organizes the development into four phases
- It includes manager-developer meetings, and managers are closely involved in development
- It focuses on risk assessment and minimizing risk by breaking a project into smaller segments
Question 72: Which of the following statements best describes encapsulation?
- Enclosing class methods as private methods
- Presenting the same data member in different forms
- Bundling data members with methods into a single unit
- Recapitulating or briefly modifying all class data members
Question 73: Which of the following defines the values of a specific occurrence of an object?
- Binding
- Inheritance
- Instantiation
- Polymorphism
Question 74: Which of the following is the main quality of an abstract class?
- It is not represented in most UML diagrams
- It has static methods and constants, but no objects
- It is used to represent aggregation with another class
- Its attributes correspond to members of another class
Question 75: Which of the following is the best representation of this statement using modeling in UML?
“Managers and workers are types of employees in the company.”
Question 76: Which kinds of requirements are generally written from a bird’s-eye view (at a high level), but can also be very detailed and contain annotations, notes, and references to other materials, such as screen and page mockups and flow diagrams?
- Functional requirements
- Nonfunctional requirements
- System attribute requirements
- Logical database requirements
Question 77: Which of the following requirements gathering techniques can both complement and replace interviews?
- Meetings
- Observation
- Questionnaires
- Reviewing internal documents
Question 78: Which of the following statements about the interview requirements gathering technique is true?
- It is best for multicultural companies
- It allows decisions to be made rapidly
- It requires triangulation to verify results
- It prevents bias on the part of respondents
Question 79: At a virtual team meeting for a class project, one of your classmates suggests that the finished project is a decision support system. Which data/requirements technique is generally used for this application type?
- Interview
- Meeting
- Observation
- Questionnaire
Question 80: At a virtual team meeting for a class project, one of your classmates suggests that the finished project is a transaction processing systems application and therefore, based on professional usage, which of the following data/requirements techniques is generally used for this application type?
- Interview
- Meeting
- Observation
- Questionnaire
Question 81: When performing an object-oriented analysis to identify objects, which of the following is placed in the “solution space”?
- Attribute
- Instance
- Object
- Subroutine
Question 82: During the design phase, which of the following activities recurs?
- Planning the next project
- Preparing documentation
- Reviewing feasibility
- Reviewing programs
Question 83: Which of the following activity diagrams best represents software that filters junk emails?
Question 84: How would you model this situation with a UML class diagram?”One project may consist of several other projects.”
Question 85: Which of the following statements describes the relationship between A and B?
- A has B
- A is part of B
- A overrides B
- A is a subclass of B
Question 86: Which of the following diagrams best models this situation?
“Each car has an engine.”
Question 87: Which of the following code snippets best represents the relationship described in this diagram?
- Class Student extends IDCard {
….
}
- Class Student implements IDCard {
….
}
- Class Student {
IDCard id_card;
….
}
- Class IDCard {
Student student;
….
}
Question 88: Which of the following programming languages is a popular commercial version of Smalltalk?
- Java
- DigitalS
- Visual C++
- VisualWorks
Question 89: Which of the following statements about top-down tests is true?
- They are the last tests done before an application is placed into production status
- They assume that critical control code and functions will be developed and tested first
- They aim to apply the same number of incremental tests in each module of the system
- They are based on logic and are similar to system tests in their makeup and objectives
Question 90: When a project manager is acting as the buffer between the technical staff and the organization stakeholders, which of the following responsibilities are they performing?
- Acting as liaison
- Maintaining corporate culture
- Managing the project staff
- Monitoring the project
Question 91: Which of the following could be considered as a valid class name in a library’s software system?
- Book
- Subject
- AuthorName
- PublisherName
Question 92: XYZ Company decided to develop a software solution to make their work easier. The system will be used to manage appointments by viewing, adding, removing, and updating appointments. Which of the following diagrams best represents the system use cases?
Question 93: In an address book application, after searching for a contact (by first name, last name, phone number or any other field), the user can make a call or send an email to the selected contact. Which of the following use case diagrams best represents this system?
Question 94: In a drawing application, which of the following class diagrams would be the best choice for representing different shapes?
Question 95: You are developing a chat application that allows users to send messages and make voice calls. Which of the following could be considered as a class in the system?
- Message
- Password
- Microphone
- ContactName
Question 96: In this sequence diagram, what traces are possible?
- x → y → k → w → z → p
- x → y → w → k → p → z
- x → y → z → k → p → w
- x → y → z → p → k → w
Question 97: Which of the following best describes the essence of software engineering?
- Organizing resources in a logical manner
- Maintaining automatic software development mechanisms
- Systemizing the development, operation, and maintenance of software
- Identifying standards for software developers’ assessment and evaluation processes
Question 98: Which kinds of methods and instance variables are members of a class?
- All methods and instance variables
- Private methods; public instance variables
- Private instance variables; public methods
- All non-static instance variables and methods
Question 99: What is the named field or property that describes a class/object or a process?
- Attribute
- Data type
- Instance
- Primary key
Question 100: You are working on defining requirements for the class game project. Which discipline of the requirements process describes how you want to establish a clear scope and boundaries for the project?
- Elicitation
- Management
- Specification
- Validation
Question 101: Which of the following would you use to validate the software engineer’s interpretation of the software requirements?
- Prototyping
- Model validation
- Acceptance testing
- Requirements reviews
Question 102: During the analysis phase, which of the following disciplines recurs continuously?
- Elicitation
- Identify interactions
- Management
- Specification
Question 103: Which of the following statements about Java is true?
- It is a mix of JavaScript and Python
- It has no pointers or low-level constructs
- It cannot be used as a portable language
- It requires explicit allocation and deallocation of memory
Question 104: What is one of the benefits of using a version control system?
- It helps every team member use the latest versions of their tools
- It helps end-users keep their software updated to the latest version
- It keeps every team member working off the latest software version
- It allows app store managers to manage different software versions
Question 105: Which kinds of tests are project team tests?
- Acceptance tests
- Developmental tests
- Regression tests
- System tests
Question 106: Which type of test should be used to verify the performance, reliability, and usability of a system?
- Unit tests
- Integration tests
- Functional tests
- Nonfunctional tests
Question 107: As a project manager working on a software project, you need to solicit bids from potential vendors. Which of the following steps should you take as part of this process?
- Arrange a meeting with all staff members to request a proposal
- Prepare a detailed process planning document to discuss with vendors
- Work with software engineers to develop a resource planning document
- Sign contracts with each available vendor to supply different project needs
Question 108: You are interested in a career in healthcare, designing and developing better automated tools that work on the home computers of senior citizens. You have an interest in developing systems that use genetic analysis for at-home solutions for the care of bone degeneration, heart/lung/circulatory issues, cancer growths, and sugar diabetes. Which of the following degree areas would you consider if you are more interested in designing tools than in actually coding or building them?
- Computer Science
- Electrical Engineering
- Math and Biology
- Software Engineering
Question 109: You submit a Use Case diagram to your project manager for a project you are working on. The project manager says it needs to be simplified to make the behavior between use cases easier to understand. Your diagram includes too many of which of the following relationships?
- Extend
- Generalization
- Improve
- Include
Question 110: As a software engineer, which of the following should you do to cover all the statements or blocks of statements in a given program’s tests?
- Generate mutation test cases
- Conduct unit testing multiple times
- Apply criteria based on control flow
- Request an input flow sequence document