Create a Simple Application and Seek Feedback

Submitted by Katie.Koukouli… on Fri, 03/22/2024 - 13:11

Your goal in programming is to create a simple application people can use. In the previous topics, you learnt the codes, syntaxes, structures, algorithms and standards you need. These elements are vital to keeping your app smooth and functional. An application is a software program that runs specific tasks or functions to end users. It serves a particular purpose and solves specific problems. Here are some examples of applications:

  • Word processors, such as MS Word or Google Docs
  • Web browsers, such as Google or Mozilla Firefox
  • Social media platforms, such as Facebook or Instagram
  • Mobile apps, such as MOBA games or productivity apps

Creating an application provides the hands-on experience you need. You can apply the programming concepts and techniques you learnt in the previous topics. Moreover, creating an app allows you to work on a complete software development lifecycle. These are essential for becoming a well-rounded programmer.

When you finish creating your app, it is crucial to seek feedback. It is important to ensure that your app is bug-free and usable. Feedback is the responses from users or stakeholders about their experience with your app. Feedback identifies areas of improvement in the application, including:

  • identifying bugs
  • usability issues
  • missing features

It provides insights into how users perceive and interact with the application. This enables you to make necessary adjustments and enhancements.

Sub Topics

You learnt about algorithms in a previous discussion. Algorithms are steps or rules for solving a problem or finishing a specific task. They provide a clear and systematic approach to problem-solving. You will design an algorithm as a response to basic program specifications.

Program specifications define the functional and non-functional requirements of an app. These serve as a blueprint for its development. Moreover, they describe the following:

  • application functions and features
  • behaviour in different scenarios
  • performance or quality requirements it must meet

Here are some examples of basic program specifications:

For social media platforms
  • Let users make profiles and connect with friends.
  • Provide a news feed to display updates from friends and followed accounts.
  • Enable users to post text, photos and videos.
  • Use privacy settings to control the visibility of posts and user information.
  • Let users like, comment and share posts.
  • Provide real-time notifications for new messages and friend requests.
E-commerce websites 
  • Let users browse and search for products.
  • Provide product details, including descriptions, prices and images.
  • Let users put items in a shopping cart and proceed to checkout.
  • Implement secure payment processing.
  • Let registered users track their order status.
  • Provide an administrative interface to manage products, inventory and customer orders.

Analysing and interpreting the program requirements and constraints 

Understanding program specifications and requirements is crucial in creating an app. It involves thoroughly analysing and interpreting the program requirements and constraints. It ensures the resulting software meets the desired objectives.

Here are key aspects of this process:

Analysing program requirements and constraints

You should consider the following when analysing program requirements and constraints:

  • Review the specifications and documentation. It can help you understand the program's purpose and function.
  • Identify the personnel involved and gather their requirements, expectations and constraints.
  • Consider any technical, time or resource limits that may impact the development process.
  • Work with domain experts, clients and users. It ensures you understand the requirements.
Identifying input, output and processing requirements 

You should consider the following when identifying requirements:

  • Determine the specific data inputs required by the program, including:
    • User inputs
    • External data sources
    • System integrations
  • Define the desired outputs or results the program should produce, such as:
    • Reports
    • Calculations
    • Visual representations
  • Identify the processing steps or algorithms you will use to transform the input data into the desired outputs.
  • Consider any performance or efficiency requirements, such as:
    • response times
    • scalability
    • resource use
Clarifying ambiguities or uncertainties

You should consider the following when clarifying ambiguities or uncertainties:

  • Engage in discussions and clarify ambiguities or uncertainties present in the program specifications.
  • Communicate with stakeholders and subject matter experts. This will help you resolve any conflicting or unclear requirements.
  • Document and track any decisions or changes made during the clarification process. This will ensure alignment among the development team and stakeholders.

Designs 

When designing an algorithm in response to basic programming specifications, you can use either of these designs:

Flowchart design

It is a graphical representation of an algorithm or process using various symbols and arrows. It depicts the sequence of steps and the flow of control. Likewise, it provides a visual and intuitive way to understand the logic and structure of an algorithm. This makes it easier to design, analyse and communicate.

Flowcharts use different symbols to represent different types of actions and operations. Here are some commonly used symbols:

