Professional Documents
Culture Documents
- System context models and interaction models present complementary views of the
relationships between a system and its environment
We talked about how UML diagrams and architectural models are applied to “design and
implementation” in chapter 7. If you need more information about these diagrams and
architectures, refer to chapters 5 & 6.
Difference between Structural and dynamic models.
- Structural describes the static structure of the system while the dynamic describes the
dynamic interaction between objects.
How observer pattern works.
- defines one to many dependencies(relationships) between objects. When one object
changes state, all of its dependencies are notified and updated automatically.
Advantages and disadvantages of software reuse.
- Disadvantages: Costs and schedule pressure mean that this approach became
increasingly unviable, especially for commercial and Internet-based systems.
Know the descriptions of software reuse, configuration management, and host target
development.
- Software reuse: The only significant reuse or software was the reuse of functions and
objects in programming language libraries.
- Configuration management: general process of managing a changing software system.
- Host target development: Most software is developed on one computer (the host), but
runs on a separate machine (the target).
- Version management: where support is provided to keep track of the different versions
of software components.
- System integration: where support is provided to help developers define what versions
of components are used to create each version of a system.
- Problem tracking: where support is provided to allow users to report bugs and other
problems, and to allow all developers to see who is working on these problems and
when they are fixed.
Chapter 8:
o You expect the system to perform correctly using a given set of test cases that
reflect the system’s expected use.
o The test cases are designed to expose defects. The test cases in defect testing can
be deliberately obscure and need not reflect how the system is normally used.
- Development testing, where the system is tested during development to discover bugs
and defects.
- Release testing, where a separate testing team tests a complete version of the system
before it is released to users.
- User testing, where users or potential users of a system test the system in their own
environment.
Three stages of development testing: Unit testing, component testing, and system testing.}
1. Unit testing, where individual program units or object classes are tested. Unit
testing should focus on testing the functionality of objects or methods.
2. Component testing, where several individual units are integrated to create
composite components. Component testing should focus on testing component
interfaces that provide access to the component functions.
3. System testing, where some or all the components in a system are integrated and
the system is tested as a whole. System testing should focus on testing component
interactions.
Testing strategies: partition testing and guideline-based testing.
- Partition testing, where you identify groups of inputs that have common
characteristics and should be processed in the same way.
- Guideline-based testing, where you use testing guidelines to choose test cases.
Test-driven development and extreme programming(XP).
- helps programmers clarify their ideas of what a code segment is actually supposed to
do.
Requirement testing and performance testing.
- Alpha testing
where a selected group of software users work closely with the development team
to test early releases of the software.
- Beta testing
where a release of the software is made available to a larger group of users to
allow them to experiment and to raise problems that they discover with the
system developers.
- Acceptance testing
Customers test a system, using their own data, and decide if it should be accepted
and ready to be deployed in the customer environment. Primarily for custom
systems. Acceptance implies that final payment should be made for the software.
Chapter 9:
Local and global impacts of computing solutions on individuals, organizations, and society
• Know the positive and negative impact of computing solutions
Positive: Employment benefits, higher quality products, aid to the handicapped, improved safety,
better information retrieval