Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 219 Final exam review.

Similar presentations


Presentation on theme: "CSE 219 Final exam review."— Presentation transcript:

1 CSE 219 Final exam review

2 List the properties of high quality software.
Correctness Efficiency Ease of use Reliability/robustness Reusability Maintainability Modifiability Testability Extensibility Scalability

3 What does UML stand for? Unified Modeling Language What are the two types of UML diagrams you had to make for HW 4? Class Diagrams Sequence Diagrams What other UML diagram did you discuss in class but did not make? Use Case Diagrams

4 What is a UML class diagram?
A diagram used to describe the classes needed for a piece of software. Shows all the class names, method signatures, variables, and class relationships. What is a UML sequence diagram? A diagram used to describe event handling. It shows method invocation chains. When using VioletUML to make a sequence diagram, what word is used to describe a method? Message

5 List the steps of the software development life cycle.
Requirements Analysis Design & Document Evaluate Design Code Test Profile Debug Deploy Maintenance

6 What does SRS stand for? What does SDD stand for?
Software Requirements Specifications What does SDD stand for? Software Design Document What two approaches to class design did you discuss? Top-down and Data-Driven

7 What does modularity mean?
If your classes are modular, they can be reused in future projects. To have modular code, it is best to separate functionality from presentation. Which arrow in a UML diagram denotes inheritance? Open triangle. It points toward the class it inherits from. What strategy is used for top-down class design? Use software decomposition to break the problem down into sub-problems, then make skeletal classes and methods for those sub-problems.

8 What makes a good modular design?
Connections between modules are explicit Connections between modules are minimized A module should have access to only as much information as it needs to work What is a blob class? A single class with many attributes and operations One problem is that the class then becomes too complicated to reuse or test.

9 What is Spaghetti Code? Code that is lacking any structure or organization Which design strategy did you use for HW 5? Top-Down or Bottom-up? Why? Top-Down You created the user interface with all the buttons. Then later added functionality for the buttons. Note that you could have done all of this without ever creating classes for the various components or a Page or ePortfolio.

10 What is bottom-up development?
First, develop all the classes that are used by the application. Then, develop the final product or the class that uses all of those pieces. Test functionality using drivers.

11 What is top-down development?
First, develop a module. Then, develop all the things that the module uses. Requires the use of stubs.

12 What is testing? What is verification?
a process of running a program on a set of test cases and comparing the actual results with expected results What is verification? a formal or informal argument that a program works as intended for all possible inputs

13 What is defensive programming?
What is validation? a process designed to increase confidence that a program works as intended What is defensive programming? writing programs in a way designed to ease the process of validation and debugging

14 What is exhaustive testing?
Consider all possible combinations of inputs What is Sampled testing? A small but representative subset of all input combinations. Black-Box Testing Glass-Box Testing

15 When doing black-box testing, what are test cases based on?
Test cases based on program’s specification, not on its implementation (see the homework grading sheets) When doing GLASS-box testing, what are test cases based on? the code of a program being tested

16 What does Junit use to perform its tests?
What is Junit? Unit-test framework for Java programs What does Junit use to perform its tests? Assertions

17 Should you optimize often?
NO! Only when necessary? How can you avoid needing to optimize often? When designing, choose efficient algorithms and data structures.

18 What are Program hot spots?
“90% of the time is spent in 10% of the code.”

19 What is a profiler? A profiler is a program that can track the performance of another program by checking information collected while the code is executing


Download ppt "CSE 219 Final exam review."

Similar presentations


Ads by Google