<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Маржан Абдибаева</title>
    <description>The latest articles on DEV Community by Маржан Абдибаева (@__0e0e544e).</description>
    <link>https://dev.to/__0e0e544e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1320292%2F26e6592e-cf9d-4272-bad4-0ca19ccf686b.png</url>
      <title>DEV Community: Маржан Абдибаева</title>
      <link>https://dev.to/__0e0e544e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/__0e0e544e"/>
    <language>en</language>
    <item>
      <title>Evolution of Quality Attributes in Agile Software Development</title>
      <dc:creator>Маржан Абдибаева</dc:creator>
      <pubDate>Sat, 13 Apr 2024 18:09:16 +0000</pubDate>
      <link>https://dev.to/__0e0e544e/evolution-of-quality-attributes-in-agile-software-development-5gke</link>
      <guid>https://dev.to/__0e0e544e/evolution-of-quality-attributes-in-agile-software-development-5gke</guid>
      <description>&lt;p&gt;Title: Evolution of Quality Attributes in Agile Software DevelopmentAgile software development has undergone significant changes since its inception. Along with this, the quality attributes that have become key in the development process have also evolved. Let's explore the changes that have occurred in this area.Flexibility: One of the initial qualities of agile development was flexibility. Teams could quickly adapt to changing customer and market requirements, reducing time to market and increasing product competitiveness.Transparency: As agile methodologies evolved, it became clear that transparency is a key factor in successful collaboration within the team and with the customer. Transparency in reporting, processes, and communication helps avoid misunderstandings and conflicts.Quality: Initially, the focus was on speed of development and flexibility, but over time, the understanding of quality became deeper. Quality is not limited to just the functionality of the product but also includes development processes, testing, and change management.Value: It's important not only to develop the product quickly but also to provide maximum value to the customer. This means focusing on key features and customer needs, as well as continuously gathering feedback to improve the product.Resilience: As projects become more complex, resilience has become an important characteristic. Agile development teams must be able to adapt to unexpected changes while maintaining functionality and product quality.Innovation: Agile methodologies stimulate innovation. Teams are encouraged to experiment, test new ideas, and explore new technologies to create unique and competitive products.Collaboration: Finally, collaboration as a quality has become even more important in agile development. Effective interaction between team members, as well as with the customer and stakeholders, plays a key role in achieving success.In conclusion, the evolution of quality attributes in agile development has demonstrated a transition from emphasis on speed and flexibility to a deeper understanding of value, quality, resilience, and innovation. Collaboration and transparency remain fundamental to successful team work.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Assessing the usability of user interfaces in software systems</title>
      <dc:creator>Маржан Абдибаева</dc:creator>
      <pubDate>Tue, 26 Mar 2024 07:24:43 +0000</pubDate>
      <link>https://dev.to/__0e0e544e/assessing-the-usability-of-user-interfaces-in-software-systems-5efh</link>
      <guid>https://dev.to/__0e0e544e/assessing-the-usability-of-user-interfaces-in-software-systems-5efh</guid>
      <description>&lt;p&gt;**** Assessing the usability of user interfaces in software systems&lt;/p&gt;

