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

Software Engineering Study Guide: Fundamentals, Processes, and Agile Development, Exams of Software Engineering

This study guide provides a comprehensive overview of software engineering fundamentals, covering key concepts, processes, and methodologies. It explores the software crisis, software engineering principles, and the importance of software specification, development, validation, and evolution. The guide delves into traditional waterfall models, highlighting their strengths and weaknesses, and contrasts them with agile development methodologies like extreme programming (xp). It emphasizes the importance of customer involvement, incremental delivery, and adapting to change in software development.

Typology: Exams

2024/2025

Available from 03/02/2025

belluna-skyler
belluna-skyler 🇺🇸

756 documents

1 / 14

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Soen 341 Study Guide With
Complete Solution
What is the IoT (internet of things) - ANSWER describes physical objects with
sensors, processing ability, software and other technologies that connect and
exchange data
Why Software Engineering was created? - ANSWER get projects finish on
time and budget under control
What we refer to as software crisis - ANSWER period where software projects
failed due to over-budget, over-time, inefficiency, low quality...
What is software engineering? - ANSWER Software engineering is an
engineering discipline that is concerned with all aspects of software
production. (from start to end)
Software engineering fundamentals - ANSWER Functionality, reliability and
performance, understanding specification and requirements, reuse software
that already exists
What is software? - ANSWER the programs and other operating information
used by a computer.
what are the attributes of good software? - ANSWER Acceptability,
dependability and security, efficiency, maintainability
what are the fundamental software engineering activities? - ANSWER
software specification, software development, software validation, software
evolution
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Partial preview of the text

Download Software Engineering Study Guide: Fundamentals, Processes, and Agile Development and more Exams Software Engineering in PDF only on Docsity!

Soen 34 1 Study Guide With

Complete Solution

What is the IoT (internet of things) - ANSWER describes physical objects with sensors, processing ability, software and other technologies that connect and exchange data

Why Software Engineering was created? - ANSWER get projects finish on time and budget under control

What we refer to as software crisis - ANSWER period where software projects failed due to over-budget, over-time, inefficiency, low quality...

What is software engineering? - ANSWER Software engineering is an engineering discipline that is concerned with all aspects of software production. (from start to end)

Software engineering fundamentals - ANSWER Functionality, reliability and performance, understanding specification and requirements, reuse software that already exists

What is software? - ANSWER the programs and other operating information used by a computer.

what are the attributes of good software? - ANSWER Acceptability, dependability and security, efficiency, maintainability

what are the fundamental software engineering activities? - ANSWER software specification, software development, software validation, software evolution

what is the difference between software engineering and computer science? - ANSWER comp sci: focuses on theory and fundamentals

soen: concerned with developing and delivering useful software

what are the key challenges facing software engineering - ANSWER increasing diversity, demands for reduced time and costs

Benefits of Internet to software engineering - ANSWER led to development of huge systems, creation of app industry

software engineering eight ethic and professional practice principles - ANSWER Public, Client and employer, Product, Judgment, Management, Profession, Colleagues, Self

which one is wrong:

A. Software crisis is related to the difficulties in developing larger and more complex software systems

B. Four main software engineering activities are specification, debugging, coding and testing

C. All software systems should care about performance and reliability - ANSWER B

What is software specification? - ANSWER what should the system do, requirement/specification

Software development - ANSWER how can the specification be realized (software is designed and programmed)

what is software validation? - ANSWER where the software is checked to ensure that it is what the customer requires

TRUE OR FALSE

Distinction between development and evolution (maintenance) is becoming more and more relevant - ANSWER FALSE

It is becoming irrelevant since software often needs to change (fewer and fewer systems are completely new)

What is the code-and-fix model? - ANSWER 1. Write some code

  1. Fix the problems in the code

(poorly structured, poor preparation for testing and modification, expensive to fix)

What are the steps in the waterfall process? - ANSWER 1. Requirements definition

  1. System and software design
  2. Implementation and unit testing

4.Integration and system testing

  1. Operations and maintenance

TRUE OR FALSE

