Documente Academic
Documente Profesional
Documente Cultură
K. Macleish
Requirements
The last column is a review of the Lifecycle Model, an approximation of what I look for in a homework assignment (put in
context of the Software Development Lifecycle Model), and the current updated version – “stepwise refinement.”
Help the customer determine what he/she Are directions understood and followed?
wants! - what the program is supposed to do
Sometimes have to help the customer! - input/output requirements
- formatting required
Document it, including - correct name for program
- I/O requirements Is it handed in on the due date?
- Hardware requirements
- Speed (throughput) requirements
- Software requirements
- Functionality desired
Implementation Computer Science
High Level Design K. Macleish
Detailed
1. Design
High Level Design Is there overall logic to the program?
Based on Req/Spec Document! (Work out on paper, flow chart?)
Design overall logic Are data structures correct?
Break up project into classes (ie, Is it partitioned into classes correctly?
subprojects) that can be Are global variables used rarely, if at all?
individually coded, tested, and Is information and functionality “hidden” –
integrated. Try to use existing Java not external but rather
classes or make subclasses. localized to classes as much
as possible with well-defined
2. Detailed Design assess through methods?
Design each individual module or class
Should have correct functionality and Are constants used so that ranges can
interfaces, but implementation is be easily changed?
“hidden” (does not affect anything else) Are loops used in the right places?
Are system functions used when
appropriate?
3. Implementation (Coding) For our class
Does it do what the customer wants? Does it work with the sample input that
(Validation) System Testing was handed out?
Does it do what it is supposed to? Does it work with additional input?
(Verification) Does it work with “border cases?”
“Black Box” Testing - - null input
just input --> output - large amounts of data
“White Box” Testing - look at internal - handle errors as specified
code - handle decision points
NOTE – The Design/Code/Test phases are often combined into a single iterative phase called “stepwise refinement”
- also known as “design a little, code a little, test a little”
Computer Science
K. Macleish
- can do this because of good software development tools, like Borland’s Interactive Development Environment.
- good because the customer can see progress and also refine requirements before too far along.