&lt;p&gt;Creating software systems with usable interfaces is a key aspect of successful software development. But it requires careful analysis and evaluation of interface usability. The following is a five-step guide to evaluating the usability of user interfaces in software systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Determine usability metrics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you can begin evaluating the usability of your interface, you need to identify key usability metrics. These metrics include learnability (how easy it is to learn the system), efficiency (how quickly a task is completed), memorability (users' ability to remember and recall their actions), errors (frequency and severity of user errors), and satisfaction (user satisfaction with using the interface).&lt;/p&gt;

&lt;p&gt;Step 2: User Testing&lt;/p&gt;

&lt;p&gt;After defining the metrics, the next step is to develop user testing scenarios. These scenarios should reflect typical tasks that users will perform when using the software system. Test participants representing the target audience should be observed as they interact with the interface.&lt;/p&gt;

&lt;p&gt;Stage three: data collection&lt;/p&gt;

&lt;p&gt;Data collection included quantitative and qualitative analyses. Quantitative data can be collected using task completion rates and task completion times. Qualitative data can be collected by observing users and their feedback on the interaction of the interface.&lt;/p&gt;

&lt;p&gt;Step 4: Usability Analysis&lt;/p&gt;

&lt;p&gt;Once the data has been collected, you can start analysing the usability of your interface. This analysis will help you identify problem areas, pain points, and areas for usability improvement. For example, high error rates or long task completion times may indicate that you need to rethink your interface design.&lt;/p&gt;

&lt;p&gt;Step 5: Suggestions&lt;/p&gt;

&lt;p&gt;Based on the results of the analysis, recommendations are developed to improve the usability of the interface. This may include redesigning the layout, improving the navigation structure, adding tooltips, or incorporating user feedback mechanisms.&lt;/p&gt;

&lt;p&gt;In general, evaluating the usability of user interfaces in software systems requires a systematic approach that begins with identifying metrics and ends with developing recommendations for improvements. A properly performed evaluation will result in a software system that is successfully adopted and used by end users.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exploring the Role of Reactive Programming in Event-Driven Architectures</title>
      <dc:creator>Маржан Абдибаева</dc:creator>
      <pubDate>Sat, 02 Mar 2024 17:04:38 +0000</pubDate>
      <link>https://dev.to/__0e0e544e/exploring-the-role-of-reactive-programming-in-event-driven-architectures-lh7</link>
      <guid>https://dev.to/__0e0e544e/exploring-the-role-of-reactive-programming-in-event-driven-architectures-lh7</guid>
      <description>&lt;p&gt;Exploring the Role of Reactive Programming in Event-Driven Architectures&lt;br&gt;
Definition of what it is?&lt;/p&gt;

&lt;p&gt;In today's world, where information technology plays a key role in business and society, the concepts of event-driven architecture (SOA) and reactive programming (RP) are becoming increasingly important. SOA is an approach to software design based on creating, detecting, reacting and dispatching events, which enables a system to respond to changes in real time. On the other hand, RP is a programming paradigm in which a system responds to changes in external conditions or data by minimising blocking operations and increasing responsiveness.&lt;/p&gt;

&lt;p&gt;Importance and purpose of the research&lt;br&gt;
Reactive programming (RP) plays a key role in enhancing the capabilities of event-driven architectures (IDAs) for several reasons:&lt;br&gt;
 • Responsiveness and scalability:&lt;br&gt;
 • Asynchronous Processing:&lt;br&gt;
 • Error Management:&lt;br&gt;
 • Flexible data processing:&lt;br&gt;
The purpose of this study is to investigate the application of reactive programming in Event-Driven Architectures (EDA) to analyze its benefits, assess challenges and risks, and develop recommendations and best practices for successful integration of this approach.&lt;br&gt;
Basic concepts of RP:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Asynchronous Programming: Reactive programming involves working with asynchronous operations, where function calls do not block program execution but continue in parallel with other operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-blocking I/O: This principle allows an application to continue execution without waiting for I/O operations to complete. Instead, it continues to perform other tasks while the I/O operations complete.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reactive Streams: Reactive data streams are streams of events or data that can be processed and transferred asynchronously between system components. They provide flexible and efficient real-time data processing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reactive Programming (Responsiveness): Reactive programming aims to create highly responsive applications that provide fast response to user requests and minimise system latency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resilience: Reactive systems are built with failure detection and recovery capabilities in mind. They include mechanisms for automatic disaster recovery and distributed resource management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability (Scalability): Reactive programming facilitates the construction of systems that can scale efficiently both vertically (increasing performance on a single server) and horizontally (adding new servers).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These concepts help developers build flexible, responsive, and reliable systems that can efficiently handle real-time data and event streams.&lt;/p&gt;

&lt;p&gt;From the evidence presented, reactive frameworks such as RxJava, Project Reactor, Akka Streams, and Reactive Extensions (Rx) provide flexible means of integration with event-driven architectures. However, adapting existing systems to the reactive paradigm can require significant code and architecture changes. Reactive programming simplifies the development of event-driven applications and improves developer productivity and code maintainability, which is important for long-term system support and development.&lt;/p&gt;

&lt;p&gt;In conclusion, future research directions in reactive programming suggest a focus on hybrid approaches that integrate reactive and imperative programming paradigms. Additionally, there is a need to optimize reactive systems for performance within resource-constrained environments. Furthermore, it is essential to investigate the implications of adopting new technologies on reactive programming and ensure compliance with industry standards such as GDPR and HIPAA. Adapting to market trends, particularly addressing the challenges posed by escalating data volumes and real-time requirements, remains a critical area for exploration in the field.&lt;/p&gt;

</description>
      <category>sdu</category>
      <category>soft</category>
      <category>reactiveprogramming</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
