/
Software Engineering Principles
Save to my account
Sign up
Software Engineering Principles
Software Engineering Principles
Study
1
Question
What is the primary engineering approach used to develop software?
Page 3
Answer
Software engineering is an engineering approach that applies systematic collection of past experience including techniques, methodologies, and guidelines to software development.
2
Question
How does the IEEE define software engineering?
Page 4
Answer
IEEE defines software engineering as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
3
Question
What are some common issues contributing to the 'Software Crisis'?
Page 5
Answer
Software products often fail to meet user requirements, are expensive, are difficult to alter, debug, and enhance, are often delivered late, and use resources non-optimally.
4
Question
How did the relative costs of hardware and software change between 1960 and 2018?
Page 6
Answer
In 1960, hardware costs were significantly higher than software costs, but by 2018, software costs, such as licenses for rational suites, were substantially more expensive than hardware like laptops.
5
Question
What are the key virtues that make software preferable over entirely hardware systems?
Page 7
Answer
Software is relatively easy and faster to develop and change, and it consumes no space, weight, or power, unlike hardware.
6
Question
What is the relationship between software complexity and the ease of changing it?
Page 7
Answer
The more complex the software becomes, the harder it is to change, and successive changes further increase its complexity.
7
Question
According to the Standish Group Report, what percentage of software projects are considered successful?
Page 8
Answer
Only 28% of software projects are classified as successful, while 49% are delayed or experience cost overruns, and 23% are cancelled.
8
Question
Which factors are identified as contributing to the ongoing software crisis?
Page 9
Answer
Larger problems, poor project management, lack of adequate training in software engineering, increasing skill shortage, and low productivity improvements contribute to the software crisis.
9
Question
How does technology development pattern transition from 'Art' to 'Engineering'?
Page 10
Answer
Technology moves from 'Art' (esoteric, unorganized use of past experience) to 'Craft' (unorganized use of past experience) and finally to 'Engineering' (systematic use of past experience and scientific basis).
10
Question
What is exploratory software development?
Page 12
Answer
Exploratory development, also known as build and fix, is a style where a 'dirty' program is quickly developed, and bugs are fixed as they are noticed, similar to how a junior student develops programs.
11
Question
Why is the exploratory (build and fix) development style not suitable for non-trivial software projects?
Page 14
Answer
The exploratory style causes effort, time, and cost to grow exponentially with program size, and it typically results in unmaintainable code that is difficult to use in team environments.
12
Question
How does human cognition, specifically memory, explain the exponential growth of effort with software size?
Page 16
Answer
Human memory has short-term and long-term components. When program size exceeds the short-term memory capacity (around 7 items), the cognitive effort to manage interactions and details escalates exponentially.
13
Question
What are the two distinct parts of human memory as described by Miller (1956)?
Page 17
Answer
Human memory is thought to be made up of two distinct parts: short term memory and long term memory.
14
Question
How can an item be retained longer in short-term memory despite decay or displacement?
Page 20
Answer
An item can be retained longer in short-term memory by recycling, which prevents it from getting lost due to decay with time or displacement by newer information.
15
Question
What is an 'item' in the context of human memory?
Page 21
Answer
An item is any set of related information, which can be a single character, a digit, a word, a sentence, a story, or even a picture.
16
Question
What is 'chunking' in human memory?
Page 21
Answer
Chunking occurs when several different items are related together, allowing information that would normally occupy multiple places to take only one place in memory.
17
Question
Why is the number 110010101001 harder to remember than its octal form 6251?
Page 22
Answer
The octal form 6251 is easier to remember because it allows the creation of 'chunks' of three binary items each, reducing the number of distinct items to store in short-term memory.
18
Question
What is the 'Magical Number 7' related to human memory?
Page 24
Answer
The 'Magical Number 7' refers to the idea that humans can easily understand and accommodate about seven or fewer items in their short-term memory.
19
Question
How does the 'Magical Number 7' relate to the difficulty of program development?
Page 25
Answer
When the number of independent variables in a program exceeds seven, it quickly surpasses an individual's grasping power, requiring a disproportionately large effort to master the problem.
20
Question
How do software engineering principles help to maintain an almost linear effort-to-size curve in program development?
Page 26
Answer
Software engineering principles extensively use techniques specifically targeted to overcome human cognitive limitations, preventing the exponential growth of effort with problem size.
21
Question
What are the two important principles profusely used by software engineering techniques to overcome human cognitive limitations?
Page 27
Answer
The two important principles are Abstraction and Decomposition.
22
Question
What is the definition of abstraction in the context of problem-solving?
Page 29
Answer
Abstraction simplifies a problem by omitting unnecessary details, focusing attention on only one aspect while ignoring irrelevant information.
23
Question
What is another term for abstraction, particularly when developing a simplified view of a problem?
Page 29
Answer
Abstraction is also called model building, as it involves creating simplified representations.
24
Question
Why is referring to various types of maps an example of using abstraction to understand a country?
Page 30
Answer
A map is an abstract representation that simplifies the country by focusing on specific aspects like geography or political boundaries, omitting overwhelming details like individual citizens or trees.
25
Question
Can a single problem have multiple abstractions?
Page 32
Answer
Yes, several abstractions of the same problem can be created, each focusing on a specific aspect and ignoring the rest to help understand different facets of the problem.