CS 319 Software Engineering Midterm Study Guide Q&A 2026/2027, Exams of Computer Science

Complete CS 319 Software Engineering Midterm Study Guide with Questions and Answers for 2025/2026. Covers SDLC models (Waterfall, Spiral, Incremental), Agile principles, Scrum, UML diagrams, Requirements Engineering, Software Architecture, Design Patterns, Web & Mobile App Design, and Component-Based Development. CS 319, Software Engineering, Midterm Exam, SDLC Models, Agile Manifesto, Scrum Process, UML Diagrams, Software Architecture, Design Patterns, Requirements Engineering, WebApp Design, MobileApp Design, Exam Review

Typology: Exams

2025/2026

Available from 02/23/2026

Smart-Grade-Vault
Smart-Grade-Vault 🇺🇸

5

(1)

1K documents

1 / 17

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CS 319 Software Engineering Midterm Study
Guide questions and answers 2025/2026
1.How does software differ from the artifacts produced by other engineering disciplines? -
answerSoftware is developed or engineered,
Software doesn't "wear out",
software is custom built.
2.Explain what is wrong with the notion that computer software does not need to evolve over time. -
answerSoftware needs to be:
adapted,
enhanced,
extended,
re-architected
3.How do software characteristics differ from hardware characteristics? - answerNetwork intensiveness.
Concurrency,
Unpredictable load,
Performance,
Availability,
Data driven,
Content sensitive,
Continuous evolution,
Immediacy,
Security,
Aesthetics
4.From the Software Engineering definition by the IEEE, which are the main characteristics included in
the definition? - answerdisciplined,
systematic,
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download CS 319 Software Engineering Midterm Study Guide Q&A 2026/2027 and more Exams Computer Science in PDF only on Docsity!

CS 319 Software Engineering Midterm Study

Guide questions and answers 2025/2026 1.How does software differ from the artifacts produced by other engineering disciplines? -

answerSoftware doesn't "wear out",Software is developed or engineered, software is custom built. 2.Explain what is wrong with the notion that computer software does not need to evolve over time. - answerSoftware needs to be: adapted,enhanced, extended,re-architected

3.How do software characteristics differ from hardware characteristics? - answerNetwork intensiveness. Concurrency, Unpredictable load,Performance, Availability, Data driven,Content sensitive, Continuous evolution,Immediacy, Security,Aesthetics

4.From the Software Engineering definition by the IEEE, which are the main characteristics included inthe definition? - answerdisciplined, systematic,

and quantifiable 5.Describe the relationships among software engineering process, methods, and tools. -provide automated or semi-automated support for the process and methods. answertools

6.List three areas in which process models may differ from one another. -team organization and roles are prescribed. answer1. Degree to which

  1. Overall flow of activities, actions, and tasks and the interdependencies among them.3. Level of autonomy given to project team

7.Describe how Polya's problem solving principles describe the essence of engineering practice? - answer1. Understand the problem

  1. Plan a solution
  2. Carry out the plan code4. Examine the results for accuracy

8.Which ones are essential characteristics or "Quality Software Attributes" of a professional softwaresystem? - answerCompetence. Intellectual property rights Maintainability: capacity for evolution Dependability: should not cause damageReliability SecuritySafety Efficiency: well use of resourcesUsability: easy to use and learn

Confidentiality

Inactive, "Awaiting changes, under revision" or "under review, baselined", done

  1. Component Base Process Model (CBSE) requirements specification, component analysis, requirements modification, system design with reuse,development and integration, system validation

note: there are more models 13.What are benefits of Incremental Delivery? -amount of time developing the core portion of the product then the extra features in the following answerWe can offer the product in a much shorter updates by increments. 14.Describe the phases of the prototyping model for software development? -requirements to begin with: answerIdentify some Develop initial prototype: Review the prototype:Revise and enhance the prototype:

Why are evolutionary models considered by many to be the best approach to software development ina modern context? - answerBecause this models are design to accommodate a product that grows and changes. Evolutionary models are interactive. They are characterized in a manner that enables you todevelop increasingly more complete versions of the software.

What are the primary advantages of the component-based process model for software engineering? - answerSoftware Reuse, Reduction on development cycle time and reduction on project cost.

