1/48
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What are the 5 steps of creating software?
Establishing requirements
Creating a design
Implementing the code
Testing the implementation
Maintaining the implement
Explain Establishing requirements (Steps of creating software) (2)
Specifying what a program must accomplish
Descriptions of UI
Initial requirements are critiqued/modified/expanded
What does careful attention in the “establishing requirements” stage save?
Time and expense
Explain Creating a Design (Steps of creating software) (2)
Specifies how a program will accomplish its requirements.
Includes 1 or more algorithms.
Algorithms may be expressed in pseudocode
What does design establish in object-oriented development? (3)
Classes & Objects. Methods & Data required. Modeled using UML diagram
Explain Implementing The Code (Steps of creating software) (2)
Least creative step
Focuses on style guidlines and documentation
Explain Testing The Implementation (Steps of creating software) (1)
Testing execution with various inputs to find errors
What is debugging?
Discovering causes of errors and fixing problems
What is unit testing?
Testing individual methods
What is integration testing?
Testing how different classes work together
What is regression testing?
Used to ensure existing functionality is maintained after changes
What is performance testing?
Checking speed/security/usability
Explain MaintainingThe Implementation (Steps of creating software) (2)
Modifying code to improve software by fixing deficiencies and adding features
What does UML Digrams stand for?
Unified Modelling Language Diagrams
Function of Use Case Diagrams
Indentifies what the system must do before deciding how to build it
Function of Activity Diagrams
Describe the flow of actions (sequential and parallel)
Function of State Diagrams
Describe the different states of a component and how it changes based on events
Function of Class Diagrams
Detail class attributes (data) and behaviours (methods)

What kind of diagram is this?
Activity diagram
What is a decision node?
Diamond shape. Allows for different logic paths
What is encapsulation?
Client sees result while code handles math and logic

What diagram is this?
State diagram

What diagram is this?
Use case diagram
What are actors? (3)
Humans. Organisations. External Appliances
Function of class diagrams
Defines static state and dynamic behaviour
What is “this” used for in code?
Refers to current object instance and used to distinguish instance fields and local parameters
What does “this.variable” in code referred to?
Disambiguating shadowed variable
Can class diagrams show multi-class interactions?
Yes
What is Class Communication?
Classes interact via well-defined public interfaces
What is low-coupling?
Changes in one class do not break other communicating classes if the interface remains consistent
What is The Maintenance Trap?
Bad design problems usually surface during the maintenance phase when a new feature or bug fix is required
What is used to evaluate quality?
Coupling and Cohesion
What is coupling?
Degree of interconnectedness between classes
Is high coupling good or low coupling?
Low coupling
What is high coupling?
When changes in one class necessitate changes in several others
Why is high coupling bad (2)
Creates ripple effect. Difficult to maintain and test
Benefit of low coupling?
Enhances reusability and readability
What reduces coupling between classes?
Encapsulation
What should objects be?
Self governing: changes to state only occur via object’s own methods
What is the Internal View?
Hidden properties and logic (implementation)
What is the External View?
Services provided to others (interface)
What do visibility modifiers help with?
Encapsulation
Private accessibility modifier
Accessible only inside the class (protects integrity)
Public accessibility modifier
Accessible from anywhere (defines interface)
What is cohesion?
The diversity of tasks a code unit handles
What is low cohesion?
One unit handles many unrelated tasks
Negative of low cohesion
Dificult to understand/reuse/maintain
What is high cohesion?
One unit does one cohesive task
How does high cohesion save time during the management phase? (3)
Facilitates the reuse of methods.
Reduces regression as changes are isolated preventing them from affecting other parts of the code.
Robust evolution (makes adding new features easier)