software engineering dd1363 mvk-08 karl meinke nada [email protected]

27
Software Engineering DD1363 MVK-08 Karl Meinke NADA [email protected]

Upload: desiree-wivell

Post on 14-Dec-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

Software EngineeringDD1363 MVK-08

Karl MeinkeNADA

[email protected]

Page 2: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

2

Overview of Course

Aim: To introduce students to the theory and practise of software engineering.

Activities: • formal lectures, • invited industrial speakers, • a group project (10-12 students – 6 points)• an individual term paper (1 student – 6 points)

Page 3: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

3

Overview (cont)

Assessment: individuals will be assessed by weighting the grades awarded for:

• the group project and • the term paper.

There is no formal examination .

Page 4: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

4

Software Engineering Theory

We will organise our study of theory around the

Waterfall lifecycle model

This will support and guide your project work

Page 5: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

5

User Requirements

Software Requirements

Architecture Design

Detailed design & Coding

Testing

Delivery

The WaterfallLifecycle Workflow

Time

Business Process Modeling

System Modeling

Architectures &Patterns

You know this!

Software QA

UML

Page 6: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

6

Theory

• We will consider other theoretical subjects such as:

• Lifecycle models• Managing project risk• Project management

Page 7: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

7

Term Paper (6 points)• An original, in-depth exploration of some current topic in SE. • Topic must be software-engineering-related • e.g.: project management, software lifecycle models, software

development environments and tools, requirements capture, verification and validation, testing, programming language design, future programming languages, platforms or architectures, emerging standards, project failures, risk management etc etc.

• particular merit if oriented towards the state of the art and/or current research.

• main purpose is to assign a course grade to each student that is based on their own individual work effort. The term paper is not a collaborative exercise!

• You may write your term paper in Swedish or English.

Page 8: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

8

Term Paper (cont)

• The term paper assignment has 2 components: initial abstract and final submission.

• You must avoid writing on the same subject as someone else on the course.

Page 9: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

9

Initial Abstract

• You have three weeks to choose a subject and write an initial abstract in a 1-page single-spaced document.

• abstract must convince the course leader that your subject matter is suitable for a term paper

• Provide at least 4 references that give a context for the theme of the paper

Page 10: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

10

Final Submission

• 7 pages double-spaced (excluding references)• A survey of your chosen subject, not a new

research contribution• Completeness is more important than

originality• Reflects your level of understanding and your

command of the literature well• Individual effort – no collaboration or

plagiarism!

Page 11: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

11

Group Project (6 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.

Page 12: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

12

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.

Page 13: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

13

Project List 08 (incomplete?)1. Virtual reality Environmental Problems, Kimmo Eriksson, m.fl.2. Sonera SmartTrust AB3. WAP Portal Interaction Design Strategy, Andreas Soneby, UNIBT.4. Visualisering av data från A/D-omvandlare, Sten Ternström, TMH.5. Merging two python open-source projects by merging ElementTree and PDIS

XPath engine, Anna Thorslund. 6. NoName, Helge Stephansen, T-VIPS AS/Mats Erixon. 7. NoName, Örjan Melin, United Network. 8. Beräkningar och gränssnitt I samband med tillverkning av rostfritt stål, Rutger

Gyllenram, Kobolde&Partners9. Gymnastik vid datorn, Helena Tobiasson, Staffan Romberger10. Varors och tjänsters miljöpåverkan, Sinna Lindqvist11. NoName, Niklas Rudemo, Virtutech12. NoName, Klas Orsvärn, EVP Business Development

Page 14: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

14

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.

Page 15: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

15

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.

Page 16: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

16

Project Reporting

• Each phase ends with a written and oral report,

• Delivery dates are also on web page. • Two persons per group to deliver a 6 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

Page 17: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

17

Project Timetable: Period 2

• Week 45: Tues 4th Nov, E1, 1500-1700: Introduction to projects and choice of project.

• Week 47: Tues 18th Nov, E1 1500-1700 : Presentation and submission of Project Planning Document (PPD).

• Week 50: Wed 10 Dec, E1, 1500-1700: Submission and Presentation of User Requirements Document (URD).

Page 18: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

18

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

Page 19: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

19

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

Page 20: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

20

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).

Page 21: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

21

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).

Page 22: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

22

PPF Phase: How to? (cont.)

• First task is to assign yourselves a group name (legal and decent.),

• Collect your names, e-mail addresses and telephone numbers and e-mail me this information

• 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

Page 23: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

23

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(s): An optional role, but favoured by many in industry, senior responsibility for coding, a person who delegates simpler programming tasks.

Page 24: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

24

Roles (cont.)

• Programmer(s): 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(s): A technical writer, assigned tasks by the secretary or documentation manager.

• Tester(s): 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.

Page 25: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

25

Roles (cont.)

• Requirements Analyst(s): 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(s): Responsible for problem analysis, solution inception and software design. Tasks normally assigned by project leader.

• GUI expert(s): An optional but common specialist role. Tasks assigned by project leader/ chief programmer.

• Project planner(s): An optional role otherwise performed by the project leader and/or secretary. May also monitor progress and reschedule tasks to incorporate change.

Page 26: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

26

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.

Page 27: Software Engineering DD1363 MVK-08 Karl Meinke NADA karlm@nada.kth.se

27

PPF Deliverable: PPDCover page, Contents page, Abstract (1-2 paragraphs)1. Statement of the Problem

1.1. Statement of the Problem1.2. Motivation1.3. Goals1.4. Skills Baseline

2. Background to the Problem2.1. Commercial background2.2. Scientific background2.3. Technical Background

Conclusion: Feasibility AssessmentAppendix(Total: covers + 4-6 pages?)