1/48
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Architecture
Helps in stakeholder communication, system analysis, and large-scale reuse.
MVC
Architectural pattern that separates data, view, and controller; good for multi-view systems.
Layered Architecture
Functionality divided into layers, allowing for easier replacement but may impact performance.
Repository Pattern
Centralized data access pattern; effective for data-driven systems but poses a single point of failure.
Client-Server Architecture
Distributed services model where performance depends on network and servers are points of failure.
Performance (Architecture Impact)
Achieved by localizing operations in software design.
Security (Architecture Impact)
Enhanced through layered architecture.
Safety (Architecture Impact)
Obtained by isolating critical subsystems.
Availability (Architecture Impact)
Ensured through redundancy in system design.
Maintainability (Architecture Impact)
Improved through small, replaceable components in architecture.
Build or Buy Decision
Choosing between off-the-shelf products to reduce time/cost versus designing custom solutions.
Design Process
Involves object identification which is often hard and iterative.
Static Models
Models that represent the structure of a system.
Dynamic Models
Models that represent interactions within a system.
Observer Pattern
Design pattern used for synchronizing views when data changes.
Façade Pattern
Design pattern that simplifies interfaces for easier interaction.
Iterator Pattern
Standard design pattern for data access.
Decorator Pattern
Design pattern to add behavior to objects at runtime.
Implementation Focus
Emphasizes reuse, configuration management, and host-target setup.
Reuse Levels
Levels include Abstraction, Object, Component, System.
GPL License
Requires derived works to be open-sourced.
LGPL License
Allows linking without the obligation to open-source own code.
BSD License
Has no obligations to open source software.
Goals of Software Testing
To validate that requirements are met and to detect defects.
Types of Testing
Include development, release, and user testing.
Verification
Asks if we are building the product correctly.
Validation
Asks if we are building the right product.
Inspections
Static testing methods that find anomalies without code execution.
Automated Testing
Utilizes tools like JUnit for fast feedback in software testing.
Test Partitioning
Grouping similar inputs to enhance testing efficiency.
Guideline-based Testing
Testing that checks known patterns where bugs occur.
Interface Testing
Involves testing boundaries, null inputs, and invalid calls.
Use-case Testing
Simulates real-world usage scenarios for effective testing.
Test Driven Development (TDD)
A development approach where tests are written before the actual code is developed.
Regression Testing
The practice of re-running tests after changes to ensure no new defects are introduced.
Types of Maintenance
Include Corrective, Adaptive, and Perfective maintenance strategies.
Reengineering
Total overhaul of a system for better maintainability.
Refactoring
Continuous improvement of software without changing its external behavior.
Legacy System Strategies
Include Scrap, Maintain, Reengineer, and Replace options.
Maintenance Cost Factors
Include program age, team skill, and system complexity.
Project Success Criteria
Defined by being on time, on budget, and meeting expectations.
Project Risks
Include delays, staff issues, defects, and tool failures.
Risk Process Steps
Include Identify, Analyze, Plan, and Monitor.
People Management in Projects
Focuses on respect, honesty, inclusion, and cohesion to build better teams.
Project Plan Components
Includes risk plan, validation plan, schedule, and resources.
Scheduling Issues
Focused on task breakdown, dependencies, milestones, and delays.
Cost Estimation Methods
Include experience-based judgment and empirical models like COCOMO 2.
COCOMO 2 Models
Include models for application composition, early design, reuse, and post-architecture.
Effort and Duration Estimation
Utilizes formulas based on project size to estimate required staff and time.