chapter 12 Flashcards
software development life cycle (SDLC)
a process of developing a program, set out in defined stages. the five stages are analysis, design, coding, testing, and maintenance.
analysis
the problem is clearly defined, and a solution is planned. a program specification is produced. you decide on how to solve the program (top-down or bottom-up)
design
an identifier table is created, showing variable names, data types & explanations/descriptions. data structures are defined. the algorithm is planned using pseudocode, flowcharts and structure charts and the program is split into its modules
coding
you choose a suitable high-level language and create code and programs for each module.
testing
uses a variety of testing strategies to ensure the program works as stated in the specification. eliminates syntax, logic and run-time errors. dry runs, test plans and trace tables are created
maintenance
occurs once the program is in full operation i.e. during use and ensures it continues to work correctly. deals with software upgrades, bug fixes, and repairs. there are three types of maintenance: adaptive, corrective, and perfective
three development models
waterfall, iterative, RAD
waterfall
linear, sequential model of development. Each stage is completed and signed off before the next stage begins. Fully documented at each stage.
iterative
development starts with a small subset of program requirements, and repeated reviews are used to identify further requirements until a complete program is eventually made. stages 2-3 are repeated.
rapid application development (RAD)
developing different parts of the program in parallel by teams of programmers. uses prototyping and high customer involvement
finite state machine
A finite state machine (FSM) is a machine that consists of a fixed set of possible states, inputs to change the states, and a set of outputs.
state transition diagram
state-transition table gives information about inputs and events
* states are represented as circles
* transitions are represented as arrows
* events are represented as arrow labels
* stopped state is indicated by a double circle
accepting state
state a system reaches when input is valid
event
something that can happen in a system that may trigger the transition to another state
guard
condition a condition that must be met for a transition to occur