Software Engineering DD1365 MVK-09 Karl Meinke NADA karlm@nada.kth.se Overview of Course Aim: To introduce students to the theory and practice of software engineering. Activities: • formal lectures, • invited industrial speakers, • a group project (10-12 students – 6+9 points) • Project presentations (every student) 2 DD143X • • • • • Follow on course 6 + 9 points SE engineering lectures Project work + presentations Batchelors thesis (kandidat ex-jobb) with support. • Compulsory for students who wish to finish the project 3 Overview (cont) Assessment: individuals will be assessed by weighting the grades awarded for the group project. There is no formal examination . 4 Software Engineering Theory We will organize our study of theory around the Waterfall lifecycle model This will support and guide your project work 5 User Requirements Business Process Modeling UML System Modeling Software Requirements Architectures & Patterns Architecture Design Detailed design & Coding The Waterfall Lifecycle Workflow Testing You know this! Software QA Delivery Time 6 Theory • We will consider other theoretical subjects such as: • Lifecycle models • Managing project risk • Project management 7 Group Project (6+9 points) • The practical work for the course will consist of group project work (10-12 students) • Carry out a substantial design, implementation and test of a "large" system according to course theory. • Practice a waterfall model of software development. (Evolutionary GUI?) • Analysis and design take place before implementation. 8 Group Project • A list of projects will be circulated and discussed in class. • Students will be instructed as to how to divide up into groups of 10-12 persons. • You should meet as a complete group at least once a week • You must attend unless you have strong reasons not to. 9 Project List 08 (selection) 1. 2. 3. 4. 5. 6. 7. 8. Virtual reality Environmental Problems, Kimmo Eriksson, m.fl. Sonera SmartTrust AB WAP Portal Interaction Design Strategy, Andreas Soneby, UNIBT. Visualisering av data från A/D-omvandlare, Sten Ternström, TMH. Merging two python open-source projects by merging ElementTree and PDIS XPath engine, Anna Thorslund. Beräkningar och gränssnitt I samband med tillverkning av rostfritt stål, Rutger Gyllenram, Kobolde&Partners Gymnastik vid datorn, Helena Tobiasson, Staffan Romberger Varors och tjänsters miljöpåverkan, Sinna Lindqvist 10 Project Handbook • This year (2009/2010) there is an (online) project handbook under development. • This aims to centralize most of the information you will need. • Has document templates • Has tips from previous students 11 Project Schedule • Divided into 6 phases of a waterfall model: (1) Project Planning and Feasibility Study, (2) User Requirements Analysis, (3) Software Requirements Specification, (4) Architectural Design. (5) Detailed Design and Coding. (6) Testing and Delivery. 12 Project Deliverables • Each group will deliver a report at the end of phases 1-4. • Phase 5 deliverable is simply code • Phase 6 deliverable is a group presentation of the project for the class, followed by an individual software demo. • Each phase carries equal credit points and is graded U/G/VG 13 Project Reporting • Each phase ends with a written and oral report, • Delivery dates are on web page. • Two persons per group to deliver a 5 minute presentation of the report to class using OHP slides. • Presenters must hand in a bound typed hardcopy of the report. • ESA PSS 05 reporting standard 14 Project Timetable: Period 2 • Tues 3rd Nov, D1, 1500-1700: Introduction to projects and choice of project. • Tues 17th Nov, D1 1500-1700 : Presentation and submission of Project Planning Document (PPD). • Wed 8th Dec, D1, 1500-1700: Submission and Presentation of User Requirements Document (URD). 15 Project Timetable Periods 3,4 • Week ?: ?? Jan 2009 : Submission and Presentation of Software Requirements Document (SRD). • Week ?: ?? Feb 2009, : Submission and Presentation of Architectural Design Document (ADD). • Week ??: ?? May 2009, : Final presentation of the completed project, delivery of User Manual. Schedule individual project times for practical software demonstration. • NOTE: Each project member must make at least one oral project presentation 16 Project Meeting Minutes • Must record the dates and times that your project group meets. • May prepare an agenda for meeting • Secretary must take minutes of meeting (mötesanteckningar) • Minutes must be circulated electronically to group • Minutes must include actions and individual responsibilities • Minutes must be checked again at next meeting to follow up actions, and outcomes must be recorded • Latest minutes must be included with each deliverable report • See web page for examples 17 Phase 1: Project Planning and Feasibility Study • It is important that you function "as a group". • Get to know one another (different skills, interests and experiences) • Establish standards for discussion, reaching agreement and resolving conflict. • Project planning and feasibility phase not officially part of the PSS 05 standard. • Success will: – connect you as a coherent group, with an agreed and understood joint set of objectives and approaches. – Lower the project risk attached to your project. (A more detailed risk analysis comes later.) – help you prepare for first major task: writing the User Requirements Document (URD). 18 PPF Phase: How to? • ASAP you must meet as a group and establish a regular weekly meeting time • You can meet in any location you wish. • From time to time smaller working groups can meet. • To maintain progress you must meet every week. Evidence of this meeting, will be sets of minutes submitted for all meetings with each project deliverable (URD, SRD, ADD). 19 PPF Phase: How to? (cont.) • First task is to assign yourselves a group name (legal and decent.), • Collect your names, personal numbers, e-mail addresses and telephone numbers in a project staffing document (PSD) • e-mail me the PSD in .pdf format • Perform a skills audit of the group, i.e. technical strengths and weaknesses of each group member (e.g. Unix expert, Windows expert, GUI expert, etc.) • Team members need to be honest and open about this 20 Project Roles • On the basis of skills audit you should assign roles to group members (one member can have more than one role.) • Project leader: Responsible for overall co-ordination, and ultimate decisions and responsibility, deep understanding of the project and the PSS 05 standard. • Project secretary: Responsible for writing/delegating documentation and report writing, taking minutes of meetings, deep understanding of the PSS 05 standard. • Chief programmer: An optional role, but favored by many in industry, senior responsibility for coding, a person who delegates simpler programming tasks. 21 Roles (cont.) • Programmer: A more flexible programming role that might also include documentation and testing. • Documentation Manager: An optional role that could be separated from the secretary role, write and/or produce reports. • Report Writer: A technical writer, assigned tasks by the secretary or documentation manager. • Tester: Responsible for unit module and system testing. Receives tasks assigned by the project leader or chief programmer(s). Typically programmers are not allowed to test their own code. 22 Roles (cont.) • Requirements Analyst: An optional role, responsible for capture, exploration and analysis of end-user requirements. Good social skills are important for this role, as well as technical ability. • Designer: Responsible for problem analysis, solution inception and software design. Tasks normally assigned by project leader. • GUI expert: An optional but common specialist role. Tasks assigned by project leader/ chief programmer. • Project planner: An optional role otherwise performed by the project leader and/or secretary. May also monitor progress and reschedule tasks to incorporate change. 23 Roles (cont.) • Customer Account Manager: Industrial end-users tend to be very busy, so one single reliable unique point of contact reduces confusion and improves communication. Excellent social skills are important for this role. • NOTE: all the above project roles must be manned by some person (exception: optional roles!). Roles must be recorded in the planning document • Everyone expected to contribute to ideas and decisions • You should be democratic, although in the case of conflict project leader has the final say. 24 PPF Deliverable: PPD Cover page, Contents page, Abstract (1-2 paragraphs) 1. Statement of the Problem 1.1. Statement of the Problem 1.2. Motivation 1.3. Goals 1.4. Skills Baseline 2. Background to the Problem 2.1. Commercial background 2.2. Scientific background 2.3. Technical Background Conclusion: Feasibility Assessment Appendix (Total: covers + 4-6 pages?) 25