Term
What are the 5 key activities in an object-oriented design process? |
|
Definition
1. Understand and define the context and the external interactions with the system. 2. Design the system architecture. 3. Identify the principal objects in the system. 4. Develop design models. 5. Specify interfaces. |
|
|
Term
What are three techniques that may be used to identify classes? |
|
Definition
1. Use a grammatical analysis of a natural language description of the system to be constructed. Objects and attributes are nouns; operations or services are verbs 2. Use tangible entities (things) in the application domain such as aircraft, roles such as manager or doctor, events such as requests, interactions such as meetings, locations such as offices, organizational units such as companies, and so on 3. Use a scenario-based analysis where various scenarios of system use are identified and analyzed in turn. As each scenario is analyzed, the team responsible for the analysis must identify the required objects, attributes, and operations |
|
|
Term
How do design patterns contribute to reuse? |
|
Definition
abstraction level concept reuse - Using patterns means that you reuse the ideas but can adapt the implementation to suit the system that you are developing. |
|
|
Term
What are the 4 levels at which software reuse is possible? |
|
Definition
1. The abstraction level: you don’t reuse software directly but rather use knowledge of successful abstractions in the design of your software. 2. The object level: At this level, you directly reuse objects from a library rather than writing the code yourself. 3. The component level: Components are collections of objects and object classes that operate together to provide related functions and services. 4. The system level: At this level, you reuse entire application systems. |
|
|
Term
What is the purpose of software configuration management? |
|
Definition
change management: To support the system integration process so that all developers can access the project code and documents in a controlled way.
Includes version management (revision control), system integration (compiling/building), problem tracking (bug tracking) |
|
|
Term
Briefly describe the idea of open-source development? |
|
Definition
Approach to software development in which the source code of a software system is published and volunteers are invited to participate in the development process. |
|
|