In the waterfall process you should move to the next phase ONLY when its preceding phase is completed and perfected - ANSWER TRUE

TRUE OR FALSE

The waterfall process is document driven - ANSWER TRUE

TRUE OR FALSE

We can estimate cost in waterfall by adding the estimated costs of each phase and adding a safety factor - ANSWER FALSE

Problem: we may not have enough information during the early phases to make accurate predictions about cost of later phases

The waterfall model is based on which engineering practice - ANSWER classical engineering practice

**which does not work for software product creation because:

  1. software development process is not well-understood
  2. scientific foundations are lacking
  3. software requirements change
  4. developers are humans!

What are the pros and cons of the waterfall process? - ANSWER Pros: Rigid and formal process (good for embedded systems and safety-critical systems)

Cons: Activities are isolated (late-changing requirements require a lot of rework)

Consequences of change - ANSWER Cost of change: include both rework and costs of implementing new functionality

They are discarded after development (they are not a good basis for a production system)

WHICH ONE IS WRONG

A. Systems should be developed using a managed and understood development process

B. Dependability and performance are key system characteristics

C. Effective software engineering process can be accurate estimation on cost and avoid all project over budget

D. Understanding and managing the software specification and requirements are important - ANSWER C

What is the incremental development and its advantages? - ANSWER process to grow software

Advantages: clients can see the system and give feedback, progress is visible,

some errors can be avoided, there is a working system at all times

MISE EN SITUATION

tu follow le waterfall model mais t'as fait une erreur au debut du process mais tas continuer avec les next steps du process. TES TU DANS MARDE? - ANSWER OUI TES DANS MARDE

With the waterfall model, the error may be noticed until acceptance testing pis le client a probablement pas vu le software run avant le acceptance testing phase :(

TRUE OR FALSE

Are user requirements prioritized? - ANSWER TRUE

the highest priority requirements are included in early increments

PROS AND CONS

Incremental delivery - ANSWER PROS

Agile Development - ANSWER method to reduce delivery time : specification, design and implementation and testing are inter-leaved, increments, frequent delivery, extensive tool support, minimal documentation (ex: XP, Scrum) / outputs from the development process are decided through a process of negotiation (PLANNING IS INCREMENTAL)

WHICH ONE IS WRONG

A. Agile development requires releasing software frequently

B. Agile development requires a lot of documentation

C. Plan-driven development requires concrete plans for each activity

D. Late changes are expensive in plan-driven development - ANSWER B

What is agile manifesto - ANSWER value:

  1. individuals and interactions OVER processes and tools
  2. working software OVER comprehensive documentation
  3. customer collaboration OVER contract negotiation
  1. responding to change OVER following a plan

What are the principles of agile methods? - ANSWER Customer involvement

incremental delivery

people not process

embrace change

maintain simplicity

tell me a problem about agile methods - ANSWER only for small or medium-sized product

WHICH ONE IS WRONG about agile development

A. The processes of specification, design and implementation are inter-leaved

B. The project management does not include planning to reduce overhead.

test-first development (you test, then you code),

pair programming

MISE EN SITUATION

ta companie a besoin de documentation pis tas une grande equipe quelle methode de travail tu vas utiliser? - ANSWER More plan-driven

MISE EN SITUATION

tas une petite equipe pis on sen cawliss de tout avoir documenter dans ton travail quelle methode de travail tu vas use? - ANSWER More Agile

COMPLETE THE SENTENCE

The customer chooses the stories for inclusion in the next release based on__________________ - ANSWER their priorities

Benefit of refactoring in XP - ANSWER Improves the understandability of software and thus, reduces the need for documentation

Name 3 examples of refactoring - ANSWER 1. re-organization

  1. renaming attributes and methods
  2. replacement of inline code with method calls

Which tool is used in test-first development to run all component tests each time that a new release is built - ANSWER Automated test harnesses (all previous and new tests are executed automatically when new functionality is added, thus checking that the new functionality has not introduced errors (AKA: regression testing))

difficulty in test-first dev - ANSWER difficult to judge the completeness of a set of tests, may not provide complete coverage