Design Concepts
ICT2621 - Structured Systems Analysis and Design · System Design Principles
Design Concepts
Design concepts are fundamental ideas that guide the creation of information systems. They ensure that systems are effective, efficient, and meet user requirements. Understanding these concepts is crucial for developing quality systems.
1. Principles of Good Design
Good design is characterised by several principles that help create usable and maintainable systems. These principles include:
- Modularity: This principle suggests that a system should be divided into smaller, manageable parts called modules. Each module should perform a specific function. This makes it easier to develop, test, and maintain the system.
- Abstraction: Abstraction involves simplifying complex systems by focusing on the essential features while hiding the irrelevant details. This helps in understanding the system without being overwhelmed by complexity.
- Encapsulation: Encapsulation is the practice of bundling data and methods that operate on that data within a single unit, or class. This protects the data from outside interference and misuse.
- Separation of Concerns: This principle states that different concerns or aspects of a system should be separated into distinct sections. This improves clarity and reduces complexity.
Remember: The principles of good design help ensure that systems are easier to understand, maintain, and modify.
2. Design Process
The design process consists of several stages that guide the development of a system. These stages include:
2.1. Requirements Analysis
In this stage, you gather and analyse user requirements. This involves understanding what users need from the system. Techniques such as interviews, surveys, and observation can be used to collect this information.
2.2. System Design
During system design, you create a blueprint for the system. This includes defining the architecture, modules, interfaces, and data structures. The design should align with the requirements identified in the previous stage.
2.3. Implementation
Implementation involves translating the design into actual code. This is where developers write the software based on the design specifications.
2.4. Testing
Testing is crucial to ensure that the system meets the specified requirements. Various testing methods, such as unit testing and integration testing, are employed to identify and fix issues.
2.5. Maintenance
After deployment, the system enters the maintenance phase. This involves updating the system to fix bugs, improve performance, or add new features based on user feedback.
Tip: Follow a systematic design process to ensure that all aspects of the system are considered and addressed.
3. Design Models
Design models are visual representations of the system that help in understanding and communicating the design. Common design models include:
3.1. Data Flow Diagrams (DFDs)
DFDs illustrate how data moves through a system. They show the inputs, processes, and outputs of the system. A simple DFD can be created as follows:
1. Identify the processes in the system (e.g., Order Processing, Payment Processing). 2. Define data stores (e.g., Customer Database, Order Database). 3. Determine data flows between processes and data stores.For example, in an online shopping system:
Process 1: Order Processing --> Data Store: Order Database3.2. Entity-Relationship Diagrams (ERDs)
ERDs are used to model the data structure of the system. They show the entities (objects) and their relationships. For instance, in a library system, you might have:
Entity: Book --> Entity: Author (relationship: written by) Entity: Member --> Entity: Loan (relationship: borrows)3.3. Use Case Diagrams
Use case diagrams depict the interactions between users (actors) and the system. They help identify the system's functionality. For example, in a banking system:
Actor: Customer --> Use Case: Withdraw Funds4. User Interface Design
User interface (UI) design focuses on creating interfaces that are easy to use. Key considerations include:
4.1. Usability
Usability refers to how easy and efficient it is for users to interact with the system. A usable interface should be intuitive and require minimal training.
4.2. Consistency
Consistency in design means that similar elements should behave similarly. This helps users learn the system faster and reduces confusion.
4.3. Accessibility
Accessibility ensures that the system can be used by people with disabilities. This may involve providing alternative text for images or ensuring keyboard navigation.
Watch out: Failing to consider usability can lead to systems that are difficult to use, resulting in user frustration.
5. System Architecture
System architecture defines the structure of the system. It outlines how components interact and communicate. Common architectural styles include:
5.1. Client-Server Architecture
In this model, clients request services from a server. The server processes these requests and returns the results. This architecture is common in web applications.
5.2. Layered Architecture
Layered architecture divides the system into layers, each with specific responsibilities. For example, a typical three-layer architecture includes:
- Presentation Layer: User interface components.
- Business Logic Layer: Processes and rules that govern the system.
- Data Access Layer: Interacts with the database.
5.3. Microservices Architecture
This architecture breaks down a system into small, independent services that communicate over a network. Each service handles a specific task, making it easier to develop and scale.
Remember: The choice of architecture impacts the system's performance, scalability, and maintainability.
6. Conclusion
Design concepts are essential for creating effective information systems. By applying principles of good design, following a systematic design process, and using appropriate design models, you can develop systems that meet user needs and are easy to maintain.
Check your understanding
- What are the four principles of good design?
- Explain the importance of the requirements analysis stage in the design process.
- Describe the difference between a Data Flow Diagram and an Entity-Relationship Diagram.
- What are the key considerations in user interface design?