Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

SOEN 341 FINAL EXAM WITH CORRECT ANSWERS, Exams of Software Engineering

SOEN 341 FINAL EXAM WITH CORRECT ANSWERS

Typology: Exams

2024/2025

Available from 03/02/2025

belluna-skyler
belluna-skyler šŸ‡ŗšŸ‡ø

756 documents

1 / 26

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
SOEN 341 FINAL EXAM WITH
CORRECT ANSWERS
During a code inspection, team members occupy different roles. Apart from
author and reviewer, what are they? - ANSWER Moderator, recorder/scribe,
reader
Name five architectural patterns/styles - ANSWER - MVC ( Web application)
- Layered ( Operating System)
- Repository ( IDE)
- Client server ( Film library )
- Pipe and filter ( Processing invoices)
Software Quality Assurance is primarily concerned with two activities. What
are they? - ANSWER Verification and validation
What are the key phases in a release pipeline? - ANSWER - B uild
- I ntergrate
- D eploy
What are the different categories of software requirements? - ANSWER -
User vs system
- Func vs non-func
What are the different levels of development testing? - ANSWER - Unit,
integration, system
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Partial preview of the text

Download SOEN 341 FINAL EXAM WITH CORRECT ANSWERS and more Exams Software Engineering in PDF only on Docsity!

SOEN 341 FINAL EXAM WITH

CORRECT ANSWERS

During a code inspection, team members occupy different roles. Apart from author and reviewer, what are they? - ANSWER Moderator, recorder/scribe, reader Name five architectural patterns/styles - ANSWER - MVC ( Web application)

  • Layered ( Operating System)
  • Repository ( IDE)
  • Client server ( Film library )
  • Pipe and filter ( Processing invoices) Software Quality Assurance is primarily concerned with two activities. What are they? - ANSWER Verification and validation What are the key phases in a release pipeline? - ANSWER - B uild
  • I ntergrate
  • D eploy What are the different categories of software requirements? - ANSWER - User vs system
  • Func vs non-func What are the different levels of development testing? - ANSWER - Unit, integration, system
  • Done by developers What are some of the key differences between traditional software inspections and modern code review? - ANSWER - Software inspection: rely on the process, meeting
  • Modern: use tools to help automate the process; no in-person meetings needed What are the different families of design patterns? - ANSWER - Creational: factory
  • Structural: composite, adapter. decorator
  • Behavioral: template, strategy The classical design patterns that we will cover in this class fall into three categories:
    • Creational patterns that add flexibility to the object instantiation process (hiding the creation logic)
    • Structural patterns that are concerned with how classes and objects are combined to build software (adaptor, API migration)
    • Behavioural patterns that allow algorithm and object responsiblity to be flexibly redefined (Java iterator) What does coupling/cohesion measure in an object oriented system? What values are desirable? - ANSWER - Coupling is the measure of the degree of interdependence between the modules. A good software will have low coupling.
  • Cohesion is a measure of the degree to which the elements of the module

What are the FOUR major types of DESIGN? - ANSWER - C omponent design

  • A rchitectural design
  • P ersistence design
  • I nterface design Define Software specification/development/validation/evolution - ANSWER - Development: How can the specification be realized? o Software is designed and programmed
  • Evolution: Reacting to changing market conditions o Software is modified to reflect changing customer and market requirements
  • Validation: Try to break your software system o Software is checked to ensure that it is what the customer requires
  • Specification: What should the software system do? o Define the software that is to be produced and the constraints on its operation Define Software Engineering - ANSWER Engineering discipline that is concerned with all aspects of software production, from the early stages of system specification through to maintaining the system after it has gone into use. Describe the THREE types of TESTING - ANSWER - C omponent testing: o Done by the person who writes the code
  • S ystem testing: o Feature testing and performance testing o System testing o Regression testing
  • C ustomer testing: o Acceptance testing o Field testing Vaguely describe what Evolution/Maintenance consist of: - ANSWER - Maintaining and enhancing software to cope with new requirements or newly discovered problems.
  • A small part is fixing bugs.
  • A large part is extending systems to do new things. What are some of the other Software Development activities other than the main four ones? - ANSWER - Coding
  • Deployment
  • Documentation
  • Software Training and support

Define the Engineering discipline - ANSWER Using appropriate theories and methods to solve problems bearing in mind organizational and financial

Waterfall Cons( 3 main reasons) - ANSWER - I t is based on classical engineering practice. Building something physical is not the same as developing software.

  • D ocuments reflect what readers want to hear rather than what is actually happening. (Document Driven)
  • L ate-changing requirements require a lot of rework.

Waterfall pros - ANSWER - Rigid and formal process: fits well for embedded systems/safety-critical systems

Prototype model Process - ANSWER R equirements gathering --> Q uick Design --> B uild Prototype --> C stomer evaluation of prototype (if NO --> refine requirements --> quick design --> ...) --> C ustomer acceptance --> D esign --> I mplement --> T est --> M aintenance