This represents the beginning and end of the flowchart.

This represents the input or output of data in the algorithm. It is typically depicted as a parallelogram.

This represents a specific action or operation to be performed. It is usually depicted as a rectangle.

It represents a decision point in the algorithm where you check a condition. It is typically depicted as a diamond shape. The control branch flow is based on the outcome of the decision.

It represents the control flow from one part of the flowchart to another, connecting different symbols.

Flowcharts allow you to visualise and control the data flow through an algorithm. You can represent input, output and processing steps. Each step is connected to the next step, showing the sequential order of operations.

Here is an example of a flowchart design using various symbols to represent different elements of an algorithm:

In this example, the flowchart begins with the 'start' symbol and ends with the 'end' symbol. The algorithm starts by taking input of a number. Then it multiplies the number by two. Next, it checks if the multiplication result is greater than 10. If it is, the flow moves to the left and subtracts five from the result. If the result is not greater than 10, the flow moves to the right and adds three to the result. Finally, the flowchart reaches the 'Output the final result' step before ending.

Pseudocode

It is a method of expressing the logic of an algorithm using plain language. It serves as a bridge between human-readable language and actual code. Likewise, it lets you focus on an algorithm's high-level design and logic without worrying about the specific syntax. When designing an algorithm using pseudocode, you should consider the following:

  • Logic: description It should provide a clear description of the algorithm's logic. Likewise, it should break down the problem into smaller steps and outline the sequence of operations.
  • Syntax and conventions: While pseudocode does not have strict syntax rules, it is important to use consistent conventions. This includes the following:
    • Using indentation to indicate nested blocks
    • Using appropriate naming conventions for variables and functions
    • Using standard control structures, such as loops and conditionals
  • Expressing control structures and operations: Pseudocode should accurately represent control structures, including:
    • Loops, such as for or while
    •  Conditionals, such as if-else. 
    • It should also describe the operations, such as arithmetic calculations or function calls.

Pseudocode is meant to be easily understandable by both programmers and non-programmers. It is a useful tool for designing algorithms and communicating the logic of a solution. Moreover, it allows for collaboration and discussion before implementing the algorithm. Here is an example of pseudocode: 

In this example, the pseudocode uses standard keywords like 'INPUT' and 'OUTPUT' to represent the input and output steps. It describes adding 'num1' and 'num2' to calculate the sum and outputs the result.

Programmers working together

Developing small-sized applications is an essential aspect of modern software development. It caters to a wide range of needs, from simple utilities to specialised tools. A small-sized application refers to a software program that is relatively simple in terms of functionality, scope and size. It typically focuses on addressing a specific task or set of tasks efficiently and effectively.

These applications are typically compact, user-friendly and designed to address specific requirements efficiently. The primary characteristics of a small-sized application include:

  • focused functionality
  • liimited scope
  • minimal resource usage
  • easy usability

The process of creating small-sized applications involves careful planning, streamlined development and rigorous testing. These ensure a seamless user experience. The development process for small sized applications generally involves the following step:

A diagram showing user testing process
  1. Requirements gathering: Understand the objectives and requirements of the application. You should identify the target audience and key functionalities needed.
  2. Design Plan: the architecture and user interface of the application. You should create wireframes or mockups to visualise the layout and flow.
  3. Implementation: Write the code for the application based on the design and requirements. You should develop each application task or functionality.
  4. Testing: Test the application thoroughly to identify and fix any bugs or issues. You should perform unit testing, integration testing and functional testing.
  5. Deployment: Prepare the application for deployment to the production environment. You should set up servers and databases, and ensure the application is ready for public use.
  6. User acceptance testing (UAT): Have a small group of users test the application to validate its functionality and usability.
  7. Launch: Make the application live and available to the target users.
  8. Post-launch monitoring: Monitor the application's performance and gather user feedback. You should make any necessary improvements or updates based on user feedback.
  9. Maintenance: Maintain and support the application. Address any issues that arise and update the application as needed.
  10. Documentation: Create clear and comprehensive documents that detail various aspects of the application. These include the requirements, design, implementation and testing. It ensures members understand the application's function, design and usage.