What are the tradeoffs proposes by the "Manifesto for Agile Software Development"? -delivery is valued over intermediate work products answer- Rapid

  • Working software is valued over comprehensive documentation
  • Customer collaboration (customer part of the team) is valued over contract negotiation (us vs them)
  • Responding to change valued (flexibility) over following a plan Agile Principles -2. Embrace change answer1. Customer satisfaction = highest priority
  1. Incremental delivery of working software4. Customer collaboration
  2. Motivate individuals6. face-to-face conversation mode of communication
  3. Working software is the primary measure of progress.8. promote sustainable development.
  4. Continuous attention to technical excellence and good design enhances agility.10. Simplicity - essential
  5. self-organizing teams.12. Team reflection at regular intervals

Describe the three key assumptions regarding software projects that every agile software process mustaddress. - answer1. difficulty in predicting which software reqmts will change in advance or how customer priorities will change as the project proceeds

  1. difficult to predict how much design is necessary before construction is used to prove the design3. analysis, design, construction, and testing are unpredictable

Describe the SCRUM process and the diagram shown in the book: -and delivery answeranalysis, design, evolution,

emphasize project priorities, compartmentalize work units communication and frequent customer feedback.

.List the key issues stressed by an agile philosophy of software engineering. -self-organizing teams that have control over the work they perform answer- The importance of

Deployment is the physical activity to place software in the final server. What are the six steps for requirements engineering? -2. elicitation answer1. inception

  1. elaboration4. negotiation
  2. specification6. validation

What work products result from the requirements engineering process?. -engineers better understand the problems they are trying to solve. answerHelps software

It is very important to understand the customer's wants and needs before you begin designing orbuilding a computer-based solution.

What do you think is the goal of Elicitation activity within the software requirements phase? -draw out the requirements from the stakeholder. answerTo

Describe the job of the requirements engineer with respect to stakeholder collaboration? -identify areas of commonality in which stakeholders agree and areas of conflict between other answerTo stakeholders. What are the benefits of using analysis patterns during the analysis modeling process? -up the development of abstract analysis models that capture the main requirements of the concrete answer- Speed problem by providing reusable analysis models

  • Facilitate the transformation of the analysis model into a design model by suggesting design patternsand reliable solutions for common problems

List the types of models that might be used in requirements modeling and explain the role of each typeof model - answer1. scenario based model - reqmts from the users point of view

  1. class-oriented models - represent object-oriented classes and the manner in w/c classes collaborateto achieve system reqmts.
  2. behavioral and pattern based model - depict how the software behaves as a consequence of externalevents
  3. data models - depict information domain for the problem
  4. flow-oriented model represent the functional elements of the system and how they transform data asthey move through the system

Describe the purposes of domain analysis. -projects answeridentify common requirements to reuse in other

  • Umbrella activity involving the Identification, analysis, and specification of common requirements froma specific application domain, typically for reuse in multiple projects

The intent is to identify the common problem solving elements that are applicable to all applicationswithin the domain

Which UML (unified modeling language) diagrams are useful in scenario-based modeling? -cases answer- Use

  • Activity diagrams
  • swim lane diagrams What questions should be asked to help refine a preliminary use case? -smoother action at this point? answer- Can the actor take

Describe the roles of the three sections of CRC (class responsibility collaborator) cards? -the card - name of the class answerTop of Left - class responsibilities Right - collaborators List three types of classes that may be present in the analysis model. -- Boundary Classes answer- Entity Classes

  • Controller Classes What are the steps needed to build a behavioral model? -2 - Identify events that driver the interaction sequence answer1- Evaluate all use cases 3 - Create a sequence for each use case4 - Build a state diagram 5 - Review the behavioral model Under what circumstances requirements modeling should be utilized for Web or mobile apps? Answer (Section 11.5) - answerIf requirements of the problem or product is not well understood.

Which are the metrics used for specifying non-functional requirements? -transact/second, response time, screen refresh time answerSpeed:

Size: storage, memory Ease of use: training time, online help Reliability: mean time to failure, probability of unavailability, rate of failure, availability Robustness: restart time, pct of failure events, prob. of data corruption after failure

Portability: percent of target-dependent code, number of target systems What is UML? -blueprints; answerUnified Modeling Language is a standard language for writing software

used to visualize, specify, construct, and document the artifacts of a software intensive system; Which are the most commonly used UML diagrams? Describe them. - answer"C.U.S.A" Class diagrams - these diagrams model classes, their attributes, operations andrelationships/associations to other classes

Use Case Diagrams - A use case describes how a user interacts with the system by defining the stepsrequired to accomplish a specific goal

Sequence Diagrams - Used to show the dynamic communications between objects during execution of atask

