Your basket is currently empty!
Learning Outcomes
The application includes the drawing of a program structure diagram for a given simple problem.
Key Design Considerations
Determine the Application Type
Choosing the appropriate application type is the key part of the process of designing an application. Your choice is governed by your specific requirements and infrastructure limitations. Many applications must support multiple types of client, and may make use of more than one of the basic archetypes. This guide covers the following basic application types:
Determine the Deployment Strategy
Your application may be deployed in a variety of environments, each with its own specific set of constraints such as physical separation of components across different servers, a limitation on networking protocols, firewall and router configurations, and more. Several common deployment patterns exist, which describe the benefits and considerations for a range of distributed and non-distributed scenarios. You must balance the requirements of the application with the appropriate patterns that the hardware can support, and the constraints that the environment exerts on your deployment options. These factors will influence your architecture design.
Determine the Appropriate Technologies
When choosing technologies for your application, the key factors to consider are the type of application you are developing and your preferred options for application deployment topology and architectural styles. Your choice of technologies will also be governed by organization policies, infrastructure limitations, resource skills, and so on. You must compare the capabilities of the technologies you choose against your application requirements, taking into account all of these factors before making decisions.
A graphic representation of an algorithm, often used in the design phase of programming to work out the logical flow of a program.
Examples of Program Structure Diagram
Examples of Program Structure Diagram
Who can use them and how
The application includes the drawing of a decision tree for a given simple problem.
A decision tree is a kind of flowchart — a graphical representation of the process for making a decision or a series of decisions. Businesses use them to determine company policy; sometimes simply for choosing what policy is, other times as a published tool for their employees. Individuals can use decision trees to help them make difficult decisions by reducing them to a series of simpler, or less emotionally laden, choices. Regardless of the context or type of decision, the structure of a decision tree remains the same. Or you can say A decision tree is a decision support tool that uses a tree-like graph or model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm. Brainstorm each of the variables in the decision you want the decision tree to help you make. Write them down on a sheet of paper, or in the margin of your main sheet.
Prioritize the variables you’ve listed and write them down in order. Depending on the kind of decision you’re making, you can prioritize the variables chronologically, by order of importance, or both.
Key Points:
Decision trees provide an effective method of Decision Making because they:
The application includes the creation of a decision table for a given simple problem
Software engineering benefits
Decision tables, especially when coupled with the use of a domain-specific language, allow developers and policy experts to work from the same information, the decision tables themselves. Tools to render nested if statements from traditional programming languages into decision tables can also be used as a debugging tool. Decision tables have proven to be easier to understand and review than code, and have been used extensively and successfully to produce specifications for complex systems.[
Method
The Decision Table is divided into four quadrants.
The upper half lists the conditions being tested; the lower half lists the possible actions to be taken. Each column represents a certain type of condition or rule.
Guidelines for constructing a decision table
Steps to Develop a Decision Table
To Construct a Decision Table:
1) Draw boxes for the top and bottom left quadrants.
2) List the conditions in the top, left quadrant. When possible, phrase the conditions as questions that can be answered with a Y for yes and an N for no. This type of Decision Table is known as a limited entry table. When a Decision Table requires more than two values for a condition, it is known as an extended entry table.
3) List the possible actions in the bottom, left quadrant.
4) Count the possible values for each condition and multiply these together to determine how many unique combinations of conditions are present. Draw one column in the top and bottom right quadrants for each combination.
For example, if there are two conditions and the first condition has two possible values while the second has three possible values, draw six (2 * 3) columns.
5) Enter all possible combinations of values in the columns in the top, right quadrant of the table.
6) For each column (each unique combination of conditions), mark an X in the bottom, right quadrant in the appropriate action row. The X marks the intersection between the required action and each unique combination of condition values.
The application allows previously-prepared design technique outputs to be read and desk-checked for accuracy.
Determine the Quality Attributes
Quality attributes—such as security, performance, and usability—can be used to focus your thinking on the critical problems that your design should solve. Depending on your requirements, you might need to consider every quality attribute, or you might only need to consider a subset. For example, every application design must consider security and performance, but not every design needs to consider interoperability or scalability. Understand your requirements and deployment scenarios first so that you know which quality attributes are important for your design. Keep in mind that quality attributes may conflict; for example, security often requires a tradeoff against performance or usability.