unit-3(mobile design principles ) complete notes
unit-3(mobile design principles ) complete notes
Architectural Principles-
Software Design is also a process to plan or convert the
software requirements into a step that are needed to be
carried out to develop a software system. There are several
principles that are used to organize and arrange the structural
components of Software design.
Divide the app into independent layers (e.g., UI, Business Logic, Data) to improve
maintainability.
Example: Use MVVM (Model-View-ViewModel) architecture in Android.
1.2 Modularity
Single Responsibility Principle (SRP): Each class should have one responsibility.
Open-Closed Principle: Software entities should be open for extension but closed for
modification.
Liskov Substitution Principle: Subtypes must be substitutable for their base types.
Interface Segregation Principle: Avoid forcing classes to implement unused
interfaces.
Dependency Inversion Principle (DIP): Depend on abstractions, not concrete
implementations.
2.3 Accessibility
4. Security Principles
4.1 Secure API Communication
5.3 Modularization
1. Waterfall Model
A linear sequential model where development flows step by step (Requirement →
Design → Implementation → Testing → Deployment).
Pros: Simple, well-documented, good for small projects.
Cons: Not flexible, hard to accommodate changes.
Use Case: Best for projects with clear and fixed requirements.
2. Agile Model
An iterative development approach where the application is built in small
increments (Sprints).
Pros: Flexible, continuous feedback, faster iterations.
Cons: Requires close collaboration, can lead to scope creep.
Use Case: Best for startups and dynamic projects where requirements evolve.
3. DevOps Model
Integrates Development and Operations for Continuous Integration (CI) and
Continuous Deployment (CD).
Uses tools like GitHub Actions, Jenkins, Firebase App Distribution.
Pros: Automates testing and deployment, improves efficiency.
Cons: Requires infrastructure setup and DevOps expertise.
Use Case: Best for large-scale applications with frequent updates.
1. Functional Testing
Verifies that the app functions as expected based on requirements.
Types:
2. Performance Testing
Evaluates the app's speed, responsiveness, and stability under different conditions.
Types:
3. Security Testing
Checks for vulnerabilities, data protection, and authentication mechanisms.
Types:
4. Usability Testing
Focuses on user experience (UX), navigation, and accessibility.
Types:
Types:
6. Automation Testing
Automates repetitive test cases for efficiency and faster releases.
Tools: