Shared Flashcard Set

Details

Chapter 9.6 Terms
Invitation to Computer Science (5th Ed.)
29
Computer Science
Undergraduate 1
05/05/2012

Additional Computer Science Flashcards

 


 

Cards

Term
Software development life cycle
Definition
the overall sequence of steps needed to complete a large-scale software project
1. Before implementation: feasibility study, problem specification, program design, algorithm selection or development and analysis (10-20% of total time)
2. Implementation: coding, debugging (25-40% of total time)
3. after implementation: testing verification and benchmarking, documentation, maintenance (40-65% of total time)
Term
software engineering
Definition
-applied to large scale software development
-entail estimation of costs and budgets, personnel management, and scheduling issues
Term
feasibility study
Definition
-1st step before implementation in the software development life cycle
-evaluates a proposed project and compares the costs and benefits of various solutions
-purpose is to make all project stakeholders aware of the costs, risks, and benefits of various development
Term
feasibility document
Definition
-expressed the resulting recommendations at the end of the feasibility study
-can be a very complex process involving considerations that are the provinces of business, law, management, economics, psychology, and accounting, as well as computer science
Term
Problem Specification
Definition
-2nd step before implementation in the software development life cycle
-involves developing a clear, concise, and unambiguous statement of the exact problem the software is to solve
-the software developers and their customers must resolve each and every inconsistency, ambiguity, and gap
Term
problem specification document
Definition
-commits the final and complete problem specification to paper and guides the software developers in all subsequent decisions
-describes exactly how a program behaves in all circumstances not only in majority cases, but even under the most unusual conditions
-includes a description of the data expected to be input and what results should be computed and how these results are to be displayed as output
Term
Program Design
Definition
-3rd step before implementation in the software development life cycle
- the time to plan how the program is to be done
Term
divide-and-conquer/top-down decomposition
Definition
-program design phase, traditional approach
-tasks are broken down into subtasks which are broken down into sub-subtasks and so on until each piece is small enough to code comfortably
Term
program design document
Definition
breaks the problem down into subtasks and sub-subtasks, or into various classes. May be documented graphically through structure charts or class diagrams that give properties and functions of each class. Must be a complete specification of each module (what it is to do, what info it needs to know in order to do it, and what the rest of the program needs to get from it when it is done)
Term
algorithm selection or development, and analysis
Definition
-4th step before implementation in the software development life cycle
-once the various subtasks have been identified, algorithms must be found to carry them out. If there is a choice of algorithms, it must be determined which is more suitable for the particular task and which is more efficient
-documentation includes a description of the algorithms chosen or developed, perhaps in pseudocode, and the rationale for their use
Term
coding
Definition
-1st step in implementation in the software development life cycle
-the process of translating the detailed designs into computer code. Should be a routine job is design is carefully developed
-documentation is a written listing of the program code itself
Term
debugging
Definition
-2nd step in implementation in the software development life cycle
-the process of locating and correcting program errors and it can be a slow and expensive operation that requires as much effort as writing the program in the first place
-documentation includes notes on the problems found and on how the code was changed to solve them
Term
syntax error
Definition
-debugging
-errors that occur because a program statement fails to follow the correct rules of syntax, which makes the statement unrecognizable by the compiler and results in an error
-accompanied by messages from the compiler that help pinpoint the problem
Term
runtime errors
Definition
-debugging
-occur only when the program is run using certain sets of data that result in some illegal operation, such as dividing by 0
-system software provides messages to pinpoint these errors
Term
logic errors
Definition
-debugging
-errors in the algorithm used to solve the problem. Some incorrect steps result in wrong answers are performed, but there are no error messages to help pinpoint the problem
Term
testing, verification, and benchmarking
Definition
-1st step after implementation in the software development life cycle
-approaches to confirming a program's correctness
-at the completion there should be a correct and efficient program that is ready for delivery
-documentation is committed to paper as evidence that the program met its specifications
Term
empirical testing
Definition
-testing, verification, and benchmarking
-design a special set of test cases and run the program using test data. Test data that is carefully chosen to exercise all the different logic paths through a program can help uncover errors
Term
unit testing
Definition
-testing, verification, and benchmarking
-takes place on each module (subtask code) as it is completed
Term
integration testing
Definition
-testing, verification, and benchmarking
-as tested modules are combined to work together, this is done to see that the modules communicate the necessary data between and among themselves and that all modules work together smoothly
Term
program verification
Definition
-testing, verification, and benchmarking
-used to prove that if the input data to a program satisfies certain conditions, then, after the program has been run on these data, the output satisfies certain other conditions
-can be difficult and time consuming
Term
benchmarking
Definition
-testing, verification, and benchmarking
-means running the program on many data sets to be sure its performance falls within those required limits.
Term
documentation
Definition
-2nd step after implementation of the software development life cycle
-all of the written material that makes a program understandable, goes on throughout the whole life cycle
-includes internal, external, and technical
Term
internal documentation
Definition
-documentation
-part of the program code itself
-good forms of this consist of choosing meaningful names for the program identifiers, using plenty of comments to explain the code, and separating the program into short modules, each of which does one specific subtask
Term
external documentation
Definition
-documentation
-consists of any materials assembled to clarify the program's design and implementation
Term
technical documentation
Definition
-one form of final, finished documentation
-enables programmers who later have to modify the program to understand the code
-structured charts, class diagrams, descriptions of algorithms, and program listings
Term
user documentation
Definition
-one form of final, finished documentation
-helps users run the program, includes online tutorials or help systems that the user can bring up while running the program, and (less often) written user's manuals
Term
Program maintenance
Definition
-3rd step after implementation in the software development life cycle
-the process of adapting an existing software product, may consume as much as 65% of he total software development life cycle budget.
-easier if the program have been well planned, carefully designed, well coded, thoroughly tested, and well documented
Term
Integrated Development Environment (IDE)
Definition
-most programming languages are now presented in this
-lets the programmer perform a # of tasks within the shell of a single application program, rather than having to use a separate program for each task
-modern form of this provides a text editor, a file manager, a compiler, a linker and loader, and tools for debgging
Term
rapid prototyping
Definition
allows miscommunications between the user and the programmer to be identified and corrected early in the development process
Supporting users have an ad free experience!