Vous êtes sur la page 1sur 19

CSE 219

FINAL EXAM REVIEW


List the properties of high quality software.
Correctness
Efficiency
Ease of use
Reliability/robustness
Reusability
Maintainability
Modifiability
Testability
Extensibility
Scalability
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
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
List the steps of the software development
life cycle.
Requirements Analysis
Design & Document
Evaluate Design
Code
Test
Profile
Debug
Deploy
Maintenance
What does SRS 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
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.
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.
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.
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.
WHAT IS TOP-DOWN DEVELOPMENT?

First, develop a module.


Then, develop all the things that the module uses.
Requires the use of stubs.
WHAT IS TESTING?

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
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
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
WHEN DOING BLACK-BOX TESTING, WHAT ARE TEST
CASES BASED ON?
Test cases based on programs 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


WHAT IS JUNIT?
Unit-test framework for Java programs

WHAT DOES JUNIT USE TO PERFORM ITS TESTS?


Assertions
SHOULD YOU OPTIMIZE OFTEN?

NO! Only when necessary?

HOW CAN YOU AVOID NEEDING TO OPTIMIZE OFTEN?

When designing, choose efficient algorithms and data structures.


WHAT ARE PROGRAM HOT SPOTS?

90% of the time is spent in


10% of the code.
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

Vous aimerez peut-être aussi