ANSWERS(RATED A+)
Ad-Hoc Development - ANSWERAn informal and unstructured approach to creating
software or applications. In this method, developers typically write code as needed
without adhering to formal methodologies or predefined plans. It often lacks
standardized practices, documentation, and a systematic development process. Ad-
hoc development may work for small and simple projects, but it is generally not
suitable for larger, more complex, or long-term software projects where organization,
planning, and quality control are essential for success.
Accidental Complexity - ANSWERrefers to the complexities and challenges that
arise during the development process that are not inherent to the problem being
solved but are instead caused by the tools, methodologies, or technologies used in
the development. These complexities are considered accidental because they are
not essential to the nature of the software or its intended functionality. They are
issues that developers encounter due to the choices they make or the tools they use,
rather than the inherent complexity of the problem domain itself.
Essential Complexity - ANSWERrefers to the inherent, fundamental, and
unavoidable complexity of a problem or task that must be addressed during the
development of a software system. This complexity is tied to the nature of the
problem itself and is not influenced by the tools, methodologies, or technologies
used in the development process. In other words, essential complexity is the
complexity that arises from the requirements and characteristics of the software,
rather than from external factors.
External Software Quality: 5 Points - ANSWERrefers to the quality of the software
from the perspective of the stakeholders/users/customers.
Functionality - Is the software functionally complete? That is, does it do everything it
is supposed to do?
Reliability - What is the capability of the software to maintain performance under
certain conditions over a certain period of time?
Usability - How much effort is needed for a customer to use software?
Efficiency - When operating, what resources are used, and to what extent, by the
software?
Portability - How able is the software to be transferred from one environment to
another?
Internal Software Quality: 5 Points - ANSWERRefers to the quality of software from
the perspective of the developers.
, Analyzability - To what extent can the software construction be understood?
Changeability - The effort it requires to makes changes to the software.
Stability - The extent to which changes in one part of a software construction affect
other parts
Reusability - The extent to which parts of the construction can be reused in other
parts of the construction or in other software projects.
Testability - The extent to which the software can be tested to find faults or defects in
the software construction.
Software Entropy - ANSWERthe phenomenon where as a software system ages it
becomes increasingly difficult to modify. This is due to the scale and complexity of
the codebase, bad design, outdated systems, etc.
Compilation vs. Interpretation - ANSWERIn both cases, instructions are executed on
the target processor.
A compiler generates instructions by analyzing the source code in its entirety and
optimizes the generated code based on the entire source code and specific
optimizations.
With a compiler, the generation of the instructions is (generally) independent of the
execution of the target program.
An interpreter typically reads one "line" at a time.
An interpreter must read the source code and generate instructions as it is executing
the target program.
It may take several operations for an interpreter to accomplish the same operation a
compiler would have generated one machine instruction for.
.java - ANSWERA file that contains source code written in the Java programming
language.
.class - ANSWERA binary file that contains bytecode, which is a low-level, platform-
independent representation of a Java program. These files are generated by a Java
compiler when you compile your Java source code files (.java files). They are
executable by the JVM
Exception Test - ANSWERException test cases are test cases that cannot be
meaningfully executed correctly, and should throw Exceptions.
Robustness Test - ANSWERRobustness test cases are cases that are syntactically
valid but semantically meaningless. Often times in these cases, it may be unclear
how they are intended to behave, and it may be worth checking the specification
itself.