Software Development  ·  Level 6
Desktop Application Development
Chapter 1: To design desktop application
📚 4 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • Identify the best desktop application design tools that fit what users need.
  • Design the functionality of a desktop application to match exactly what users want.
  • Create an easy-to-use and attractive desktop application interface based on user requirements.
  • Design the output of the desktop application to meet user expectations clearly and accurately.

These skills will help you build desktop applications that truly satisfy users and stand out in the real world of software development.

Compiled by: Stephen Mbugua

Designing desktop applications is a crucial skill for software developers aiming to create efficient, user-friendly software that runs on personal computers. In Kenya's growing tech ecosystem, desktop applications remain vital for sectors such as banking, education, healthcare, and government services, where offline or locally installed software is preferred. This chapter explores the foundational concepts, development stages, and tools necessary for designing desktop applications that meet professional standards and user needs.

1.1 Desktop Application Design Tools

Designing desktop applications requires familiarity with programming concepts, structured development processes, and selecting appropriate tools to facilitate efficient coding and deployment. This section breaks down these elements to equip software developers with the knowledge to create robust desktop software.

1.1.1 Basic Desktop Application Programming Concepts

Understanding the core programming concepts behind desktop applications is essential for software developers to create functional and maintainable software. These concepts form the building blocks for all desktop software development efforts.

Event-Driven Programming

Event-driven programming is a paradigm where the flow of the program is determined by user actions or system-generated events such as mouse clicks, key presses, or messages from other programs. Desktop applications heavily rely on this model to respond dynamically to user inputs, allowing interactive and responsive interfaces.

Graphical User Interface (GUI) Components

GUI components such as windows, buttons, text boxes, menus, and dialogs are the visual elements that users interact with. Mastery of GUI design principles and components is crucial to provide intuitive navigation and accessibility. For instance, at a county government office, a well-designed GUI can enable clerks to efficiently process citizen requests without extensive training.

Object-Oriented Programming (OOP)

OOP principles like encapsulation, inheritance, and polymorphism enable developers to create modular, reusable code. This approach simplifies complex applications by organizing code into classes and objects, which is particularly useful in large software projects such as hospital management systems at Kenyatta National Hospital.

Data Management and Storage

Desktop applications often interact with databases or files to store and retrieve data. Understanding data structures, file handling, and database connectivity (e.g., using SQLite or Microsoft SQL Server) is vital for maintaining data integrity and performance.

Error Handling and Debugging

Robust applications anticipate and handle errors gracefully to maintain usability and data consistency. Debugging tools and exception handling mechanisms help developers identify and fix issues before deployment, which is essential in financial software used by banks like Equity Bank to prevent transaction errors.

1.1.2 Application Development Stages

Developing a desktop application involves a structured process from conception to deployment. Each stage addresses specific objectives to ensure the final product meets user requirements and quality standards.

Requirement Analysis

This initial stage involves gathering and documenting the needs and expectations of users and stakeholders. In a retail business, for example, understanding inventory management requirements ensures the application supports daily operations effectively.

Design

Design focuses on creating the application architecture, user interface layouts, and data flow diagrams. Clear design documentation guides developers and reduces ambiguity, especially in collaborative environments like university IT departments.

Implementation (Coding)

During implementation, developers write the actual code based on design specifications. Adhering to coding standards and best practices ensures maintainability and scalability, important for government offices managing sensitive citizen data.

Testing

Testing verifies that the application functions as intended and identifies defects. Multiple testing types, including unit, integration, and user acceptance testing, help ensure reliability. For instance, a healthcare application at a county hospital must pass rigorous testing to avoid critical errors.

Deployment and Maintenance

Deployment makes the application available to users, often involving installation packages and configuration. Ongoing maintenance addresses bugs, updates, and evolving user needs, which is critical for SACCOs managing member accounts.

1.1.3 Identifying Desktop Application Design Tools

Selecting the right tools for desktop application design depends on project requirements, developer expertise, and target platforms. Identifying these tools early streamlines development and enhances productivity.

Integrated Development Environments (IDEs)