When developing an application, you must consider the programming specifications and standards. You learnt these in a previous subtopic. Likewise, you must meet these specifications and standards for the following reasons:

  • They ensure consistency in the following factors:
    • code structure
    • naming conventions
    • formatting
    • documentation across the application

      This makes the codebase more readable, maintainable and accessible to developers.

  • They provide a common framework for developers to collaborate effectively. Following the same guidelines makes it easier to understand and review the code.
  • They simplify the app's maintenance and enhancements. A well-documented and well-structured code is easier to understand, debug and modify. Likewise, it reduces the chances of introducing new errors during maintenance.
  • They promote reusable code components. A reusable code can:
    • Reduce redundancy
    • Improve development efficiency
    • Allow developers to use existing solutions for similar functions
    • Save time and effort
  • They design scalable apps that handle increasing user demands and growing data volumes.
  • They improve the quality and reliability of the application.
  • They are mandatory. These ensure you follow legal, security or industry-specific requirements. These include data protection, privacy or accessibility.

Steps you can follow when developing an application 

There are steps you can follow when developing an application. These steps must be according to the specific programming standards and specifications. Here are the steps you can follow:

1. Analyse and plan

You must understand the program specifications and requirements. Identify the app's purpose, functions and scope. Likewise, you must analyse user needs and define clear goals. Plan the development process, including the following:

  • timelines
  • resources
  • deliverables
2. Design the application framework

You must define the app's structure. Determine the components, modules and their relationships. Likewise, design the data flow, user interactions and system interfaces. This will create a high-level design plan to guide the process.

3. Choose the development platform and tools

You must select the elements based on the following application requirements:

  • appropriate development platform
  • programming language
  • tools

Likewise, you should also consider the following factors:

  • scalability
  • performance
  • compatability
  • available resources

Set up the development environment and configure necessary frameworks or libraries.

4. Implement the application logic

You must write the code to install the app's functions. Break down the requirements into smaller tasks and use each component or module. Likewise, you must remember the following:

  • Follow best coding practices.
  • Use appropriate data structures and algorithms.
  • Ensure code readability and maintainability.
5. Test and debug

You must conduct thorough app testing to identify and fix any errors or bugs. Develop and execute test cases to verify the functions and performance. Moreover, you must use debugging techniques and tools to analyse and resolve issues. You learnt these tests and techniques in a previous subtopic.

6. Design and develop the user interface

You must design and develop the app's user interface (UI). You learnt about the user interface in a previous subtopic. Create an intuitive and user-friendly UI that meets the program specifications. Likewise, you must consider the following:

  • Usability principles
  • Accessibility requirements
  • Visual aesthetics

You must also implement the UI's components, navigation and input or output functions.

7. Store and manage data

You must determine the app's data storage requirements. Choose the appropriate database or file storage system. Likewise, you must design and use data models, database schema and data access layers. You must also ensure the following:

  • proper data validation
  • security measures
  • efficient data retrieval and manipulation
  • Data validation ensures the data entered into a system is accurate and complete. The data should also follow the specified rules or constraints. This can involve validating the following:
    • user inputs
    • data formats
    • business rules. These prevent invalid or inconsistent data from being processed or stored.
  • Security measures protect the app and its data from unauthorised access or breaches. You learnt about these in a previous subtopic.
  • Efficient retrieval and manipulation involve optimising the speed of accessing and manipulating data. It includes the following:
    • designing efficient database queries
    • using appropriate indexing strategies
    • optimising algorithms and data structures for data processing tasks
8. Document and deploy. 

You must document the app's design, functions and usage instructions. Create user manuals, technical documentation and code documentation. These can assist users and future developers. Likewise, you must prepare the app for deployment by packaging the code, dependencies and resources. Test the deployment process and ensure smooth installation on target platforms.

Watch 

Watch this video to learn more about developing an application:

After developing an application, you must confirm if it meets the initial specifications. It ensures you develop according to the defined requirements and functions specified at the beginning. This verifies the app performs as expected and fulfils the intended purpose.

Confirming application specifications ensures the quality of the final product. It identifies gaps in functions early on, improving the app's quality and reliability. Moreover, it ensures the app delivers the expected features and functions, meeting the users' needs. It can also improve customer satisfaction and build trust.

