CSE 3311 Software Engineering Midterm Review

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/59

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards summarizing the main concepts, models, and practices from the software engineering lecture notes.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

60 Terms

1
New cards

Object-Oriented Programming (OOP)

A paradigm that organizes software around objects combining data and behavior.

2
New cards

Modularity

Structuring software as independent, interchangeable components; a core OOP benefit.

3
New cards

Reusability

Ability to apply existing code in new situations, reducing development time and cost.

4
New cards

Encapsulation

Keeping an object’s internal state private and exposing controlled access via methods.

5
New cards

Software Validation

Testing activities that confirm the product meets specified requirements.

6
New cards

Spiral Model

Iterative process model focused on continual risk assessment and mitigation.

7
New cards

Waterfall Model

Linear, phase-driven process model with little overlap between stages.

8
New cards

Incremental Development

Building software in small, functional pieces that are integrated over time.

9
New cards

Agile Development

Iterative methods valuing working software, customer collaboration, and adaptability.

10
New cards

Risk Management (SE)

Identifying, analyzing, and controlling project risks throughout development.

11
New cards

Extreme Programming (XP)

Agile method emphasizing pair programming, continuous testing, and frequent releases.

12
New cards

Pair Programming

XP practice where two developers jointly write code at one workstation.

13
New cards

Continuous Testing

Running automated tests frequently to obtain rapid quality feedback.

14
New cards

Scrum

Agile framework organized around time-boxed sprints and defined roles.

15
New cards

Sprint

Fixed-length iteration (e.g., 2–4 weeks) delivering a product increment in Scrum.

16
New cards

Scrum Master

Facilitator who ensures the Scrum team adheres to the framework and removes impediments.

17
New cards

User Story

Brief description of a feature from the end-user’s perspective.

18
New cards

Software Maintenance Cost

Portion of total project expense after deployment—often over 50%.

19
New cards

Working Software (Agile Principle)

Delivering functional code takes precedence over exhaustive documentation.

20
New cards

Responding to Change (Agile Principle)

Adapting to evolving requirements rather than rigidly following a plan.

21
New cards

Customer Collaboration (Agile Principle)

Continuous engagement with customers to ensure the product meets their needs.

22
New cards

Flexibility in Requirements

Spiral advantage allowing requirements to evolve through iterative cycles.

23
New cards

Complexity and High Cost

Key drawback of Spiral development due to intensive risk analysis and iteration.

24
New cards

Software Specification

Gathering and defining system requirements during the planning phase.

25
New cards

Software Design and Development

Creating architecture, coding, and reviewing the software solution.

26
New cards

Software Deployment

Releasing and installing the software in the target environment.

27
New cards

Software Evolution

Enhancement and maintenance activities following initial release.

28
New cards

Rapid Feedback

XP benefit of obtaining quick insight through frequent releases and tests.

29
New cards

Team Dynamics

XP challenge where success relies on strong collaboration and commitment.

30
New cards

Which term in Scrum refers to a list of all desired work on the project?

Product backlog

31
New cards

Which of the following best describes principles of Requirement Engineering?


A task is a coherent chunk of work to be done (for example, eliciting requirements).

An activity is a set of actions that a person or group performs to accomplish a task.

A practice is a proven way of how to carry out certain types of tasks or activities.

32
New cards

What is the correct order of the stages in requirements elicitation?

Discovery, Classification, Prioritization, Specification

33
New cards

What is the primary purpose of requirements engineering?

To establish system services and constraints

34
New cards

In UML, which diagram type is used to model the interactions between actors and system?

Use case diagram

35
New cards

What does a state diagram represent in UML?

System response to events

36
New cards

In UML, what does a class diagram primarily illustrate?

Relationships between system objects

37
New cards

What does 'verification' in V&V stand for?

Have we built it correctly?

38
New cards

Which of the following is a functional requirement?

The system shall allow users to search appointments

39
New cards

What defines the operational context of a system in UML?


Context model

40
New cards

Explain the difference between functional and non-functional requirements?

Functional requirements specify what a system should do, while non-functional requirements define how a system performs tasks, such as its reliability, usability, and performance. Functional requirements describe actions and features, whereas non-functional requirements focus on quality attributes.

41
New cards

What are the three main types of non-functional requirements?

1) Product Requirements, which deal with behavior of the system like performance or reliability.