IDEs provide a comprehensive environment combining code editing, debugging, and build automation. Examples include Microsoft Visual Studio, Eclipse, and JetBrains Rider. In Kenya's software hubs, Visual Studio is popular for C# desktop apps due to its rich feature set.

GUI Design Tools

GUI design tools help developers create and visualize user interfaces without manual coding. Tools like Qt Designer and Windows Forms Designer allow drag-and-drop component placement, facilitating faster UI development.

Version Control Systems

Version control tools like Git and Subversion enable developers to manage code changes collaboratively, track history, and revert to previous versions if necessary. These tools are indispensable in team projects, such as software development for universities.

Database Management Tools

Tools such as SQL Server Management Studio and SQLite Studio assist in designing and managing the databases that desktop applications rely on. Effective use of these tools ensures data consistency and efficient querying.

Debugging and Profiling Tools

Debugging tools integrated in IDEs or standalone applications help identify and fix issues. Profiling tools analyze application performance, which is particularly important for resource-intensive applications used in financial institutions.

1.1.4 Overview of Desktop Application Design Tools

A broad understanding of available tools enables developers to leverage appropriate technologies for their projects. This overview covers common tools with their capabilities and typical use cases.

Name Specification Use
Microsoft Visual Studio Supports .NET languages, Windows Forms, WPF Development of Windows desktop applications
Qt Creator Cross-platform C++ IDE with GUI designer Building cross-platform desktop apps
Eclipse Java-based IDE with plugin support Java desktop application development
Xamarin C# based cross-platform development Mobile and desktop app development
SQLite Studio Lightweight database management tool Managing embedded databases in apps

Microsoft Visual Studio is widely used in Kenya, especially in corporate environments, for building Windows Forms or WPF applications. Qt Creator is favored for applications requiring cross-platform compatibility, such as software deployed in multinational companies operating in Nairobi and Mombasa.

1.1.5 Criteria for Selecting Tools

Choosing the right tools affects development speed, application quality, and maintainability. Developers must evaluate tools against several key criteria aligned with project and organizational needs.

Platform Compatibility

Tools must support the target operating systems. For example, an application intended for Windows-only use may benefit from Visual Studio, whereas cross-platform needs might favor Qt Creator.

Language Support

The programming languages supported by the tool should align with developer expertise and project requirements. For instance, Java-based tools like Eclipse are suitable for teams proficient in Java.

Community and Vendor Support

Strong community or vendor support ensures access to updates, bug fixes, and learning resources. Developers working on government projects often prefer tools with extensive documentation and active user forums.

Integration with Other Tools

Seamless integration with version control, database management, and testing tools enhances workflow efficiency. For example, Visual Studio’s integration with Git and Azure DevOps streamlines collaborative development.

Cost and Licensing

Budget constraints influence tool selection, especially for startups and SMEs. Open-source tools like Eclipse and SQLite Studio provide cost-effective alternatives to proprietary software.

1.1.6 Case Studies of Tool Selection in Real-World Applications

Examining real-world tool selection illustrates how different factors influence decisions in Kenyan software development environments.

Banking Software at Cooperative Bank

Cooperative Bank required a secure and maintainable desktop application for loan management. The development team selected Microsoft Visual Studio due to its robust security features, integration with SQL Server, and support for C#. This choice facilitated rapid development and compliance with banking regulations.

Inventory Management in a Retail Chain

A retail chain in Nairobi opted for Qt Creator to develop a cross-platform inventory system usable on both Windows and Linux. The open-source nature and cross-platform capabilities of Qt reduced licensing costs and expanded deployment options.

Hospital Patient Records System

A county hospital developed a patient records system using Eclipse IDE with JavaFX for the user interface. The choice was influenced by the availability of Java developers locally and the need for a modular, scalable application.

SACCO Membership Management

A SACCO in Kisumu implemented its membership management application using open-source tools like SQLite Studio for database management and Git for version control. This approach kept costs low while leveraging community-supported solutions.

Educational Software for a Polytechnic