The initial specifications refer to the requirements and features defined at the beginning. They outline the app's basic functions, scope and goals. Moreover, they are similar to the task requirements you learnt in a previous subtopic. These typically include the following:

  • functional
  • technical
  • performance
  • user experience
  • security
  • quality assurance

It is important to gather and document the initial specifications in detail. Likewise, it ensures you clearly understand the project's requirements.

There are various ways to confirm if the application meets initial specifications. These can vary depending on the organisation or the application requirements. Here are some common approaches:

You can conduct thorough testing of the application's functions. It will ensure they align with the specified requirements. You can test each feature, user interaction and workflow to verify that they work as intended. You learnt about this in a previous subtopic.

You can allow end-users or stakeholders to test the app and provide feedback. They can perform real-world tasks and check if the app meets their needs and expectations. Likewise, you should gather their feedback, address identified issues and improve the app. 

You can revisit the initial specifications. Likewise, you can compare them against the implemented features and functions. Conduct a detailed review to ensure you address all the defined requirements.

You can demo or present the application to stakeholders or the project sponsor. Showcase the app's features, workflows and functions. Likewise, explain how you include requirements and show how the app meets the specified objectives. You should also address any questions or concerns raised during the presentation.

You can engage other developers or technical experts to review the app's code, design and functions. Conduct a thorough code review to identify any gaps in the initial specifications. Likewise, you can seek feedback on the implementation approach and adjust the application. You will learn more about seeking feedback in a succeeding subtopic.

You can review the project documentation, including the following:

These will ensure they accurately reflect the implemented application. Likewise, you can verify that the documentation aligns with the initial specifications. You can also clearly understand the app's features and functions.

  • Design documents
  • User manuals
  • System requirements

You can also confirm to various stakeholders if an application meets the initial specifications. The specific individuals may vary depending on the nature of the application and the project context. However, here are some common stakeholders who may be involved in the confirmation process:

  • Project sponsor: This refers to the person funding the project. They are crucial in confirming that the app meets the initial specifications as they approve the final product.
  • Business analysts: These individuals are responsible for gathering and analysing the requirements. They are well-versed in the initial specifications. Likewise, they ensure the application aligns with the defined business needs and objectives.
  • End-users: They are the people who will be using the application. Their feedback is essential in confirming the app meets their needs and expectations. Engaging end-users ensures the app is user-friendly and addresses their requirements.
  • Quality assurance (QA) team: The QA team handles the app testing and validation. They verify if the features and functions align with the initial specifications. They identify issues and provide feedback to ensure the app meets the required standards.
  • Development team: The developers who have worked on creating the app should also participate in the confirmation process. They can provide insights and clarify the app's technical aspects.
  • Project manager: The project manager directs the entire project and handles its successful completion. They confirm if the app meets the initial specifications. Likewise, they coordinate the involvement of stakeholders and facilitate necessary decisions.

Quiz

In the previous subtopic, you learnt how to confirm if the application meets the initial specifications. One of the ways to confirm is to conduct demos and presentations. You must present the application to the required personnel.

Presenting the app allows the stakeholders to check and provide feedback on the following aspects:

  • Functionality
  • Usability
  • Specificity

Involving the required personnel can produce a more refined and effective final product. A presentation also allows discussions on any concerns or changes needed to align the app with the desired outcomes. It fosters a sense of ownership and engagement from the stakeholders. Moreover, it promotes transparency and enhances the decision-making process.

You can present the application to the following required personnel: 

These individuals or groups have a personal stake in the app's success. They may include the following: Project sponsors, Clients, Executives and Business owners. Their input and approval are crucial to ensuring the app meets their expectations. Likewise, they address the intended business needs.

These are the individuals who will be using the application on a day-to-day basis to perform specific tasks. Their feedback and perspective are invaluable in evaluating the following factors in the app: Usability, User experience and Effectiveness. Involving end users allows for user-centred design. Likewise, it ensures the app meets their needs and preferences.

QA professionals involved in the testing process should also be present. They can:

  • Provide insights into the application's performance
  • Identify any issues or bugs
  • Confirm whether the application meets the specified requirements