2) Organizational Requirements, which arise from company policies and standards such as mandated development tools or coding standards.

3) External Requirements, which originates from external sources like legal or regulatory constraints

42
New cards

Why is requirements validation important in the development process?

Validation ensures that the documented requirements reflect what stakeholders actually need. This step is critical because fixing errors in requirements after system delivery can be up to 100 times more expensive than fixing them during early
development.


Validation checks for completeness, consistency, correctness, and feasibility, often through reviews, prototyping, and testing.

43
New cards

Define the concept of 'verification' in the context of V&V?

Verification is the process of checking that the system meets its design and implementation specifications.
It asks, 'Are we building the system right?' It involves reviews, inspections, and testing to ensure that each component is correctly implemented.

Unlike validation, it does not check if the system meets user needs but whether the software was built correctly according to plan.

44
New cards

What is an UML Use Case Diagram and what does it typically show?

A Use Case diagram is a behavioral UML diagram that illustrates the interactions between external actors (such as users or other systems) and the system under development. It shows the functional requirements of the system from the user's perspective and helps in identifying user goals, system boundaries, and how users interact with different functionalities.

45
New cards

Which of the following best describes the Pipe and Filter architecture pattern?

A sequence of data transformations connected by data flows

46
New cards

According to the following bash shell command “cat client_server.txt | grep "Repository" | sort | uniq > output.txt”, which architectural pattern was adopted?

Pipe and Filter Architecture

47
New cards

Which architectural pattern divides an application into three
interconnected components?

MVC

48
New cards

What is the main disadvantage of Peer-to-Peer architecture?

Security risks and data inconsistency

49
New cards

What are Operation Contracts primarily used for?

Specifying preconditions and postconditions of operations

50
New cards

What is the benefit of using Domain Models in early OOSE stages?

Bridge between requirements and design

51
New cards

How does the Multi-tier Client-Server Architecture promote maintainability in enterprise applications?

By allowing each tier to be updated independently with minimal cross-impact

52
New cards

What is the main reason for using Operation Contracts in Object-Oriented Software Engineering?

To formally describe the change in system state caused by operations

53
New cards

Which scenario would most benefit from adopting a Peer-to-Peer (P2P) architecture?

A decentralized file sharing platform for large user bases

54
New cards

Which architecture allows developers to test business logic without a database?

Repository

55
New cards

Given a Use Case (Scenario) of User Placing Online Order, please apply the 4 + 1 View Model of Software Architecture to this case. Your answer should include the name of each view along with a one-sentence description for each

The Logical View involves the user interacting with the cart and order classes.

The Process View shows how the system handles the payment and inventory checks.

The Development View outlines the components the developers manage.

The Physical View demonstrates how these processes are distributed across servers to ensure a fast and reliable experience.

56
New cards

Add the software architectural design 4 + 1 View Model to each
component (fill the view name in red boxes)

knowt flashcard image
57
New cards

What is the purpose of using UML diagrams in system modeling? Name two types of UML diagrams and their uses.

UML (Unified Modeling Language) diagrams are used in system modeling to visually represent the structure, behavior, and interactions of a system, aiding communication between stakeholders and developers. Two types of UML diagrams are:


• Class Diagram: Represents the structure of the system by showing
its classes, attributes, methods, and relationships between classes.
• Sequence Diagram: Shows the flow of interactions between objects
over time, illustrating how messages are passed in a specific use
case

58
New cards

List those five architectural patterns we have learned in the class.
Particularly, specify the main components of a specific pattern which is commonly used for distributed systems, web applications, and network services.

MVC - isolating the user interface from the business logic and data. For web apps, mobile apps, and desktop apps.

Layered - separation of responsibilities into layers. For complex enterprise applications.

Repository - Decouples data access logic from business logic, ease of testing, and modularity. For applications requiring complex data access and storage.

Client-Server - Enables resource sharing between multiple clients over a network. For network applications, web apps, and distributed systems.

Pipe & Filter - Decomposes a process into a series of smaller steps to imporve flexibility and modularity. For data processing applications, compilers, streaming services, and transformations.

59
New cards

Name the following two architectural models

Fat Client Model

Thin Client Model

<p>Fat Client Model</p><p>Thin Client Model</p>
60
New cards

According to the architectural pattern of this Web Application shown
below, write the contents into the three brackets

Controller, View, and Model

<p>Controller, View, and Model</p>