When you start on your software project, would you wonder how much it costs, how long the project takes, or how many people to hire? Those are hard questions to answer. Why? There are just so many factors to consider and we don't know how much they influence the numbers. Among the factors, the complexity of the software product is of course the most important one. Then how do we evaluate the complexity of a software system? Is it about the number of use cases of the software? Is it about the number of transactions the system processes? Or is it about the number of lines of code that we need to write? As we think about it, we may realize those variables would all influence the result and the variables themselves would also influence each other. What's more challenging is that we don't know how much they would influence. To solve these problems, our research work is divided into two parts. First, we analyse the complexity of a software system from high-level to low-level. Second, we analyse the costs of real-world software projects to learn how the complexities influence the cost. How do we "learn", we perform big data analysis and write machine learning algorithms. Upload your software design file in XML format, and get an estimate of the cost of your next project. If you would like to know more about our research, we provide our list of papers at this link.
Is the system a distributed system which was developed on multiple platforms and required communication between the subsystems/components be based on network protocals, events, or remote procedural calls?
To what degree, does the target system have to meet the required response time and throughput performance objectives?
To what degree, does the target system have to meet the required end user efficiency?
To what degree of difficulty, the internal processing should be rated?
To what degree, the code should be reusable?
To what degree, the system has to be easy to be installed?
To what degree, the system has to be easy to use?
To what degree, is the system required to be portable to other platforms?
To what degree, the system has to be able to handle concurrent requests or processes?
To what degree, the system has to achieve special security objectives?
To what degree, the system has to provide access for third parties?
To what degree, special user training facilities should be provided?
Are the personnel familar with the development process?
Did the developers have related experience of developing this type of applications?
Did the developers have related experience of developing object-oriented applications?
To what degree, the lead analyst of the team should be rated?
To what degree, the whole team is motived for the project?
Are the requiremenst stable over time?
To what percentage, the team has part-time stafff?
To what degree, the chosen programming language are diffficulty to the development team?
Estimate the available personnel. If it is unlimited, leave it blank.
Estimate the available schedule in months. If it is unlimited, leave it blank.
Estimate the evarage number of working hours per month for team members, for example, 160 horus for full number members, 20 hours for part-time developers, etc.
Processing...