Software Engineering

Software Engineering

  • Steve F. Russell added an answer:
    Can anyone help me design dipole of freq band (690MHz-960 MHz) with balun feeding?

    Can any one help me to design dipole of freq band (690MHz-960 MHz)with balun feeding?? How we can reduce the height of feed???

    If anybody has any docs related to this please share with me..


    Steve F. Russell


    I don't know you application for gain and directivity in this frequency range but a very broadband antenna can be made. It is called a Disk-Cone antenna and is described in antenna books. It might be better than a dipole. A UHF or Microwave balun is hard to build unless you know how to do it on a printed circuit board.

    Good luck

  • Tim A. Majchrzak added an answer:
    Is there any research on motivating companies who develop software for internal use use appropriate software engineering practices?
    1. Some companies have an "IT" department that develops software for internal use
    2. In my experience, such companies see software development as a secondary function and do not invest in the appropriate setup, processes, etc
    3. Is there any research regarding this?  Do such companies have a term which refers to them?
  • Eric Neher added an answer:
    What kind of scheduling problem is this problem?

    Consider the following scheduling model:

    There is a finite set of jobs J each consisting of a set of components. The number of elements in the components sets varies between 1 and 1000. There is a finite set of machines M. Each component of a job can be produced by a subset of M, namely M´ with some negative or positive effects on the processing time. The components are independent and each component only needs one processing step, i.e. a processing by only one machine which is why the production order of the components does not matter. The objective is to minimize the makespan which should also imply a good utilization of the machines.

    By reading the literature I noticed that the above problem does not match the usual scheduling models. I think the one that fits the situation most is the concurrent open shop problem, in which the order of the operations does not matter and operations can be executed in parallel. However, as I understood it, each job hat to be processed by each machine which is not true in my case.

    My goal for now is to class my problem in order to better understand it and to know which literature I should further conduct. So can anyone help me to determine the type of scheduling problem I currently face? Is it as complicated as the NP hard open shop problems?

    Eric Neher

    Hi everyone,

    So I have done some more reading and thinking. 

    I came to the conclusion that the problem is a signle-stage "Rm / Mj / Cmax ?" problem. Single stage due to the fact that the components only have to be assigned to the machines but not ordered within the assignments. The question mark within the y-field is because I'm not yet sure if the problem imposes one or multiple objective-functons. See below.

    Single- / Multi-objective
    A scheduler of my problem should optimize the assignment based on the following goals:

    1. No machine's workload exceeds x%
    2. The workload of all machines is balanced (not like one machine is idle and one has constantly 100% workload)
    3. The components of the jobs are not heavily allocated on different machines (machines are physically distributed in a prduction facility. Therefore, the more the components of a job are spreaded over the machines, the more complex it gets to collect the components belonging to a job afterwards)

    Goal 1 is basically just a hard constraint which has to be considered while assigning components to machines. Goal 2 can be achieved with the well known objective "minimize Cmax" as this implies a good balance of the workload. However, goal 3 stands in conflict with goal 2. In order to achieve a good balance in workloads an allocation of the components has to be done. To my knowledge, as those two goals are conflicting, the problem imposes two objectives and has therefore be considered as multi-objective. Do I make this more complicated than it is or not?

    Deterministic/Stochastic, Offline/Online
    I also tried to categorize my problem based on the 4 terms above. In order to do that, one must know the characteristics of my problem:
    Jobs with their components may arrive and disappear at any time, i.e. they can be deleted or added. Also, machine breakdowns can occur. However, preemptions are not allowed and once a job is in production it can also not be deleted anymore. So the scheduler does actually not know how many jobs there will be during the day. Which is not that big of a deal since its job is only to allocate the components anyway. This dynamic environment pushes the problem to the stochastic side. However, the completion times of a job (based on the machine and on the job) are instantly known once the job arrives. This differs from all definitions of stochastic scheduling I've read so far. There the completion times are only known when the jobs are done. So my quastion is: is the problem of deterministic or stochastic nature?
    My longterm goal is to have a reactive scheduler which has some kind of recovery strategy. Based on the paper "Reactive Recovery of Job Shop Schedules – A Review" by A. S. Raheja and V. Subramaniam I would say this would categorize my scheduling problem as reactive scheduling (on the stochastic side).

    What are your thoughts about the two questions?

  • Simon Schröder added an answer:
    Are programming language performance benchmarks relevant in multi-platform applications?

    Let's take Javascript as an example. It's not the best language for heavy computing in comparison to say C++ or Fortran, but it can work across nearly all platforms (Which is an advantage I find very useful). However, I find it hard to take benchmarks into consideration owing to different engines across platforms (Like Chrome's V8 and iOS's Webkit). Also, different CPU architectures are a major factor.

    So the question is: Do benchmarks hold relevance when considering multiplatform applications?

    Simon Schröder

    Most of the time benchmarks will give you skewed results. Two different computers will produce different results. How will you make sure that neither the OS, nor the CPU architecture, nor the amount and speed of RAM influences the results? If you don't use identical hardware it is impossible to tell what you are benchmarking. What you can actually benchmark is how your solution will scale with problem size (but this is only for one platform). If you have different kinds of hardware you need to set a baseline for every platform independently. As a baseline you can, for example, provide another script written in the same language. This will set a baseline on all platforms. You might have a chance to compare your script to this baseline on each platform separately.

    I am not sure if this approach will make sense as I have not thought this concept through. But, for now I am really skeptical when I see comparison between different platforms.

  • Mariusz Janiak added an answer:
    What are open-source frameworks implementing publish–subscribe approach over IP/UDP, dedicated for small embedded systems?
    There is a commercial available implementation of RTPS protocol, a RTI Connext Micro, which is well scalable for small embedded systems with microcontroler. There is also open-source project ORTE ( that implement a RTPS protocol, but I haven't found its port for microcontroler based systems.
    Mariusz Janiak

    We are basing on the standard Ethernet hardware that is available in PCs and microcontrollers. On the MAC  level, the RTnet implements software TDMA discipline -- Time Division Multiple Access so the arbitration problem has been already solved. What we looking for now is a midlleware protocol that implements the pub/sub paradigm, and is able to operate over the UDP/IP. Our PCs has 1GB NICs but microcontrollers has only 100MB.  Most of our system typically operate with 1ms period so latency should be no more then the tens of us.

  • Daniel X. Houston added an answer:
    Do software process models predict decay? Are there any formal methods to prevent decay and ensure steady state?

    We appreciate software engineering process models provide the scope for managing processes in managing projects. But there are concerns on whether the model is really the one to provide the best alignment over time! It is argued that model should pursue right project management metrics based performance measurements and guide the project managers with clarity. But dynamic conditions imposed by the reallife projects look for mid course corrections. Thus, there is need for stability and steady state in the model. Are there formal methods to predict this decay?

    Daniel X. Houston

    As Frank V. has clearly demonstrated, decay is a physical sciences analogy for discussing a phenomenon in the life of software products. As it slowly becomes a scientific and engineering discipline, we in the field of software production and management have often drawn upon other disciplines for analogies. They serve our discussions well initially, but the challenge is to provide enough definition that they are precise enough to support research. Witness the discussions of technical debt and of code smells. We need further definition of "software decay." Some of the comments in this stream suggest that such definition has been offered, but works are not cited.

    To illustrate this point of a need for definition, a couple of the comments in this stream allude to decay during development. Thinking of an analogy to bio-decay, as opposed to radioactive decay, can software decay occur during development (growth) in which need for rework is created? Perhaps creation of poor designs, for example, is not a decay process, though the results may facilitate decay.

  • Majid Imani added an answer:
    Is it easier and faster to implement data structures in Java or C++?
    Students often ask if it is easier and faster to implement data structures, such as list, stack, queues, trees, forest, in Java or C++?

    Which of these is your own choice? Java or C++?

    Your answers will be appreciated. Thank you in advance.
    Majid Imani

    I've recently implemented some cache-oblivious algorithms and data structures with both languages (Java and C++). So based on my experience C++ is more powerful than Java for implementation of cache oblivious data structures (support for large dataset and closer to the hardware can be some of reasons). 

  • Subburaj Ramasamy added an answer:
    Which type of testing technique covers all coverage like code, path, statement etc., in a better way?

    There are many type of testing techniques available, whether all techniques covers code, boundary, statement coverage?

    Subburaj Ramasamy

    you should also carry out dataflow testing

  • Peter T Breuer added an answer:
    Why can I not execute software in direct log in, but no problem when execute via ssh command?


    Problem is solved now. the reason is: there is one thread is created and concurrently operated with my reading process, with the function is to signal that the computer is ready for the reading process or not yet. If this thread is not operated one of its "key step" about signalling before my reading function, the main software will not able to do the reading process ===> it stops !

    I simply make the computer sleeps for 1 micro-second before reading process start===> problem is solved.


    Dear all,

    I wrote a C++ software, which is a data readout from a hardware modules to PC via Gigabit Ethernet.

    I have a problem with executing software when direct log in to Linux computer. This is the case:

    - When I log in the computer from another one via the ssh command, I can execute my software successfully: the PC can access to the module and read out data.

    - When I log in the computer directly, I cannot execute my software successfully: PC can access to the module but usually cannot read data out (just a few times, it can read data out).

    This is a strange behavior to me! I discussed with my lab mates, they just have problems if they login with ssh but everything is normal when direct login.

    Of course, I want my software can be executed when directly login or via ssh.

    Is there anybody experienced this problem?

    I wish for sharing experiences and giving suggestions & advises. 

    Thanks a lot.

  • Emna Ben Ayed added an answer:
    What is analytical and empirical evaluation technique for evaluating a technique?

    I have proposed a testing technique and make some comparison with experimental data with existing works(empirical evaluation). But it seems not sufficient for publishing research paper. I want to make some analytical evaluation.

    Is it an acceptable evaluation criteria?

    how to make analytical evaluation?

    I used to make some qualitative comparison between existing works. does it worth anything??

    Emna Ben Ayed

    Hi, I do not know exactly your case but I think that some paper published in "JOURNAL OF TESTING AND EVALUATION" can give you answer. 

  • Alberto Sampaio added an answer:
    How do I construct a benchmark, taxonomy or classification in software engineering?

    Are there any systematic guidelines for that?

    Is there any difference among the three terms?

    Alberto Sampaio

    Emigdio, that's another question and the answer can be found inside the SWEBOK (see the answer above by James Moore). I only add that there is also a non free printed book about SWEBOK at amazon.

  • Matthieu Vergne added an answer:
    Which formalisms explicitly use lacks of information?

    I am facing a case where I want to order some elements based on available evidences, saying which one is more important than another. The point is that, when I have not enough evidence to tell which one is higher than the other, I can order them with an "undecided" order ("a ? b" instead of "a > b"). In particular, if I need to rank them, I can put them at the same rank to say that I am not able to tell which one is better, instead of equally important. I am not dealing with quantitative data, so it is not a matter of having intervals which overlap each other. I really deal with ordinal data: some evidences show that A is better than B, other evidences show that A is better than C, but no information between B and C, so I build a ranking which puts A first, B second, and C second too.

    What I am looking for are concrete formalisms which explicit the lack of information like I do (i.e. we have a specific data to tell that we do not have such information). An example is the case of subjective logic ( which count the amount of belief, disbelief, but also uncertainty, three values in [0;1] for which the sum should equal to 1. Formalisms related to orders would be of particular interest.

    Matthieu Vergne

    Thank you Stefan. I see it is also an example where we use \bot to represent unknown values, as mentionned by Peter if I remember well.

    I keep track of this question, so if anyone find other relevant works to recommend, feel free to add them. It could help other people having similar purposes too. Anyway, thank you very much for your participation. {^_^}

  • Rana Majumdar added an answer:
    Is it possible to connect Genetic algorithm with software maintainability?
    How to use genetic algorithm for checking agile software maintainability?
    Rana Majumdar


  • Colin James III added an answer:
    Are there any researches about generating applications from natural language description?

    I want to know if there are systems that generates programs from Natural Language description, and how this is called in science journals. Broadly speaking I mean something like, we describe e.g. web app in natural words. Like "I need catalog web app, with users, and admins. and users are registered in site and admin approves them. and etc.". So the program uses data from different structured frameworks (ROR or Django), and create program by itself. And if there are some researches in this fields?

    Colin James III


    About 1994 I wrote a program that decomposed hardware and software requirements documents by paragraph by parsing the sentences into nouns as objects, adjectives as strongly typed attributes, verbs as procedures, and adverbs as functions (returning one value).  I mapped it directly into the Ada83 components in the specification body using lookup tables for implementation.  (Ada is also a superset of VHDL used in hardware part's programming.) This is the closest approach I know to answer your question.

    About 1998 I wrote a SQL program that used stacked (layered), compressed, and self-modifying look up tables of strings of switches to coerce the RDBMS engine (in Access, DB2, Informix, Ingres, Oracle, Sybase (MS SQL Server)) to perform procedural processing in real time.  It was very fast and overcame the performance problem associated with bloated RDBMS code and redundant indexes.  The implementation was to produce a software factory, much after Nippon Telephone and Telegraph (NTT) in their effort to use Ada95 for reusable libraries (which ultimately was abandoned because of the trendy C-pro(j)ammers who hated strongly typed Ada). 

    This implies that the implementation issue for your question turns on what programming language is required.  Industrial grade languages are strongly typed, but require steeper learning curves.

    A subsequent alternate and parallel approach in 1999 was to map the natural-like  language in XSM (superset of HTML) directly into SQL scripts to produce tables and indexes based on the supplied names of variables.  I did this in the educator's language of TrueBASIC and it worked.  The implementation was to address the configuration management effort department-wide of the US Army at Fort Monmouth which ultimately failed, as do most Government projects, due to bad management by a single civilian engineer.

    The below is unrelated to the instant question:

    To Hussin Ahmed · Universiti Utara Malaysia:  Please be so respectful of the colleagues here as to delete your inappropriate and intellectually vacuous answer above.  You may choose to transfer your comments to a forum devoted to dogmatic theology, in which case I can address your comments as a mathematical theologist.

  • Karim Mahfouz added an answer:
    Current Research issues in Software Engineering
    Hi everyone!
    Em new to this community... I am student n em interested in doing research in Software Engineering. Could u please suggest me current & innovative issues in Software Engineering in which i can do my research??
    Karim Mahfouz

    software product lines -cloud computing 

  • Boriss Misnevs added an answer:
    How to remove "art" from software engineering?
    The purpose is to remove human variability (or "art") to reduce cost and increase predictability.
    Can the use of process fully remove "art"?
    What "art" (if any) can't be removed by process?
    Boriss Misnevs

    There are no general solution for your problem ("who is the boss of who").
    In Software Engineering we need a good enough design solution, not general considerations about the "edges of art" or "meaning or responsibility" in general.
    You have to find a solution for a particular case (it is an art) and implement the decision using process as mature, as possible.
    "The hell is in details!"

  • Muazu Musa added an answer:
    Can typestate be used for runtime verification of temporal property of embedded system?

    As typestate has been used in runtime monitoring for the software,especially fro java.In fact ,most of the research done is experiment on java.Can typestate be used in runtime verification of embedded system ? This question means it is possible or not to use typestate eliminate some monitoring instruments.

    Muazu Musa

    Please any help on:

    1. How to identify singularity on PUMA robotic arm

    2. How to minimizes the effect of singularity on PUMA robotic arm by actuation of passive joints, introduction of redundancy and correct positioning of redundant joints but maximizing the workspace, and stability and minimizing self-motion?

  • Peter T Breuer added an answer:
    Does anyone know how to perform mutliple concurrent calls to the "qHull" C library?

    I am developing a C program that at some point has to compute "n" convex hulls on the basis of "n" disjoint set of points.

    I would like to execute all these calls in parallel and, given the poor documentation available on the qHull library website, I would like to know if anyone has some sort of template to solve this problem.

    Thank you in advance for considering my request.



  • Shallu Madan added an answer:
    What are the latest developments in green software engineering and sustainable software engineering?

    Recent research in green and sustainable software engineering.

    Shallu Madan

    the research directions are energy efficient software,measure for green sw ,implementing green sw through requirements

  • Victoria Pinkney-Atkinson added an answer:
    When doing thematic analysis is it acceptable to use one initial code for developing more than one theme?

    I use thematic analysis for developing a thematic framework, which encompasses knowledge about software maintenance in a small software company. I have a case that one initial code, in combination with different sets of other codes, creates two themes. Since, several prominent researchers stress the importance of flexibility and creativity in qualitative research, I feel that this is acceptable decision.

    What is your opinion about this issue?

    Victoria Pinkney-Atkinson

    Hi Zeljko

    it probably depends on the theoretical perspective from which you are approaching the topic.

    In grounded theory and some other qualitative methodologies the ideas is to find a core variable ( could read theme or category) that holds the research together. then it is not a problem. It is what you need to do.

    In study of care for patients with long-term illnesses. The core variable emerged as "knowing" which linked to ways of relating to patient, patients to their illness, nurses to knowledge about patients, illness and scientific stuff. Some patients didn't want to know..... "talking to a brick wall".  It was then possible to link this to theory about knowledge and caring!

    The links don't have to be hierarchical - there are all kinds or relationships possible. Some ethnographic researchers like Spradley have a matrix to help you work out how things relate to each other.

    Hope this helps


  • Ali Daud added an answer:
    What are the approaches used for evaluation of the effectiveness of software effort estimation models?
    In order to estimate efforts for a software project we need to use a software cost estimation model. I want to know whether we do have methods in place to check the effectiveness and reliability for checking the software cost estimation models.
    Ali Daud

    Cost Estimation has always remained a focus area for researchers of different fields. For software engineering, a better cost estimation becomes more important with the fact that two- thirds of all major projects substantially overrun their original estimates. Software cost estimation is a complex activity that requires knowledge of a number of key attributes about the project. On the other hand there are diverse kinds of techniques available to predict cost estimation, each of which is having certain pros and cons. Line of code (LOC) can be considered as one of the earliest methods used for estimation purpose, i.e. how much a lines of code a programmer/developer has written on a punch card. With the emergence of high level languages and then advancement in coding environment, the LOC became insufficient. Therefore researchers were forced to come up with new and innovative ideas in this domain. All around the world, currently many tools, techniques and strategies are being practiced. Pakistan, being one of the heavily outsourced countries, thanking to its cheap labor, has also employed some techniques for cost estimation. This study is focused on Pakistani software houses with intention of exploring the software cost estimation methods, models and techniques along with current state of practice. This study also analysis the factors which are affecting the selection of software cost estimation methods/models in Pakistan software industry.

    have a look at this

  • Steven Ong added an answer:
    What are interaction related error in software testing and how to define them?

    In software testing we solve different kind of errors. What are interaction related error in software testing? Interaction means relationship between functions, module or components.
    How can we formally define an error?

    Steven Ong

    You can define the errors formally as the following:

    Given a function F and a set of input I which belong to a domain D in such that the inputs in I will yield a definite one to one mapping to the answers set A (i.e., outputs) once feeding into F.

    To test:

    Define a finite set of I' which is a subset of I and a set A' which is a subset of A that all members in I' and A' are one to one, and feed I' into F one by one. Compare the results with the set A'. Since all members of A' and I' have one to one relationship via F, anything produces from member in I' through F that is not in A' is an error.

    I believe this is the underlined principle of unit testing (e.g., JUnit, CPPTest, etc.) (without all the formal stuffs, of course :-) ).

    Good luck,


  • Selvarajah Thuseethan added an answer:
    What role does usability evaluation play in testing software especially when it has to do with human-computer interaction?
    In human computer interaction, users of software can provide feedback on the performance of a particular software. What role does usability evaluation play in ascertaining the production of high-quality software?
    Selvarajah Thuseethan

    Refer the following article

  • Hasan Kahtan added an answer:
    What are the arguments both in favor and against this technique when it is applied to security rather than dependability?


    • [Show abstract] [Hide abstract]
      ABSTRACT: There is a growing need for systems whose survivability in a specified use and/or attack environment can be assured with confidence. Many techniques have been proposed to validate individual components (e.g., formal methods) or a system as a whole (e.g., red teaming). However, no single technique can provide the breadth of evidence needed to validate a system with respect to high-level survivability requirements. To accomplish this, we propose an integrated validation procedure (IVP) that begins with the formulation of a specific survivability requirement R and determines whether a system is valid with respect to R. The IVP employs a top-down approach that methodically breaks the task of validation into manageable tasks, and for each task, applies techniques best suited to its accomplishment. These efforts can be largely independent, and the results, which complement and supplement each other, are integrated to provide a convincing assurance argument. We then illustrate the IVP by applying it to an intrusion-tolerant information system being developed by the U.S. Department of Defense. In addition to validating the system against high-level survivability requirements, we demonstrate the use of model-based validation techniques, as a part of the overall validation procedure, to guide the system’s design by exploring different configurations and evaluating tradeoffs.
      Dependable Computing, Second Latin-American Symposium, LADC 2005, Salvador, Brazil, October 25-28, 2005, Proceedings; 01/2005
    Hasan Kahtan

    The terms “dependability”‎ and “security”‎ have been used interchangeably to describe the properties of secure and trusted software.

    However, the extant literature shows that dependability attributes are considered as the cure for security threats, abnormal behavior and untrustworthy issues in a software system.

    A system is considered dependable when it can be depended on to produce the consequences for which it was designed, with no adverse effect in its intended environment. Dependability comprises several attributes that imply availability, confidentiality, integrity, reliability, safety, and maintainability.

    Methods and tools to attain the dependability attributes have been discussed in details in my previous publications.

    I hope this can help you. Good luck.

    • [Show abstract] [Hide abstract]
      ABSTRACT: Current organizational vulnerabilities mainly originate from Web applications. The security holes in Web applications have resulted in credit card theft, damaged financial resources and reputation of institutions, and compromised computers. Existing Web applica-tion systems encounter a high record of vulnerabilities that target dependability attributes. Mitigating software vulnerabilities and in-creasing software protection against bugs or vulnerabilities are crit-ical to increase consumer confidence in software component prod-ucts. Improved software engineering practices must also be adopted to mitigate the vulnerabilities in modern systems. Component-based software development (CBSD) is a software engineering approach. CBSD has been successfully applied in many domains. However, the CBSD capability to develop secure software applications is lack-ing to date. Therefore, this article proposes a guideline to overcome the lack of security trust in CBSD process. The proposed guide-line embeds dependability attributes into CBSD by using the best practice method. The proposed guideline is significant for eliciting, analyzing, specifying, and composing the dependability attributes of CBSD.
      Journal of Applied Security Research 07/2014; 9(3):348-371. DOI:10.1080/19361610.2014.913230

    + 1 more attachment

  • Hossein Doroud added an answer:
    How can I extract basic and derived features from network traffic data captured using TCPdump?

    After capturing network traffic using TCPDUMP, how can the basic and derived features e.g protocol type, src_bytes, dst_bytes be extracted.

    Hossein Doroud

    I usually netmat for these purpose but if you are looking for packet inter arrival time, packet length and packet size then you can also use TIE:

  • Zeljko Stojanov added an answer:
    Which is the best area in which empirical software engineering can be applied ?

    Dear All,

    What is area in which empirical software engineering be applied? Can be used in evaluating UML diagrams ?

    Zeljko Stojanov

    Dear Nakul,
    empirical methods can be used in any are of software engineering. Choosing the most appropriate method depends on your research goal and research design. You can start with reading some general articles about empirical software engineering, like

    Barbara A. Kitchenham, Shari Lawrence Pfleeger, Lesley M. Pickard, Peter W. Jones, David C. Hoaglin, Khaled El Emam, Jarrett Rosenberg, "Preliminary Guidelines for Empirical Research in Software Engineering," IEEE Transactions on Software Engineering, vol. 28, no. 8, pp. 721-734, Aug. 2002, doi:10.1109/TSE.2002.1027796.

    Timothy C. Lethbridge, Susan Elliott Sim, and Janice Singer. 2005. Studying Software Engineers: Data Collection Techniques for Software Field Studies. Empirical Software Engineering, Volume 10, Issue 3, July 2005, pp. 311-341. DOI: 10.1007/s10664-005-1290-x.

    The best approach is to conduct the research in the area you are the most interested. Read as much as you can about research methods in order to get better insight in available options, and read empirical studies in the most influential software engineering journals to see how other conduct and report empirical research.

    Good luck.

  • Persis Pratap added an answer:
    Is there any automatic/manual procedure/tools to generate a petri net model from a source code?
    Persis Pratap

    yes, Please try WOPED , a free open source software available

  • Birol Aygün added an answer:
    What is the most commonly used standard for software engineering life cycle ?

    And is there a popular standard for testing and maintenance specifically.  

    Birol Aygün

    It would be good education for the questioner if he downloaded the (300+page) Swebok 3 tome and browsed through it.  He would find a lot of potentially useful information, but not the answer to his specific question. Further, there is nothing in Swebok invalidating my recommendation under the conditions I specified.

About Software Engineering

Software engineering and the application of knowledge-based, simulation-based, data-driven, human-centred and automated approaches.

Topic followers (87,586) See all