Prototyping Model Pros - ANSWER - I mproved system usability

  • I mproved design quality
  • I mproved maintainability
  • A closer match to users' real needs
  • R educed development effort

Pros and Cons of Incremental Development are: - ANSWER Pros:

  • The cost of changing the customer requirements is reduced.
  • It is easier to get customer feedback.
  • Customers are able to use and gain value from the software early. Cons:
  • It is hard for large organizations to adopt
  • An architecture that is flexible tends to degrade quickly
  • Clients want to change requirements

How do agile models differ from traditional models? - ANSWER Agile is based on the adaptive software development methods, whereas the traditional SDLC models like the waterfall model is based on a predictive approach.

What is involved in the SCRUM process? - ANSWER Scrum is an agile method

support to always do a good job.

What are the differences between agile requirement and traditional requirement? - ANSWER Agile requirements focus more on what people think (meetings). Traditional requirements is writing requirements documentation.

Software process models - ANSWER Plan Driven:

  • Waterfall |
  • Prototype | ----> Build Software
  • Spiral |
  • Incremental

Agile:

  • XP |
  • DevOps |---> Grow Software

What are the steps/stages in requirement engineering (what do people do in

each step)? - ANSWER - R eview

  • E licitation
  • A nalysis
  • D ocumentation

NOTE: R. Design is in itself a different phase of Software Engineering.

What are the differences between functional and non-functional requirements (and some examples of each)? How can you distinguish them? - ANSWER A functional requirement describes WHAT a software system should do, while non-functional requirements place constraints on HOW the system will do so.

  • An example of a functional requirement would be:

A system must send an email whenever a certain condition is met (e.g. an order is placed, a customer signs up, etc).

-A related non-functional requirement for the system may be:

Emails should be sent with a latency of no greater than 12 hours from such

  • For Use Case:

Using Diagram

User stories main elements: - ANSWER 1. Describe user story

  1. Meetings
  2. Confirmation: when do you think the user story is complete? Assessed by the client.

Unified Modelling Language (UML) - ANSWER - became popular in the 1990s

  • not just requirements, models for architecture and design as well

Families of software models - ANSWER - Static: -- Class diagrams -- Block diagrams -- Domain models

  • Dynamic: -- Activity diagrams -- Use case diagrams

-- Sequence diagrams -- State diagrams

Types of Design Pattern(B C S): - ANSWER B ehavioural:

  • Abstracts algorithms and assignment of responsibility among objects

C reational:

  • Abstracts the object instantiation process

S tructural:

  • Abstracts how classes and objects are composed to build larger structures

Design Pattern: Observer(aka Publish - Subscribe) - ANSWER - Use when multiple presentations of an object's state are needed.

  • Separates presentation of object state from the object itself

Decorator - ANSWER The decorator pattern allows designers to add additional behaviour to an object without the need for extensive subclassing

D. Cohesion is the OO principle most closely associated with allowing a single object to be seen as having many types. - ANSWER Correct Answer: C.

A. Encapsulation B. Coupling D. Polymorphism

Design Principle - ANSWER Reduce coupling where possible

  • Coupling occurs when there are interdependencies between one module and another
  • When interdependencies exist ---> changes in one place will require changes somewhere else
  • A network of interdependencies makes it hard to see at a glance how some component works.

Implementation & Quality Assurance( Inspections and modern reviews) - ANSWER !!!!!!!!!!!!!!!!!!!!!!!!!!!!

What is the difference between verification and validation? - ANSWER - Verification is the process of checking that the software meets its stated functional and non-functional requirements Ex: "Are we building the product right?"

  • Validation is a more general process with the aim of ensuring that the customer will be satisfied with the outcome

Ex: "Are we building the right product?"

What are involved in static and dynamic V&V? - ANSWER - Static V&V: Analyses of the code Ex: Static analysis tools, Compiler warnings

  • Dynamic V&V: Executing the code

All the terms in testing - ANSWER - Errors are mistakes that are made by

What types of testing are there? What's their relationship with different software artifacts? - ANSWER -Development testing: by developers --Unit testing --Integration (component) testing --System testing -Release testing: by QA team -User testing: by (potential)users --Alpha testing --Beta testing --Acceptance testing

What's the difference between traditional and modern code review? - ANSWER - Structured inspections: Rigid, heavyweight process Involves in-person meetings, review checklists

  • Modern reviews: Flexible, lightweight process Tool-supported, online, asynchronous

Testing visibility specifiers - ANSWER -Black-box testing: --Tests that are written WITHOUT considering HOW the code is written/structured (based on specs) --Treats the system like an opaque box that accepts inputs and checks outputs

-White-box testing: --Tests that are written with an UNDERSTANDING of the structure of the code --Tests the inner workings of the system itself

Black-box or white-box? - ANSWER Unit tests? White box

System tests? Black-box

Stress tests? Black-box

Integration tests? White-box

Acceptance tests? Black-box