Chapter 1-3, 13 Flashcards
What are statements that define and qualify what the program needs to do?
Requirement statements define what the user needs and thus what the programs needs to do for the users
What are statements that constrain the ways in which the software can be designed and implemented?
Design constraints are imposed by the users on the ways in which the design and implementation must satisfy those constraints. An example may be a constraint on the choice of programming language for implementation.
Which type of requirement statement defines what the program needs to do?
Functional requirement statements as opposed to the non-functional requirement statements speak to the “functions”.
What requirements qualify the functional requirements and specify in what manner they need to be achieved?
Non-functional requirement statements qualify the functional requirements with additional characteristics such as performance.
What decisions are those taken by the software engineer about the best ways (processes, techniques, and technologies) to achieve the requirements?
Design decisions are made by software engineers to achieve the solution that will satisfy the requirements.
What type of testing refers to testing done by the clients (or somebody on their behalf), to make sure the program runs as specified?
Acceptance testing is usually performed by the users and clients prior to formally adopting the solution.
What is GUI?
GUI stands for Graphic User Interface where graphical icons are used in the interface to users.
What is CLI?
CLI stands for Command Line Interface where the user communicates with the system through text line of commands and text line of responses.
List three of the typical kinds of non-functional requirements.
1) Performance related requirements number of transactions per second,
2) Real-time processing where a certain processing or response must be made within a given time frame,
3) Extensible and modifiable is another non-functional requirements.
Define the depth versus the breadth issue in software complexity.
Depth problem addresses the complexity and relationships among the components or items. These relationships may be in the form of sharing data, transfers of control among the components, or some combination of data and control linkage.
Breadth problem refers to the number of and variety of components or items. The more there are, the worse the breadth problem.
The breadth of software complexity usually refers to “the number of” functionality, components, interfaces, etc. of the software while the depths of the software complexity refers to the “relations and interactions” among these functions, components, etc.
List two technical concerns in developing large systems.
Large system requires software engineers to consider many aspects of development, including a) architecture and design decomposition, b) choices of language, database, network, middleware, and c) the process and methodologies to be used for development.
What is the maximum number of communication paths for a team size of 20 people?
SUM (n-1), where n =20, it would be 19
List four factors that should be considered in deciding how many post-release people will be needed.
The amount of post-release support personnel that would be needed is based on several factors-
1) how any customers/users are expected;
2) the quality of the product at release time in terms of known bugs that are still in the product;
3) amount of user training that was provided before release;
4) projected number of problems and changes that may be arriving, and
5) how well trained are the support personnel.
List two key reasons that have caused both software project successes and failures.
Some reasons that impact software project success and failures include:
-amount of user involvement
-clarity of requirements
-proper planning and changes to requirements
From the definition of software engineering, list three areas that software engineering must touch upon.
Software engineering touches on:
-technical business processes
-specific methodologies and techniques
-product characteristics and metrics
-people, skill, and team work
-project coordination and management