1. Centralized version control systems have a single server that contains all the versioned files, while distributed version control systems have multiple repositories, with each user having their own repository. The advantage of centralized systems is easier administration and control, while distributed systems offer better performance, scalability, and support for distributed teams.
2. The Gradle build system in Android Studio automates the process of building and packaging Android applications. It manages dependencies, compiles code, generates resources, and creates APK files for distribution.
3. The Android activity lifecycle consists of various states that an activity goes through during its lifetime, such as onCreate, onStart, onResume, onPause, onStop, and onDestroy. Handling lifecycle events properly ensures that resources are managed efficiently and that the user experience remains consistent.
4. To pass data between two Android activities, you can use intents with extras. You put the data as extras in the intent when starting the second activity and then retrieve the data from the intent in the second activity.
5. Requirements elicitation is the process of gathering and collecting requirements from stakeholders, while requirements analysis involves organizing, categorizing, and prioritizing the collected requirements.
6. Test-Driven Development (TDD) impacts the software development process by requiring developers to write tests before writing the actual code. This ensures that the code is correct and reliable from the start, leading to fewer bugs, improved maintainability, and easier refactoring.
7. The .gitignore file in a Git repository specifies files and directories that should be ignored by Git when tracking changes. This helps in managing the codebase by excluding unnecessary files, such as build artifacts or temporary files, from version control.
8. Requirement traceability is the ability to link requirements to their corresponding implementation, validation, and verification artifacts. It is important in software engineering to ensure that all requirements are implemented and tested, and to track the impact of requirement changes on the project.
9. An Android content provider is a component that facilitates data sharing between applications. It allows one application to access and manipulate data from another application, providing a standardized interface for data access and management.
10. Software quality assurance aims to ensure that the software development process and its products meet the required quality standards, while quality control focuses on identifying defects in the final product. Both contribute to the overall quality of the software.
11. White-box testing involves testing the internal structure and logic of the code, while black-box testing focuses on the functionality of the software without knowledge of its internal workings. White-box testing examples include unit testing and code coverage analysis, while black-box testing examples include system testing and user acceptance testing.
12. Storyboards and low-fidelity prototypes are used in the requirements engineering process to visualize and communicate the user interface and interactions. They help stakeholders understand the proposed design and provide feedback early in the development process, reducing the risk of costly changes later on.
13. To create and use custom view components in Android, you need to subclass an existing view class (e.g., `View`, `TextView`, `ImageView`) and override the necessary methods to implement the desired functionality. You can then include the custom view in your layout XML or instantiate it programmatically in your code.
14. The Rational Unified Process (RUP) model is an iterative software development process that consists of four phases: Inception, Elaboration, Construction, and Transition. Each phase has specific goals and deliverables, and the process emphasizes continuous risk management and stakeholder involvement.
15. The key advantages of Agile methodologies over traditional plan-and-document process models include better adaptability to change, faster delivery of working software, improved collaboration between team members, and a focus on customer satisfaction and continuous improvement.
1. 중앙 집중식 버전 관리 시스템에는 모든 버전이 관리되는 파일이 포함된 단일 서버가 있는 반면, 분산식 버전 관리 시스템에는 여러 개의 리포지토리가 있으며 각 사용자는 자신의 리포지토리를 갖게 됩니다. 중앙 집중식 시스템의 장점은 관리 및 제어가 더 쉽다는 것이고, 분산식 시스템은 더 나은 성능, 확장성 및 분산된 팀에 대한 지원을 제공한다는 것입니다.2. 안드로이드 스튜디오의 Gradle 빌드 시스템은 안드로이드 애플리케이션 빌드 및 패키징 프로세스를 자동화합니다. 종속성을 관리하고, 코드를 컴파일하고, 리소스를 생성하고, 배포용 APK 파일을 생성합니다.3. 안드로이드 활동 라이프사이클은 활동의 수명 기간 동안 활동이 거치는 다양한 상태(예: onCreate, onStart, onResume, onPause, onStop, onDestroy)로 구성됩니다. 수명 주기 이벤트를 올바르게 처리하면 리소스를 효율적으로 관리하고 사용자 경험을 일관성 있게 유지할 수 있습니다.4. 두 안드로이드 활동 간에 데이터를 전달하려면 인텐트를 엑스트라로 사용할 수 있습니다. 두 번째 활동을 시작할 때 인텐트에 엑스트라로 데이터를 넣은 다음 두 번째 활동의 인텐트에서 데이터를 검색합니다.5. 요구 사항 도출은 이해 관계자로부터 요구 사항을 수집하고 수집하는 프로세스이며, 요구 사항 분석은 수집된 요구 사항을 정리, 분류 및 우선 순위를 지정하는 작업을 포함합니다.6. 테스트 중심 개발(TDD)은 개발자가 실제 코드를 작성하기 전에 테스트를 작성하도록 요구함으로써 소프트웨어 개발 프로세스에 영향을 미칩니다. 이렇게 하면 처음부터 코드가 정확하고 신뢰할 수 있으므로 버그가 줄어들고 유지 관리가 개선되며 리팩터링이 쉬워집니다.7. Git 리포지토리의 .gitignore 파일은 변경 사항을 추적할 때 Git에서 무시해야 하는 파일과 디렉터리를 지정합니다. 이렇게 하면 빌드 아티팩트나 임시 파일과 같은 불필요한 파일을 버전 관리에서 제외하여 코드베이스를 관리하는 데 도움이 됩니다.8. 요구 사항 추적성은 요구 사항을 해당 구현, 검증 및 검증 아티팩트에 연결하는 기능입니다. 소프트웨어 엔지니어링에서는 모든 요구사항이 구현 및 테스트되었는지 확인하고 요구사항 변경이 프로젝트에 미치는 영향을 추적하는 것이 중요합니다.9. 안드로이드 콘텐츠 제공업체는 애플리케이션 간의 데이터 공유를 용이하게 하는 구성 요소입니다. 이를 통해 한 애플리케이션이 다른 애플리케이션의 데이터에 액세스하고 조작할 수 있으며, 데이터 액세스 및 관리를 위한 표준화된 인터페이스를 제공합니다.10. 소프트웨어 품질 보증은 소프트웨어 개발 프로세스와 제품이 필요한 품질 표준을 충족하는지 확인하는 것을 목표로 하며, 품질 관리는 최종 제품의 결함을 식별하는 데 중점을 둡니다. 둘 다 소프트웨어의 전반적인 품질에 기여합니다.11. 화이트박스 테스트는 코드의 내부 구조와 논리를 테스트하는 반면, 블랙박스 테스트는 소프트웨어의 내부 작동에 대한 지식 없이 소프트웨어의 기능에 초점을 맞추는 테스트입니다. 화이트박스 테스트 예시에는 단위 테스트와 코드 커버리지 분석이 있으며, 블랙박스 테스트 예시에는 시스템 테스트와 사용자 승인 테스트가 있습니다.12. 스토리보드와 저충실도 프로토타입은 요구사항 엔지니어링 프로세스에서 사용자 인터페이스와 상호 작용을 시각화하고 전달하기 위해 사용됩니다. 스토리보드는 이해관계자가 제안된 디자인을 이해하고 개발 프로세스 초기에 피드백을 제공하여 나중에 비용이 많이 드는 변경의 위험을 줄이는 데 도움이 됩니다.13. 안드로이드에서 사용자 지정 뷰 컴포넌트를 생성하고 사용하려면 기존 뷰 클래스(예: `View`, `TextView`, `ImageView`)를 서브클래싱하고 원하는 기능을 구현하는 데 필요한 메서드를 오버라이드해야 합니다. 그런 다음 레이아웃 XML에 사용자 지정 뷰를 포함하거나 코드에서 프로그래밍 방식으로 인스턴스화할 수 있습니다.14. 합리적 통합 프로세스(RUP) 모델은 4단계로 구성된 반복적인 소프트웨어 개발 프로세스입니다: 시작, 정교화, 구축, 전환의 네 단계로 구성됩니다. 각 단계에는 구체적인 목표와 결과물이 있으며, 이 프로세스는 지속적인 위험 관리와 이해관계자의 참여를 강조합니다.15. 기존의 계획 및 문서화 프로세스 모델에 비해 애자일 방법론의 주요 장점은 변화에 대한 적응력 향상, 작동하는 소프트웨어의 신속한 제공, 팀원 간의 협업 개선, 고객 만족과 지속적인 개선에 중점을 둔다는 점입니다.