Software Development and Configuration Management
43 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the main advantage of deploying components on the same platform or physically close platforms?

  • Improved hardware compatibility for components.
  • Enhanced security by isolating components.
  • Reduced communication delays between components. (correct)
  • Simplified software installation processes.
  • Which of the following is NOT a characteristic of open source development?

  • Development is typically driven by a single organization. (correct)
  • Volunteers contribute to the software's development.
  • The focus is on collaborative improvement and innovation.
  • Source code is freely available for modification and distribution.
  • What is the primary goal of configuration management in software development?

  • To ensure that all developers have access to the latest version of the project code.
  • To track and manage the changes made to the project code.
  • To provide a centralized platform for bug reporting and problem resolution.
  • To streamline the creation and deployment of software systems. (correct)
  • What is the primary goal of the Free Software Foundation?

    <p>To ensure that software source code is readily available for users to examine and modify. (D)</p> Signup and view all the answers

    What is a key function of version management in configuration management?

    <p>Tracking the changes made by individual programmers. (D)</p> Signup and view all the answers

    Which of these is an example of an open source operating system?

    <p>Linux (A)</p> Signup and view all the answers

    Which configuration management activity focuses on defining the specific versions of components used in a system build?

    <p>System integration (A)</p> Signup and view all the answers

    In the context of software development, what is the primary purpose of configuration management?

    <p>To track and manage different versions of software components. (B)</p> Signup and view all the answers

    Which of these systems is NOT considered an open source product?

    <p>Microsoft Office (B)</p> Signup and view all the answers

    What is the role of problem tracking in configuration management?

    <p>Reporting and tracking bugs and other issues encountered in software development. (D)</p> Signup and view all the answers

    What is the definition of a 'development platform' in the context of host-target development?

    <p>The environment where developers create and test the software. (A)</p> Signup and view all the answers

    Which of these is NOT a cost associated with software reuse?

    <p>The cost of developing new features for the reusable software. (D)</p> Signup and view all the answers

    What is a key element of an IDE?

    <p>A set of tools to support testing and debugging. (B)</p> Signup and view all the answers

    What is a key difference between a development platform and an execution platform in host-target development?

    <p>The development platform often has different software configurations. (C)</p> Signup and view all the answers

    What is the main reason for the emergence of software reuse as a dominant development approach?

    <p>The desire to reduce development costs and time. (A)</p> Signup and view all the answers

    What does the acronym IDE stand for?

    <p>Integrated Development Environment (A)</p> Signup and view all the answers

    Which level of software reuse involves directly incorporating objects from a library into your software?

    <p>Object level (B)</p> Signup and view all the answers

    Which of the following scenarios would benefit from deploying components on separate platforms?

    <p>Components that require high availability and redundancy. (C)</p> Signup and view all the answers

    Which of the following is NOT a typical tool found within a development platform?

    <p>A database management system optimized for production environments (D)</p> Signup and view all the answers

    What is the main difference between a host system and a target system in software development?

    <p>The host system is used for development, while the target system is used for execution. (B)</p> Signup and view all the answers

    What is the purpose of a testing tool like Junit within a development platform?

    <p>To execute a set of predefined tests on a new version of a program (B)</p> Signup and view all the answers

    Which among these is NOT a factor to consider during component deployment?

    <p>Availability of open source libraries (A)</p> Signup and view all the answers

    What is a common concern when considering the use of open source components in a project?

    <p>Potential licensing restrictions. (A)</p> Signup and view all the answers

    What is the most significant advantage of using software reuse within a development project?

    <p>Reduced development costs and time. (C)</p> Signup and view all the answers

    What is the main advantage of grouping software development tools into an integrated development environment (IDE)?

    <p>Improved workflow and productivity by providing a unified development environment (C)</p> Signup and view all the answers

    Which of the following is NOT an example of how configuration management is used in software development?

    <p>Documenting the design and architecture of a software system. (C)</p> Signup and view all the answers

    Which of the following is NOT considered a key benefit of configuration management in software development?

    <p>Guaranteed software compatibility across different operating systems (B)</p> Signup and view all the answers

    If you are using reusable components from different sources, what is a potential challenge you might face?

    <p>All of the above. (D)</p> Signup and view all the answers

    In the past, why was development from scratch the predominant approach to software development?

    <p>There were limited programming languages and libraries available. (D)</p> Signup and view all the answers

    Which level of software reuse would involve using a pre-built accounting software package for your company?

    <p>System level (C)</p> Signup and view all the answers

    What is a key characteristic of open source development?

    <p>Source code can be freely used and modified, but the original developer retains ownership. (A)</p> Signup and view all the answers

    How does the GNU Lesser General Public License (LGPL) differ from the GNU General Public License (GPL)?

    <p>The LGPL allows developers to create proprietary systems by linking only to open source components. (D)</p> Signup and view all the answers

    Which of these is NOT a benefit of using an open source approach for product development?

    <p>Enhanced software functionality due to exclusive access to code. (A)</p> Signup and view all the answers

    What is a crucial aspect of open source license management?

    <p>Understanding the licensing terms of each open source component before its use. (D)</p> Signup and view all the answers

    What is a key takeaway from the information provided on open source software design and implementation?

    <p>Design and implementation are interconnected and often occur concurrently. (D)</p> Signup and view all the answers

    What is the primary focus of implementation, besides programming?

    <p>Utilizing existing code. (D)</p> Signup and view all the answers

    What is the main purpose of testing individual classes during implementation?

    <p>To verify their performance against design specifications. (C)</p> Signup and view all the answers

    In what situation would a 'build or buy' approach for software development be most suitable?

    <p>A software system for which readily available solutions exist. (A)</p> Signup and view all the answers

    Which of the following is NOT a key concept related to implementation?

    <p>Requirement gathering. (C)</p> Signup and view all the answers

    How does the design process change when using a 'build or buy' approach?

    <p>It involves configuring existing software to meet requirements. (A)</p> Signup and view all the answers

    What is the key difference between 'software design' and 'implementation'?

    <p>Software design defines system components, while implementation builds them. (A)</p> Signup and view all the answers

    How does the concept of code reuse impact software development?

    <p>It reduces development time and risks by leveraging existing components. (A)</p> Signup and view all the answers

    Which of the following is a key benefit of implementing individual classes before integrating them?

    <p>It enables developers to easily identify and fix bugs in specific code sections. (A)</p> Signup and view all the answers

    Study Notes

    Chapter 5 - Implementation

    • Chapter 5 covers implementation in software development.
    • The presenter is Dr. Noorayisahbe Binti Mohd Yaacoub.
    • The topics covered include understanding implementation, its concept, issues, and open-source development.

    Topics Covered

    • What is implementation?
    • Implementation Concept
    • Implementation Issues
    • Open Source Development

    Design and Implementation

    • Software design and implementation is a stage in software engineering where an executable system is developed.
    • Design and implementation activities are interconnected.
    • Software design involves identifying software components and their relationships based on customer requirements.
    • Implementation involves realizing the design as a program.

    Build or Buy

    • In many domains, off-the-shelf systems (COTS) can be adapted to user needs.
    • Purchasing pre-built systems for medical records, for example, can be faster and cheaper than starting from scratch.
    • Using configuration features of purchased systems is part of the design process when implementing these systems.

    SDLC Phases

    • The software development life cycle (SDLC) includes stages like Requirements, Analysis, Design, Implementation, and Testing.
    • Implementation is a crucial step in this cycle.

    Implementation Concept

    • Each class is implemented according to the design document.
    • Each class is tested to ensure expected behavior (correct output for correct input, meeting timing requirements).
    • Classes are integrated to produce the final system.

    Implementation Issues

    • Focuses beyond programming:
      • Reuse: Reusing existing components or systems in software development is common practice.
      • Configuration management: Keeping track of different versions of software components throughout development.
      • Host-target development: Software is often developed on one machine (host) but executed on another (target).

    Reuse

    • From the 1960s to the 1990s, new software was typically developed from scratch.
    • Reuse of functions and objects in libraries was limited.
    • Costs and time constraints made a reusable approach increasingly essential.
    • Reusing existing software is now central in business and science.

    Reuse Levels

    • Abstraction level: Reusing knowledge of successful design patterns.
    • Object level: Reusing objects from libraries.
    • Component level: Reusing collections of objects/object classes in application systems.
    • System level: Reusing complete application systems (e.g., COTS).

    Software Reuse

    • Diagram showing different levels of software reuse (abstraction, object, component, system).
    • Systems (COTS)
    • Components
    • Object
    • Programming language libraries
    • Abstraction (architectural and design patterns)

    Reuse Costs

    • Cost of searching/evaluating reusable software.
    • Cost of purchasing reusable software (higher for large systems).
    • Adapting/configuring reusable components/systems to project requirements.
    • Integrating reusable elements with each other and newly developed code.

    Configuration Management

    • The process of managing evolving software systems, particularly when development is collaborative.
    • The goal is to support the integration process (access to code/documents, tracking changes, component compilation/linking) through a system.
    • Crucial for managing multiple versions and developer contributions.

    Configuration Management Activities

    • Version management: Tracking different versions/configurations of components.
    • Coordinating development by multiple programmers through version control/management systems.
    • System integration: Defining versions/configurations for complete systems and automatically building these systems from component versions.
    • Problem tracking: Reporting bugs, identifying who to contact, tracking fixes.

    Configuration Management Tool Interaction

    • Diagram showing interaction between various components (e.g., change proposals, change management, system versions, release management).

    Host-Target Development

    • Most software development is host-target.
    • Development platform (host) for design/creation, and target platform (e.g. different machine) for execution.
    • The software development platform includes operating systems, supporting software (e.g., databases), IDEs, compilers, and testing tools.

    Development Platform Tools

    • Integrated compiler and syntax-directed editors for code creation/editing/compilation.
    • Code debugging support.
    • Tools for diagramming (e.g., UMLs).
    • Testing tools (e.g., JUnit).
    • Tools for managing various projects.

    Integrated Development Environments (IDEs)

    • IDEs (Integrated Development Environments) group several development tools into a common system.
    • They often provide a common framework or user interface supporting multiple facets of software development.
    • IDEs can be designed for a specific language (e.g., Java) or have specific language support within a more generic IDE.

    Component/System Deployment Factors

    • Components need platforms with required hardware/software support.
    • High-availability systems often need components on multiple platforms.
    • Communications traffic between components favors deploying these components on the same or similar platforms.

    Open Source Development

    • Approach using published source code; volunteers contribute.
    • Rooted in the Free Software Foundation concept.
    • Source code is typically not proprietary but available for examination/modification.
    • Open source software facilitates wider community involvement through internet-based recruitment of developers/users.

    Open Source Systems

    • Linux is a well-known open source operating system used broadly as a desktop/server OS.
    • Java, Apache web server, and MySQL are other noteworthy open-source products.

    Open Source Issues

    • Should the development being done use open source components?
    • Should an open-source approach be used for the system?

    Open Source Business

    • Companies increasingly use an open-source approach.
    • Business models are now often based on selling support, not just the software itself.
    • These companies believe community involvement leads to quicker, cheaper development and greater user participation.

    Open Source Licensing

    • Open-source requires freely available source code.
    • Developers own the code and control (legally) how it's reused.
    • Developers can include restrictions in legally binding licenses.
    • Open source components can potentially imply open-source implementation for an entire new system; others might just allow use without further imposition. (Evolve from the system they are initially used in.)

    License Models

    • GPL (General Public License): Reciprocal license–code must be open-source if licensed under the GPL.
    • LGPL (Lesser General Public License): Developer might not have to release source code for components linked to open source code.
    • BSD (Berkeley Software Distribution) License): Non-reciprocal license (developers aren't obliged to re-open source code for any changes made.)

    License Management

    • Keep an information system for tracking/managing open-source components.
    • Understand different types of licenses.
    • Be aware of component evolution.
    • Educate people regarding open-source.
    • Implement auditing systems.
    • Participate in open-source community.

    Key Points

    • Software design and implementation are interlinked.
    • Detail in design depends on whether plan-driven or agile approach used.
    • Reusing existing software (components, services, full systems) is often wise.
    • Configuration management (essential for collaborative development) is necessary when making adjustments to a system.
    • Host-target development (using IDE on a host machine, transferring software to a target execution machine) is the usual setup for software production.
    • Open-source development (making source code public) allows broader participation from the community for suggestion/improvement.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Lecture 5 - Implementation PDF

    Description

    This quiz covers key concepts in software development, particularly focusing on configuration management and open source development. Test your understanding of topics such as version management, problem tracking, and the characteristics of open source operating systems.

    More Like This

    Use Quizgecko on...
    Browser
    Browser