Software process improvement, requirements engineering, technology transfer, small and medium sized enterprises, programming and software engineering education, process measurement, standardization, organizational change, Classic Change Curve, technology S-curve, motivation, Theory of Constraints, disruptive innovations, agility, systems approach.
The systematic development of computer science education at the Laboratory of Software Engineering started in 2006 when the first programming course went through a radical change. The problem analysis conducted in the previous year revealed many hygiene problems which were addressed mainly by revising the technical infrastructure of the course: the C-language was replaced with Python, a Finnish programming guide was developed, and weekly programming assignments were introduced in the course. The removal of other hygiene issues continued in 2007 and 2009 with incremental changes so that the course pass rate, or throughput, increased from 44% in 2004 to 68% in 2009.
In 2010 the course technical infrastructure had to be revisited again. Python 2 adopted in 2006 was replaced by Python 3 which was not backward compatible, so all the programming assignments, examples, and demos had to be checked for correctness. At the same time all the other issues related to the assignments were considered and a new course project developed. The new project demonstrates the current research focus: providing the students with a genuinely challenging and educative programming project they not only forces the students to learn to program but also demonstrates in practice the importance of requirements, design, and testing.
BaRE is a Basic RE method addressing both requirements development and management phases. It is targeted at small projects developing administrative and business information systems. Key characteristics of the method are the following: (1) ready-to-use, (2) adaptable, (3) simple, (4) comprehensive, and (5) systematic. The method itself consists of five key constructs: a requirements document template, techniques for requirements development, techniques for requirements management, tool support for requirements management, and training. All these constructs have been adapted to the specific domain to form a simple but systematic method. There are two reasons to address all the five key constructs in the same method. First, it makes it possible to use the same method to support the whole software life cycle. Second, it makes it possible to start using the method even without adaptation, i.e., it is ready-to-use. The method is described in full in LUT IT Report 3 (2002): "The BaRE Method Version 1.0", and the all the method documents and templates are available as a zip-package. Experiences of the BaRE method in practice are reported in my doctoral thesis (Nikula 2004a).
In the following page there are a number of project ideas that can be used as basis for planning a Bachelor’s or a Master’s thesis or other research projects. As of now most of the topics are best suited for students who understand Finnish and that is why the page is also in Finnish: Project ideas.
Maglyas, A., U. Nikula and K. Smolander (2012). Comparison of software product management practices in SMEs and large enterprises. Third International Conference on Software Business, Cambridge, Massachusetts, USA. Accepted for publication.
Kyttälä, Lauri and U. Nikula (2012). C-kieli ja käytännön ohjelmointi - Osa 2 versio 1.0. Tietotekniikan käsikirjat 15. Lappeenranta, Lappeenranta University of Technology: 51.
Nikula, U., O. Gotel and J. Kasurinen (2011). "A Motivation Guided Holistic Rehabilitation of the First Programming Course." ACM Transactions on Computing Education. 11(4): 38.
Maglyas, A., U. Nikula and K. Smolander (2011). What Do We Know about Software Product Management? – A Systematic Mapping Study. The 5th International Workshop on Software Product Management, Trento, Italy, IEEE: 26-35.
Vanhala, E., T. Kähkönen, U. Nikula and K. Smolander (2011). External Influences and Integration as Requirements in Online Community Development. The 1st International Workshop on Requirements Engineering For Social Computing, Trento, Italy, IEEE: 10-13.
Hannola, L., P. Oinonen and U. Nikula (2011). "Assessing and improving the front end activities of software development." International Journal of Business Information Systems 7(1): 41-59.
Hannola, L., U. Nikula, M. Tuominen and H. Kälviäinen (2010). "The front end of innovation - a group method for the elicitation of software requirements." International Journal of Innovation and Learning 7(3): 359-375.
Maglyas, A., U. Nikula and K. Smolander (2010). Comparison of Two Models of Success Prediction in Software Development Projects. Central and Eastern European Software Engineering Conference in Russia, Moscow, Russia, IEEE: 43-49.
Nikula, U., C. Jurvanen, O. Gotel and D. C. Gause (2010). "Empirical validation of the Classic Change Curve on a software technology change project." Information and Software Technology 52(6): 680-696.
Vanhala, E. and U. Nikula (2010). Python 3 -ohjelmointiopas versio 1.0. Tietotekniikan käsikirjat 13. Lappeenranta, Lappeenranta University of Technology: 126.
Alaoutinen, S. and U. Nikula (2009). Student Self-Assessment by Counting the Times of Repetition. Ninth IEEE International Conference on Advanced Learning Technologies, Riga, Latvia, pp. 577-578.
Hannola, L., P. Oinonen and U. Nikula (2009). Assessing and Improving the Front End Activities of Software Development – Experiences in a Software House. Annual ISPIM Conference, Vienna, Austria, International Society for Professional Innovation Management, pp. 14.
Kasurinen, J. and U. Nikula (2009). Estimating programming knowledge with Bayesian knowledge tracing. 14th annual ACM SIGCSE conference on Innovation and technology in computer science education, Paris, France, ACM, pp. 313-317.
Nikula, U., S. Alaoutinen, J. Kasurinen and T. Pirinen (2009a). Improving the Technical Infrastructure of a Programming Course. Ninth IEEE International Conference on Advanced Learning Technologies, Riga, Latvia, IEEE Computer Society, pp. 374-376.
Nikula, U., C. Jurvanen, O. Gotel and D. C. Gause (2009b). From Technology Migration to Organizational Culture Change. 11th International Workshop on Learning Software Organizations, Oulu, Finland, Fraunhofer IESE, pp. 7-19.
Nikula, U., P. Oinonen and L. Hannola (2009c). Extending Process Improvement into a New Organizational Unit. 20th Australian Software Engineering Conference, Gold Coast, Australia, IEEE Computer Society, pp. 267-276.
Hannola, L., U. Nikula, M. Tuominen and H. Kälviäinen (2008). Front End of Innovation - Group Method for Elicitation of Software Requirements. The 3rd Nordic Innovation Research Conference, Oulu, Finland, pp. 15-.
Kasurinen, J., M. Purmonen and U. Nikula (2008). A Study of Visualization in Introductory Programming. Annual Meeting of the Psychology of Programming Interest Group (PPIG) 2008, Lancaster, UK, pp. 181-194.
Nikula, U. (2008). "Mittaaminen ohjelmoinnin opetuksen kehittämisen tukena." Peda-Forum 14(2): 29-33.
Pasi, S. J. A., K. Smolander and U. Nikula (2008). Customer-Supplier Issues in Software Development. 16th European Conference on Information Systems, Galway, Ireland, pp. 434-445.
Bern, A., S. J. A. Pasi, U. Nikula and K. Smolander (2007). Contextual Factors Affecting the Software Development Process – An Initial View. Second AIS SIGSAND European Symposium on Systems Analysis and Design, Gdansk, Poland, University of Gdansk, pp. 72-79.
Kasurinen, J. and U. Nikula (2007a). Lower Dropout Rates and Better Grades Through Revised Course Infrastructure. 10th IASTED International Conference on Computers and Advanced Technology in Education, Beijing, China, ACTA Press, pp. 152-157.
Kasurinen, J. and U. Nikula (2007b). Revising the First Programming Course – The Second Round. Reflektori-Symposium of Engineering Education, Helsinki, Teaching and Learning Development Unit, pp. 92-101.
Nikula, U., J. Sajaniemi, M. Tedre and W. Stuart (2007). "Python and Roles of Variables in Introductory Programming: Experiences from Three Educational Institutions." Journal of Information Technology Education 6: 199-214.
Karvonen, M., U. Nikula and T. Kässi (2006). Software Business Models and Strategic Groups: Case South-East Finland. 17th ISPIM Annual Conference Athens, Greece International Society for Professional Innovation Management.
Nikula, U. and S. Jantunen (2005). Quantifying the Interest in Open Source Systems: Case South-East Finland. The First International Conference on Open Source Systems, Genova, Italy, Agenzia Doppiavu, pp. 192-195.
Nikula, U., S. Jantunen, M. Karvonen, T. Saarelainen and J. Lampinen (2005a). Kaakkois-Suomen ICT-klusterin yleiskartoituksen toteutus ja tulokset. Lappeenranta, Lappeenrannan teknillinen yliopisto.
Nikula, U., S. Jantunen and J. Lampinen (2005b). Kaakkois-Suomen ICT-klusterin yritysselvitys. Lappeenranta, Lappeenrannan teknillinen yliopisto: 53.
Nikula, U., S. Jantunen, T. Saarelainen and M. Karvonen (2005c). Establishing the Current Practice in Industry as the Baseline for Educational Infrastructure: Case South-East Finland. 18th Conference on Software Engineering Education & Training (CSEE&T), Ottawa, Canada, IEEE Computer Society, pp. 173-180.
Nikula, U. and J. Sajaniemi (2005a). Tackling the Complexity of Requirements Engineering Process Improvement by Partitioning the Improvement Task. Australian Software Engineering Conference, Brisbane, Australia, IEEE Computer Society, pp. 48-57.
Nikula, U. and J. Sajaniemi (2005b). Evaluation Framework for Requirements Engineering Method Adoption: The BaRE Method Case. 3rd International Workshop on Comparative Evaluation in Requirements Engineering (CERE'05), Paris, France, Faculty of Information Technology, University of Technology, Sydney, pp. 45-55.
Nikula, U. (2004a). Introducing Basic Systematic Requirements Engineering Practices in Small Organizations with an Easy to Adopt Method. Doctoral Thesis. Department of Information Technology, Lappeenranta University of Technology, Lappeenranta.
Nikula, U. (2004b). Experiences from Embedding Training in a Basic Requirements Engineering Method. 17th Conference on Software Engineering Education & Training, Norfolk, Virginia, USA, IEEE Computer Society, pp. 104-109.
Nikula, U. (2003a). Experiences of a Ready-to-Use Requirements Documentation Set. Eighth Australian Workshop on Requirements Engineering, Sydney, Australia, Faculty of Information Technology, University of Technology, Sydney, pp. 43-52.
Nikula, U. (2003b). Experiences from Lightweight RE Method Evaluations. Comparative Evaluation in Requirements Engineering, Monterey Bay, California, USA, IEEE Computer Society, pp. 53-60.
Nikula, U. (2002a). The BaRE Method Version 1.0. Lappeenranta, Lappeenranta University of Technology: 150.
Nikula, U. (2002b). BaRE - A Ready to Use Method for Requirements Engineering. Licentiate Thesis. Department of Information Technology, Lappeenranta University of Technology, Lappeenranta.
Nikula, U. and J. Sajaniemi (2002). BaSyRE: A Lightweight Combination of Proven RE Techniques. International Workshop on Time-Constrained Requirements Engineering, Essen, Germany, Papel Virtual Editora, Rio de Janeiro, pp. 69-78.
Mannio, M. and U. Nikula (2001a). Requirements Elicitation Using a Combination of Prototypes and Scenarios. Lappeenranta, Finland, Telecom Business Research Center Lappeenranta: 26.
Mannio, M. and U. Nikula (2001b). Requirements Elicitation Using a Combination of Prototypes and Scenarios. IV Workshop on Requirements Engineering, Buenos Aires, Argentina, Universidad Tecnológica Nacional, Facultad Regional Buenos Aires, Argentina, pp. 283-296.
Reinikainen, L., U. Nikula, K. Leino, M. Tuominen and H. Kälviäinen (2001). Elicitation of Customer Requirements with Group Methods in Software Engineering. Challenges of Innovation and Technology Management for the New Millennium, Lappeenranta University of Technology, Finland, Department of Industrial Engineering and Management, Lappeenranta University of Technology, Finland, pp. 302-310.
Nikula, U., J. Sajaniemi and H. Kälviäinen (2000a). A State-of-the-Practice Survey on Requirements Engineering in Small- and Medium-Sized Enterprises. Lappeenranta, Finland, Telecom Business Research Center Lappeenranta: 26.
Nikula, U., J. Sajaniemi and H. Kälviäinen (2000b). A State-of-the-Practice Survey on Requirements Engineering: Industry Expectations on Education and Technology Transfer. Fifth International Conference on Software Process Improvement Research, Education and Training - INSPIRE V, London, Great Britain, The British Computer Society, pp. 13-24.
Nikula, U., J. Sajaniemi and H. Kälviäinen (2000c). Management View on Current Requirements Engineering Practices in Small and Medium Enterprises. The Fifth Australian Workshop on Requirements Engineering, Brisbane, Australia, Faculty of Information Technology, University of Technology, Sydney, pp. 81-89.