Activity Diagrams - Depicts the dynamic behavior of a system or part of it through the flow of controlbetween actions. Similar to a flow chart except it can show concurrent flows

List three characteristics that can serve as a guide to evaluate design quality. -1. implement all of the explicit requirements and accomodate all the implicit requirements desired by answerdesign should: stakeholders

  1. be readable and understandable to people who would generate the code, test, and support thesoftware
  2. provide a complete picture of the software, addressing the data, functional, and behavioral domainsfrom an implementation perspective

What is Refactoring, and when is it applied? -of a component without changing its function of behavior. It is suggested for many agile methods. answerReorganization technique that simplifies the design

List the four design models required for a complete specification of a software design and the role ofeach. - answer1. Data design - high level model depicting user's view of the data or information.

  1. Architecture design - gives an overall view of the system; equivalent to a floorplan of a house
  2. Interface design - interface depicts a set of operations that describe the externally observablebehavior of a class and provides access to its operations
  3. Component-level design - Describes the internal detail of each software component. What are the elements that make up a software architectural style? -perform required system functions. answer1. Set of components that
  4. Set of connectors allowing communications among the components.
  5. Constraints describing how the components maybe integrated to form a system.
  6. Semantic models that enable the designer to understand the overall system properties by analyzingthe known properties of its components

Which ones are well-known architectural styles/patterns? - answerData-Centered Architectures Data-Flow ArchitecturesCall-and-Return Architectures Object-Oriented ArchitecturesLayered Architectures

Describe the types of dependencies that can exist in an architectural design. -dependencies - represent dependence relationships among consumers who use the same resource of answerSharing producers who produce for the same consumers. Flow dependencies - dependence relationships between producers and consumers of resources Constrained dependencies - which represent constraints on the relative flow of control among a set ofactivities.

How does the object-oriented view of component-level design differ from the traditional view? - answerOOV - detailed microscopic - very detailed.

TV - Control, Infrastructure and Domain (macro) - overview of C, I, D

  1. The object-oriented view focuses on the elaboration of design classes that come from both theproblem and infrastructure domains. Classes are elaborated by specifying messaging details, identifying interfaces, defining attribute data structures, and describing process flow for operations.
  2. In the traditional view, three of components are refined: control modules, domain modules, andinfrastructure modules. This requires representations to be created for data structures, interfaces, and algorithms for each program module in enough detail to generate programming language source code. Describe the differences between the software engineering terms coupling and cohesion? -COUPLING - HIGH COHESION answerLOW Cohesion implies that a component or class encapsulates only the attributes and operations closelyrelated to one another and to the class itself.

Coupling is a qualitative measure of the degree to which components are connected to one another. -SHOWS HOW THEY ARE CONNECTED

What are the steps used to complete the component-level design for a software development project? - answer1. Identify all design classes that correspond to the problem domain.

List three principles that should be applied when building any user interface. -control answer1. Place the user in

  1. Reduce the user's memory load
  2. Make the interface consistent What framework activities are completed when following an evolutionary (or spiral) user interfacedevelopment process? - answerInterface analysis and modeling designconstruction validation What is a Design Pattern? -problems and their solution in a way that allows the software engineering community to capture design answerDesign patterns provide a codified mechanism for describing knowledge for reuse. What are the major attributes should be used to assess the quality of a WebApp? -reliability answerFunctionality efficiencymaintainability usability "FREMU" List four content architectures found in WebApps? -"pure web" answerLinear, grid, hierarchical, and networked or

What is an MVC Pattern? -WebApp functionality and information content answerThe MVC architecture decouples the user infrastructure from

What is the role of context in MobileApp design? -technical considerations needed in designing a MobileApp i.e. power management, computational and answerIt helps distinguish the developmental and storage limits, security and privacy models and policies, ui limitations.

Users expect MobileApps to deliver personalized user experience based on the physical location of adevice in relation to the available network features

What are the steps in the engineering process model for developing MobileApps? -Formulation answer1.

  1. Planning
  2. Analysis4. Engineering
  3. Implementation and Testing6. User evaluation

What are the major attributes should be used to assess the quality of a MobileApp? - answerfunctionality reliability efficiencymaintainability usabilityportability

FREMUP - SAME AS IN WEB APP WITH THE ADDITION OF "PORTABILITY" What questions should beconsistent across applications? answers to assess usability of a mobile device? - answerIs the user interface Is the device interoperable with different network services? Is the device acceptable in terms of stakeholder values" in the target market area?