Their perspective on the app's quality and functions ensures it meets the desired standards.

They built the app and should also be present during the presentation. The development team can:

  • Provide technical aspects of the application
  • Explain the implemented features
  • Address questions or concerns raised by the stakeholders

Their presence ensures that their technical expertise is available. This is to discuss the app's functionality and details.

Business analysts primarily focus on understanding the business requirements, objectives and user needs. They assess whether the application aligns with the specified business requirements. Likewise, they verify if the app's functions meet the intended goals and ensure the user experience is in line with what was envisioned.

Product owners have a more direct involvement with the app's development and its features. They are responsible for setting the priorities and defining the scope. Likewise, they check whether the delivered features meet their expectations. They ensure the app's user stories and requirements are met, and the final product meets the needs of the end-users.

There are steps to present the application to the required personnel. These steps can vary depending on the organisation. However, here are the general steps you can follow:

  1. Gather all the necessary materials. You should ensure the application is fully functional and ready for presentation. Likewise, prepare an agenda and set clear objectives.
  2. Create visual aids illustrating the app's key features, functions and user interface. These visual aids can include slides and screenshots. These visual aids help in conveying information effectively and engaging the audience.
  3. Present the app's features and functionalities. You should focus on how they align with the initial specifications and requirements. Likewise, highlight the app's unique aspects that set it apart from existing solutions.
  4. Address the app's user experience and usability. You should showcase its intuitive navigation, responsive design and any user-centric design principles. Likewise, discuss how the application meets the users' needs
  5. Demonstrate the app's performance and reliability. You should show its responsiveness, speed and stability. Likewise, highlight any performance optimisation techniques or measures you used.
  6. Highlight the app's security measures and data protection mechanisms. You must address concerns about the following:
    • Data privacy
    • Authentication
    • Access controls
    • Any encryption or secure communication protocols used
  7. Encourage stakeholders and users to ask questions and provide feedback. Moreover, you must address their concerns promptly. You should also provide clear explanations. This ensures they understand the app's capabilities and limits.
  8. Handle any technical issues that may arise during the presentation. You should prepare a plan to troubleshoot and resolve issues to maintain a smooth presentation.
  9. meets the initial specifications and requirements. Moreover, provide an overview of the next steps, including further reading, refinement and impementation plans.
  10. Follow-up with the stakeholders and users after the presentation. This can help you gather more feedback and discuss potential changes. Likewise, it ensures everyone is aligned and satisfied with the presented application.
Programmers working together

After presenting the application to the required personnel, you should seek feedback. Feedback is crucial in creating an app. It is the responses from users or stakeholders about their experience with your app. Likewise, it identifies areas of improvement in the application. You can obtain feedback from the required personnel you learnt in the previous subtopic. Obtaining feedback involves a systematic approach to gathering their input effectively. Here are the steps you can follow:

  1. Determine the objectives of obtaining feedback. You must identify the required personnel, collection methods and timeline. You have learnt the required personnel in the previous subtopic.
  2. Select appropriate methods for collecting feedback. You must consider the preferences and availability of the personnel involved. Moreover, you can get feedback using either of the following methods:
  • survey
  • interview
  • focus group

    It involves presenting questions. They can answer anonymously or with their identity disclosed. Surveys can be online or in person. Moreover, they are useful for gathering quantitative and qualitative feedback.

    It can be conducted one-on-one or as a group. Also, it allows for more in-depth discussions. Likewise, interviews allow people to ask follow-up questions and understand their perspectives.

    It involves bringing together a group of personnel to discuss topics about the application. This method allows for the exchange of ideas among participants.

  1. Promote open and honest communication and actively listen to their perspectives and insights.
  2. Record the feedback received during the sessions, including positive and negative comments. You should capture specific details, suggestions and concerns they will raise.
  3. Ask the personnel for clarification if there are any ambiguities or more questions about the feedback. This will ensure their feedback has been accurately recorded.

