Function-Oriented Design in Software Engineering: A Modular Approach
Explore function-oriented design, a software design methodology emphasizing modularity and functional decomposition. This guide explains its principles, uses Data Flow Diagrams (DFDs) and data dictionaries for design representation, and clarifies its role in structured analysis and design.
Function-Oriented Design in Software Engineering
Introduction to Function-Oriented Design
Function-oriented design is a software design approach that decomposes a system into a set of interacting modules, where each module performs a specific function. It emphasizes a functional view of the system, focusing on what operations need to be performed rather than the data structures involved. This approach is often used in conjunction with structured analysis and design techniques.
Design Notations in Function-Oriented Design
Several notations can represent designs in function-oriented design. These notations help visualize the system's components and their interactions.
1. Data Flow Diagrams (DFDs)
DFDs visually represent how data flows through a system. They show processes (data transformations), data stores (data repositories), external entities (sources and sinks of data), and data flows (arrows indicating data movement between elements). DFDs are a helpful tool for understanding system requirements and for communicating design choices. (A diagram showing standard DFD symbols would be included here.)
2. Data Dictionaries
A data dictionary is a structured list of all data elements used in a system, providing a clear definition of each element. It includes details about data types, structures, and relationships between data items. A data dictionary helps maintain a consistent vocabulary for data elements and is an essential tool for understanding how data is used and processed within the system.
(An example of a data dictionary entry, showing how a composite data element is defined in terms of its components, would be included here.)
3. Structured Charts
Structured charts provide a graphical representation of a system's modular structure, showing the hierarchy of modules and their interconnections. They depict how different modules interact and the flow of data between them. (An example structured chart would be included here.)
4. Pseudocode
Pseudocode provides a high-level description of a module’s logic using a simplified, language-independent notation. It clarifies algorithms before detailed coding. It uses keywords (like If-Then-Else, While-Do) to structure the algorithm steps.
What is a Data Dictionary?
A data dictionary is a centralized repository that contains definitions and details about the data elements used in a system, such as data types, structures, and relationships between elements. It helps in organizing and understanding the flow of data within a system.
How a Report Generator Uses a Data Dictionary
A report generator can use the data dictionary to create a report that lists all named entities in a data-flow diagram (DFD). A DFD represents the flow of data through a system, showing processes, data stores, data flows, and external entities. The named entities typically refer to the data stores and external entities in the DFD.
Example Process
- Step 1: The data dictionary is analyzed to identify all named entities (data stores and external entities).
- Step 2: The report generator retrieves the names and relevant details (e.g., data types, attributes, etc.) of the entities from the data dictionary.
- Step 3: The report generator formats the information into a readable report, listing each entity with its associated information.
- Step 4: The report is produced, which can be used for system documentation or analysis purposes.
Example Report Output
For example, a report might look like this:
Entity Name: Customer Type: External Entity Attributes: Name, Address, Phone Number Entity Name: Orders Type: Data Store Attributes: Order ID, Date, Customer ID
This report would list all the named entities from the data-flow diagram and provide detailed descriptions based on the data dictionary.