Example: A Weather Monitoring System
Designed to collect, process, and analyze weather data from various sources and provide weather forecasts and alerts
Data Collection Subsystem Gather weather data from different sensors and external APIs
Data Processing Subsystem Process the raw data by data cleansing, format conversion, and storage
Forecast Subsystem Generate weather forecasts
Alert Subsystem Analyze the forecasted data to detect severe weather conditions and send alerts
User Interface Subsystem Graphical interface for users to interact with the system and receive notifications
Data Collection Subsystem Responsible for gathering weather data from different sensors and external APIs
namespace
namespace
Software design is the process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting functionality will satisfy user requirements¹
Software design is the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.²
Software design may refer to either "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems" or "the activity following requirements specification and before programming, as … [in] a stylized software engineering process."³
Software design usually involves problem-solving and planning a software solution. This includes both a low-level component and algorithm design and a high-level, architecture design.⁴
Represents solutions to requirements
public
, private
, protected
const
, static
, virtual
, final
, override
, and friend
Relationship | UML Model |
---|---|
Association | |
Bidirectional Association | |
Composition | |
Aggregation | |
Generalization (Inheritance) |
Count the number of methods per class for a software system written in C++
count()
must do all the input, parsing, and countinginput()
count()
does all the parsing and countinginput()
, parse()
, and output()