Software engineering Application of engineering concepts to software production – design
Software engineering Application of engineering concepts to software production – management
Software engineering Application of engineering concepts to software production – budgeting Application of engineering concepts to software production – quality control Application of engineering concepts to software production – operations
Learning software engineering There are at least three different approaches to learn software engineering
Learning software engineering The academic way 1
Learning software engineering At least 180 hours attending courses on software engineering and related issues, e.g. in four specialised disciplines containing about 45 hours in class each. Good theoretical background and training
Learning software engineering One semester (~45 hours) – this is what we get! Some theoretical material (attempting to optimise balance between depth and coverage) “practical” experience while still at the university
Learning software engineering Two parallel tracks: Theoretical track: lecture material – software engineering in general, focusing on software construction. Textbook: Steve McConnell. Code Complete (2nd. edition). Microsoft Press. 2004. Practical track: project development, from start to end.
Learning software engineering Practical track: team work to Build a software tool to help the development of applications of a certain type Build at least two different applications using that tool
Learning software engineering Practical track: Teams – 5 or 6 students Students in each team must organise themselves and deliver the requested products of each project phase obeying the corresponding deadlines
Learning software engineering Theoretical track: synchronised with practical track, in order to provide the necessary theoretical background for each phase of the project.
Learning software engineering Practical track – deliveries: Lecture 2: names of students in each group Lecture 6: requirements elicitation; general architecture; allocation of tasks within group Lecture 10: detailed architecture; detailed project management methodology