Chapter 7: Software Engineering Flashcards
1
Q
The software engineering discipline
- Distinct from other engineering fields:
- CASE (Computer Aided Software Engineering) tools:
A
- Distinct from other engineering fields:
- Prefabricated components
- Metrics
- CASE (Computer Aided Software Engineering) tools:
- Project planning
- Project management
- Documentation
- Prototyping and simulation
- Interface design
- Programming
2
Q
The Software lifecycle
A
Development, Deploy, Maintenance and repeat!
3
Q
The development phase
A
Requirement analysis
Design
Implementation
Testing
4
Q
Software engineering methodologies
A
- Waterfall model
- Incremental model (extending repeatedly)
- Iterative model (refining repeatedly)
- Agile methods
5
Q
Scrum (1)
It’s the most popular agile development method
Different roles:
A
- Product Owner maintains a product backlog
- Development team 3-9 people
- Scrum master (not a traditional project manager)
6
Q
Scrum (2)
Workflow:
- Sprint:
- Sprint planning:
- Daily scrum:
- Sprint review:
- Sprint retrospective:
A
- Sprint: is an iteration of 2-4 weeks and should have some deliveries
- Sprint planning: planning the upcoming sprint
- Daily scrum: daily morning meeting (stand-up)
- Sprint review: the work of the sprint is presented and reviewed
- Sprint retrospective: continuous process improvements
7
Q
Modularity (1)
A
- Module: a manageable unit of software
- Modules vs
Procedures (imperative programming)
Functions (functional programming)
Objects (object-oriented programming)
Components (component architecture)
8
Q
- Coupling:
- Cohesion:
- Information hiding:
A
- Coupling: the linkage between modules (should be minimized):
control coupling
data coupling - Cohesion: the internal binding within a module (should be maximized)
Logical cohesion
Functional cohesion - Information hiding: restricting information to a module (should be achieved)
9
Q
Structure chart
A
- A structure chart shows the breakdown of a system to its lowest manageable levels. They are used in structured programming to arrange program modules into a tree.
10
Q
Data Flow diagram
A
- Data flow diagrams provide a graphical representation of how information moves between processes in a system. Data flow diagrams follow a hierarchy; that is, a diagram may consist of several layers, each unique to a specific process or data function
11
Q
Use Case diagram (UML)
A
- A UML is a way to summarize details of a system and the users within that system.
12
Q
Class diagram (UML) - relationships
A
- Class diagram describes the structure of classes and the relationships between classes.
- Entity relationship diagram describes entities and relationships between entities
13
Q
Design patterns
A
- Design patterns are “templates” for solving recurring problems
- Examples:
adapter pattern (adapts the interface)
decorator pattern (extends the interface)
14
Q
Software testing strategies
A
- Glass box testing (white box testing):
The tester is aware of the internal structure of the software (the source code)
Pareto principle: focus on the modules where the problems seem to be
basis path testing: each instruction in the software is executed at least once - Black box testing:
Tests that do not rely on knowledge about the internal structure of the software (tests from the user’s point of view)
Boundary value analysis
Beta testing (tested by external users)