Requirements engineering process intends to obtain software services and constraints. This process is essential to meet the customer's needs and expectations. This process includes three main activities in general. These are detecting requirements by interacting with software stakeholders, transferring these requirements into a standard document, and examining that the requirements really define the software that the client needs. Functional requirements are services that the software should deliver to the end-user. In addition, functional requirements describe how the software should respond to specific inputs, and how the software should behave in certain circumstances. This paper aims to develop a software requirements specification document of the electronic IT news magazine system. The electronic magazine provides users to post and view up-to-date IT news. Still, there is a lack in the literature of comprehensive studies about the construction of the electronic magazine software specification and design in conformance with the contemporary software development processes. Moreover, there is a need for a suitable research framework to support the requirements engineering process. The novelty of this paper is the construction of software specification and design of the electronic magazine by following the Al-Msie'deen research framework. All the documents of software requirements specification and design have been constructed to conform to the agile usage-centered design technique and the proposed research framework. A requirements specification and design are suggested and followed for the construction of the electronic magazine software. This study proved that involving users extensively in the process of software requirements specification and design will lead to the creation of dependable and acceptable software systems.
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
1. Emergence of Software Engineering
In the software industry, we have seen the complexity of computer-based systems increase dramatically over the past decades along with advances in technology. This new technology has increased the demand for computer-based systems to control many infrastructures with software. As a result, designing and building cost-effective, reliable, and high-quality software has become the focus of software engineering in the computer industry.
In the past the processes used for designing and developing software were very informal, which contributed to the rise in development and maintenance costs. The results of ad hoc development processes contributed to a higher percentage of unreliable and lesser quality products entering the marketplace. Many accidents resulted from failures in computer-based systems with hardware devices that were controlled with software. At the time, the industry was considered to be in a crisis state, which then led to the emergence of new practices and methods in software engineering.
Technological advances have had a big impact on the complexity level required in software systems. The emergence of new communication protocols, hardware devices, and graphical user interface components have placed a greater demand on software engineers to design quality, reliable, and safe software.
A Brief History of Software Engineering
In the 1950s and the early 1960s, the various engineering disciplines were beginning to analyze how aspects of the engineering field could be applied to methods used in developing software products. As computing power evolved over the decades, the demand increased along with the complexity of the problems that needed to be addressed in the design of software. The term software engineering was introduced in 1968 at the first international software engineering conference, held by the North Atlantic Treaty Organization (NATO) Science Committee (Mahoney 2004). Many practitioners believe this is the milestone that marked the emergence of the software engineering discipline.
Software was developed to control critical hardware devices in the mid- to late-1960s and early 1970s. During this time, cases emerged that involved operational errors and accidents resulting in the loss of human lives and damage to property. Defects in software were uncovered, which heightened public awareness to the need for better quality and reliability of software. The escalating cost of building quality and reliable software was on the rise in the computer industry and the demand for skilled programmers could not be met. The state of software development was viewed by practitioners as being in a "crisis" state and was commonly referred to as the software crisis.
In response to the software crisis, researchers and practitioners have been trying to develop a set of methodologies, processes, and tools as the "silver bullet" for building software. The combination of these methodologies, processes, and tools i ...
Visualizing Object-oriented Software for Understanding and Documentation Ra'Fat Al-Msie'deen
Understanding or comprehending source code is one of
the core activities of software engineering. Understanding object-oriented source code is essential and required when a programmer maintains, migrates, reuses, documents or enhances source code. The source code that is not comprehended cannot be changed. The comprehension of object-oriented source code is a difficult problem solving process. In order to document object-oriented software system there are needs to understand its source code. To do so, it is necessary to mine source code dependencies in addition to quantitative information in source code such as the
number of classes. This paper proposes an automatic approach, which aims to document object-oriented software by visualizing its source code. The design of the object-oriented source code and its main characteristics are represented in the visualization. Package content, class information, relationships between classes, dependencies between methods and software metrics is displayed. The extracted views are very helpful to understand and document the object-oriented software. The novelty of this approach is the exploiting of code dependencies and quantitative information in source code to document object-oriented software efficiently by means of a set of graphs. To validate the approach, it has been applied to several case studies. The results of this evaluation showed that most of the object-oriented software systems have been documented correctly.
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...ijseajournal
Software development process presents various types of models with their corresponding phases required to be accordingly followed in delivery of quality products and projects. Despite the various expertise and skills of systems analysts, designers, and programmers, systems failure is inevitable when a suitable development process model is not followed. This paper focuses on the Iterative and Incremental Development (IID)model and justified its role in the analysis and design software systems. The paper adopted the qualitative research approach that justified and harnessed the relevance of IID in the context of systems analysis and design using the Vocational
Career Information System (VCIS) as a case study. The paper viewed the IID as a change-driven software development process model. The results showed some system specification, functional specification of system and design specifications that can be used in implementing the VCIS using the IID model. Thus, the paper concluded that in systems analysis and design, it is imperative to consider a suitable development process that reflects the engineering mind-set, with heavy emphasis on good analysis and design for quality assurance.
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...IOSR Journals
Abstract: The diverse and dynamic nature of elements and techniques used to develop Web Application, due to
the lack of testing technique and effective programming principles which are used for implementing
basic software engineering principles, and undisciplined development processes insure by the high pressure
of a very short time to satisfy market request to develop Web application. This paper represent approaches of
reengineering in web that how reengineering process can be carried out to evolution activities in legacy
system as well we propose the V-model for re-engineering process. This paper presents the need of the
technologies and approaches for building new web-services from existing web-applications. In this
paper we present the processing of V-model for Reengineering in web application which is the extension of Vmodel
used in software domain. In our approach V-model incorporates with the methodology
throughout the phases of web development process to re-engineer the web system.
Keywords:Re-engineering, reverse engineering, forward engineering, V-model, application migration.
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
1. Emergence of Software Engineering
In the software industry, we have seen the complexity of computer-based systems increase dramatically over the past decades along with advances in technology. This new technology has increased the demand for computer-based systems to control many infrastructures with software. As a result, designing and building cost-effective, reliable, and high-quality software has become the focus of software engineering in the computer industry.
In the past the processes used for designing and developing software were very informal, which contributed to the rise in development and maintenance costs. The results of ad hoc development processes contributed to a higher percentage of unreliable and lesser quality products entering the marketplace. Many accidents resulted from failures in computer-based systems with hardware devices that were controlled with software. At the time, the industry was considered to be in a crisis state, which then led to the emergence of new practices and methods in software engineering.
Technological advances have had a big impact on the complexity level required in software systems. The emergence of new communication protocols, hardware devices, and graphical user interface components have placed a greater demand on software engineers to design quality, reliable, and safe software.
A Brief History of Software Engineering
In the 1950s and the early 1960s, the various engineering disciplines were beginning to analyze how aspects of the engineering field could be applied to methods used in developing software products. As computing power evolved over the decades, the demand increased along with the complexity of the problems that needed to be addressed in the design of software. The term software engineering was introduced in 1968 at the first international software engineering conference, held by the North Atlantic Treaty Organization (NATO) Science Committee (Mahoney 2004). Many practitioners believe this is the milestone that marked the emergence of the software engineering discipline.
Software was developed to control critical hardware devices in the mid- to late-1960s and early 1970s. During this time, cases emerged that involved operational errors and accidents resulting in the loss of human lives and damage to property. Defects in software were uncovered, which heightened public awareness to the need for better quality and reliability of software. The escalating cost of building quality and reliable software was on the rise in the computer industry and the demand for skilled programmers could not be met. The state of software development was viewed by practitioners as being in a "crisis" state and was commonly referred to as the software crisis.
In response to the software crisis, researchers and practitioners have been trying to develop a set of methodologies, processes, and tools as the "silver bullet" for building software. The combination of these methodologies, processes, and tools i ...
Visualizing Object-oriented Software for Understanding and Documentation Ra'Fat Al-Msie'deen
Understanding or comprehending source code is one of
the core activities of software engineering. Understanding object-oriented source code is essential and required when a programmer maintains, migrates, reuses, documents or enhances source code. The source code that is not comprehended cannot be changed. The comprehension of object-oriented source code is a difficult problem solving process. In order to document object-oriented software system there are needs to understand its source code. To do so, it is necessary to mine source code dependencies in addition to quantitative information in source code such as the
number of classes. This paper proposes an automatic approach, which aims to document object-oriented software by visualizing its source code. The design of the object-oriented source code and its main characteristics are represented in the visualization. Package content, class information, relationships between classes, dependencies between methods and software metrics is displayed. The extracted views are very helpful to understand and document the object-oriented software. The novelty of this approach is the exploiting of code dependencies and quantitative information in source code to document object-oriented software efficiently by means of a set of graphs. To validate the approach, it has been applied to several case studies. The results of this evaluation showed that most of the object-oriented software systems have been documented correctly.
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...ijseajournal
Software development process presents various types of models with their corresponding phases required to be accordingly followed in delivery of quality products and projects. Despite the various expertise and skills of systems analysts, designers, and programmers, systems failure is inevitable when a suitable development process model is not followed. This paper focuses on the Iterative and Incremental Development (IID)model and justified its role in the analysis and design software systems. The paper adopted the qualitative research approach that justified and harnessed the relevance of IID in the context of systems analysis and design using the Vocational
Career Information System (VCIS) as a case study. The paper viewed the IID as a change-driven software development process model. The results showed some system specification, functional specification of system and design specifications that can be used in implementing the VCIS using the IID model. Thus, the paper concluded that in systems analysis and design, it is imperative to consider a suitable development process that reflects the engineering mind-set, with heavy emphasis on good analysis and design for quality assurance.
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...IOSR Journals
Abstract: The diverse and dynamic nature of elements and techniques used to develop Web Application, due to
the lack of testing technique and effective programming principles which are used for implementing
basic software engineering principles, and undisciplined development processes insure by the high pressure
of a very short time to satisfy market request to develop Web application. This paper represent approaches of
reengineering in web that how reengineering process can be carried out to evolution activities in legacy
system as well we propose the V-model for re-engineering process. This paper presents the need of the
technologies and approaches for building new web-services from existing web-applications. In this
paper we present the processing of V-model for Reengineering in web application which is the extension of Vmodel
used in software domain. In our approach V-model incorporates with the methodology
throughout the phases of web development process to re-engineer the web system.
Keywords:Re-engineering, reverse engineering, forward engineering, V-model, application migration.
Modern gadgets and machines such as medical equipments, mobile phones, cars and even military hardware run on software. The operational efficiency and accuracy of these machines are critical to life and the well being of modern civilization. When the software powering these machines fail it exposes life to danger and can cause the failure of businesses. In this paper, software quality measure is presented with the emphasis on improving standard and controlling damages that may result from badly developed application. The research shows various software quality standards and quality metrics and how they can be applied. The application of the metrics in measuring software quality in the research produced results which shows that the code metrics performance is better than the design metrics performance and points to a new way of improving quality by refactoring application code instead of developing new designs. This is believed to ensure reusability and reduced failure rate when software is developed
this pdf file includes software development life cycle, requirement analysis and specification, project management, design, coding, testing, maintenance and quality reuse and case tools.
Biomedical engineering work is subjected to stringent regulatory constraints that mandate a robust engineering process that conforms to all pertinent regulatory guidelines and imperatives.
Software development is an important component of any engineering project and as such, it should be equally addressed and properly integrated with the overall engineering process. To that effect, the following software development process is proposed. This process attempts to be well grounded in the nature of innovative Biomedical engineering work. There are inherent significant technology risks related to the development of innovative biomedical devices. These risks must be correctly identified, and mitigated throughout the entire engineering process. The main benefit of the software development process presented here is its explicit management of software risk factors as recommended by modern successful software development practices.
Appendix AProof of effectiveness of some of the agile methods us.docxarmitageclaire49
Appendix A
Proof of effectiveness of some of the agile methods used to develop systems requirements
In all software development methodologies, the process of collecting, understanding and managing all requirements for a system is a crucial process in software development. Similar to all this other methods, agile methods are not exceptional. Most agile method handle requirements in order to implement them as much accurately as possible to satisfy all the customer demands. This is usually achieved by maintaining a continuous interaction with the customers to address their needs according to priority and functionalities. In this appendix, we shall be focusing on continuous process of improving the development process.
Some agile methods include the following
1. eXtreme Programming (XP) – it improves a software project in communication, simplicity, feedback and courage.
2. scrum- this is an agile, iterative and incremental method which takes care of all changes that may come across in the life-cycle of the project. Basically, it adds energy, focus and clarity to development teams. Its major aim is ot see the whole system being a successful product.
3. Dynamic system, development method (DSDM)
4. Adaptive software development (ASD)- this is a development process that is a product of rapid application development. It has four phases of communication and planning, analysis, testing & deployment and design and deployment.
5. the crystal family
Due to availability of these various methods, the potential adopters may experience a challenge of determining what to apply on its own and therefore there was need to define a document containing all the necessary values and common qualities to be used across all agile methods. This document is the Agile Manifesto and focuses mainly on human interactivity and processes management.
1. Individual and interaction over various processes and tasks. Usually the agile process will focus more on people and their interactivity but not on the structural processes and tools.
2. Working software and documentation. Main objective of the developers is actually delivering a functional code which will always add value to our users. Well documented code is always self-documented.
3. Responding to change over planning. Here developers are required to respond very fast to the requirements variations. Time used in planning is minimal compared to what our users actually requires.
4. Customer collaboration over contracts. The mutual relationship of the developers and susers of our system is monitored and regulated through engaging the customer in the development process.
The figure below shows the steps in agile methodologies which focus on an iteration and adaptable change.
5.
Tools needed for requirement management in agile methods of system development.
1. The most popular tools in agile methods include paper, pencil a drawing pin board. If we consider eXtreme programming requirements are obtained from user stories which ar.
Requirement Engineering Challenges in Development of Software Applications an...Waqas Tariq
Requirement Engineering acts as foundation for any software and is one of the most important tasks. Entire software is supported by four pillars of requirement engineering processes. Functional and non-functional requirements work as bricks to support software edifice. Finally, design, implementation and testing add stories to construct entire software tower on top of this foundation. Thus, the base needs to be well-built to support rest of software tower. For this purpose, requirement engineers come across with numerous challenges to develop successful software. The paper has highlighted requirement engineering challenges encountered in development of software applications and selection of right customer-off-the-shelf components (COTS). Comprehending stakeholder’s needs; incomplete and inconsistent process description; verification and validation of requirements; classification and modeling of extensive data; selection of COTS product with minimum requirement modifications are foremost challenges faced during requirement engineering. Moreover, the paper has discussed and critically evaluated challenges highlighted by various researchers. Besides, the paper presents a model that encapsulates seven major challenges that recur during requirement engineering phase. These challenges have been further categorized into problems. Furthermore, the model has been linked with previous research work to elaborate challenges that have not been specified earlier. Anticipating requirement engineering challenges could assist requirement engineers to prevent software tower from any destruction.
DESQA a Software Quality Assurance FrameworkIJERA Editor
In current software development lifecycles of heterogeneous environments, the pitfalls businesses have to face are that software defect tracking, measurements and quality assurance do not start early enough in the development process. In fact the cost of fixing a defect in a production environment is much higher than in the initial phases of the Software Development Life Cycle (SDLC) which is particularly true for Service Oriented Architecture (SOA). Thus the aim of this study is to develop a new framework for defect tracking and detection and quality estimation for early stages particularly for the design stage of the SDLC. Part of the objectives of this work is to conceptualize, borrow and customize from known frameworks, such as object-oriented programming to build a solid framework using automated rule based intelligent mechanisms to detect and classify defects in software design of SOA. The implementation part demonstrated how the framework can predict the quality level of the designed software. The results showed a good level of quality estimation can be achieved based on the number of design attributes, the number of quality attributes and the number of SOA Design Defects. Assessment shows that metrics provide guidelines to indicate the progress that a software system has made and the quality of design. Using these guidelines, we can develop more usable and maintainable software systems to fulfill the demand of efficient systems for software applications. Another valuable result coming from this study is that developers are trying to keep backwards compatibility when they introduce new functionality. Sometimes, in the same newly-introduced elements developers perform necessary breaking changes in future versions. In that way they give time to their clients to adapt their systems. This is a very valuable practice for the developers because they have more time to assess the quality of their software before releasing it. Other improvements in this research include investigation of other design attributes and SOA Design Defects which can be computed in extending the tests we performed.
Software Metrics for Identifying Software Size in Software Development ProjectsVishvi Vidanapathirana
This paper defines the best software metrics that can be used to define the size of the software in the current industry of information technology (IT)
Software Project Documentation - An Essence of Software DevelopmentEswar Publications
Software documentation is a critical attribute of both software projects and software engineering in general.
Documentation is considered as a media of communication among the parties involved during software development as
well the one who will be using the software. It consists of written particulars concerning software specifications as well as what it does, in which manner it accomplishes the specified details and even how to exercise it. In this paper, we tried to focus on the role of documentation in software projects.
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'Fat Al-Msie'deen
Software artifacts visualization helps software developers to manage the size and complexity of the software system. The tag cloud technique visualizes tags within the cloud according to their frequencies in software artifacts. A font size of the tag within the cloud indicates its frequency within a software artifact, while the color of a tag within the cloud uses just for aesthetic purposes. This paper suggests a new approach (SoftCloud) to visualize software artifacts as a tag cloud. The originality of SoftCloud is visualizing all the artifacts available to the software program as a tag cloud. Experiments have conducted on different software artifacts to validate SoftCloud and demonstrate its strengths. The results showed the ability of SoftCloud to correctly retrieve all tags and their frequencies from available software artifacts.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
More Related Content
Similar to Constructing a software requirements specification and design for electronic IT news magazine system
Modern gadgets and machines such as medical equipments, mobile phones, cars and even military hardware run on software. The operational efficiency and accuracy of these machines are critical to life and the well being of modern civilization. When the software powering these machines fail it exposes life to danger and can cause the failure of businesses. In this paper, software quality measure is presented with the emphasis on improving standard and controlling damages that may result from badly developed application. The research shows various software quality standards and quality metrics and how they can be applied. The application of the metrics in measuring software quality in the research produced results which shows that the code metrics performance is better than the design metrics performance and points to a new way of improving quality by refactoring application code instead of developing new designs. This is believed to ensure reusability and reduced failure rate when software is developed
this pdf file includes software development life cycle, requirement analysis and specification, project management, design, coding, testing, maintenance and quality reuse and case tools.
Biomedical engineering work is subjected to stringent regulatory constraints that mandate a robust engineering process that conforms to all pertinent regulatory guidelines and imperatives.
Software development is an important component of any engineering project and as such, it should be equally addressed and properly integrated with the overall engineering process. To that effect, the following software development process is proposed. This process attempts to be well grounded in the nature of innovative Biomedical engineering work. There are inherent significant technology risks related to the development of innovative biomedical devices. These risks must be correctly identified, and mitigated throughout the entire engineering process. The main benefit of the software development process presented here is its explicit management of software risk factors as recommended by modern successful software development practices.
Appendix AProof of effectiveness of some of the agile methods us.docxarmitageclaire49
Appendix A
Proof of effectiveness of some of the agile methods used to develop systems requirements
In all software development methodologies, the process of collecting, understanding and managing all requirements for a system is a crucial process in software development. Similar to all this other methods, agile methods are not exceptional. Most agile method handle requirements in order to implement them as much accurately as possible to satisfy all the customer demands. This is usually achieved by maintaining a continuous interaction with the customers to address their needs according to priority and functionalities. In this appendix, we shall be focusing on continuous process of improving the development process.
Some agile methods include the following
1. eXtreme Programming (XP) – it improves a software project in communication, simplicity, feedback and courage.
2. scrum- this is an agile, iterative and incremental method which takes care of all changes that may come across in the life-cycle of the project. Basically, it adds energy, focus and clarity to development teams. Its major aim is ot see the whole system being a successful product.
3. Dynamic system, development method (DSDM)
4. Adaptive software development (ASD)- this is a development process that is a product of rapid application development. It has four phases of communication and planning, analysis, testing & deployment and design and deployment.
5. the crystal family
Due to availability of these various methods, the potential adopters may experience a challenge of determining what to apply on its own and therefore there was need to define a document containing all the necessary values and common qualities to be used across all agile methods. This document is the Agile Manifesto and focuses mainly on human interactivity and processes management.
1. Individual and interaction over various processes and tasks. Usually the agile process will focus more on people and their interactivity but not on the structural processes and tools.
2. Working software and documentation. Main objective of the developers is actually delivering a functional code which will always add value to our users. Well documented code is always self-documented.
3. Responding to change over planning. Here developers are required to respond very fast to the requirements variations. Time used in planning is minimal compared to what our users actually requires.
4. Customer collaboration over contracts. The mutual relationship of the developers and susers of our system is monitored and regulated through engaging the customer in the development process.
The figure below shows the steps in agile methodologies which focus on an iteration and adaptable change.
5.
Tools needed for requirement management in agile methods of system development.
1. The most popular tools in agile methods include paper, pencil a drawing pin board. If we consider eXtreme programming requirements are obtained from user stories which ar.
Requirement Engineering Challenges in Development of Software Applications an...Waqas Tariq
Requirement Engineering acts as foundation for any software and is one of the most important tasks. Entire software is supported by four pillars of requirement engineering processes. Functional and non-functional requirements work as bricks to support software edifice. Finally, design, implementation and testing add stories to construct entire software tower on top of this foundation. Thus, the base needs to be well-built to support rest of software tower. For this purpose, requirement engineers come across with numerous challenges to develop successful software. The paper has highlighted requirement engineering challenges encountered in development of software applications and selection of right customer-off-the-shelf components (COTS). Comprehending stakeholder’s needs; incomplete and inconsistent process description; verification and validation of requirements; classification and modeling of extensive data; selection of COTS product with minimum requirement modifications are foremost challenges faced during requirement engineering. Moreover, the paper has discussed and critically evaluated challenges highlighted by various researchers. Besides, the paper presents a model that encapsulates seven major challenges that recur during requirement engineering phase. These challenges have been further categorized into problems. Furthermore, the model has been linked with previous research work to elaborate challenges that have not been specified earlier. Anticipating requirement engineering challenges could assist requirement engineers to prevent software tower from any destruction.
DESQA a Software Quality Assurance FrameworkIJERA Editor
In current software development lifecycles of heterogeneous environments, the pitfalls businesses have to face are that software defect tracking, measurements and quality assurance do not start early enough in the development process. In fact the cost of fixing a defect in a production environment is much higher than in the initial phases of the Software Development Life Cycle (SDLC) which is particularly true for Service Oriented Architecture (SOA). Thus the aim of this study is to develop a new framework for defect tracking and detection and quality estimation for early stages particularly for the design stage of the SDLC. Part of the objectives of this work is to conceptualize, borrow and customize from known frameworks, such as object-oriented programming to build a solid framework using automated rule based intelligent mechanisms to detect and classify defects in software design of SOA. The implementation part demonstrated how the framework can predict the quality level of the designed software. The results showed a good level of quality estimation can be achieved based on the number of design attributes, the number of quality attributes and the number of SOA Design Defects. Assessment shows that metrics provide guidelines to indicate the progress that a software system has made and the quality of design. Using these guidelines, we can develop more usable and maintainable software systems to fulfill the demand of efficient systems for software applications. Another valuable result coming from this study is that developers are trying to keep backwards compatibility when they introduce new functionality. Sometimes, in the same newly-introduced elements developers perform necessary breaking changes in future versions. In that way they give time to their clients to adapt their systems. This is a very valuable practice for the developers because they have more time to assess the quality of their software before releasing it. Other improvements in this research include investigation of other design attributes and SOA Design Defects which can be computed in extending the tests we performed.
Software Metrics for Identifying Software Size in Software Development ProjectsVishvi Vidanapathirana
This paper defines the best software metrics that can be used to define the size of the software in the current industry of information technology (IT)
Software Project Documentation - An Essence of Software DevelopmentEswar Publications
Software documentation is a critical attribute of both software projects and software engineering in general.
Documentation is considered as a media of communication among the parties involved during software development as
well the one who will be using the software. It consists of written particulars concerning software specifications as well as what it does, in which manner it accomplishes the specified details and even how to exercise it. In this paper, we tried to focus on the role of documentation in software projects.
Similar to Constructing a software requirements specification and design for electronic IT news magazine system (20)
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'Fat Al-Msie'deen
Software artifacts visualization helps software developers to manage the size and complexity of the software system. The tag cloud technique visualizes tags within the cloud according to their frequencies in software artifacts. A font size of the tag within the cloud indicates its frequency within a software artifact, while the color of a tag within the cloud uses just for aesthetic purposes. This paper suggests a new approach (SoftCloud) to visualize software artifacts as a tag cloud. The originality of SoftCloud is visualizing all the artifacts available to the software program as a tag cloud. Experiments have conducted on different software artifacts to validate SoftCloud and demonstrate its strengths. The results showed the ability of SoftCloud to correctly retrieve all tags and their frequencies from available software artifacts.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
Software companies usually develop a set of product variants within the same family that share certain functions and differ in others. Variations across software variants occur to meet different customer requirements. Thus, software product variants evolve overtime to cope with new requirements. A software engineer who deals with this family may find it difficult to understand the evolution scenarios that have taken place over time. In addition, software identifier names are important resources to understand the evolution scenarios in this family. This paper introduces an automatic approach called Juana’s approach to detect the evolution scenario across two product variants at the source code level and identifies the common and unique software identifier names across software variants source code. Juana’s approach refers to common and unique identifier names as a software identifiers map and computes it by comparing software variants to each other. Juana considers all software identifier names such as package, class, attribute, and method. The novelty of this approach is that it exploits common and unique identifier names across the source code of software variants, to understand the evolution scenarios across software family in an efficient way. For validity, Juana was applied on ArgoUML and Mobile Media software variants. The results of this evaluation validate the relevance and the performance of the approach as all evolution scenarios were correctly detected via a software identifiers map.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
Source code summarization is a process of generating summaries that describes software code, the majority of source code summarization usually generated manually, where the summaries are written by software developers. Recently, new automated approaches are becoming more useful. These approaches have been found to be effective in some cases. The main weaknesses of these approaches are that they never exploit code dependencies and summarize either the software classes or methods but not both. This paper proposes a source code summarization approach (Suncode) that produces a short description for each class and method in the software system. To validate the approach, it has been applied on several case studies. Moreover, the generated summaries are compared to summaries that written by human experts and to summaries that written by a state-of-the-art solution. Results of this paper found that Suncode summaries provide better information about code dependencies comparing with other studies. In addition, Suncode summaries can improve and support the current software documentation. The results found that manually written summaries were more precise and short as well.
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...Ra'Fat Al-Msie'deen
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementation Block (IFIB) to complete the feature identification process. The feature naming process remains a challenging task, where the majority of existing approaches manually assign the name of the IFIB. In this paper, the approach called FeatureClouds was proposed, which can be exploited by software developers to name the IFIBs from software code. FeatureClouds approach incorporates word clouds visualization technique to name Feature Blocks (FBs) by using the most frequent words across these blocks. FeatureClouds had evaluated by assessing its added benefit to the current approaches in the literature, where limited tool support was supplied to software developers to distinguish feature names of the IFIBs. For validity, FeatureClouds had applied to draw shapes and ArgoUML software. The findings showed that the proposed approach achieved promising results according to well-known metrics in terms of Precision and Recall.
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...Ra'Fat Al-Msie'deen
YamenTrace - Requirements Traceability: Recovering and Visualizing Traceability Links Between Requirements and Source Code of Object-oriented Software Systems (Presentation 2023)
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachRa'Fat Al-Msie'deen
Most of open-source software systems become available on the internet today. Thus, we need automatic methods to label software code. Software code can be labeled with a set of keywords. These keywords in this paper referred as software labels. The goal of this paper is to provide a quick view of the software code vocabulary. This paper proposes an automatic approach to document the object-oriented software by labeling its code. The approach exploits all software identifiers to label software code. The paper presents the results of study conducted on the ArgoUML and drawing shapes case studies. Results showed that all code labels were correctly identified.
Detecting commonality and variability in use-case diagram variantsRa'Fat Al-Msie'deen
The use-case diagram is a software artifact. Thus, as with any software artifact, the use-case diagrams change across time through the software development life cycle. Therefore, several versions of the same diagram are existed at distinct times. Thus, comparing all use-case diagram variants to detect common and variable use-cases becomes one of the main challenges in the product line reengineering field. The contribution of this paper is to suggest an automatic approach to compare a collection of use-case diagram variants and detect both commonality and variability. In our work, every use-case represents a feature. The proposed approach visualizes the detected features using formal concept analysis, where common and variable features are introduced to software engineers. The proposed approach was applied on a mobile media case study to be validated. The findings confirm the importance and the performance of the suggested approach as all common and variable features were precisely detected via formal concept analysis and latent semantic indexing.
Naming the Identified Feature Implementation Blocks from Software Source CodeRa'Fat Al-Msie'deen
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementation Block (IFIB) to complete the feature identification process. The feature naming process remains a challenging task, where the majority of existing approaches manually assign the name of the IFIB. In this paper, the approach called FeatureClouds was proposed, which can be exploited by software developers to name the IFIBs from software code. FeatureClouds approach incorporates word clouds visualization technique to name Feature Blocks (FBs) by using the most frequent words across these blocks. FeatureClouds had evaluated by assessing its added benefit to the current approaches in the literature, where limited tool support was supplied to software developers to distinguish feature names of the IFIBs. For validity, FeatureClouds had applied to draw shapes and ArgoUML software. The findings showed that the proposed approach achieved promising results according to well-known metrics in terms of Precision and Recall.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
2. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
105
simpler to comprehend and change. Several studies
extract different kinds of documents from software
code to help engineers understand the software
when its documents are missing. For instance, Al-
Msiedeen and Blasi (2021) extracted the software
identifiers map from the software code to
understand software evolution across the software
family. AL-Msie’deen et al. (2014c; 2013b; 2013c)
extracted feature models from software variants to
understand variability across those variants. While,
when the requirements document is available all
information about software evolution is included in
the preface chapter. Where preface chapter includes
a justification for the creation of a new release and a
summary of the changes produced in each release.
Software processes are the steps involved in
creating a software product. Software specification is
the process of developing and documenting software
requirements documents. The development process
is concerned with converting a requirements
document into an executable application. Software
validation is the process of examining that the
software meets its requirements and that it
conforms to the real needs of software customers.
Software evolution takes place when the software
developer modifies current software to meet new
requirements.
Software requirements set out what the software
should do and describe the constraints on its
operation and development. Functional
requirements are the services that the software must
deliver to the end-user such as the login feature.
Non-functional requirements (i.e., emergent
properties) specify or constrain features of the
whole system such as security. The requirements
engineering process consists of requirements
elicitation, specification, validation, and
management.
Requirements elicitation is an iterative process
that consists of requirements discovery,
classification and organization, prioritization and
negotiation, and documentation (Sommerville,
2016). Requirements specification is the process of
documenting the software requirements. The
software requirements document is an agreed
document of the software requirements. This
document is organized in a good manner (such as the
IEEE software requirements specification template)
so that both system customers and developers (i.e.,
software stakeholders) can use it. Requirements
validation is the process of examining the
requirements for consistency, completeness, and
realism. Requirements management is the process of
managing change to the requirements for a system.
The requirements elicitation stage involves
meeting with different software stakeholders (e.g.,
software architects and customer engineers) to find
out information about the suggested software. There
are two basic ways to requirements elicitation,
which are: Interviewing, where you speak to people
about what they do and what they want from the
software (i.e., services); and work observation or
ethnography, where software engineers watch users
doing their work to see what procedures, business
documents, and artifacts they use. The software
engineer is supposed to use a mix of interviewing
and ethnography to obtain the software
requirements.
Story and scenario are basically the same
documents. They are an explanation of how the
software product can be used for some specific job.
They describe what end users do, what information
they use and generate, and what other software
products they may use in this task. The user story is
written as narrative text and shows an abstract
description of software use (Table 1); the scenario is
a structured form of a user story with specific
information gathered, such as Task inputs,
exceptions, processes, and outputs. A scenario
begins with a summary of the interaction.
Throughout the elicitation process, specific details
are included to produce a complete description of
that interaction. A scenario may include a
description of the initial state, the normal flow of
events, what can go wrong, and the final state. As an
example of a scenario, Fig. 1 describes what happens
when a professor uploads news to the IMMITN
application. Software requirements are usually
determined by the customer (i.e., end-user). In this
paper, the authors play the roles of the customer and
developer.
Login to IMMITN Add-news link Add-news form Confirm news details
- Invalid username or password.
- Login retry
Exceptions
- Enter help system of IMMITN.
- Permission denied
- Refill add-news form.
- Invalid file extension.
- Input news title, body, or photo
- Timeout.
- Auto logout
Logout from
IMMITN
Exceptions
Add-news form OK
Login OK Send-to News confirmed
Username
Password
Exceptions Exceptions
Fig. 1: Figure-based scenario for uploading news on the suggested software system
In this paper, we introduce an Interactive
Multimedia Magazine for IT News application
(IMMITN), which supports user interaction,
hyperlink, video, and animation. The application will
be implemented through rich interaction and
multimedia features. Interactive multimedia
technology has been named a hybrid technology.
Interactive multimedia combines the storage and
3. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
106
recovery abilities of the database with tools for
presenting and manipulating database contents.
Multimedia has a lot of different meanings, and
definitions differ based on the context. For the
purposes of this paper, in the context of an
interactive multimedia magazine, interactive
multimedia is a material that includes some
combination of texts, pictures, video, and animation.
Interactive multimedia can deliver great amounts of
materials in many forms, and deliver them in an
application that allows end-users to control the
reading and viewing experiment.
Table 1 is an example of a story that we
established to understand the requirements of
IMMITN. This story describes the IMMITN
application. This application uses to deploy up-to-
date IT news. You can realize this is a very high-level
explanation of the proposed application. Its aim is to
facilitate discussion of how the IMMITN application
might be used. This high-level description works as a
starting point for eliciting the requirement
specifications for that application.
Table 1: A user story for IMMITN application
Interactive multimedia magazine for IT news
Ra'Fat is an associate professor at Mutah University (a university in the south of Jordan). He has decided that a software engineering course
project should be focused on the deployment of up-to-date IT News. IMMITN is a web-based application. This application consists of four
users, which are: guest, student, professor, and admin. The interactive multimedia magazine publishes one volume per year, where the
volume consists of two issues.
Ra'Fat suggests the IMMITN application, a news-sharing site that allows the admin to check and manage news (i.e., the admin rejects or
accepts the news). Students and professors use the IMMITN services to view and add news. When students and professors register to the
application and log in, they can immediately use the system to upload news from their mobile devices or personal computers. Finally, the
IMMITN application allows guests (i.e., anybody from outside IT college) to browse IT news without any permission.
The software process is the activities that are
related to developing a software product. These
days, most systems are being developed using two
processes, a plan-driven, and incremental
development process. The plan-driven process is a
software process where all of the process stages are
planned in advance before the software system is
developed. This type of software process needs full
documentation of software. An example of a plan-
driven process is the waterfall model. In a plan-
driven process, you plan all of the process stages in
advance before starting software development (i.e.,
requirements and the design are developed
separately). The incremental software development
process is a process for software development where
the software is developed, delivered, tested, and
deployed in increments (i.e., requirements and the
design are developed together). An example of an
incremental process is the agile method of software
development (Sommerville, 2016; Boehm and
Turner, 2004). This study relies on an incremental
software development process, in order to develop
the suggested software. Fig. 2 presents the important
differences between plan-driven and agile methods
to software specification development.
Requirements
engineering process
Requirements
engineering process
Software design and
implementation
Software design and
implementation
Requirements
specification document
Requirements change requests or requirements problems
Iterations of
development process
Series of versions (increments) Final software
Integrate system
B. Incremental / agile development process
A. Plan-based development process
Software product
increment n
increment 0
Fig. 2: Plan-driven and agile development methods
The agile method is a method of software
development that is aimed at quick software
delivery. The software product is developed and
delivered to customers or customer proxy in
increments. In this method, the process
documentation is minimized. The focus of this
development method is on the software code, rather
than software documents.
4. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
107
In this paper, the authors adopted the agile
method and user-centered design in order to
develop the IMMITN application. The reason for
choosing the agile approach is that this approach
supports changes that can occur at the level of
requirements, unlike the waterfall model. On the
other hand, the requirements from the beginning
cannot be fully defined. As the software
requirements change or as requirements problems
are detected, the software design or implementation
must be revised, reworked, and tested (Kotonya and
Sommerville, 1998). As a software engineer, you
should pay attention to the system specifications, as
requirements engineering costs about 15% of total
system development costs.
Our study is detailed in the rest of this paper as
follows. Section 2 presents the related work closest
to our contributions. Section 3 outlines the software
requirements specification and design development
process. Section 4 illustrates the research framework
in detail. Finally, Section 5 concludes and presents
perspectives for this study.
2. Literature survey
This section presents the related works closest to
this paper. Al-Msie’deen (2008; 2014) and Alfrijat
and Al-Msie’deen (2009) introduced an application
called local news WAP/WEB application. Local news
application provides users in the rural communities
of Malaysia with the appropriate news services that
could help them to view and upload numerous news
related to their life. The author developed a
requirements model for the proposed application.
The author suggested a model for the requirements
that present the functional and non-functional
requirements of the system. Requirement
specifications have been written using natural
language supported by tables and Unified Modelling
Language (UML) diagrams. While the work
presented in this paper aims to present the
functional requirements of the interactive
multimedia magazine application.
Islam and Nofal (2008) suggested replacing the
traditional e-book (i.e., training materials for
EduWave system in Jordan), with an interactive
multimedia book. His work aims to design an
interactive multimedia book as training material for
the EduWave system and to evaluate this book in
terms of interface design and content. The proposed
application allows teachers to upload the multimedia
contents, then students can view and interact with
book pages. His work is similar to the work
presented in this research, where multimedia is used
to deliver interactive content to users through an
interactive multimedia magazine.
In their research, Ayobami and Osman (2013)
stated that the reason for the software failure to
accept is due to the inability of this system to meet
the needs and desires of the clients of the software.
The authors proposed a mobile application for
fishermen in Malaysia. They evaluated the proposed
functional requirements of this application using a
qualitative-based users’ participatory design
methodology. In fact, the application must be
validated to ensure that it does what the client
wants. In this paper, the authors validate the
proposed application based on the predefined
software requirements specification.
Choi et al. (2011) suggested an approach in
developing e-Textbooks, which distinguished
learning from traditional teaching. E-Textbook
integrates multimedia and contains more interactive
functions than the traditional printed textbook. The
same is true for the e-magazine, as it differs from the
traditional magazine, as it provides the news
interestingly and attracts the reader with the
capabilities of multimedia and in an interactive way.
Choi et al. (2014) suggested an interactive e-book
reader application, which provides rich features of
multimedia such as hyperlinks, video, and animation.
Their work proved that HTML-5 based technologies
have reasonable merits for an e-book. Their
application is very close to the software product
suggested in this research, as both applications took
advantage of the rich features of multimedia in order
to provide the end-user with certain content in an
interactive and fun way.
Paz and Boussaidi (2018) offered a software
development methodology for an avionics control
software system. The authors suggested and
followed a requirements specification and design
methodology to construct the proposed software
system.
Nowadays, the usage of the electronic magazine
(e-magazine) is an advanced method of seemly with
present generation reading style in obtaining
information. This fact becomes clearer with the
advancement accomplished in computer technology,
the internet, smartphone, and multimedia. Most of
the existing studies exploit multimedia in the fields
of e-learning, e-book, e-Textbook with limited
interactive features. Related work does not provide a
study that exploits multimedia features in order to
provide information technology news to the user
interactively. Compared to the existing works, the e-
magazine application of IT news has some features
that are common with other applications and has
some unique features. The e-magazine is a general IT
news application and supports text, multimedia, user
interaction, and hyperlink. Most existing studies are
designed to obtain the software requirements
specification to construct the software system in a
systematic way. The originality of this study is the
construction of software specification and design of
the electronic magazine by following the Al-
Msie'deen research framework which exploits the
agile usage-centered design technique.
3. Software requirements specification and
design development
This section presents the agile usage-centered
design technique and functional requirements of
IMMITN software. It also introduces the Al-
Msie'deen research framework.
5. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
108
3.1. Agile usage-cantered design technique
In order to propose a professional software
requirements document, for the proposed software,
authors based themselves on the user-centered
design and agile techniques. Agile and user-centered
design are two significant development techniques
for confirming that a software application has the
best user experience (Jurca et al., 2014). The user-
centered design technique is a design technique that
emphasizes user study, user interface design,
usability testing, and assessment (Caballero et al.,
2016; Patton, 2002). The agile technique is a
software development technique that focuses on
satisfying customer needs and changing customer
requirements, even late in development
(Sommerville, 2016). Both techniques aim to
improve the user or customer viewpoint on product
quality, they agree on the importance of user or
customer contribution in interactive software
development processes, and both techniques
highlight the importance of developing team
cohesion. The agile technique focuses on the
customer and the key principles of user-centered
design are an early and continuous emphasis on
software product users.
One goal of this study is to achieve a user-friendly
interface for IMMITN software and to meet users'
needs. The user acceptance of any software lies
mainly on how it meets his or her behavioral
intention, and this is mostly identified by the degree
to which the software meets the wanted needs of the
users (Ayobami and Osman, 2013; Davis, 1985).
Shneiderman et al. (2016) suggested that in a user-
centered design technique, user behavior research
should be undertaken by studying his or her working
environment (i.e., workplace and task list). Authors
use the agile usage-centered design method
(Valacich and George, 2019; Patton, 2002; 2004;
Constantine and Lockwood, 2002) in order to
develop the suggested application. This method is
the result of combining both agile and user-centered
design techniques. Frequent user involvement in
software development is a perfect method to ensure
that requirements are captured precisely and
directly implemented in software design. However,
such continuous interaction works great when the
software development team is small, as is the case in
the IMMITN application. As well, it is not always
possible to continuously reach users throughout the
project development period. Therefore, agile
software engineers have come up with other ways
for well including software users in the
requirements elicitation process. One such way is
named agile usage-centered design. In this work,
functional requirements captured from software
users and engineers are captured as prototype
screens.
3.2. Software requirements specification or SRS
After the software requirements are discovered,
these requirements are documented by writing them
in the requirements document (i.e., software
requirements specification). The process of writing
the software requirements is called the
requirements specification process. Ideally, the
software requirements must be complete and
accurate (Sommerville, 2016). Software stakeholders
understand the requirements in different ways, so
the requirements must be written in an accurate way
so that they are clear to all readers and do not allow
multiple interpretations. In general, software
requirements are read more than they are written.
Thus, a software engineer should invest time to
write clear and comprehensible requirements
documents. User requirements of any software
describe the services provided to the user in high
abstract. On the other hand, the system
requirements describe the user requirements in
more detail. Both the user and system requirements
form the functional requirements of any software.
The agile technique integrates the requirements
engineering process with software design and
implementation. In addition, the agile method
develops software as a series of increments. Where
most agile methods propose that software products
should be constructed and delivered incrementally.
Software requirement is typically written on the
SRS document as a paragraph of natural language
text enhanced with diagrams. Different types of
requirements are wanted to transfer information
about software to different kinds of stakeholders.
Table 2 displays the difference between user and
system requirements. This instance, from IMMITN
software, shows how a user requirement may be
extended into numerous system requirements. The
reader can see from Table 2 that the user
requirement is general and abstract, while system
requirements offer more details about the service of
the software that is to be implemented.
Requirements document is important when
software is outsourced for development, when
different teams construct different fragments of the
software product, and when a complete analysis of
the requirements is required. Since the requirements
change very quickly, the requirements document
becomes out of date as soon as it is written down, so
the effort of the engineer (i.e., document writer) is
mostly wasted. Therefore, a full document is not
required for agile and user-centered design
techniques. Instead of a formal SRS document, the
agile technique commonly gathers software
requirements incrementally and writes these on the
SRS document as short paragraphs. Then, the user
prioritizes software requirements for
implementation in the following increment of the
software product (Sommerville, 2016; Kotonya and
Sommerville, 1998). Developing the full software
requirements document is a costly and time-
consuming process. Thus, the software requirements
document must define the minimal functional
requirements for the software system.
Functional requirements are written in natural
language enhanced by suitable diagrams and tables
in the SRS document. A data flow diagram (DFD) is a
6. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
109
depiction of the movement of the main information
flows among external entities, processes, and
information stores in the software (Valacich and
George, 2019). The highest level of the DFD is
termed a context diagram. The context diagram
consists of one process, data flows, external entities
(i.e., sources/sinks), and no data stores. The single
process, labeled with 0, represents the whole
software (Fig. 3).
Table 2: An example of user and system requirements of IMMITN
User requirement definition
1. The IMMITN software shall allow the student and professor to register as a new member of a software system
System requirement specification
1.1 In order to add IT news to IMMITN software, the student and professor shall click the registration button
1.2 The system shall respond to his or her request by showing the registration form
1.3 The system shall allow new users to fill all registration form fields in order
1.4 The system shall allow students or professors to press the registration button after the user filled in the registration form
Professor or Student
Interactive Multimedia Magazine for IT News
Registration Get help
<< Extends>>
Interactive multimedia magazine for IT news
application
Admin Professor / Student
Guest
Login
View news
Accept news
Reject news
View news
Registration
Login
Add news
View news
Fig. 3: The context diagram of IMMITN software
The level-0 DFD diagram shows system main
processes, flows of data, and stores of data at a high
level of abstraction. The external entities of level-0
are the same in the context diagram. The level-0 DFD
diagram gives the main processes in the software at
the highest level. Each process in the level-0 DFD
diagram has a number that ends with a zero
(matching the level number of the diagram).
UML is a graphical notation applied to object-
oriented (OO) software design that consists of
numerous kinds of software models that offer
different views of software aspects. The use-case
diagram is a UML notation kind that is exploited to
detect use-cases (i.e., processes) and graphically
show the users implicated in a software system (Al-
Msie’deen et al., 2014a; 2014d). The use case
diagram of the IMMITN application consists of four
actors, and seven use cases. It is not enough just to
show the use case diagram in UML notation. A
detailed explanation must be provided for each use-
case. A detailed tabular presentation of each use-
case is presented by use-case description. The use
case is a description of one kind of interaction
between a user and a software system. The use case
diagram must be enhanced with extra information to
fully describe its use-cases. Thus, the use case
description assists software designers to recognize
objects and processes in the software system. This
gives designers a comprehension of what the
software is planned to make (Sommerville, 2016).
The use case description consists of a graphical
notation and structured natural language text (Table
3).
The sequence diagram shows the sequence of
interactions between users and the software and
between software objects or screens (Sommerville,
2016; Valacich and George, 2019). The sequence
diagram displays what inputs are needed and what
outputs are produced for one type of interaction
between user and software system. The reader of the
sequence diagram follows the sequence of
interactions from top to bottom. The users and
objects are listed on the top of a sequence diagram.
For each object and user in the diagram, there is a
dotted line drawn vertically from it. To illustrate the
interaction between two objects in this diagram,
there is an annotated arrow with details. Also, on the
7. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
110
dotted lines, there is a rectangle showing the lifeline of the object (Fig. 4).
Table 3: The use case description of login use-case
Use-case name Login
Use-case
notation
Admin Professor or Student
Interactive Multimedia Magazine for IT News
Login
Actor(s) Administrator, student, and professor
Brief
Description
The login use-case allows system users to access their main pages
Pre-Conditions The software user must log in to his or her account by entering username and password
Basic Flow
1. The software user needs to insert his or her username and password into the login form
2. The software user needs to confirm the login process by pressing the login button
3. The software will respond to his or her order by verifying the login information after checking the software
database
4. The software will send the user to his or her main page
Exceptional
Flow
Wrong username or password / Refill the login form
Post-Conditions The software user can access his or her main page
U: Login page U: Login process D: User database U: User main page
User
Insert login Info
(username and password)
Press login button
Send login Info
Verify login Info
[Login Info OK]
Send ( )
[Login fail]
Send ( )
Display
error
message
Display
home page
Wrong
username
or password.
The user (admin, student, or
professor) selects "login".
Fig. 4: Sequence diagram for the login process
The architectural models of a software product
can be exploited to concentrate discussion around
the software specifications or design. Thus, software
architecture plays an important role in the
identification of software requirements specification
(Booch, 2005; Bosch, 2000). The software
architecture document is a design document and
aims to document the software design. Software
architecture is used to stimulate discussion about
system requirements at an early stage of the design
process. The outcome of the software architecture
design process is an architectural model that defines
how the software is organized as a collection of
cooperating components. The architectural model
displays these components and the relations
between them (Sommerville, 2016).
The architecture of a software system may be
documented from different views (i.e., logical,
development, process, or physical) (Kruchten, 1995).
For example, a software architect can document the
software’s architecture from a conceptual view
(Hofmeister et al., 2000). The software architectural
view is an explanation of software architecture from
a specific view. It is impossible to give all
information around a software architecture in one
diagram, as an architectural model can just display
one view of the software. The conceptual view is an
abstract view of the software that can be the base for
8. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
111
decomposing user requirements into detailed
software specifications. Conceptual view aids
software developers to make choices about
components that can be reused in similar products
(i.e., software product line) (Al-Msie’deen et al.,
2014b; 2013a; Eyal-Salman et al., 2012).
In this paper, the conceptual view of software is
developed in the software design process. Software
engineer uses this view to explain the software
architecture to different stakeholders. The main goal
of using the conceptual architecture view in this
study is to identify the main components of the
proposed software and to capture the main
relationships between those components.
The proposed software provides the user with
the ability to browse the news through the e-
magazine. There are some features that should be
considered in the design of the e-magazine. These
features are intended to make browsing the news
easier and more interactive. The e-magazine design
should meet at least the following features: Zoom in
and zoom out, search, auto flip, stop auto flip, share,
first and last page, previous and next page, print, full
screen, select text, page number, and page flip sound.
Non-functional requirements are software
requirements that are not directly interested in
specific features delivered by the software to its end
users. These requirements typically specify or
constrain the properties of software as an entire.
They may link to emergent properties of a software
system such as reliability, and availability.
Otherwise, they may describe constraints on the
software implementation (e.g., abilities of I/O
devices, data representations). Table 4 is a
description of some non-functional requirements of
the IMMITN system.
Table 4: Description of some non-functional requirements of IMMITN
Requirements Description
Performance
Response time: IMMITN system should be able to retrieve user requests within 5 s.
Scalability: IMMITN system should be able of supporting no less than 100 users at a time when applied.
Platform: IMMITN system should be capable to operate in Google Chrome and Microsoft Edge.
Security IMMITN system must guarantee that data about diverse types of user transactions must be treated in a protected channel.
Usability Users with diverse background knowledge can simply deal with the system.
Support Network, application, database, and administrative support should be provided 24/7.
Availability IMMITN system should be capable to deliver services when requested 24/7.
Safety To avoid possible data damages or losses, the IMMITN system must have a data recovery method.
Reliability IMMITN system should be capable to deliver services as specified.
Functional and non-functional requirements
should be included in the SRS document. This paper
focuses on the Functional requirements of the
proposed system.
3.3. The research framework
Today's applications attempt to resolve complex
and real-world problems. A strict research
methodological framework can ease the
encumbrance of this complexity. Without such a
framework, software engineers can find it difficult to
meet product functional requirements. Moreover, as
software requirements change and grow, software
that does not have a basic architecture and design
will have trouble adapting to these growing
requirements. This subsection introduces the
suggested research framework.
The user-centered design and agile techniques
focus on user participation in the software
development process. Software developer aims to
realize a user-centric application and meets the user
functionalities or expected features of the product. In
this work, the authors assume that the user or
customer is responsible for defining the
requirements for the required program, and at the
same time it is he who evaluates the program and
makes sure that the program performs the required
functions from it.
A software engineer can use many methods to
determine a system's requirements, and he or she
can use a combination of these methods to
determine a system's requirements. There are some
methods that are called the traditional methods to
determine the system requirements. Examples of
these traditional methods are interviewing,
observing users at the workplace, and analyzing
procedures and supplementary documents such as
business documents (i.e., forms and reports). On the
other hand, there are some contemporary methods
for determining the requirements of a system such
as joint application design, computer-aided software
engineering tools, and prototypes (Valacich and
George, 2019). In this study, the authors determine
the functional requirements of the system and
evaluate them. The authors use the agile usage-
centered design method to develop the proposed
system; and from here the system requirements are
determined through the continual user involvement
throughout the entire system analysis, design, and
validation process.
In this study, a content analysis of online
materials was not performed due to the lack of
applications similar to the software proposed in this
research. If there are previous studies similar to the
proposed software, they can be analyzed and used to
form the functional requirements for it. Fig. 5 shows
the research framework based on the authors'
design and thought (called the Al-Msie'deen research
framework).
In this framework, the problem to be solved is
initially defined. Then, user and software
requirements are fully understood and translated by
designing a graphical user interface (GUI). After that,
the user validates the software screens that reflect
the functional requirements of the software to be
developed. After that, the requirements are
documented and written in the software
9. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
112
requirements specification. After that, the program is
developed in increments, and delivered
incrementally to the user for validation (i.e.,
verifying that software meets the requests and
expectations of the user) and verification (i.e.,
verifying that software meets its requirements)
(Sommerville, 2016). The research framework
supports the continual user involvement in the
design and implementation processes in addition to
requirements validation.
4. Research framework step-by-step
This section presents the research framework
stages in detail. Also, it provides an overview of the
software development process by following the
proposed research framework. It also displays the
design of the IMMITN software system.
4.1. Problem statement definition
A problem statement definition is a brief
description of an issue to be addressed. The problem
statement determines the gap between the current
and desired situation. Thus, the problem statement
in this paper is identifying the functional
requirements of the IMMITN software to be used
through different types of software stakeholders.
The main outcome of this research is the software
requirements specification document which contains
functional requirements and software design.
4.2. Functional requirements and software
design
The heart of this study is to define software
requirements and translate them into a design that
meets these requirements. In the research
framework proposed in this study, after defining the
problem to be solved, the user and software
requirements are determined and accurately
understood. Then, the software designer translates
these requirements into a graphical design for the
software. After that, software requirements and
design are documented in the initial requirements
document. Next, the requirements are validated and
documented via an SRS document. Then, the coder
implements the software. The following subsections
explain in detail these stages.
4.2.1. Understanding user and software
requirements
The primary condition of resolving a problem is
the comprehension of the problem. The software
engineer must fully understand the problem to be
solved. In order to produce software that suits the
user's desires, the user must be involved in the
requirements engineering process. It is necessary to
understand the user and software requirements in
order to obtain the desired software. User
requirements are usually used in drafting the
contract between the customer and the developer of
the software. User requirements state the services
that the customer wants to obtain from the software
system. Sometimes the customer may be unsure of
the services they want from the software. In this
case, the developer can assist the customer in
proposing software requirements through the
requirements proposal document.
Understanding the requirements of the user is
indispensable for understanding the requirements of
the software system. Software requirements are the
same as the user requirements with more details.
Consequently, the software requirements are the
services that the software provides in detail. A
thorough understanding of the problem helps both
the user and the developer to do their work
professionally. The software cannot be designed if
the services it provides are incomprehensible and
unclear. Thus, understanding the problem is half of
the solution.
Usually, the customer proxy determines the user
requirements. For example, the customer requests
the developer to add a login service to the software
to allow him to use the main services of the software.
Login service is described as Access to the software
services is done through the login form, where the
user enters the corporation's email address as a
username and his employee’s number as a password.
After that, he presses the login button to be
transferred to his main screen. Software engineers
and customers work together on software
requirements. Where the requirement is described
in detail. The developer and the user must
understand the two types of requirements
accurately.
In the case of software systems similar to the
software to be developed, an analytical study can be
conducted. Content analysis of these similar studies
helps reuse some of the requirements. Reuse of
requirements saves the cost of producing the
software. In the case of the absence of similar
studies, the software engineer develops the
requirements from scratch. Within the framework
proposed in this study, the user is involved in the
software development process as a full-time team
member. Consequently, there is rarely a
misunderstanding in determining the software's
functional requirements.
4.2.2. Graphical user interface design
The graphical user interface design is the process
of designing the method in which software users can
access software services. Also, it is the method that
information generated by the software is shown
(Sommerville, 2016). The graphical user interface
design aims to translate user and system
requirements into concrete visual interfaces. In this
study, the software requirements are translated into
a user interface through the use of prototypes.
IMMITN software system consists of two parts (i.e.,
news management and e-magazine). The four users
of the system (i.e., admin, professor, student, and
10. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
113
guest) can read the news through e-magazine
archives without any permission. While news
management allows three users (i.e., admin,
professor, and student) to deal with it. Fig. 6 shows
the GUI for the registration form from IMMITN
software.
Problem statement definition
Functional requirements and software design
Implementation
Al-Msie'deen research framework
Understanding user and software requirements
Graphical user interface design
Requirements validation
Documenting software requirements
Customer involvement
Software product
Software requirements specification (SRS)
Fig. 5: The research framework
Fig. 6: Design of the registration form from IMMITN software
Usually, GUI contains forms and reports. Form
considers as a business document. It holds some
predefined data. Also, it contains many parts where
extra data are to be filled in Valacich and George
(2019). The process of forms design is a user-
centered activity. Thus, forms design activity
11. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
114
includes an understanding of the intended user, their
responsibilities and goals, data needs, experience
levels (i.e., novice, expert, or an advanced user). Fig.
7 presents the design of adding news form for
IMMITN software.
Fig. 7: Design of add news form for IMMITN software
Human-computer GUI explains the methods in
which software users interact with a software
system. A software engineer can use several
methods to design software GUI. For example, the
designer can use the paper prototype to design the
interfaces of any software system. As another
example, software designers can use the NetBeans
IDE GUI builder to design software interfaces. The
NetBeans IDE has several exciting features aimed at
visual web application design. An effective software
designer must comprehend the existing resources
and how to use them. Also, the software designer
must become a professional user of the GUI
environment. The designer must have good
communication skills because his work requires him
to communicate and interact with the software's
users.
Two software users play the same role in adding
news to the system, namely, the professor and the
student. In order to add the news, they must first
register with the system, then log in with their
username and password. After logging into the
software, they add the news through the add news
form, and then they submit the news to the software
administrator. The system administrator logs in with
the username and password given to him by the
dean of the faculty of information technology. After
logging, he or she manages the news, by viewing the
content of the news added by the professor or
student. Then, the software administrator accepts or
rejects the news according to the value of the news
and its content. If the news is accepted, it will be
linked to the appropriate issue of the magazine's
volume.
4.2.3. Requirements validation
In requirements engineering, the requirements
validation process is a requirements analysis activity
that aims to discover some potential problems with
these requirements. At the stage of validation of
requirements, usually, a requirement engineer will
discover some problems with software
requirements. In this case, the stockholders will
negotiate about these problems in order to find a
compromise and get an agreed upon requirement.
Thus, requirements validation is the procedure of
checking that requirements describe the software
that the user actually needs (Sommerville, 2016).
After the requirements are elicited, analyzed, and
written in the initial requirements document, these
requirements are checked to discover some
problems between the requirements such as
requirements conflict. In the event of problems in
the requirements, they are corrected by consulting
the stakeholders and then writing them in the final
form in the SRS document. Requirements validation
is critical because errors in the requirements
document can lead to a significant rework budget
when these errors are revealed through software
development or after operating the software
product. The requirements in the requirements
document must be checked to ensure that they meet
the user's real needs. Also, the requirements in the
requirements document must not conflict. On the
other hand, requirements must be checked to
confirm that they can be implemented through the
proposed software budget and schedule.
Requirements reviews and prototyping are examples
of some requirements validation techniques that can
be used. In this study, by following the proposed
research framework, the requirements are validated
in the requirements document by engaging the user
in previewing and approving prototypes. In the case
that some problems are discovered, a discussion
takes place with the user, and changes are made to
the prototype until reaching the agreed
requirements.
12. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
115
4.2.4. Documenting software requirements
Requirements engineering aims to discover,
analyze, validate, and document software
requirements. After issuing the initial version of the
software requirements (initial requirements
document), all the requirements in the requirements
document are validated. After agreeing on the final
requirements of the software, it is documented in the
final form of software requirements (software
requirements specification). Thus, software
requirements specification is the procedure of
officially documenting the user and software
requirements and producing a software
requirements document.
A software requirements specification is a
document that describes the nature of software. In
other words, an SRS document is a manual of
software. It is prepared before the programmer
codes the software. In our work, this document or
report is produced in minimal detail based on an
agile approach for software production. SRS
document contains the functional requirements of
the suggested software in a clear and precise
manner. The functional requirements of software
were written completely, precisely, unambiguously,
and without any contradictions. Different software
stakeholders must read the document without any
problems. This document includes software design
documents such as an architectural model of
software and UML models of software. Thus, SRS
included the agreed and documented software
features or services.
SRS consists of a collection of chapters. For
instance, the preface chapter includes information
about the context of software and its release. Then,
the functional requirements chapter includes all
functional requirements definitions. In addition, the
SRS report consists of a table of contents, indexes
such as a list of figures and tables, a glossary that
defines the main terms, abbreviations, and
acronyms, and appendixes. This document is very
useful and important for software engineers. For
example, in order to reuse software requirements, it
is important to be documented. For maintenance
engineers, they are not able to maintain the software
without understanding its services or functionalities.
Software documents should work as a
communication channel between various software
stakeholders. In addition, they should act as an
information store in order to be used by different
stakeholders (e.g., software coders). Software
documents should offer information for software
managers to assist them during software
development processes (e.g., schedule and budget).
On the other hand, user documents (or software
manuals) should tell end-users how to use or
manage the software in their workplace. End-users
employ the software to perform work tasks, whereas
software admin is responsible for controlling the
software used by end-users (Barker, 2002). Fig. 8
shows a well-structured software tutorial for
IMMITN software.
Fig. 8: A well-structured software tutorial for IMMITN software
13. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
116
The software manual in Fig. 8 explains the role
the system administrator plays in this software. As
the arrows indicate the steps followed by the admin
to control the news added by the end-user.
4.3. Implementation
This work focuses on defining software
requirements and designing the software based on
the services required by the user or customer.
Therefore, this work does not provide a full
implementation of the software, though parts of this
work have been implemented. The e-magazine
includes text, images, and video clips. Also, e-
magazine supports user interaction and animation.
Fig. 9 shows two pages of the e-magazine, which
support text and image.
Fig. 9: E-magazine of IMMITN software, with an example of IT news
IMMITN software has been implemented as a
web-based application. Authors used HTML and CSS
for magazine page layout. Also, the authors utilized
JavaScript and PHP for scripting and user interaction
with the e-magazine. HTML has reasonable
advantages of e-magazine application such as ease of
implementation, rich features for user interaction
and multimedia, and the majority of software
engineers are familiar with these technologies. All
pictures and tables used in this study are available
on the author's website.
5. Conclusion
This paper proposed an original approach to
develop software requirements document based on
the Al-Msie'deen research framework. This research
framework was implemented on the IMMITN
software system. Results demonstrated that
involving users extensively in the process of defining
software requirements and design leads to achieving
a dependable and acceptable software system. The
study also showed the importance of the
requirements engineering process in software
design. Results also showed that combining agile and
user-centered design techniques lead to frequent
user involvement in software development. Where
user involvement perfect way to ensure that
requirements are captured precisely and directly
implemented in software design. Regarding future
work, the authors plan to add some features to the e-
magazine such as thumbnails. The authors also
intend to create an e-magazine online manual (user
and reader help) for IMMITN. Furthermore, the
researchers plan to implement the software based
on the requirements and design determined in this
research.
Also, the authors plan to apply the idea of the
interactive multimedia magazine in institutes of
higher education in Jordan by using interactive
multimedia books in order to improve the process of
distance learning (Alsuwaiket et al., 2019).
Finally, the authors plan to apply the tag cloud
visualization technique (Al-Msie’deen, 2019b) on the
SRS document to show the most frequent words
across this document.
Compliance with ethical standards
Conflict of interest
The author(s) declared no potential conflicts of
interest with respect to the research, authorship,
and/or publication of this article.
14. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
117
References
Alfrijat AM and Al-Msie’deen R (2009). A requirement model of
local news WAP/WEB application for rural community.
Advances in Computer Science and Engineering, 4(1): 37–53.
Al-Msie’deen R (2014). A requirement model of local news
application for rural communities: A new model for rural
news. LAP LAMBERT Academic Publishing, Sunnyvale, USA.
Al-Msie’deen R (2015). Visualizing object-oriented software for
understanding and documentation. International Journal of
Computer Science and Information Security, 13(5): 18–27.
Al-Msie’deen R (2018). Automatic labeling of the object-oriented
source code: The lotus approach. Science International-
Lahore, 30(1): 45–48.
Al-Msie’deen R (2019a). Object-oriented software documentation.
1st Edition, Lap Lambert Academic Publishing, Sunnyvale, USA.
https://doi.org/10.17485/ijst/2018/v11i8/121148
Al-Msie’deen R (2019b). Tag clouds for software documents
visualization. International Journal on Informatics
Visualization, 3(4): 361–364.
https://doi.org/10.30630/joiv.3.4.285
Al-Msie’deen R (2019c). Tag clouds for the object-oriented source
code visualization. Engineering, Technology and Applied
Science Research, 9(3):4243–4248.
https://doi.org/10.48084/etasr.2706
Al-Msie’deen R and Blasi A (2018). The impact of the object-
oriented software evolution on software metrics: The iris
approach. Indian Journal of Science and Technology, 11(8): 1–
8. https://doi.org/10.17485/ijst/2018/v11i8/121148
Al-Msie’deen R and Blasi A (2019). Supporting software
documentation with source code summarization.
International Journal of Advanced and Applied Sciences, 6(1):
59–67. https://doi.org/10.21833/ijaas.2019.01.008
Al-Msie’deen R, Huchard M, Seriai A, Urtado C, and Vauttier S
(2014a). Automatic documentation of [mined] feature
implementations from source code elements and use-case
diagrams with the REVPLINE approach. International Journal
of Software Engineering and Knowledge Engineering, 24(10):
1413–1438. https://doi.org/10.1142/S0218194014400142
Al-Msie’deen R, Huchard M, Seriai A, Urtado C, and Vauttier S
(2014b). Reverse engineering feature models from software
configurations using formal concept analysis. In the 11th
International Conference on Concept Lattices and Their
Applications, Košice, Slovakia: 95-106.
Al-Msie’deen R, Huchard M, Seriai AD, Urtado C, Vauttier S, and Al-
Khlifat A (2014c). Concept lattices: A representation space to
structure software variability. In the 5th International
Conference on Information and Communication Systems,
IEEE, Irbid, Jordan: 1-6.
https://doi.org/10.1109/IACS.2014.6841949
Al-Msie’deen R, Ra’Fat A, Seriai A, Huchard M, Urtado C, Vauttier S,
and Salman HE (2013b). Feature location in a collection of
software product variants using formal concept analysis. In
the International Conference on Software Reuse, Springer,
Pisa, Italy: 302-307.
https://doi.org/10.1007/978-3-642-38977-1_22
Al-Msie’deen R, Seriai AD, Huchard M, Urtado C, and Vauttier S
(2013a). Mining features from the object-oriented source code
of software variants by combining lexical and structural
similarity. In the IEEE 14th International Conference on
Information Reuse and Integration, IEEE, San Francisco, USA:
586-593. https://doi.org/10.1109/IRI.2013.6642522
Al-Msie’deen R, Seriai AD, Huchard M, Urtado C, and Vauttier S
(2014d). Documenting the mined feature implementations
from the object-oriented source code of a collection of
software product variants. In: Werner C, Gao K, Reformat M,
and Xu H (Eds.), SEKE: Software Engineering and Knowledge
Engineering: 138-143. Knowledge Systems Institute,
Vancouver, Canada.
Al-Msie’deen R, Seriai AD, Huchard M, Urtado C, Vauttier S, and
Eyal-Salman H (2013c). Mining features from the object-
oriented source code of a collection of software variants using
formal concept analysis and latent semantic indexing. In the
SEKE: Software Engineering and Knowledge Engineering,
Knowledge Systems Institute Graduate School, Portland, USA.
https://doi.org/10.1109/IRI.2013.6642522
AL-Msie’deen RF and H Blasi A (2021). Software evolution
understanding: Automatic extraction of software identifiers
map for object-oriented software systems. Journal of
Communications Software and Systems, 17(1): 20-28.
https://doi.org/10.24138/jcomss.v17i1.1093
Al-Msie'deen R (2008). A requirement model of local news
WEB/WAP application for rural communities. Ph.D.
Dissertation, Universiti Utara Malaysia, Changlun, Malaysia.
Alsuwaiket M, Blasi A, and Al-Msie'dee R (2019). Formulating
module assessment for improved academic performance
predictability in higher education. Engineering, Technology
and Applied Science Research, 9(3): 4287–4291.
https://doi.org/10.48084/etasr.2794
Ayobami AS and Osman SWR (2013). Functional requirements of
mobile applications for fishermen. In the UACEE 2nd
International Conference on Advances in Automation and
Robotics–AAR'13. https://doi.org/10.2139/ssrn.2249720
Barker TT (2002). Writing software documentation: A task-
oriented Approach. 2nd Edition, Longman Pub Group, New
York, USA.
Boehm B and Turner R (2004). Balancing agility and discipline:
Evaluating and integrating agile and plan-driven methods. In
the 26th International Conference on Software Engineering,
IEEE, Edinburgh, UK: 718-719.
https://doi.org/10.1109/ICSE.2004.1317503
Booch G (2005). On creating a handbook of software architecture.
In the Companion to the 20th Annual ACM SIGPLAN
Conference on Object-oriented Programming, Systems,
Languages, and Applications, Association for Computing
Machinery, San Diego, USA.
https://doi.org/10.1145/1094855.1094862
Bosch J (2000). Design and use of software architectures:
Adopting and evolving a product-line approach. Pearson
Education, London, UK.
Caballero L, Moreno AM, and Seffah A (2016). How agile
developers integrate user-centered design into their
processes: A literature review. International Journal of
Software Engineering and Knowledge Engineering, 26(08):
1175-1201. https://doi.org/10.1142/S0218194016500418
Choi J, Lee Y, and Kim K (2014). Html5 based interactive e-book
reader. International Journal of Software Engineering and Its
Applications, 8(2): 67-74.
Choi JI, Heo H, Lim KY, and Jo IH (2011). The development of an
interactive digital textbook in middle school English. In the
International Conference on Future Generation Information
Technology, Springer, Jeju Island, Korea: 397-405.
https://doi.org/10.1007/978-3-642-27142-7_47
Constantine LL and Lockwood L (2002). Process agility and
software usability: Toward lightweight usage-centered design.
Information Age, 8(8): 1-10.
Davis FD (1985). A technology acceptance model for empirically
testing new end-user information systems: Theory and
results. Ph.D. Dissertation, Massachusetts Institute of
Technology, Cambridge, USA.
Eyal-Salman H, Seriai AD, Dony C, and Al-Msie'deen RF (2012).
Recovering traceability links between feature models and
source code of product variants. In the Variability for You
Workshop: Variability Modeling Made Useful for Everyone,
Association for Computing Machinery, Innsbruck, Austria: 21-
25. https://doi.org/10.1145/2425415.2425420
Hofmeister C, Nord R, and Soni D (2000). Applied software
architecture. Addison-Wesley Professional, Boston, USA.
15. Al-Msie’deen et al/International Journal of Advanced and Applied Sciences, 8(11) 2021, Pages: 104-118
118
Islam M and Nofal M (2008). IMM-book: E-training material for
the Edu wave system. Ph.D. Dissertation, Universiti Utara
Malaysia, Changlun, Malaysia.
Jurca G, Hellmann TD, and Maurer F (2014). Integrating agile and
user-centered design: A systematic mapping and review of
evaluation and validation studies of agile-UX. In the Agile
Conference, IEEE, Kissimmee, USA: 24-32.
https://doi.org/10.1109/AGILE.2014.17
Kotonya G and Sommerville I (1998). Requirements engineering:
Processes and techniques. John Wiley and Sons, Hoboken,
USA.
Kruchten PB (1995). The 4+1 view model of architecture. IEEE
Software, 12(6): 42-50. https://doi.org/10.1109/52.469759
Patton J (2002). Designing requirements: Incorporating usage-
centered design into an agile SW development process. In the
Conference on Extreme Programming and Agile Methods,
Springer, Chicago, USA: 1-12.
https://doi.org/10.1007/3-540-45672-4_1
Patton J (2004). Interaction design meets agility: Practicing usage
centered design on agile development projects. In the
Conference on Extreme Programming and Agile Methods,
Springer, Calgary, Canada: 226-226.
https://doi.org/10.1007/978-3-540-27777-4_48
Paz A and Boussaidi GE (2018). Building a software requirements
specification and design for an avionics system: An experience
report. In the 33rd Annual ACM Symposium on Applied
Computing, Association for Computing Machinery, Pau,
France: 1262-1271.
https://doi.org/10.1145/3167132.3167268
Shneiderman B, Plaisant C, Cohen MS, Jacobs S, Elmqvist N, and
Diakopoulos N (2016). Designing the user interface: Strategies
for effective human-computer interaction. Pearson, London,
UK.
Sommerville I (2016). Software engineering. 10th Edition, Pearson,
London, UK.
Valacich JS and George JF (2019). Modern systems analysis and
design. Pearson, London, UK.