1/27
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software engineering stage of design and implementation
The stage where the executable software system is developed, involving activities of designing components and realizing them in code.
Object-oriented design
A design approach that focuses on creating system models like context models, interaction models, and use case models to understand system interactions.
Context models
Models that define the environment in which a system operates, showing external systems and boundary settings.
Interaction models
Models that illustrate how different components of a system interact during runtime.
Commercial off-the-shelf (COTS) systems
Pre-built software solutions that can be purchased and configured, often more efficient than building from scratch.
System architecture
The structured framework that defines the components and their relationships within a software system.
Object class identification
A process in the design phase to determine the classes that represent tangible entities in the system.
Static models
Design models that represent the structure and relationships of classes, such as class diagrams.
Dynamic models
Design models that show how objects interact and change over time, such as sequence models and state machine models.
Interfaces in software design
Contracts between components that define how they interact without exposing internal details.
Design patterns
Reusable solutions to common design problems that can be applied in various scenarios.
Observer pattern
A design pattern that allows multiple displays of an object's state, enabling minimal coupling and state change reflection.
Façade pattern
A design pattern that simplifies interfaces to complex systems.
Iterator pattern
A design pattern that provides a way to access elements of a collection without exposing its underlying structure.
Decorator pattern
A design pattern that allows extending the functionality of a class at runtime.
Software reuse
The practice of using existing software components in new applications to save time and resources.
Configuration management
The process of handling changes in a software system to maintain consistency and control.
Host-target development
A strategy where software is developed on one platform (host) and executed on a different platform (target).
Integrated Development Environments (IDEs)
Tools that combine multiple development tools into a single application, tailored to specific programming languages.
Open source development
A collaborative approach where source code is publicly available, allowing users to study, modify, and distribute software.
GNU General Public License (GPL)
A reciprocal license that requires derivative works to also be open source.
GNU Lesser GPL (LGPL)
A license that allows linking with proprietary code without open-sourcing the proprietary parts.
BSD License
A non-reciprocal license that permits integration with proprietary software without sharing modifications.
License management in open source
The process of tracking open source components, understanding their terms, and ensuring compliance with licensing.
Collaboration in open source software
The interaction among developers and users in the open source community to improve and maintain software projects.
High availability systems
Systems designed to remain operational and accessible with minimal downtime, often requiring redundancy.
Communication delays between components
Latency issues that can arise when components of a system are not co-located, impacting system performance.
Final key points in software design and implementation
The key takeaways that design and implementation are interrelated, object-oriented design is central, and open source offers significant advantages.