System Design Summary Notes
Introduction to System Design
System Design begins after the requirement specification phase.
It defines the architecture, components, modules, interfaces, and data of a system.
Focuses on how to implement the system to satisfy specified requirements.
Phases of System Design
1. Logical Design
Describes what is to be accomplished using Data Flow Diagrams (DFD), Entity-Relationship diagrams (ER), etc.
Key elements include:
Inputs (sources)
Outputs (destinations)
Databases (data stores)
Procedures (data flows)
2. Physical Design
Focuses on how to accomplish the logical design through hardware, software, and user interfaces.
Concerns include user interface design, process design, and data design.
Design Models
1. System Implementation Model
Processor Model: Allocates essential models to processors and manages their communication.
Task Model: Assign processes and data stores to individual tasks after allocation.
2. Program Implementation Model
Structure chart shows hierarchical organization of modules within one synchronous task.
Stages in the Design Process
Analyze the situation
Write a brief
Research the problem
Write a specification
Work out possible solutions
Evaluate and redesign
Select a preferred solution
Implementation steps include:
Prepare working drawings and plans
Construct a prototype
Test and evaluate the design
Document the report
Functional Design
Translates System Requirements Specification (SRS) into usable actions.
Major activities include:
Defining software structure
Designing user interfaces
Conducting structured walkthroughs
Designing system inputs and outputs
Building data models
Program Design
Involves writing software modules specified in the system design phase.
Activities include:
Writing programs
Conducting unit testing
Developing training programs and operational documents
Planning transition to operational status
File Organization
Refers to how records are logically and physically arranged for storage.
Types of File Organization:
Heap (Unordered): Simplest type; records are not organized, efficient for insertions, inefficient for retrieval.
Sorted: Records are arranged by a key field, good for batch processing but inefficient for lookups.
Index Sequential Access: Combines features of both sequential and direct access, permits efficient record access with an index.
Direct/Random Access: Immediate record access using an identifying key; suitable for online applications, but costly and complex.
Normalization
Definition: The process of converting complex data structures into simpler ones to reduce redundancy.
Objectives:
To prevent undesirable database operations (insertion, update, deletion anomalies).
To establish stable relations among tables.
Types of Normalization:
1NF (First Normal Form):
No repeating groups, attributes must be atomic.
2NF (Second Normal Form):
No partial dependencies of non-key attributes on primary keys.
3NF (Third Normal Form):
Non-key columns must not depend on each other (no transitive dependencies).
Transforming ER Diagrams to Relations
Represent entities as relations with a primary key.
Represent relationships considering their cardinality and degree.
Normalize the relations to eliminate redundancy.
Merge the relations correctly to avoid overlaps and maintain clarity.
Designing Forms and Reports
Forms: Business documents with predefined data; allow users to input additional data. Examples include sign-in sheets, order forms.
Reports: Contain only predefined data, used for viewing purposes. Examples include sales summaries, invoices.
Common Types of Business Reports:
Scheduled Reports: Regularly produced for routine needs.
Exception Reports: Highlight significant deviations.
Ad-hoc Reports: Custom reports generated on demand.
Guidelines for Formatting
Use meaningful titles and clear, specific information.
Ensure balance in layout; clear navigation for users.
Highlight important information, using color thoughtfully for emphasis.
Avoid redundancy in files and maintain security measures during data access and updates.
Conclusion
System design is a crucial phase in software development, scaling from high-level logical considerations to detailed implementation plans.
Every step in the design process is aimed at fulfilling user requirements and ensuring efficiency, maintainability, and clarity in data representation.