After getting feedback from the required personnel, you can review your code based on the feedback. Here are the steps you can follow to check the code according to feedback:

  1. Review and analyse the feedback you received from the required personnel. Understand the specific areas of concern or improvement identified in the feedback.
  2. Identify the code components of the feedback received. Focus on the specific parts of the code you should review and modify based on the feedback.
  3. Review any existing code documentation, such as comments, annotations or design documents. This will help you understand the context and code's purpose. Likewise, it will help comprehend the code logic and functions.
  4. Perform a thorough review of the identified code segments. Check the code to follow the coding standards and design principles. Likewise, look for potential issues, such as code complexity, readability, maintainability and performance.
  5. Address the specific feedback raised during the review process. Adjust the code as necessary to include the requested changes. Ensure the code aligns with the initial program specifications and meets the requirements.
  6. Once you modify the codes, conduct testing to verify your changes. This ensures it does not introduce any new issues or bugs. Moreover, perform functional and other relevant testing procedures. These will ensure the code functions as expected. 
  7. If possible, involve the stakeholders who provided the feedback in the review process. You can share the modified code with them and verify if the changes address their concerns and meet their requirements.
  8. Update relevant documentation, such as code comments, user manuals and designer documents.This will reflect the changes made based on the feedback. Ensure the documentation accurately reflects the current state of the code.
  9. This will reflect the changes made based on the feedback. Ensure the documentation accurately reflects the current state of the code.

Once you review and adjust the code based on the feedback, you can get the necessary sign-off from the required personnel. Sign-off refers to the formal approval of the application by relevant stakeholders. It indicates they reviewed the work, ensured it met the required standards and were ready to proceed to the next project phase.

The required personnel for sign-off may vary depending on the organisation and project. Generally, it involves individuals who have the authority and responsibility to provide approval.

This may include the following:

  • project sponsor or client
  • project manager
  • prduct owner
  • quality assurance team

Obtaining sign-off is an important milestone in the software development process. Here are the steps you can follow:

  1. Determine the key stakeholders who have the authority and responsibility to provide sign-off. You learnt about these individuals in the previous discussion.
  2. Communicate the sign-off process to the stakeholders, including the following:
    • Criteria for sign-off
    • Deliverables to be reviewed
    • Expected timeline for the review
  3. Compile all the necessary documentation about the project, such as requirements, design documents and test reports. You must ensure the documentation is complete, updated and organised for easy review.
  4. Coordinate with the stakeholders to schedule a sign-off meeting. Provide sufficient notice and ensure all necessary stakeholders can attend the meeting.
  5. Present the project, highlighting its features, functionality and adherence to requirements. Likewise, you must address any concerns or questions. Show them how the project meets the initial specifications and addresses all the feedback.
  6. Once they are satisfied with the project and its compliance, request their formal sign-off. This can be in the form of written approval or electronic signature. The sign-off method may vary depending on the organisation's processes.
  7. Once you get the sign-off, document it for future reference. Keep a record of the signed-off documents, approvals and other comments or agreements made during the sign-off process. Then you can proceed to the project's next phase. This can include the app's deployment.

Obtaining feedback and sign-off from required personnel is crucial for the app's success. Feedback allows stakeholders to provide their insights, suggestions and concerns. It ensures the final product meets their expectations and requirements. Likewise, it provides an opportunity to address any issues or gaps early on. This reduces the risk of costly rework or dissatisfaction. It is also significant in validating the project's progress and quality. On the other hand, the sign-off signifies the project met the criteria and is ready to proceed to the next phase. It acts as a formal acceptance, providing a clear transition.

Quiz

Applying programming techniques is important when creating an application. It serves as the backbone and blueprint of the software you plan to create. Likewise, it provides the leg you can stand on to turn your plan into reality.

In programming, there are many things that you must consider and remember. These include the standards, specifications and guidelines you must observe. These documents serve as your basis for creating your application. They outline industry practices and program standards that can ease your development.

In this unit, you learnt the syntaxes, structures, data types and algorithms you can use to create your application. Likewise, you learnt the steps you can follow when applying these factors to practice. You also learnt how these factors affect the program's code.

Finally, this unit taught you how to create a simple application. In doing so, you ensured the program meets the expected specifications and standards. You also learnt to seek feedback and sign off once you complete your application.

Module Linking
Main Topic Image
Programmers working together
Is Study Guide?
Off
Is Assessment Consultation?
Off