A polytechnic’s IT department chose Visual Studio combined with Xamarin to develop desktop and mobile applications for student management. This toolchain allowed code sharing across platforms, reducing development time and maintenance efforts.

Practice Questions

  1. Explain the role of event-driven programming in desktop application development and provide an example of its use in a Kenyan professional context. (6 marks)

  2. List and describe the five main stages of desktop application development. (10 marks)

  3. Identify five criteria for selecting desktop application design tools and explain why each is important. (10 marks)

  4. Compare Microsoft Visual Studio and Qt Creator in terms of platform compatibility and typical use cases. (8 marks)

  5. Discuss how version control systems improve collaboration in software development teams, with reference to a Kenyan organization. (6 marks)

The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒1.2 Designing Application Functionality

Designing application functionality is a fundamental step in desktop application development that ensures the software meets the needs of its users effectively. In the Kenyan software industry, where diverse user profiles range from county government staff to…

🔒1.3 Creating the Application Interface

Designing the application interface is a critical phase in desktop application development, especially within Kenya's dynamic software industry. An effective interface ensures that users, whether in banks, county government offices, or hospitals, can interact…

🔒1.4 Designing Application Output

Designing application output is a critical phase in desktop application development, especially in Kenya's growing software industry where user expectations and data presentation standards are rising. Effective output design ensures that information generated…

Chapter Summary

