The Experimental Training Course SE MSF .NET Authors of the Presentation Nikita I Boyko, mboyko@acm.org Alexey G Dubinsky, dubinsky@ukr.net, Associate Professor, PhD, Dnipropetrovsk National University Irina V Mozgovaya, mir_ra@mail.ru, Associate Professor, PhD, Dnipropetrovsk National University Vladimir L Pavlov, vlpavlov@ieee.org, Intel Alexandr D Firsov, phirsof@mail.ru, Associate Professor, PhD, Dnipropetrovsk National University An Experimental Training Course SE MSF.NET 2 Agenda 1) Introduction 2) Course Content 3) How We Developed The Course 4) Conclusions History of the SE MSF .NET Course July 2003 – N. Boyko (mboyko@acm.org) and V. Pavlov (vlpavlov@ieee.org) came up with the idea to create the course Project team was formed The course was given a name SE MSF .NET August 2003 – open rehearsal of lectures began September 2003 – pilot lecturing began February 2004 – student teams started to work on course projects June 2004 – exam An Experimental Training Course SE MSF.NET 4 Real World Practical Demands Many representatives of Ukrainian and Russian software development companies consider that IT graduates must: • possess knowledge of contemporary software development processes; understand how software is developed and created • be familiar with modern concepts of software testing, configuration management, requirement management, etc. • posses skills and knowledge of software development techniques, UML, CASE-tools • know technical English An Experimental Training Course SE MSF.NET 5 ACM Association for Computing Machinery Founded in 1947 More than 75,000 members More than 100 conferences conducted annually More than 25 periodicals International collegiate programming contests http://www.acm.org An Experimental Training Course SE MSF.NET 6 IEEE-CS Institute of Electrical and Electronic Engineers Computer Society More than 100,000 members More than 140 conferences conducted annually More than 20 periodicals http://www.ieee.org http://www.computer.org An Experimental Training Course SE MSF.NET 7 Computing Curricula 2001 The first attempt to create computing curricula recommendation for Computer Science was undertaken by ACM in 1968, the second version was published in 1978. IEEE-CS – the same steps were undertaken in 1977 and 1983 At the end of 1980’s ACM and IEEE-CS teamed up and released a Computing Curricula in 1991 2001 – the last version was released http://www.computer.org/education/cc2001 In 2002, Saint Petersburg State University (Russia) published the translation of СС2001-CS in Russian http://se.math.spbu.ru/cc2001 An Experimental Training Course SE MSF.NET 8 CС2001 Structure СС 2001 consists of 5 volumes: • • • • • Computer Science Software Engineering Computer Engineering Information Systems Overview An Experimental Training Course SE MSF.NET 9 The Diversity of the Computing Field Computer Science SE MSF .NET SE CS IS Information Systems Software Engineering CE An Experimental Training Course SE MSF.NET Computer Engineering 10 Software Engineering in СС2001:CS Core disciplines: SE1. SE2. SE3. SE4. SE5. SE6. SE7. SE8. Software design Using APIs Software tools and environments Software processes Software requirements and specifications Software validation Software evolution Software project management Elective disciplines: SE9. Component-based computing SE10. Formal methods SE11. Software reliability SE12. Specialized systems development An Experimental Training Course SE MSF.NET 11 Characteristics of CS Graduates Section 11.1 of the СС2001-CS lists the five major characteristics that a CSgraduate must possess One of the five characteristics is “significant project experience”: • To ensure that graduates can successfully apply the knowledge they have gained, all students in computer science programs must be involved in at least one substantial software project. Such a project demonstrates the practical application of principles learned in different courses and forces students to integrate material learned at different stages of the curriculum. An Experimental Training Course SE MSF.NET 12 The Objectives of Our Software Engineering Course 1. Introduce students to the core disciplines from the Software Engineering section of CC2001:CS 2. Train students in Software Engineering methods using Microsoft Solution Framework as an example 3. Provide the experience of working on software projects in a team environment 4. Teach basic knowledge of the Microsoft .NET Framework An Experimental Training Course SE MSF.NET 13 The extract from the list of skills that a Ukrainian university graduate must posses. Specialty “7.080403 – Software Development for Automatic Control Systems” Module abbreviation Module Name ПП.11 Software Development Life Cycle ПП.50 Object-Oriented Approach to Software Development ПП.52 Financial Planning and Analysis of Software Projects ПП.61 Document Flow Management for Software Development Projects ПП.77 Project Management Some Related Courses Course that is based on Ian Sommerville‘s classical book: http://www.comp.lancs.ac.uk/computing/resources /IanS/SE6/Slides/index.html A number of universities (for example Saint Petersburg State University, Russia) build their courses using these materials Microsoft training courses • 1846 “Microsoft Solutions Framework Essentials” http://www.microsoft.com/traincert/syllabi/1846AFinal.asp • 2710 “Analyzing Requirements and Defining Microsoft .NET Solution Architectures” http://www.microsoft.com/traincert/syllabi/2710bfinal.asp An Experimental Training Course SE MSF.NET 15 Agenda 1) Introduction 2) Course Content 3) How We Developed The Course 4) Conclusions An Experimental Training Course SE MSF.NET 16 The CC2001:CS standard Knowledge of Software Engineering Project experience Course SE MSF.NET Software Engineering MSF Teamwork in a software project .NET An Experimental Training Course SE MSF.NET 17 Microsoft Solutions Framework There is a number of software project management methodologies (RUP, MSF, CDM, XP etc.) We have chosen Microsoft Solutions Framework (MSF) • flexibility and scalability • totally free • the whitepapers have been translated into Russian http://www.microsoft.com/rus/msf • two of the project participants are Microsoft Endorsed MSF Practitioners An Experimental Training Course SE MSF.NET 18 What is MSF? The MSF is a collection of Microsoft's proven practices on managing successful IT projects Microsoft barely markets MSF, and they do not sell it. Instead, Microsoft focuses on making money *USING* MSF Microsoft initially made MSF available in 1994. The latest version of MSF is 3.0; it was released in 2002. Like Windows, or any other products, MSF evolves and matures as long as new versions are released All MSF-related materials are open for public access. Besides this, anyone can download the set of templates of all the documents used in MSF projects for free An Experimental Training Course SE MSF.NET 19 MSF Process Model Deployment Stable Interim Milestone Site Deployments Complete Interim Milestone Core Components Deployed Release Readiness Approved Pilot Complete User Acceptance Testing Complete Pre-Production Test Complete Release Candidates Zero Bug Bounce Bug Convergence Scope Complete Deployment complete Core Team Organized Vision/Scope Drafted Vision/Scope Approved Technology Validation Functional Specification Baselined Master Plan Baselined Master Schedule Baselined Development and Test Environment Set Up Project Plans Approved Proof of Concept Complete Internal Build 1 Complete Internal Build 2 Complete Internal Build n Complete An Experimental Training Course SE MSF.NET 20 MSF Team Model Project management Solution architecture Process assurance Administrative services Business value Marketing Customer advocacy Product planning Program Management Technology consulting Implementation architecture and design Application development Infrastructure development Product Management Development User Experience Test Accessibility Internationalization User advocacy Training/support material Usability research and testing User interface design Release Management An Experimental Training Course SE MSF.NET Infrastructure Support Operations Logistics Commercial release management Test planning Test engineering Test reporting 21 MSF Project Management Discipline “Bridge” between MSF and PMBOK Team Leads Program Management Product Management Development Test User Experience Release Management at overall project level An Experimental Training Course SE MSF.NET at sub-team level 22 MSF Risk Management Discipline 2 Analyze and Prioritize Risk Statement 1 Identify Master Risk List 5 Control 3 Plan and Scedule Top Risks 6 Learn Risk Knowledge Base, An Experimental Training Course SE MSF.NET Track and Reprt 4 23 MSF Readiness Management Discipline Define Knowledge Skills Abilities Assess Evaluate Change An Experimental Training Course SE MSF.NET 24 Why .NET? For implementing software solutions, students need an appropriate development framework A typical situation is modeled: an IT specialist needs to become familiar with new technology in bounded terms .NET is a new technology promoted by Microsoft • Advantages: actively promoted by Microsoft will be highly used in the nearest future Students learn only those elements of .NET Framework which are required for working on practical tasks An Experimental Training Course SE MSF.NET 25 Pilot Deployment of the Course Department of Applied Mathematics of Dnipropetrovsk National University Chairs: • Software Development • Computational Mathematics and Mathematical Cybernetics (CM&MC) Course “System Analysis and Design of Informational Systems” An Experimental Training Course SE MSF.NET 26 First Attendees of the Course 4th year students of the Department of Applied Mathematics, Dnipropertrovsk National University Specialties: 1. Software Development for Automatic Control Systems 2. Intellectual Decision Making Systems An Experimental Training Course SE MSF.NET 27 Classes are Lectured by the Department of Applied Mathematics Faculty Lectures Lab work Chair of CM&MC Chair of CM&MC N. Boyko K. Runduyev Chair of Software Development I. Mozgovaya An Experimental Training Course SE MSF.NET A. Firsov Chair of Software Development O. Beloborod’ko 28 The Course is Planned for Two Semesters 1st semester: • 9 lectures • 9 lab classes 2nd semester: • 17 lectures • 17 lab classes An Experimental Training Course SE MSF.NET 29 26 Lectures Software Engineering – 12 MSF-based Project Management – 8 .NET Technologies– 3 Additional Topics – 3 An Experimental Training Course SE MSF.NET 30 26 Classes in the Department’s Laboratory 9 classes – lab work on .NET using web-based technologies (HTML, SOAP) 17 classes – team work on projects An Experimental Training Course SE MSF.NET 31 Material Distribution among Semesters Fall (the first) semester of 2003/2004 • Familiarizing with .NET • Specific topics of SE and MSF • 3 lab tasks Spring (the second) semester of 2003/2004 • Profound topics of SE • Detailed study of MSF • Course project An Experimental Training Course SE MSF.NET 32 Lectures that the Students Attend During the First Semester 1. 2. 3. 4. 5. 6. 7. 8. 9. Course introduction Microsoft .NET Framework review UML language review Project Management in IT. The review of Web-service based architecture. XML and SOAP MSF Team Model Risk management in IT-projects The Envisioning phase of the MSF Process Model The Planning phase of the MSF Process Model An Experimental Training Course SE MSF.NET 33 Lectures that the Students Attend During the Second Semester 1. Course Review 2. Conceptual, Logical and Physical Design in the MSF Process Model 3. Design Patterns 4. UML Meta Model 5. The Development Phase in the MSF Process Model 6. The Stabilizing Phase in the MSF Process Model 7. Software Testing 8. The Deployment Phase in the MSF Process Model An Experimental Training Course SE MSF.NET 34 Lectures That the Students Attend During the Second Semester (2) 9. 10. 11. 12. 13. 14. 15. 16. 17. Management in IT-operations. Overview of ITIL and MOF Integrated Development Environments (IDEs) Managing Security Requirements. Security in .NET Creating Windows Applications in .NET Employment in IT. Professional Ethics Rational Unified Process Agile Processes, eXtreme Programming SW/CMM+CMMI Overview of Component Software Development (CORBA, COM, RMI, Advanced Aspects of .NET Programming) An Experimental Training Course SE MSF.NET 35 Feedback From Students The course is interesting, useful and unusual Students like that the course contains plenty of information about contemporary achievements and tendencies in the ITindustry Students of the course often feel as if they have read “the table of contents”, but not the book itself An Experimental Training Course SE MSF.NET 36 Feedback From Students (2) The scope of the course is very broad and does not allow them to learn many areas deeply, even though details are important in programming Students appreciate that they do not need to write the lectures down – leaving more time for absorbing information Some students, however, do need to write the lecture down – sometimes people remember information better while writing An Experimental Training Course SE MSF.NET 37 Lab Tasks of the 1st Semester Three compulsory lab tasks • Create a small (static) web-site using XML • Expand the site with database interaction • Create web-services An Experimental Training Course SE MSF.NET 38 Lab Tasks of the 2nd Semester Complete a course project Work in a team of 5-8 students The team performs its work in compliance with MSF methodology The team reports the status to the supervisor on a regular basis At the end of the 2nd semester student teams compete in a contest An Experimental Training Course SE MSF.NET 39 Student Projects Requirements • The project must not be for profit • The result of the project must be useful for the university • .NET technologies must be used Potential customers • Dean’s office • University department • Lyceum of Information technology An Experimental Training Course SE MSF.NET 40 Student Documentation A Vision Scope document An Experimental Training Course SE MSF.NET 41 Master Risk List An Experimental Training Course SE MSF.NET 42 A Use-case Diagram An Experimental Training Course SE MSF.NET 43 Every Student Receives: Presentation handouts for each lecture Additional materials for every lecture (hardcopies of referenced articles, printouts of diagrams, etc.) CD that contains materials on software engineering CD that contains necessary .NET-related materials (including free software) An Experimental Training Course SE MSF.NET 44 CD 1 “Informational Resources on Software Engineering” Materials on Software Engineering, including Materials on UML, including MSF whitepapers in Russian and English languages Document templates for MSF-based projects A video presentation of the MSF overview lecture Materials on CMM, including UML and SPEM standards Materials on MSF, including SWEBOK Standard Ion Sommervillel’s presentations to his course “Software Engineering” SW-CMM and CMMI official CMU SEI documentation Other resources Materials on RUP, Agile, etc. An Experimental Training Course SE MSF.NET 45 CD 2 “Resources on Microsoft .NET” Installation packages: • MSDE 2000 SP3 • Microsoft .NET Framework SDK 1.1 • Microsoft Web Matrix (the latest available version) • SharpDeveloper (the latest available version) Additional materials: • • • • Off-line copies of useful web-resources Current C# language ISO standard Current HTML and XML W3C standards Current CLI ISO standard An Experimental Training Course SE MSF.NET 46 Students’ Knowledge Control Regular control (quizzes during lectures) Midterm control (midterm examination and quizzes) Laboratory tasks (1st term) Course project (2nd term) The course peaks with the exam. Three questions: 1. Software Engineering 2. MSF 3. Microsoft .NET Framework and ASP.NET An Experimental Training Course SE MSF.NET 47 Possible Alternatives for the Examination A student, who successfully passes an approved certification exam before April 15th, is exempt from the course exam • IBM 486 “Object-Oriented Analysis and Design with UML” • MS 74-100 “Microsoft Endorsed MSF Practitioner Exam” • ... An Experimental Training Course SE MSF.NET 48 Knowledge Transfer While working on the course one of the team members (a university lecturer) passed his exams and became a Microsoft Endorsed MSF Practitioner, another team member (a student) became a Microsoft Certified Solutions Developer (MCSD) for .NET An Experimental Training Course SE MSF.NET 49 Encouraging the Students A Prize CD, which contains a video of recognized professional lectures, is given to students who finish their laboratory tasks first Department competition among student projects • Winners will receive a prize - a set of IT books An Experimental Training Course SE MSF.NET 50 Agenda 1) Introduction 2) Course content 3) How We Developed The Course 4) Conclusions An Experimental Training Course SE MSF.NET 51 The Training Course SE MSF.NET Has been created by the following 12 people: O. Biloborod’ko, N. Boyko, A. Dubinsky, S.Zemlyana, E.Kolesnikova, D.Malenko, I.Mozgova, V.Pavlov, O.Pylypenko, K.Runduev, O.Fedorenko, A.Firsov under the leadership of vice president of the Managers Union of Dnipropetrovsk, CTO of eLine Software V.Pavlov Sponsored by The Managers Union of Dnipropetrovsk СОЮЗ МЕНЕДЖЕРОВ Please send your comments on this course to: se.msf.net@elinesoftware.com An Experimental Training Course SE MSF.NET 52 Managers Union Support Student kits • Presentation handouts for every lecture • Students CDs Computers are upgraded in a Department's lab Purchasing books for the Department's library An Experimental Training Course SE MSF.NET 53 What is a “Project”? A project is a temporary venture, with a finite beginning and end, whose goal is to create a unique product or service Project management is an independent discipline that has been rapidly developing throughout the last decades • Constraints: budget, schedule, quality Project Management methods An Experimental Training Course SE MSF.NET 54 Course Development as a Project The development of the course is considered to be a project It is reasonable to use project management methodologies in our case We have chosen MSF (see slide 16) • Are there any specifics? Similarity to software projects • Adaptation is necessary MSF has been reworked An Experimental Training Course SE MSF.NET 55 MSF Adaptation for the Educational Project Modified Team Model Completely different Process Model Project and Risk Management disciplines have undergone minor changes An Experimental Training Course SE MSF.NET 56 Traditional MSF Team Model Stakeholder Product Management Customer Project Team 6 Development Role Cluster Program Management User Experience Project Sponsor User External Stakeholder Testing An Experimental Training Course SE MSF.NET Release Management 57 Maintenance Adapted Team Model Stakeholder Coordination Project Team Sponsor Teacher care Teacher Student care Student 7 Development Role Cluster Business care Potential Employer External Stakeholder Testing An Experimental Training Course SE MSF.NET Institutionalization University 58 Role Clusters Coordination • coordinating the teamwork and managing schedule and budget constraints Institutionalization • correspondence to educational standards and coordination with other courses Teacher-care • assurance that training materials are complete enough for teaching the course An Experimental Training Course SE MSF.NET 59 Student-care • the course is designed to be interesting and understandable for students as well as useful for their future careers Business-care • students are to acquire the necessary skills and qualities to attract potential employers Development • creating training materials, quizzes and laboratory tasks Testing • verification that the quality of the course corresponds to predetermined norms and requirements An Experimental Training Course SE MSF.NET 60 Project Outputs Project vision/scope Course curriculum Project structure definition Presentations for all lectures and laboratory work, additional materials • Template • Recommendation Trainer's CD contains current versions of these materials • A new version of the CD is released every two weeks on a regular basis An Experimental Training Course SE MSF.NET 61 Testing Careful testing of the outputs is one the most important constituents of the project work The team performs continual testing of the course materials in open lectures • the lecture rehearsal is conducted by the author and the tester of the course team • open lectures occur once a week on weekends • IT-specialists and university lecturers from Dnipropetrovsk and other Ukrainian cities are invited to the lecture rehearsals An Experimental Training Course SE MSF.NET 62 Lecture Lifecycle An author creates an initial version A tester submits remarks on how to improve the lecture, and then the author revises it At a general project group meeting, the lecture is discussed and the author revises it again Open rehearsal is conducted After an open lecture rehearsal, the author revises it taking feedback into account A proofreader corrects the presentation External peer-review is conducted The lecture is corrected accounting for the notes from external reviewers Perhaps we are to involve a graphical designer? An Experimental Training Course SE MSF.NET 63 External Review Another quality assurance procedure is the reviewing of created materials The course curriculum has been successfully reviewed by professionals from a number of toprated American, Russian and Ukrainian universities Currently the lectures of the first term are being reviewed An Experimental Training Course SE MSF.NET 64 Risks Project risk is an uncertain event or condition that, if occurs, has a positive or negative effect on project objectives (PMBOK) Being unmanaged, risks can become problems Risk analysis is performed according to the MSF Risk Management Discipline • A number of obstacles, that could have hampered the success of the project, have been identified • Measures have been planned and taken to minimize or abolish major risks An Experimental Training Course SE MSF.NET 65 Some Results of Risk Analysis OBSTACLE: There is no projector for showing Power Point presentations at the department auditoriums SOLUTION: Before each lecture students get individual kits with printed handouts OBSTACLE: The time in a computer auditorium is limited; some students do not have Internet access SOLUTION: Each student gets two CDs with free software and additional course materials including the copies of useful web-sites OBSTACLE: The university library does not have enough books and manuals for the course SOLUTION: Necessary books have been bought for the department’s library OBSTACLE: computers in the laboratory of the Applied Mathematics department do not have enough memory for using Microsoft .NET Framework SOLUTION: Additional memory has been installed An Experimental Training Course SE MSF.NET 66 Agenda 1) Introduction 2) Course content 3) How We Developed The Course 4) Conclusions An Experimental Training Course SE MSF.NET 67 Research Project While working on the course, an idea was born to conduct research on formalizing MSF using SPEM Its result has been reported at the Moscow State University conference which took place on March 4th, Moscow, Russia An Experimental Training Course SE MSF.NET 68 The Evolution of the Course This course is supposed to be a basis for a set of the following courses: • “Software Engineering” • “IT-Project Management using Microsoft Solution Framework” • “IT-operations Management” • “Object Oriented Analysis and Design Using UML Language” • “Object Oriented Programming in C# Language” An Experimental Training Course SE MSF.NET 69 The Discussion of the Course The Guild of Certified Professionals, Dnipropetrovsk, Ukraine, November 17th, 2003 International conference "United Information Space", Dnipropetrovsk, Ukraine, December 3rd4th, 2003 Microsoft Workshop "Contemporary Technologies and their Training Approach". Nizhniy Novgorod, NNGU, February 14th, 2004, Moscow, Russia, February 16th, 2004 Workshop “Teaching IT in Ukrainian Universities", Dnipropetrovsk, Ukraine, March 30th, 2004 Report on “Microsoft Research Academic Days” St. Petersburg, Russia, April 22nd, 2004 An Experimental Training Course SE MSF.NET 70 Conclusion The course of Software Engineering is being developed at Dnipropetrovsk National University (DNU, Ukraine); the course covers all core SE disciplines from the IEEE / ACM Computing Curricula 2001: Computer Science volume The participants of this project organized their efforts by adapting contemporary project management approaches An Experimental Training Course SE MSF.NET 71 You can download this presentation from: http://www.it-education.ru http://www.vlpavlov.com An Experimental Training Course SE MSF.NET 72 Questions? An Experimental Training Course SE MSF.NET 73 The picture of the space ship “Ocean-O” is used in the background. Such satellites are manufactured at the Ukrainian factory UMZ, located in Dnipropetrovsk An Experimental Training Course SE MSF.NET 74