COMP3322 Software Engineering Mid-term study guide
Which of the following software processes has very little task overlap and no process iteration? waterfall extreme programming rational unified process rapid application development
waterfall
For what types of software systems are agile approaches to development particularly likely to be successful? (free response)
• Small and medium-sized software product development.• Custom software development in an organization where there is a clear commitment from customers to become involved in the development process.
______________ is the process of restructuring code to improve some of the nonfunctional attributes of the code.
code refactoring
_________________is a measure of the amount of work a team can tackle during a single sprint and is a key metric in Scrum.
team velocity
what is Iterative development?
software development approach. The repetitive act of designing, development and testing until the final product.
what goes into software estimates?(hint 5 things)
1. Hardware 2. Training 3. Efforts cost 4. software 5. travel
5 Essential Attributes of Good Software
1. Maintainability 2. Efficiency 3. Security 4. Dependability 5. Acceptability
4 Issues that affect Software
1. Scale 2. Security and trust 3. Business and social change 4. Heterogeneity(its uniqueness or lack thereof)
4 types of software applications
1. Stand alone app 2. Embedded system 3. Data collection 4. Batch control (controlling large amounts of information or data)
Two kinds of Software Products
1. generic software 2. customized software
the 6 agile cycle stages
1. plan 2. design 3. develope 4. test 5.release 6. feedback
software process (4 fundamental activities)
1. specification 2. design and implementation 3. validation 4. Evolution
4 parts of Extreme Programming
1. user story - a short story that tells the programmer what the program should do 2. test-first development - writing out tests before programming 3. code refactoring - fixing code but not restructuring the original functionality 4. pair programming - programming with 2 people, one writes and one reviews
what is a gantt chart?
A Gantt chart illustrates the project schedule and timeline.
Spiral model
A circular model that starts with objective identification then goes to risk and analysis then to development and test then to review and evaluation
The waterfall model of software development is: A) A reasonable process choice when requirements are well defined. B) A good process choice when a working system is required quickly. C) An old fashioned model that is rarely used any more. D) The best approach to use for projects with large development teams.
A reasonable process choice when requirements are well defined.
rapid application development RAD
A software development method that starts with requirement planning then to user design which cycles through prototype creation, testing and refining until completed then goes to feedback finally to final product
Why is ideating important in the design thinking process? A) It moves the design team from testing to implementing. B) It moves the team from the problem to deployment. C) It moves the team from empathy to defining the problem. D) It moves the team from the problem(s) to finding a solution to the problem(s).
D) It moves the team from the problem(s) to finding a solution to the problem(s).
________________ are software systems that control and manage hardware devices. A) Version control systems B) Emergent control systems C) Batch control systems D) Embedded control systems
Embedded control systems
T/F An example of code refactoring is adding new features to satisfy a customer requirement discovered after a project is shipped.
FALSE
T/F For generic software, the specification of what the software should do is owned by the customer for the software, and they make decisions on software changes that are required.
FALSE
what is Incremental delivery?
Incremental delivery is an approach to software development where some of the developed increments are delivered to the customer and deployed for use in their working environment.
what is Incremental development?
Incremental development is a method of building software products in which a system is built piece-by-piece
In the _______________ phase of Design Thinking, the team produces inexpensive, scaled-down versions of the product (or specific features found within the product) to investigate the ideas they've generated. A) define B) prototype C) empathize D) test
Prototype
what is risk management?
Risk management is the process of identifying, assessing and controlling threats to an organization's capital and earnings.
The ________________ includes risk analysis during each iteration of the software development process. A) Rapid Application Development (RAD) Model B) Rational Unified Process (RUP) C) V-Model D) Spiral Model
Spiral Model
T/F Software costs often dominate computer system costs as the software costs on a PC are often greater than the hardware cost.
TRUE
Impact of the Internet/Web on Software Engineering
The Internet has made it easier to collaborate, innovate and add value.
V-model
The V-model is a software development process model that is an extension of the waterfall model. It emphasizes the verification and validation of software at each stage of development, including requirements gathering and analysis, design, implementation, and testing.
Waterfall Model
The waterfall model is a linear and sequential software development process model that follows a predefined set of stages in a specific order. The stages are typically requirements gathering and analysis, design, implementation, testing, deployment, and maintenance. Each stage must be completed before moving on to the next stage
The two ways of project planning and scheduling?
Top down(planning out the tasks) and bottom up(having the due date and planning backwards)
The _______________ includes a testing/acceptance activity in parallel with each phase of the software development life cycle.
V-Model
what is a PERT chart
a PERT chart displays task dependencies and task overlap.
Extreme Programming advocates writing test cases at which point in the process? A) during the sprint B) before code development C) after code development D) during code development
before code development
You should interview potential end-users to gain an understanding of their needs during the _______________ phase of Design Thinking. A) empathize B) ideate C) define D) elaboration
empathize
In the _______________________ software process, developers are expected to refactor their code continuously. A) RAD B) waterfall C) extreme programming D) spiral
extreme programming
true or false? The ACM/IEEE Code of Ethics outlines specific penalties for software engineers in cases where principles of the code are violated.
false
The _________________ is a vital member of a Scrum team who provides clarity to the team about the product's vision and goal. A) product owner B) project manager C) scrum master D) front-end developer
product owner
The _________________ process/framework promotes having an on-site customer as part of the project team. A) waterfall B) v-model C) spiral D) scrum
scrum
In Scrum, the ______________ is responsible for removing any impediments/problems from the development team and fostering an environment for the team to perform well.
scrum master