In software development, the waterfall model is commonly used, especially for large-scale software
systems. For smaller-scale software development, agile software development approaches such as extreme
programming or scrum are used. Traditional software development methodologies are mainly targeted
toward customer-centric development, and therefore, new software methodologies are often not well
received in the industry. In this study, we propose a new software development methodology that is aimed
at developing innovative software using artificial intelligence (AI), idea creation, value engineering, and
systems design. The name of our method is named as EPISODE (Extreme Programming method for
Innovative SOftware based on systems DEsign). EPISODE supports the efficient and creative development
of open source software (OSS) by small groups. Moreover we describe an evaluation of EPISODE in a
class.
A Software System Development Life Cycle Model for Improved Students Communic...IJCSES Journal
This document describes a proposed software development life cycle (SDLC) model to improve student communication and collaboration. The model uses a spiral development process simulated using Simphony.NET. This allows the project manager to determine the optimal number of team members needed for each phase. The goal is to increase productivity by keeping all members busy at all times. Key aspects of the model include using Edmodo to create an online student learning network for communication and collaboration, dividing projects into small, medium, and large scales, and specifying time distributions for phases and resource needs.
Exploring the Efficiency of the Program using OOAD MetricsIRJET Journal
This document proposes a methodology to analyze the efficiency of object-oriented programs using OOAD (Object Oriented Analysis and Design) metrics. The methodology involves compiling a program successively until it is error-free, recording the error rate at each compilation. These results are then compared to determine how many compilations were needed for the program to be error-free, indicating its efficiency. The methodology is experimentally validated on a sample Java program, with results showing the error rate decreasing with each compilation until the program is error-free after the 8th compilation, demonstrating good efficiency.
Actually, software products are increasing in a fast way and are used in almost all activities of human life.
Consequently measuring and evaluating the quality of a software product has become a critical task for
many companies. Several models have been proposed to help diverse types of users with quality issues. The
development of techniques for building software has influenced the creation of models to assess the quality.
Since 2000 the construction of software started to depend on generated or manufactured components and
gave rise to new challenges for assessing quality. These components introduce new concepts such as
configurability, reusability, availability, better quality and lower cost. Consequently the models are
classified in basic models which were developed until 2000, and those based on components called tailored
quality models. The purpose of this article is to describe the main models with their strengths and point out
some deficiencies. In this work, we conclude that in the present age, aspects of communications play an
important factor in the quality of software.
The document proposes a new unified software development model for open source software. It begins by noting that existing models are largely designed for proprietary software and do not account for key differences in how open source software is developed. The proposed model aims to address this by focusing on clear requirements gathering, designing core parts based on requirements, and utilizing a loosely coupled process. It will be tested by developing an open source tool using the new model. The goal is to enable efficient open source development regardless of community size by minimizing wasted developer time.
Today in era of software industry there is no perfect software framework available for
analysis and software development. Currently there are enormous number of software development
process exists which can be implemented to stabilize the process of developing a software system. But no
perfect system is recognized till yet which can help software developers for opting of best software
development process. This paper present the framework of skillful system combined with Likert scale. With
the help of Likert scale we define a rule based model and delegate some mass score to every process and
develop one tool name as MuxSet which will help the software developers to select an appropriate
development process that may enhance the probability of system success.
This document compares five models of software engineering: the waterfall model, iteration model, V-shaped model, spiral model, and extreme programming model. It first provides background on software process models and development life cycles in general. It then describes each of the five models in more detail, highlighting their key stages and features, as well as advantages and disadvantages of each approach. The goal is to represent different software development models and compare their characteristics to understand their various features and limitations.
The document describes a seminar report submitted by Saloni Bhargava and Sonal Bohra for their Bachelor of Engineering degree in fulfillment of their industrial defined project titled "Edu-Junction", which is a web-based application for practicing entrance exams. It includes certificates from their internal and external guides confirming the work is satisfactory. It also acknowledges the support received and provides an abstract describing the purpose and features of the Edu-Junction system.
A Software System Development Life Cycle Model for Improved Students Communic...IJCSES Journal
This document describes a proposed software development life cycle (SDLC) model to improve student communication and collaboration. The model uses a spiral development process simulated using Simphony.NET. This allows the project manager to determine the optimal number of team members needed for each phase. The goal is to increase productivity by keeping all members busy at all times. Key aspects of the model include using Edmodo to create an online student learning network for communication and collaboration, dividing projects into small, medium, and large scales, and specifying time distributions for phases and resource needs.
Exploring the Efficiency of the Program using OOAD MetricsIRJET Journal
This document proposes a methodology to analyze the efficiency of object-oriented programs using OOAD (Object Oriented Analysis and Design) metrics. The methodology involves compiling a program successively until it is error-free, recording the error rate at each compilation. These results are then compared to determine how many compilations were needed for the program to be error-free, indicating its efficiency. The methodology is experimentally validated on a sample Java program, with results showing the error rate decreasing with each compilation until the program is error-free after the 8th compilation, demonstrating good efficiency.
Actually, software products are increasing in a fast way and are used in almost all activities of human life.
Consequently measuring and evaluating the quality of a software product has become a critical task for
many companies. Several models have been proposed to help diverse types of users with quality issues. The
development of techniques for building software has influenced the creation of models to assess the quality.
Since 2000 the construction of software started to depend on generated or manufactured components and
gave rise to new challenges for assessing quality. These components introduce new concepts such as
configurability, reusability, availability, better quality and lower cost. Consequently the models are
classified in basic models which were developed until 2000, and those based on components called tailored
quality models. The purpose of this article is to describe the main models with their strengths and point out
some deficiencies. In this work, we conclude that in the present age, aspects of communications play an
important factor in the quality of software.
The document proposes a new unified software development model for open source software. It begins by noting that existing models are largely designed for proprietary software and do not account for key differences in how open source software is developed. The proposed model aims to address this by focusing on clear requirements gathering, designing core parts based on requirements, and utilizing a loosely coupled process. It will be tested by developing an open source tool using the new model. The goal is to enable efficient open source development regardless of community size by minimizing wasted developer time.
Today in era of software industry there is no perfect software framework available for
analysis and software development. Currently there are enormous number of software development
process exists which can be implemented to stabilize the process of developing a software system. But no
perfect system is recognized till yet which can help software developers for opting of best software
development process. This paper present the framework of skillful system combined with Likert scale. With
the help of Likert scale we define a rule based model and delegate some mass score to every process and
develop one tool name as MuxSet which will help the software developers to select an appropriate
development process that may enhance the probability of system success.
This document compares five models of software engineering: the waterfall model, iteration model, V-shaped model, spiral model, and extreme programming model. It first provides background on software process models and development life cycles in general. It then describes each of the five models in more detail, highlighting their key stages and features, as well as advantages and disadvantages of each approach. The goal is to represent different software development models and compare their characteristics to understand their various features and limitations.
The document describes a seminar report submitted by Saloni Bhargava and Sonal Bohra for their Bachelor of Engineering degree in fulfillment of their industrial defined project titled "Edu-Junction", which is a web-based application for practicing entrance exams. It includes certificates from their internal and external guides confirming the work is satisfactory. It also acknowledges the support received and provides an abstract describing the purpose and features of the Edu-Junction system.
‘O’ Model for Component-Based Software Development Processijceronline
The technology advancement has forced the user to become more dependent on information technology, and so on software. Software provides the platform for implementation of information technology. Component Based Software Engineering (CBSE) is adopted by software community to counter challenges thrown by fast growing demand of heavy and complex software systems. One of the essential reasons behind adopting CBSE for software development is the fast development of complicated software systems within well-defined boundaries of time and budget. CBSE provides the mechanical facilities by assembling already existing reusable components out of autonomously developed pieces of the software. The paper proposes a novel CBSE model named as O model, keeping an eye on the available CBSE lifecycle.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Multi Agent Based Software Engineering Models : A Review ijseajournal
Software testing is a critical and labor-intensive activity in software engineering. Much research has been
done to help automate test case generation. This research proposes a new approach to structural test case
generation. It uses a specialized genetic algorithm called Dynamic-radius Species-conserving Genetic
Algorithm (DSGA) to find a structurally complete set of test cases for the Triangle Classification algorithm.
DSGA is a Niche Genetic Algorithm (NGA) that uses a short-term memory structure to store optima. Each
individual of the NGA represents the inputs for a test case. The fitness function encourages the algorithm to
locate test cases that cover large areas of the structure of the program. A shared fitness encourages the
NGA to locate other areas of the structure. DSGA is a novel approach to structurally complete test case
generation
This document discusses elements that contribute to legacy program complexity. It identifies factors such as difficulty understanding old code, high cost of maintenance and replacement, large size, poor design, integration challenges with new technologies, lack of documentation, inflexibility, long processing times, unavailability of original staff, reliability issues, and bugs. The paper explores each of these elements in detail and argues that legacy programs are complex due to a combination of these interrelated factors such as large size, complex designs with many interconnected parts, and difficulty integrating old code and platforms with new technologies.
USABILITY EVALUATION OF A CONTROL AND PROGRAMMING ENVIRONMENT FOR PROGRAMMING...ijseajournal
This paper presents an assessment of usability of Control and Programming Environment (CPE) of a
remote mobile robot. The CPE is an educational environment focused on computer programming education
that integrates a program development online tool with a remote lab. To evaluate system usability,
empirical test was conducted with computer science students in order to identify the views of users on the
system and get directions on how to improve the quality of interface use. The study used questionnaire and
observation of the evaluator. The degree of users’ satisfaction was measured by using a quantitative
approach that establishes the average ranking for each question of the questionnaire. The results indicate
that the system is simple, easy to use and suited to programming practices, however needed changes to
make it more intuitive and efficient. The realization test of usability, even with a small sample user, is
important to provide feedback on the system's user experience and help identify problems.
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORKijseajournal
Most of the currently available students' portal frameworks are tightly-coupled frameworks. A recent
research done by the authors of this paper has discussed how to distribute the concepts of the traditional
students' portal framework and came out with a distributed interoperable framework. This paper realizes
the distributed interoperable students' portal framework by developing a prototype. This prototype is based
on Service Oriented Architecture (SOA). The prototype is tested using web service testing and compatibility
testing.
This document discusses cost estimation models for identifying faulty objects when reusing object-oriented software components. It begins by introducing the benefits of reusable object-oriented components for reducing software development costs and time. However, sometimes these existing components contain "faulty objects" that are incompatible with new software systems and cause errors. The paper focuses on developing approaches to identify these faulty objects within reusable components. It reviews previous work on testing and fault detection techniques. It also discusses the need for reengineering existing components to estimate costs and identify incompatible objects. The document proposes using a reengineering cost model that considers the number of reused objects and their attributes to estimate identification efforts for faulty components. The goal is to determine if reusing or redeveloping is
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT ijseajournal
With the increasing in mobile application systems and a high competition between companies, that led to
increase in the number of mobile application projects.
Mobile software development is a group of process for creating software for mobile devices with limited
resources like small screen, low-power. The development of mobile applications is a big challenging
because of rapidly changing business requirements and technical constraints for mobile systems. So,
developers faced the challenge of a dynamic environment and the Changing of mobile application
requirements. Moreover, Mobile applications should adapt appropriate software development methods that
act in response efficiently to these challenges.
However, at the moment, there is limited knowledge about the suitability of different software practices for
the development of mobile applications. According to many researchers ,Agile methodologies was found to
be most suitable for mobile development projects as they are short time, require flexibility, reduces waste
and time to market.
Finally, in this research we are looking for a suitable process model that conforms to the requirement of
mobile application, we are going to investigate agile development methods to find a way, making the
development of mobile application easy and compatible with mobile device features.
The document describes a report submitted by Trishu Dey, a student at Birla Institute of Technology and Science, on their project during their internship at [24]7 ILabs focusing on speech management system design. It provides background on [24]7 ILabs, acknowledges those who helped with the project, and includes an abstract, response option sheet, and no dues certificate.
The paper has been presented with a system that is
created on the android platform targeting the students studying in
an engineering institute. The application is created for effortless
day to day official work in an institute. Students will be served
with the benefits like compilation of branch wise question papers,
general aptitude questions, video lectures, newspapers, with
some interesting features like parent-teacher portal, feedback
system and ask your queries block. The application is designed
using core java coding, layout is fabricated with xml extension,
complete creation is done on android studio. Login authentication
is developed via Firebase Auth, newspapers have been linked
through their URL, video lectures are engrossed with API and
a separate website is created for parent-teacher interaction.
Based on the above mentioned ideology, We are fabricating an
application using android design studio kit which is majorly
concerned for the effortless access of all the essentials required
in an institute.
Developers spend much of their time understanding unfamiliar code during software maintenance tasks. The study found that developers interleaved three activities: searching for relevant code using manual and tool-based searches, following code dependencies, and collecting relevant code by encoding it in Eclipse interfaces. However, developers' searches were often unsuccessful due to misleading cues, and navigation tools caused overhead. Developers lost track of collected code, forcing re-finding. On average, developers spent 35% of time on redundant navigation. This suggests a new model of understanding as searching, relating, and collecting relevant information, and ideas for more effective tools.
This document proposes a service-oriented reference architecture for goal modeling and analysis tools to address interoperability issues. It discusses using iStarML as an interchange format and presents an extension called iStarML+P that adds temporal constraints, effects, and utilities. It then proposes a reference architecture where tools expose reasoning capabilities as services using iStarML+P. As a case study, it presents Y-Reason, a tool that translates iStarML+P models to SHOP2 planner input using the reference architecture.
The Impact of In-House Software Development Practices on System Usability in ...IJMIT JOURNAL
In-house software development is a critical phenomenon for the production of efficient and effective
software in generating requisite job output. A few studies have devoted efforts towards establishing the
impact of in-house software development on software. Therefore, this paper is an effort towards
establishing the impact of in-house software development practices on system usability. In pursuit of this
paper, a sample of a sample size of 169, at 95% confidence level, with margin error of 5% was drawn from
bold software users, i.e. 300 employees who used the all software including those dealing with the main
stream activities. A total of 102 respondents actually responded to the questionnaires. The Online Sample
Calculator was used to draw the sample. Quantitative data were collected using semi-structured
questionnaires and processed using the SPSS. Descriptive statistics were applied in the analysis. Findings
of the study indicate that software development practices, specifically usability test and user involvement in
software designing and development had an impact on determining software usability for in-house
software. The paper concludes that software development practices shape the design of the software; hence
influence usability of the software produced. Recommended is therefore that software usability test and
user involvement in software designing and development be promoted for effective software production
Human Computer Interaction Chapter 3 HCI in the Software Process and Design ...VijiPriya Jeyamani
The document discusses various aspects of the software development life cycle and human-computer interaction design rules. It describes the typical phases of software development like requirements specification, architectural design, detailed design, coding, testing, and maintenance. It also discusses design principles, standards, guidelines, heuristics and patterns that can improve usability. Iterative design and prototyping approaches are presented as methods to refine requirements and designs. The importance of documenting design rationale is highlighted.
A software Process model is a standardised format for planning, organising, and runninga new software development project. The need to complete and deliver software projects faster require using a suitable model.
There are several different kind of models being used which have evolved over the years, in this paper we carried out survey on the following main types of model; waterfall model, V-model, Component assembly model, Chaos model, Incremental model, Prototyping model, Spiral model, Rapid application development (RAD) model, Agile model, rational unified process (RUP), Iconix process and Software ecosystem (SECO) model by describing their characteristic features.
We concluded the study by listing the strengths and weaknesses of each of this models.
The document discusses Computer Aided Software Engineering (CASE) tools. It defines CASE as the use of software tools to assist in software development and maintenance. It outlines that CASE tools can help improve quality, reduce errors and costs, and enhance project management. CASE tools support all phases of the software development life cycle from planning and design to implementation, testing and maintenance. Examples of different types of CASE tools are provided such as diagramming, documentation, programming, and quality assurance tools.
Comparing Various SDLC Models On The Basis Of Available MethodologyIJMER
There are various SDLC models widely accepted and employed for developing software.
SDLC models give a theoretical guide line regarding development of the software. Employing proper
SDLC allows the managers to regulate whole development strategy of the software. Each SDLC has its
advantages and disadvantages making it suitable for use under specific condition and constraints for
specified type of software only. We need to understand which SDLC would generate most successful
result when employed for software development. For this we need some method to compare SDLC
models. Various methods have been suggested which allows comparing SDLC models. Comparing SLDC
models is a complex task as there is no mathematical theorem or physical device available. The essence
of this paper is to analyse some methodologies that could result in successful comparison of the SDLC
models. For this we have studied various available tools, techniques and methodologies and have tried
to extract most simple, easy and highly understandable method for comparing SDLC models.
It’s only natural to want to make your environment at home as peaceful and personally pleasing as possible. One way to enhance your home’s ambiance is to install a relaxing indoor water fountain. Reducing stress, attenuating unpleasant noises, and providing a visually appealing focal point are among the many benefits that a water fountain offers.
For more information:
http://www.greatgardenfountains.com/category/indoor-water-fountains/
Indoor landscaping involves designing and maintaining living plants indoors to enhance interior spaces. It provides color, texture and improves air quality similar to outdoor landscaping. Rooftop gardens involve growing plants on rooftops and provide benefits like reducing temperatures, providing food and habitats. They help insulate buildings and reduce energy consumption. While interior landscaping faces challenges like limited light and root space, rooftop gardens can help lower urban heat and temperatures within built environments. Both practices utilize plants to beautify interior and rooftop spaces.
The document provides an introductory lecture about aquaponics farming in Hainan, China. It discusses how aquaponics can be used to more efficiently grow food on less land with less water and resources compared to traditional farming. Specifically, it introduces the aquaponics system design from the University of the Virgin Islands that is being demonstrated, which uses fish tanks to fertilize hydroponic crops. Maintaining the proper pH balance and nutrient levels in the water is important for the health of both the fish and plants.
This document provides an introduction to aquaponics, which combines aquaculture (fish farming) and hydroponics (soilless plant cultivation). It explains that aquaponics eliminates some of the negatives of traditional aquaculture and hydroponics by recycling the water and nutrients. The fish waste is converted by bacteria into plant nutrients, which are absorbed by plants grown hydroponically. Various components, configurations, and methods are described, along with examples of vegetables and fish that can be used. Guidelines are also given for cycling a new system and maintaining water quality parameters.
‘O’ Model for Component-Based Software Development Processijceronline
The technology advancement has forced the user to become more dependent on information technology, and so on software. Software provides the platform for implementation of information technology. Component Based Software Engineering (CBSE) is adopted by software community to counter challenges thrown by fast growing demand of heavy and complex software systems. One of the essential reasons behind adopting CBSE for software development is the fast development of complicated software systems within well-defined boundaries of time and budget. CBSE provides the mechanical facilities by assembling already existing reusable components out of autonomously developed pieces of the software. The paper proposes a novel CBSE model named as O model, keeping an eye on the available CBSE lifecycle.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Multi Agent Based Software Engineering Models : A Review ijseajournal
Software testing is a critical and labor-intensive activity in software engineering. Much research has been
done to help automate test case generation. This research proposes a new approach to structural test case
generation. It uses a specialized genetic algorithm called Dynamic-radius Species-conserving Genetic
Algorithm (DSGA) to find a structurally complete set of test cases for the Triangle Classification algorithm.
DSGA is a Niche Genetic Algorithm (NGA) that uses a short-term memory structure to store optima. Each
individual of the NGA represents the inputs for a test case. The fitness function encourages the algorithm to
locate test cases that cover large areas of the structure of the program. A shared fitness encourages the
NGA to locate other areas of the structure. DSGA is a novel approach to structurally complete test case
generation
This document discusses elements that contribute to legacy program complexity. It identifies factors such as difficulty understanding old code, high cost of maintenance and replacement, large size, poor design, integration challenges with new technologies, lack of documentation, inflexibility, long processing times, unavailability of original staff, reliability issues, and bugs. The paper explores each of these elements in detail and argues that legacy programs are complex due to a combination of these interrelated factors such as large size, complex designs with many interconnected parts, and difficulty integrating old code and platforms with new technologies.
USABILITY EVALUATION OF A CONTROL AND PROGRAMMING ENVIRONMENT FOR PROGRAMMING...ijseajournal
This paper presents an assessment of usability of Control and Programming Environment (CPE) of a
remote mobile robot. The CPE is an educational environment focused on computer programming education
that integrates a program development online tool with a remote lab. To evaluate system usability,
empirical test was conducted with computer science students in order to identify the views of users on the
system and get directions on how to improve the quality of interface use. The study used questionnaire and
observation of the evaluator. The degree of users’ satisfaction was measured by using a quantitative
approach that establishes the average ranking for each question of the questionnaire. The results indicate
that the system is simple, easy to use and suited to programming practices, however needed changes to
make it more intuitive and efficient. The realization test of usability, even with a small sample user, is
important to provide feedback on the system's user experience and help identify problems.
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORKijseajournal
Most of the currently available students' portal frameworks are tightly-coupled frameworks. A recent
research done by the authors of this paper has discussed how to distribute the concepts of the traditional
students' portal framework and came out with a distributed interoperable framework. This paper realizes
the distributed interoperable students' portal framework by developing a prototype. This prototype is based
on Service Oriented Architecture (SOA). The prototype is tested using web service testing and compatibility
testing.
This document discusses cost estimation models for identifying faulty objects when reusing object-oriented software components. It begins by introducing the benefits of reusable object-oriented components for reducing software development costs and time. However, sometimes these existing components contain "faulty objects" that are incompatible with new software systems and cause errors. The paper focuses on developing approaches to identify these faulty objects within reusable components. It reviews previous work on testing and fault detection techniques. It also discusses the need for reengineering existing components to estimate costs and identify incompatible objects. The document proposes using a reengineering cost model that considers the number of reused objects and their attributes to estimate identification efforts for faulty components. The goal is to determine if reusing or redeveloping is
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT ijseajournal
With the increasing in mobile application systems and a high competition between companies, that led to
increase in the number of mobile application projects.
Mobile software development is a group of process for creating software for mobile devices with limited
resources like small screen, low-power. The development of mobile applications is a big challenging
because of rapidly changing business requirements and technical constraints for mobile systems. So,
developers faced the challenge of a dynamic environment and the Changing of mobile application
requirements. Moreover, Mobile applications should adapt appropriate software development methods that
act in response efficiently to these challenges.
However, at the moment, there is limited knowledge about the suitability of different software practices for
the development of mobile applications. According to many researchers ,Agile methodologies was found to
be most suitable for mobile development projects as they are short time, require flexibility, reduces waste
and time to market.
Finally, in this research we are looking for a suitable process model that conforms to the requirement of
mobile application, we are going to investigate agile development methods to find a way, making the
development of mobile application easy and compatible with mobile device features.
The document describes a report submitted by Trishu Dey, a student at Birla Institute of Technology and Science, on their project during their internship at [24]7 ILabs focusing on speech management system design. It provides background on [24]7 ILabs, acknowledges those who helped with the project, and includes an abstract, response option sheet, and no dues certificate.
The paper has been presented with a system that is
created on the android platform targeting the students studying in
an engineering institute. The application is created for effortless
day to day official work in an institute. Students will be served
with the benefits like compilation of branch wise question papers,
general aptitude questions, video lectures, newspapers, with
some interesting features like parent-teacher portal, feedback
system and ask your queries block. The application is designed
using core java coding, layout is fabricated with xml extension,
complete creation is done on android studio. Login authentication
is developed via Firebase Auth, newspapers have been linked
through their URL, video lectures are engrossed with API and
a separate website is created for parent-teacher interaction.
Based on the above mentioned ideology, We are fabricating an
application using android design studio kit which is majorly
concerned for the effortless access of all the essentials required
in an institute.
Developers spend much of their time understanding unfamiliar code during software maintenance tasks. The study found that developers interleaved three activities: searching for relevant code using manual and tool-based searches, following code dependencies, and collecting relevant code by encoding it in Eclipse interfaces. However, developers' searches were often unsuccessful due to misleading cues, and navigation tools caused overhead. Developers lost track of collected code, forcing re-finding. On average, developers spent 35% of time on redundant navigation. This suggests a new model of understanding as searching, relating, and collecting relevant information, and ideas for more effective tools.
This document proposes a service-oriented reference architecture for goal modeling and analysis tools to address interoperability issues. It discusses using iStarML as an interchange format and presents an extension called iStarML+P that adds temporal constraints, effects, and utilities. It then proposes a reference architecture where tools expose reasoning capabilities as services using iStarML+P. As a case study, it presents Y-Reason, a tool that translates iStarML+P models to SHOP2 planner input using the reference architecture.
The Impact of In-House Software Development Practices on System Usability in ...IJMIT JOURNAL
In-house software development is a critical phenomenon for the production of efficient and effective
software in generating requisite job output. A few studies have devoted efforts towards establishing the
impact of in-house software development on software. Therefore, this paper is an effort towards
establishing the impact of in-house software development practices on system usability. In pursuit of this
paper, a sample of a sample size of 169, at 95% confidence level, with margin error of 5% was drawn from
bold software users, i.e. 300 employees who used the all software including those dealing with the main
stream activities. A total of 102 respondents actually responded to the questionnaires. The Online Sample
Calculator was used to draw the sample. Quantitative data were collected using semi-structured
questionnaires and processed using the SPSS. Descriptive statistics were applied in the analysis. Findings
of the study indicate that software development practices, specifically usability test and user involvement in
software designing and development had an impact on determining software usability for in-house
software. The paper concludes that software development practices shape the design of the software; hence
influence usability of the software produced. Recommended is therefore that software usability test and
user involvement in software designing and development be promoted for effective software production
Human Computer Interaction Chapter 3 HCI in the Software Process and Design ...VijiPriya Jeyamani
The document discusses various aspects of the software development life cycle and human-computer interaction design rules. It describes the typical phases of software development like requirements specification, architectural design, detailed design, coding, testing, and maintenance. It also discusses design principles, standards, guidelines, heuristics and patterns that can improve usability. Iterative design and prototyping approaches are presented as methods to refine requirements and designs. The importance of documenting design rationale is highlighted.
A software Process model is a standardised format for planning, organising, and runninga new software development project. The need to complete and deliver software projects faster require using a suitable model.
There are several different kind of models being used which have evolved over the years, in this paper we carried out survey on the following main types of model; waterfall model, V-model, Component assembly model, Chaos model, Incremental model, Prototyping model, Spiral model, Rapid application development (RAD) model, Agile model, rational unified process (RUP), Iconix process and Software ecosystem (SECO) model by describing their characteristic features.
We concluded the study by listing the strengths and weaknesses of each of this models.
The document discusses Computer Aided Software Engineering (CASE) tools. It defines CASE as the use of software tools to assist in software development and maintenance. It outlines that CASE tools can help improve quality, reduce errors and costs, and enhance project management. CASE tools support all phases of the software development life cycle from planning and design to implementation, testing and maintenance. Examples of different types of CASE tools are provided such as diagramming, documentation, programming, and quality assurance tools.
Comparing Various SDLC Models On The Basis Of Available MethodologyIJMER
There are various SDLC models widely accepted and employed for developing software.
SDLC models give a theoretical guide line regarding development of the software. Employing proper
SDLC allows the managers to regulate whole development strategy of the software. Each SDLC has its
advantages and disadvantages making it suitable for use under specific condition and constraints for
specified type of software only. We need to understand which SDLC would generate most successful
result when employed for software development. For this we need some method to compare SDLC
models. Various methods have been suggested which allows comparing SDLC models. Comparing SLDC
models is a complex task as there is no mathematical theorem or physical device available. The essence
of this paper is to analyse some methodologies that could result in successful comparison of the SDLC
models. For this we have studied various available tools, techniques and methodologies and have tried
to extract most simple, easy and highly understandable method for comparing SDLC models.
It’s only natural to want to make your environment at home as peaceful and personally pleasing as possible. One way to enhance your home’s ambiance is to install a relaxing indoor water fountain. Reducing stress, attenuating unpleasant noises, and providing a visually appealing focal point are among the many benefits that a water fountain offers.
For more information:
http://www.greatgardenfountains.com/category/indoor-water-fountains/
Indoor landscaping involves designing and maintaining living plants indoors to enhance interior spaces. It provides color, texture and improves air quality similar to outdoor landscaping. Rooftop gardens involve growing plants on rooftops and provide benefits like reducing temperatures, providing food and habitats. They help insulate buildings and reduce energy consumption. While interior landscaping faces challenges like limited light and root space, rooftop gardens can help lower urban heat and temperatures within built environments. Both practices utilize plants to beautify interior and rooftop spaces.
The document provides an introductory lecture about aquaponics farming in Hainan, China. It discusses how aquaponics can be used to more efficiently grow food on less land with less water and resources compared to traditional farming. Specifically, it introduces the aquaponics system design from the University of the Virgin Islands that is being demonstrated, which uses fish tanks to fertilize hydroponic crops. Maintaining the proper pH balance and nutrient levels in the water is important for the health of both the fish and plants.
This document provides an introduction to aquaponics, which combines aquaculture (fish farming) and hydroponics (soilless plant cultivation). It explains that aquaponics eliminates some of the negatives of traditional aquaculture and hydroponics by recycling the water and nutrients. The fish waste is converted by bacteria into plant nutrients, which are absorbed by plants grown hydroponically. Various components, configurations, and methods are described, along with examples of vegetables and fish that can be used. Guidelines are also given for cycling a new system and maintaining water quality parameters.
This document describes an aquaponics project at Greensgrow Farms in Philadelphia that aims to grow food using aquaponics in an urban setting. The project will design an integrated and expandable aquaponics system using Greensgrow's existing involvement in hydroponics and aquaculture. Research was conducted on backyard, home, and commercial aquaponic systems. Concept sketches show indoor and outdoor system designs. The constructed system uses repurposed materials and includes fish tanks, reservoirs, grow beds, and supporting structures.
This document discusses the feasibility of an aquaponic food factory. It outlines several crop families and fish species that can be grown in aquaponics systems. The systems are designed to recycle waste water from the fish tanks through hydroponic plant beds with no untreated effluent released. A 1/8 acre system is estimated to require 29,375 gallons of total water volume split between fish tanks, clarifiers, filters, and hydroponic beds. The document provides specifications for the components of a 1/8 acre system and estimates that up to 4 times as much food could be grown per acre compared to conventional farming using only 10-30% of the water and energy.
This document discusses aquaponics, an integrated system of aquaculture and hydroponics that aims to produce food in a sustainable way. It operates several aquaponics projects in the UK and abroad, including educational projects and commercial systems. Aquaponics recycles the waste from fish into nutrients for hydroponically grown plants, providing multiple outputs from one system while using resources efficiently. It has the potential to address issues of increasing population, resource constraints, and food security through local, integrated production.
Agent-oriented software engineering is a promising new approach
to software engineering that uses the notion of an agent as the
primary entity of abstraction. The development of methodologies
for agent-oriented software engineering is an area that is currently
receiving much attention, there have been several agent-oriented
methodologies proposed recently and survey papers are starting to
appear. However the authors feel that there is still much work
necessary in this area; current methodologies can be improved
upon. This paper presents a new methodology, the Styx Agent
Methodology, which guides the development of collaborative
agent systems from the analysis phase through to system
implementation and maintenance. A distinguishing feature of
Styx is that it covers a wider range of software development lifecycle
activities than do other recently proposed agent-oriented
methodologies. The key areas covered by this methodology are
the specification of communication concepts, inter-agent
communication and each agent's behaviour activation—but it
does not address the development of application-specific parts of
a sys-tem. It will be supported by a software tool which is
currently in development.
This document provides an overview and comparison of five software engineering models: waterfall, iteration, V-shaped, spiral, and extreme programming. It first defines what a software process model is and discusses some general models. It then focuses on describing the key aspects of each of the five models in more detail, including the waterfall model which consists of sequential phases from requirements to maintenance. The document highlights advantages and disadvantages of each model.
This document compares five models of software engineering: waterfall, iterative, V-shaped, spiral, and extreme programming. It provides descriptions and comparisons of each model. The waterfall model is described as one of the oldest and most widely used models, with distinct phases from requirements to maintenance. However, it lacks flexibility. The iterative model allows for overlapping phases and faster results. The V-shaped model emphasizes testing and has deliverables at each phase but lacks flexibility. The spiral model focuses on risk analysis through iterations called spirals. It is useful for large projects but costly. Extreme programming emphasizes teamwork, customer involvement, and frequent small releases but may not work for all projects. In summary, the document examines the features, advantages, and
An Innovative Research on Software Development Life Cycle ModelSucharita Bansal
This document discusses the software development life cycle (SDLC) and various SDLC models. It begins by defining software and distinguishing programs from software products. It then describes the importance of SDLC models in structuring the software development process. Several common SDLC models are discussed, including waterfall, spiral, iterative/incremental, agile, and code and fix. The document proposes using a hybrid SDLC model incorporating both project management and development processes. It then discusses each stage of the SDLC in detail, including analysis, design, implementation, testing, documentation, evaluation, and maintenance.
This document provides an overview and introduction to the book "Software Engineering: A Hands-On Approach" by Roger Y. Lee. The book aims to teach key principles of software engineering through hands-on learning and a project-based approach. It uses common tools like the Unified Modeling Language and object-oriented design patterns. The book is divided into two parts - the first introduces software engineering concepts, and the second guides readers through a software project from requirements to implementation and testing. The goal is to help students bridge the gap between academic learning and real-world practice of software engineering.
This document provides a 3 paragraph summary of a software engineering course titled "Software Engineering (KCS-601)" taught by Dr. Radhey Shyam at SRMCEM Lucknow. The course contents were compiled by Dr. Shyam and are available for students' academic use. Students can contact Dr. Shyam via email for any queries regarding the course material.
DEVOPS ADOPTION IN INFORMATION SYSTEMS PROJECTS; A SYSTEMATIC LITERATURE REVIEWijseajournal
The word DevOps derives from two different words Development and Operations. DevOps has recorded as
an interesting and novel approach adopted to the commonly used Agile software development
methodology. It raised agility of the software development process. Practical issues of Agile methodology
emphasize the requirement for collaboration of software development and operating teams. This
collaboration completed by the DevOps approach engages with the Agile methodology to improve the
quality, performance, and speed of the software developments. Since DevOps is an accentuating approach
in the software development industry, this research aimed to conduct a literature review to study the
evolution of the DevOps approach and its adoption in information systems projects. This target has
accomplished by reviewing the Agile methodology, issues of the Agile methodology, DevOps approach,
challenges and overcoming strategies of DevOps, and success factors of the DevOps approach. Finally, the
paper provides better acquaintance about the DevOps adoption in Information System projects
developments.
Implementation Of A Pre Study Phase EssayAshley Thomas
The document discusses the key ideas from Fred Brooks' book "The Mythical Man-Month", which explores software development project management. It explains that a "man-month" represents the effort of one person over a four-week period, which is typically estimated at 160 hours. Brooks' central thesis is that adding more people to a late software project makes it later, contradicting the assumption that more people means more work gets done in less time. The document analyzes Brooks' law and its implications for software development scheduling and resource estimation.
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
Software Development Life Cycle: Traditional and Agile- A Comparative Studyijsrd.com
In the field of software development, software development lifecycle is the most important component. There is a number of software development methodologies used in software industry today. The paper discussed below focuses on the modern SDLC which are traditional methods and the agile methods. It also explains the compensation and shortcomings of the traditional as well as agile methods. Along with this, it suggests some improvements which could help in improving current agile development
Introduction to Software engineering Concepts which includes Software Process Model, SRS documents, Requirement Engineering Process, Architectural Modeling, software Products, Risk Management Process, SDLC Model, Professional & Ethical Responsibilities, System & its Environment, System Procurement (COTS & Contractor Method), System Engineering Process, System Reliability Engineering, Human factors, Functional & Non-Functional Requirements
This document discusses the paradigm shift in software engineering from traditional methods to more agile methodologies. It introduces SEMAT (Software Engineering Method and Theory) which aims to support both the craftsmanship of software development through defined methods, as well as building a theoretical foundation. SEMAT defines a "kernel" with seven dimensions (alphas) to measure project progress, categorize necessary activities, and identify required competencies. The kernel provides a framework for practices like agile methods to advance projects in a predictable way. The goal is to develop a true discipline of software engineering through standardization of successful practices while maintaining flexibility.
Software testing is a key part of software engineering used to evaluate software quality and identify errors. There are various software testing techniques and methods, but thoroughly investigating a complex software is more important than following a specific procedure. Testing complex software cannot discover all errors, but can help improve quality. Software engineering involves defining requirements, design, development, testing, and maintenance of software using methodologies like agile development.
The document summarizes and compares two software development methods: Dynamic Systems Development Method (DSDM) and Rapid Application Development (RAD). It provides an overview of the characteristics and principles of DSDM, including that it is more suitable for in-house and market-driven projects rather than contract-driven projects. The major weakness is that requirements are loosely defined and it is difficult to plan. However, the major strength is that the end products fit business needs well since users are heavily involved. It also briefly summarizes RAD and identifies some similarities and differences between the two methods.
PROPOSING AUTOMATED REGRESSION SUITE USING OPEN SOURCE TOOLS FOR A HEALTH CAR...ijseajournal
Regression testing is very important for the delivery of high quality product. It helps to simulate a suite of critical test cases periodically and helps to identify if introduction of any new features or any source code change has adversely affected the software quality or functionality. As a result, regression testing cannot be ignored from the software testing life cycle (STLC). But just doing a regression testing cannot be beneficial until it is accompanied by automation testing. Automated regression suite not only saves time and cost by re-running test scripts again and again but it also provide the confidence that all the critical test cases has been covered, providing more confidence in the quality of the product and increasing the ability to meet schedules. IT has an ability to explore the whole software every day without requiring much of manual effort. Current software is going through continuous development which requires testing again and again to check if new feature implementation has affected the existing functionality. In addition to this, it is facing issue in validation of the installation at client site and requires availability of testers to check the critical functionality of the software manually. This paper came up with the solution of creating automated regression suite for the software. The current research will provide guidelines to the future researchers on how to create an automated regression suite for any web application using open source tools.
The document provides an overview of the Software Development Life Cycle (SDLC) and popular software development methodologies. It describes the SDLC model which includes requirements analysis, design, coding, testing, and maintenance. It also summarizes three other models: the prototyping model which uses iterative prototyping and customer feedback; the Rapid Application Development (RAD) model which emphasizes short development cycles and component reuse; and the component assembly model which develops software from reusable components.
The International Journal of Engineering & Science is aimed at providing a platform for researchers, engineers, scientists, or educators to publish their original research results, to exchange new ideas, to disseminate information in innovative designs, engineering experiences and technological skills. It is also the Journal's objective to promote engineering and technology education. All papers submitted to the Journal will be blind peer-reviewed. Only original articles will be published.
The papers for publication in The International Journal of Engineering& Science are selected through rigorous peer reviews to ensure originality, timeliness, relevance, and readability.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
Feb 2013Lesson 38 Software Acquisition DevelopmentBarb Tillich
The document discusses software acquisition development and management. It explains the linkages between systems engineering and software development based on systems engineering principles. It describes different software development models like incremental development model and spiral model. It highlights the importance of software testing at different levels and discusses challenges in testing unprecedented systems for which no previous models exist.
Similar to Episode an extreme programming method for innovative software based on systems design and its practical study (20)
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...shadow0702a
This document serves as a comprehensive step-by-step guide on how to effectively use PyCharm for remote debugging of the Windows Subsystem for Linux (WSL) on a local Windows machine. It meticulously outlines several critical steps in the process, starting with the crucial task of enabling permissions, followed by the installation and configuration of WSL.
The guide then proceeds to explain how to set up the SSH service within the WSL environment, an integral part of the process. Alongside this, it also provides detailed instructions on how to modify the inbound rules of the Windows firewall to facilitate the process, ensuring that there are no connectivity issues that could potentially hinder the debugging process.
The document further emphasizes on the importance of checking the connection between the Windows and WSL environments, providing instructions on how to ensure that the connection is optimal and ready for remote debugging.
It also offers an in-depth guide on how to configure the WSL interpreter and files within the PyCharm environment. This is essential for ensuring that the debugging process is set up correctly and that the program can be run effectively within the WSL terminal.
Additionally, the document provides guidance on how to set up breakpoints for debugging, a fundamental aspect of the debugging process which allows the developer to stop the execution of their code at certain points and inspect their program at those stages.
Finally, the document concludes by providing a link to a reference blog. This blog offers additional information and guidance on configuring the remote Python interpreter in PyCharm, providing the reader with a well-rounded understanding of the process.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELgerogepatton
As digital technology becomes more deeply embedded in power systems, protecting the communication
networks of Smart Grids (SG) has emerged as a critical concern. Distributed Network Protocol 3 (DNP3)
represents a multi-tiered application layer protocol extensively utilized in Supervisory Control and Data
Acquisition (SCADA)-based smart grids to facilitate real-time data gathering and control functionalities.
Robust Intrusion Detection Systems (IDS) are necessary for early threat detection and mitigation because
of the interconnection of these networks, which makes them vulnerable to a variety of cyberattacks. To
solve this issue, this paper develops a hybrid Deep Learning (DL) model specifically designed for intrusion
detection in smart grids. The proposed approach is a combination of the Convolutional Neural Network
(CNN) and the Long-Short-Term Memory algorithms (LSTM). We employed a recent intrusion detection
dataset (DNP3), which focuses on unauthorized commands and Denial of Service (DoS) cyberattacks, to
train and test our model. The results of our experiments show that our CNN-LSTM method is much better
at finding smart grid intrusions than other deep learning algorithms used for classification. In addition,
our proposed approach improves accuracy, precision, recall, and F1 score, achieving a high detection
accuracy rate of 99.50%.
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Sinan KOZAK
Sinan from the Delivery Hero mobile infrastructure engineering team shares a deep dive into performance acceleration with Gradle build cache optimizations. Sinan shares their journey into solving complex build-cache problems that affect Gradle builds. By understanding the challenges and solutions found in our journey, we aim to demonstrate the possibilities for faster builds. The case study reveals how overlapping outputs and cache misconfigurations led to significant increases in build times, especially as the project scaled up with numerous modules using Paparazzi tests. The journey from diagnosing to defeating cache issues offers invaluable lessons on maintaining cache integrity without sacrificing functionality.
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
Episode an extreme programming method for innovative software based on systems design and its practical study
1. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
EPISODE: AN EXTREME PROGRAMMING METHOD
FOR INNOVATIVE SOFTWARE BASED ON SYSTEMS
DESIGN AND ITS PRACTICAL STUDY
Takaaki Goto1, Kensei Tsuchida2 and Tetsuro Nishino1
1Graduate School of Informatics and Engineering, The University of Electro-
Communications, Japan
2Faculty of Information Science and Arts, Toyo University, Japan
ABSTRACT
In software development, the waterfall model is commonly used, especially for large-scale software
systems. For smaller-scale software development, agile software development approaches such as extreme
programming or scrum are used. Traditional software development methodologies are mainly targeted
toward customer-centric development, and therefore, new software methodologies are often not well
received in the industry. In this study, we propose a new software development methodology that is aimed
at developing innovative software using artificial intelligence (AI), idea creation, value engineering, and
systems design. The name of our method is named as EPISODE (Extreme Programming method for
Innovative SOftware based on systems DEsign). EPISODE supports the efficient and creative development
of open source software (OSS) by small groups. Moreover we describe an evaluation of EPISODE in a
class.
KEYWORDS
Software Development Methodology, Value Engineering, Open Source Software
1. INTRODUCTION
In software development, the waterfall model is commonly used at present. Recent years have,
however, witnessed the increasing use of agile software development methodologies, especially
for small- or mid-scale projects and even in some large-scale projects.
Both the waterfall and agile software development models feature developers and clients, where
the developers obtain the project requirements from the clients. After requirement analysis, the
developers design and develop systems according to the obtained requirements.
Nowadays, there is an increasing demand for software and applications for tablets and other small
smart devices. This software is developed by not only established software companies but also
individual or small groups of developers who may not have clients. In the latter case, the
developers have to create new ideas by themselves for software requirements instead of obtaining
requirements from clients. However, the waterfall and agile development models do not facilitate
new and innovative software development methods. Moreover, small software development
groups have limited resources available to themselves, and therefore, there is a strong need for
efficient development methods for such groups.
DOI : 10.5121/ijsea.2014.5501 1
2. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
In this study, we propose a new software development method for developing innovative software
using artificial intelligent (AI), idea creation, value engineering, and systems design. Moreover
we describe a practical study of our method on graduate school course.
2
2. BACKGROUND
The software development process plays an important role in software development. Some
software development processes have been proposed thus far.
2.1 Software Development Process
2.1.1. Waterfall model
The waterfall model for software development involves six steps: “requirement analysis,”
“external design,” “internal design,” “implementation,” “test,” and “operation and maintenance.”
Figure 1 shows the flow of the waterfall model.
Figure 1 Waterfall model
2.1.2. Agile development
Agile development is a lightweight software development methodology. In this approach,
developers develop the desired systems by dividing the overall project into small functions. In
agile development, the development cycle from the design to the test phase is performed for one
small function. Then, the developers shift to the next function. By using this approach, developers
can present the software to their clients from the early stage of the project.
A popular agile development approach is extreme programming (XP). Figure 2 shows a software
development cycle in XP. The cycle consists of the following stages: ”planning,” ”design,”
”coding,” and “test.” This cycle is used for extracting one function from the desired system, and it
is repeated until the system development is completed.
3. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
3
Figure 2 Extreme programming
2.2. Methods for innovating
[
2.2.1. Brainstorming
Brainstorming was first proposed by Alex Faickney Osborn in 1938. Brainstorming is a method
used to generate new ideas by a team composed of around 10 members. To generate new ideas
efficiently, the number of participants, constructing groups, implementation method, and so on
are defined in this method. Brainstorming, as defined by Osborn, is performed under the
following principles [1].
1. Withhold criticism
2. Welcome abandon
3. Focus on quantity
4. Combine and improve ideas
2.2.2. Affinity Diagram
A method for analyzing obtained ideas by brain storming using grouping is the affinity diagram
[2]. This method enables groups to formulate new ideas that cannot be found from one idea by
constructing groups of obtained ideas.
2.2.2 Value graph
Ishii et al.[3] proposed the concept of value graphs. A value graph is a tool used for the managing
of finding value and requirement functions. It can be applied to the generation concept and its
selection. Figure 3 shows an example of a value graph.
Figure 3 Example of value graph Error! Reference source not found. ]
4. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
A value graph can be used to analyze the value of some object by constructing a graph from one
idea with thinking such as “why?” or “how?” In Figure 3, “Cooling fan” is the initial idea, and
then, an analysis is performed by thinking “why” or “how.” In this case, the cooling fan is needed
to promote the flow of air. An alternate method to promote the flow of air is to generate
convection.
4
2.3 Practical Software Development Education and UEC Software Repository
2.3.1 Practical Software Development Education
Nowadays, many attempts are being made to implement PBL (project-based learning) in software
development education. At the University of Electro-Communications, we are working on a
practical form of software development education that provides students with a more rounded set
of practical skills and self-motivation for software development. By developing teaching
materials for self-motivated practical education, with a focus on open-source software
development and implementing an education program that incorporates these materials, our goal
is to provide practical education using the UEC software repository [4] as an autonomous
practical educational resource to cultivate highly creative developers with excellent research and
development skills.
2.3.2 UEC Software Repository
[
At the University of Electro-Communications, a great deal of software is written every year
through the course of student research and educational activities. Normally, most of this software
is managed and stored on servers in the research laboratories; however, as the software is
generally lacking in documentation and is not developed with third-party use in mind, it tends to
be used only by the original developers. Once the developers have graduated, there are very few
opportunities for this software to be reused. As one approach to addressing these problems, we
are working on the construction of a UEC software repository.
Figure 4 Screenshot of UEC software repository
5. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
The UEC software repository is a database for the centralized in-house management of software
developed at the university. Ordinary users can download and use software stored in this
repository by accessing it through site searches. The repository system has the following features:
5
1. Software registration, search, and download functions
2. Research paper registration, search, and download functions
3. Download ranking functions
4. User management functions
5. Development support functions
This repository supports three types of users with different privileges:
1. Software project leader
2. Software users
3. System administrators
Table 1 lists the features available to each type of user. Software project leaders are permitted to
submit software to the repository. To qualify as a software project leader, a user must have
studied for and completed a graduate course in the practical software development course, which
is described above. Software project leaders can also search for and download research papers.
Table 1 Features available to each user type
Software project
leader
Registering, searching, and downloading software,
Searching and downloading research papers
Software users Searching and downloading software, Searching and
downloading research papers
System administrators Managing software, Managing research papers,
Managing users
3. ISSUES ON APPLYING EXISTING SOFTWARE DEVELOPMENT
METHODOLOGY TO OUR TARGET
3.1 Issues on applying waterfall model to our target
When developing software by a small group based on existing software development
methodologies, two main problems are encountered.
1. In this study, we target the development of new software including innovative ideas
proposed by the developing team members. Because clients do not exist, there will be some
possibility to add or modify functions in the development process. Therefore, if we apply the
waterfall model to our target (developing innovative software), the development cost will
increase because of backtracking during development.
2. Creating a software document such as a requirement definition document or external design
document is too heavy and time-consuming a workload for developers because of its volume.
Creating many documents with only a small number of developers is difficult.
3. In the waterfall model, it is common for persons with professional skills to be associated
with each development phase (requirement definition, design, test, etc.). However, it is
6. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
difficult to assign team members to such development phases because of the limited number
of team members available.
4. The waterfall model basically targets large-scale development. Therefore, human wave
tactics can be applied. However, it is not applicable to development with a small group. A
small group needs to decide priorities for developing functions and to develop efficiently
using development support tools
6
3.2 Issues faced in applying agile development to our target
The Information-Technology Promotion Agency (IPA) reported a survey of application examples
on the practice of agile development [5]. In their report, they showed application examples on the
practice of agile development. The following nine situations are described in their report:
1. Short-term development
2. Project that has a lot of ups and downs in scope
3. Requirement of quality is high
4. Requirement of cost is difficult
5. Skills of team members are undeveloped
6. Teams treat new technical field or new business knowledge
7. Teams have some newcomers
8. Teams develop using distributed development methodology
9. Teams use agile development for the first time
Our software development methodology mainly targets small groups in universities. Therefore,
“Skills of team members are undeveloped,” “Teams treat new technical field or new business
knowledge,” “Teams have some newcomers,” and “Teams use agile development for the first
time” can be true. To solve these problems, an agile coach is required to train the team. However,
it is difficult to acquire a sufficient number of agile coaches in universities.
On the other hand, software development projects in universities change project members every
year. However, the agile development method does not mention how to share knowledge and
know-how and how to maintain software documents.
The waterfall and agile development models involve another problem when applied to our target.
Our target project does not have a client. However, both these models assume a client in order to
obtain the system or software specifications. Therefore, a method for generating new ideas is not
considered in these development processes.
4. PROPOSED METHOD
4.1 Abstract of EPISODE
In this study, we propose a new software development methodology that targets developing
innovative software using artificial intelligence (AI), idea creation, and value engineering. This
new method supports the efficient and creative development of open source software (OSS) by
small groups. The name of our method is named as EPISODE (Extreme Programming method for
Innovative SOftware based on systems DEsign).
7. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.5, September 2014
7
4.2 Development cycle of EPISODE
[
The development cycle of our proposed method is shown in Figure 5. In this cycle, development
is performed by the following process: “Planning” “Design” “Coding” “Evaluation.” To
finish developing the software, the cycle is continued. We adopt the idea creation and value
engineering methods in XP.
In the planning phase, story extraction is performed. First, team members create ideas for target
software using the brainstorming method (divergence). Then, the KJ method is used to group the
obtained ideas and to derive insights from the constructed groups (convergence).
When the goal of the target software is decided by the brainstorming and KJ methods, then the
developers extract the story of the target software. At that time, the related software is needed for
analysis. Then, we obtain information about the related software from OSS. Many OSS do not
have appropriate documents. In this case, an automatic document generation tool is used to obtain
documents from the source code of OSS.
In the design phase, task division is performed using the story obtained in the planning phase. A
brainstorming tool is also used in this phase to divide the story and design. A digital book tool can
be used when developers want to record their insight or know-how. The digital book includes not
only software structure information and algorithms but also developer notes.
In the coding phase, developers implement tasks (prototyping) that are obtained in the design
phase. Programming is performed using the “pair programming” method. Developers note their
findings using the digital book tool.
In the evaluation phase, the developers themselves evaluate their developed software. After
evaluating the software, the developers also check the value of the obtained software in terms of
whether it satisfies the requirements by using a value graph.
Figure 5 Development cycle of EPISODE
8. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
EPISODE can be used for two software development patterns such as “development from
scratch” and “alter existing software.” In the process of “development from scratch,” students
develop their software following the steps: Planning Design Coding Evaluation. On the
other hand, analysis of existing software should be done first of all on “alter existing software,”
that is the steps Evaluation Planning Design Coding Evaluation are needed for such
development.
8
4.3 Development support tool
[
Herein, we describe some proposed tools that are used in each phase. In our method, the
following four tools are used:
1. Brainstorming support tool
2. Automatic document generation tool
3. Digital book tool
4. Value graph tool
These tools are under development, and therefore, we explain their concepts.
4.3.1. Brainstorming support tool
The brainstorming support tool is used in the planning and design phases. Developers can discuss
their new ideas by using this tool. This tool includes two functions: brainstorming (divergence)
and KJ method grouping (convergence). This tool can be used by one or many developers.
4.3.2. Automatic document generation tool
The automatic document generation tool is used in the planning phase. If there already exist some
software related to the target software, the developers have to check and understand this software.
Most OSS has only source code. This tool generates useful software documents from the OSS’s
source code.
This tool targets an object-oriented language for analysis. This tool consists of the following two
components: (1) UML generation module and (2) source code summarization module based on a
natural language processing method.
4.3.3. Digital book tool
[
A digital book tool is used for understanding software and sharing notes and insights regarding
the target software. The digital book generated using this tool also includes an index function and
a writing annotation function to support efficient development. This tool is used in the design,
implementation, and evaluation phases.
4.3.4 Value graph tool
The value graph tool is used in the evaluation phase. This tool draws a value graph function and
adjusts the layout function. This tool can be used by one or many developers.
9. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
9
5. A CURRICULUM FOR A CLASS IN OUR UNIVERSITY BASED ON EPISODE
We have started to apply our method EPISODE to a graduate course practical software
development education class called “Fundamentals of Practical Software Development.” In this
class, students develop OSS and experience the software development process from the
requirement definition to the test phases based on EPISODE. We prepared four small OSS which
will be base systems for software which students develop. The four OSS are “Calculator,”
“Support soft for dyschromatopsia,” “Ledger sheet tool,” and “breakout game with physical
controller.” These OSS include source code, binary code, and software design documents.
Table 2 explains the syllabus of this class. During the early part of the class, students will
overview the outline of software engineering and agile development. From the seventh class,
students start developing their own software based on the provided OSS. In this class, students
modify the OSS, therefore analysis of existing software should be done first of all on “alter
existing software,” that is, Evaluation Planning Design Coding Evaluation is needed
for such development.
Table 2 Syllabus for “Fundamentals of Practical Software Development”
No. Contents No. Contents
1 Guidance 9 Coding 1
Programming, unit test
2 Introduction to software engineering 1
(Summary of software engineering,
requirement)
10 Coding 2
Programming, unit test
3 Introduction to software engineering 2
(design, coding)
11 Coding 3
Programming, join test
4 Introduction to software engineering 3
(Test)
Summary of agile development
12 Coding 4
Programming join test
5 Extreme programming (XP) 1 (Life
cycle of XP, Concept of XP, Story
card, Task card)
13 Evaluation (Validation and analysis of
obtained software)
6 Extreme programming (XP) 2 (Pair
programming, test-driven
development)
14 Preparation of publishing software
Documentation
7 Evaluation, Planning
Extraction of story for target software
15 Presentation
8 Design
Task division
6. PRACTICAL STUDY OF INNOVATING METHODOLOGY TO
AGILE DEVELOPMENT
In this section we describe an evaluation of applying innovative methodology to agile
development based on the proposed EPISODE in our class. There are 20 students in our class,
and they formed six groups (one “support soft for dyschromatopsia” group, three “calculator”
groups, and two “breakout game with physical controller” groups ).
10. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
Students develop their software based on following procedure: Evaluation Planning Design
Coding Evaluation. In the first evaluation phase, students choose an OSS based on their
request, then they analyze values of the chosen OSS (such as “Calculator”) using a value graph.
The theme of making value graph work is “xx application” (xx means target software).
10
Table 3 Results of value graph analysis
Group Theme Obtained value Insight
1 Support soft for
dyschromatopsia
Make dyschromatopsia
person's life easier
Lack adequate support for
designer to design in
consideration of dyschromatopsia
persons
2 Calculator Obtain correct
calculation result,
everyone can obtain the
same calculation result
Need for high-function calculator
which can be used easily
3 Calculator Calculate rapidly and
easily; visualize
calculation result
Need for calculator which can
calculate complicated formulas
and visualize mathematical
formulas
4 Calculator Make calculation easier
with more precision
Want to shorten the time of
calculation
5 breakout Have fun, gain a feeling
of accomplishment, to
kill time
Incorporate elements of sports
6 breakout Have fun, gain a feeling
of accomplishment, to
kill time
Get rid of stress, get an
exhilarating feeling
From Table 3, each group could analyze essential qualities for their target software. Students
could find higher layer values of target software, and obtain some insights from the obtained
value graph.
In the next phase (planning phase), students did brainstorming based on the subject “When did
you find the application useful?” Students then made affinity diagrams from the obtained ideas by
brainstorming. They made groups in terms of “situation.” Table 4 indicates the result of the
brainstorming and affinity diagram.
11. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
11
Table 5 Results of brainstorming and affinity diagram
From the result of the value graph analysis and brainstorming and affinity diagram, each group
found the development goal for their software as shown in Table 6.
Table 6 Development goal for each group
Group Theme Development goal
1 Support soft for
dyschromatopsia
To develop a function that supports
designer
2 Calculator To develop a calculator with graph plot
function
3 Calculator To develop a calculator which can
calculate from history
4 Calculator To develop a calculator with memo
function
5 breakout To develop a match type breakout
6 breakout To develop a breakout game with fun by
breaking chain
Students learned how to do brainstorming, making affinity diagrams, and generating value graphs
by lecture before they analyzed their software. However, we saw that some students experience
difficulty in using these methodologies. More effective guides for these methodologies are needed.
We will improve our methods of support.
6. RELATED WORKS
So far, a great deal of research has been done on software development education.
12. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
Turnu et. al. [6] report the effects of agile practices on open source software development. They
evaluated the effects of Test Driven Development (TDD). We also use TDD in EPISODE. TDD
is a useful method for developing; therefore, we adopt TDD into our method.
Koch [7] reports the comparison of agile and open source software development. The study
discusses differences between open source software and agile development. Our proposed method
targets developing open source software based on agile development with the method of
generating innovative ideas. Our method allows us to benefit from the merits of both open source
development and agile development.
Aaen [8] proposes an agile development method. The method includes ways to facilitate
creativity and innovation by using brainstorming. We also take in brainstorming for our proposed
develop method. However we adopt not only brainstorming but also use a value graph. Our
method targets developing software without customers. Therefore the value graph plays the
important role of helping us discuss and judge whether something is innovative or not.
12
7. CONCLUSIONS
In this study, we propose a new method that targets the development of innovative software by
small groups by using artificial intelligence (AI), idea creation, value engineering, and systems
design. We find the correspondence between the cycle of XP and processes for innovating
(divergence and convergence). Then, we propose a method for developing innovative software
using the brainstorming and value graph methods. We also present a practical study of our
proposed methodology.
We will develop the proposed tool and evaluate the effectiveness of our method through our
class.
REFERENCES
[1] Alex F. Osborn, Applied Imagination. Creative Foundation Inc., 1963.
[2] Lou Cohen. Quality Function Deployment: How to Make QFD Work for You. Addison-Wesley,
1995.
[3] Kousuke Ishii, Kenji Iino, Sekkeinokagaku kachidukurisekkei. Yokendo, 2008, (in Japanese).
[4] “UEC Software Repository,” https://www.repository.uec.ac.jp/.
[5] IPA:INFORMATION-TECHNOLOGY PROMOTION AGENCY, JAPAN, “Report and reference
guide for survey of application example on practice of agile development,”
http://www.ipa.go.jp/sec/softwareengineering/reports/20130319.html, (in Japanese).
[6] Ivana Turnu, Marco Melis, Alessandra Cau, Alessio Setzu, Giulio Concas, Katiuscia Mannaro,
“Modeling and simulation of open source development using an agile practice, ” Journal of Systems
Architecture, Volume 52, Issue 11, November 2006, Pages 610-618.
[7] Stefan Koch, “Agile Principles and Open Source Software Development: A Theoretical and Empirical
Discussion,” Extreme Programming and Agile Processes in Software Engineering, Lecture Notes in
Computer Science, Vol. 3092, pp. 85-93, 2004
[8] van Aaen, “Essence: Facilitating Agile Innovation”, Agile Processes in Software Engineering and
Extreme Programming, Lecture Notes in Business Information Processing, pp.1-10, 2008.
13. International Journal of Software Engineering Applications (IJSEA), Vol.5, No.5, September 2014
13
Authors
Takaaki Goto graduated with a Doctor of Engineering degree from Toyo University in
2009. He is a Project Assistant Professor at the Graduate School of Informatics and
Engineering at The University of Electro-Communications. His main research interests are
applications of open source software development, software development education, graph
grammars, visual languages, and software development environments. He is a member of
IEICE Japan, IPSJ, and IEEE.
Kensei Tsuchida received M.S. and D.S. degrees in mathematics from Waseda University
in 1984 and 1994, respectively. He was a member of the Software Engineering
Development Laboratory, NEC Corporation in 1984-1990. From 1990 to 1992, he was a
Research Associate of the Department of Industrial Engineering and Management at
Kanagawa University. In 1992 he joined Toyo University, where he was an Instructor until
1995 and an associate professor from 1995 to 2002, and a Professor from 2002 to 2009 at
the Department of Information and Computer Sciences, and since 2009 he has been a Professor of Faculty
of Information Sciences and Arts. He was a Visiting Associate Professor of the Department of Computer
Science at Oregon State University from 1997 to 1998. His research interests include software
visualization, human interface, graph languages, and graph algorithms. He is a member of IPSJ, IEICE
Japan and IEEE Computer Society.
Tetsuro Nishino graduated from department of Mathematics, Waseda University, and
continued his research and obtained a D.Sc. in Mathematics in 1991. He was a researcher
at Tokyo Research Laboratory, IBM Japan during 1984-1987. He was an Associate
Professor at School of Information Science, Japan Advanced Institute of Science and
Technology, Hokuriku during 1992-1994. In 1994, he joined at Department of
Communications and Systems Engineering, The University of Electro-Communications as an Associate
Professor and in 2006 he became a Professor. He received The Funai Information Technology Prize (2003)
and IBM Faculty Award (2008).