








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
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
1 / 14
This page cannot be seen from the preview
Don't miss anything!
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
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
(poorly structured, poor preparation for testing and modification, expensive to fix)
What are the steps in the waterfall process? - ANSWER 1. Requirements definition
4.Integration and system testing
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:
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)
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
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 :(
Are user requirements prioritized? - ANSWER TRUE
the highest priority requirements are included in early increments
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)
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:
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
ta companie a besoin de documentation pis tas une grande equipe quelle methode de travail tu vas utiliser? - ANSWER More plan-driven
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
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
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