This chapter explored the essential tools and concepts involved in designing desktop applications, beginning with fundamental programming elements such as events, objects, and controls. It outlined the stages of application development and provided a detailed overview of various design tools, alongside criteria for selecting the most appropriate ones, supported by real-world case studies. The process of designing application functionality was examined through techniques for gathering user requirements, translating these needs into application features, and prioritizing functionality based on user feedback. Attention was given to creating effective user interfaces, emphasizing principles of design, the use of wireframes and prototypes, and the importance of user testing to refine the interface. The chapter also covered the design of application output, discussing different types such as reports and visualizations, the qualities that define good user output, and methods for testing and validating this output to ensure reliability and usability. Together, these topics provide a comprehensive foundation for developing desktop applications that meet user needs and perform effectively.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What is an event in desktop application programming? Provide an example relevant to a banking application. (3 marks)
  2. Identify and explain three key objects commonly used in desktop application development. (6 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the role of events in desktop application programming and illustrate with an example relevant to a banking application such as Equity Bank's customer service system. (4 marks)
  2. Define objects in desktop application development and describe how object-oriented principles improve software design in a hospital management system. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Evaluate and Select Desktop Application Design Tools for a Student Management System

Software Development · Level 6
Desktop Application Development
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Evaluate and select appropriate desktop application design tools for a student management system based on given criteria and case studies within 4 hours.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer installed with Visual Studio 2022 Community EditionStudent Management System Case Study Document
Internet AccessSelection Criteria Checklist
Rewritable Compact Disc (CD-RW)
USB Flash Drive 8GB
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer installed with Visual Studio 2022 Community Edition1 Pc per Candidate
2Internet Access1 Connection per Candidate
3Rewritable Compact Disc (CD-RW)1 Pc per Candidate
4USB Flash Drive 8GB1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Identification of Desktop Application Design Tools
Candidate lists at least five desktop application design tools
(Award 1 mark for each correctly identified tool up to 5 marks)
5
Candidate describes features of each identified tool
(Award 1 mark for each correct feature description up to 5 marks)
5
Sub-Total10
TASK 2: Application of Selection Criteria
Candidate applies at least four selection criteria to the tools
(Award 2 marks for each correctly applied criterion up to 8 marks)
8
Candidate justifies the selection of the most appropriate tool(s) based on criteria
(Award up to 7 marks for clear, logical justification)
7
Sub-Total15
TASK 3: Documentation and Presentation
Candidate prepares a report summarizing tool evaluation and selection
(Award 5 marks for a clear, well-structured report)
5
Candidate saves report and supporting documents on USB and CD-RW
(Award 3 marks for correctly saving and organizing files)
3
Sub-Total8
PRODUCT CHECKLIST
Report clearly identifies tools, applies criteria, and justifies selection
(Award up to 10 marks for completeness, clarity, and correctness)
10
Files are correctly saved on both USB flash drive and CD-RW
(Award 5 marks for correct file management and saving)
5
Sub-Total15
GRAND TOTAL48
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Develop a Basic Student Registration Desktop Application

Software Development · Level 6
Desktop Application Development
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Develop a desktop application form named frmStudentRegistration with dimensions 800px width x 600px height to capture and validate student details.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with Visual Studio installedStudent ID
Rewritable Compact Disc (CD-RW)Student Name
Email
Phone Number
Course
Gender
Submit Button
Clear Button
DataGridView Control
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with Visual Studio installed1 Pc per Candidate
2Rewritable Compact Disc (CD-RW)1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Project Setup and User Interface Design
Created a new project and named the form frmStudentRegistration
(Award 2 marks for creating project and naming form correctly)
2
Inserted and labelled controls for Student ID, Student Name, Email, Phone Number, Course, and Gender
(Award 1 mark for each correctly labelled and inserted control)
6
Added Submit and Clear buttons with appropriate labels
(Award 2 marks for correct addition and labelling of buttons)
2
Sub-Total10
TASK 2: Control Properties and Event Handling
Set control properties such as MaxLength, Text, and Enabled appropriately
(Award 1 mark for each correct control property set)
4
Double-clicked Submit button to create event handler
(Award 1 mark for creating event handler)
1
Validated that Student Name field is not empty
(Award 2 marks for correct validation implementation)
2
Validated Email field format using regular expression
(Award 3 marks for correct email validation)
3
Validated Phone Number field contains exactly 10 digits
(Award 3 marks for correct phone number validation)
3
Displayed appropriate error messages for invalid input
(Award 3 marks for user-friendly error messages)
3
Sub-Total16
TASK 3: Data Capture and Display
Captured at least 5 student records into the application
(Award 2 marks for each valid record entered, up to 10 marks)
10
Saved screenshots of at least 3 student records in a folder
(Award 3 marks for saved screenshots)
3
Displayed student details in a DataGridView control
(Award 5 marks for correct DataGridView display)
5
Sub-Total18
TASK 4: Application Testing and Finalization
Tested application to ensure data saves and displays correctly
(Award 3 marks for successful testing)
3
Implemented Clear button to reset all input fields
(Award 2 marks for Clear button functionality)
2
Sub-Total5
PRODUCT CHECKLIST
Form dimensions are 800px width x 600px height as specified
(Award 3 marks for correct form size)
3
All controls are properly labelled and aligned with consistent spacing
(Award 4 marks for neat and consistent control layout)
4
Validations work correctly preventing invalid data entry
(Award 5 marks for effective input validation)
5
DataGridView correctly displays all saved student records
(Award 5 marks for accurate data display)
5
Sub-Total17
GRAND TOTAL66
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Outline the Stages of Desktop Application DevelopmentPractical 3
🔒Gather user requirements for a desktop application using interviews and surveysPractical 4
🔒Design a Desktop Application Feature Specification DocumentPractical 5
🔒Prioritize Application Functionality Based on User FeedbackPractical 6
🔒Design a user-friendly desktop application interface 800mm x 600mmPractical 7
🔒Create wireframes for a desktop application interface 1024mm x 768mmPractical 8
🔒Develop a clickable desktop application prototype for a library management systemPractical 9
🔒Conduct user testing and incorporate feedback in a desktop application prototypePractical 10
🔒Design Desktop Application Output Reports and VisualizationsPractical 11
🔒Evaluate qualities of good system user outputPractical 12
🔒Test and validate system output of a desktop applicationPractical 13
🔒Design and Implement a Student Registration Form with Control EventsPractical 14
🔒Document Desktop Application Design and Development Process ReportPractical 15
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 17 questions Start quiz ▾
0%
0 / 2
🔒

15 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Identify the best desktop application design tools that fit what users need.
  • Design the functionality of a desktop application to match exactly what users want.
  • Create an easy-to-use and attractive desktop application interface based on user requirements.
  • Design the output of the desktop application to meet user expectations clearly and accurately.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.