1 / 16

Software Engineering Education

Andy Gravell, Feb 2007. Software Engineering Education. The Situation at Southampton. Our programmes BSc/MEng Computer Science BEng/MEng/MSc Software Engineering BSc/MSc Information/Web Technology This year’s intake was (roughly) 64 Computer Science 27 Software Engineering

dea
Télécharger la présentation

Software Engineering Education

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Andy Gravell, Feb 2007 Software Engineering Education

  2. The Situation at Southampton • Our programmes • BSc/MEng Computer Science • BEng/MEng/MSc Software Engineering • BSc/MSc Information/Web Technology • This year’s intake was (roughly) • 64 Computer Science • 27 Software Engineering • 34 Information/Web Technology • 75 BEng/BSc • 50 MEng/MSc

  3. The ACM/IEEE Perspective • The US professional bodies have produced computing curriculum guidelines • ACM Computer Science Curricula 1968, 1978 • ACM/IEEE Computing Curricula 1991, 2001 • In 2004 the ACM/IEEE produced their first set of guidelines for software engineering programmes • SE2004 (a three year effort, 130 pages) • earlier software engineering curricula were published by Freeman 1976 & 1978, and Bagert (SEI) 1999 • They are now working on guidelines covering 5 areas (CS, CE, SE, IT, & IS)

  4. SE2004 • Steering committee had members from the US, Canada, UK, Israel, Japan, Australia • Eight main chapters • Introduction • The Software Engineering Discipline • Guiding Principles • Software Engineering Education Knowledge (SEEK) • Curriculum Design and Delivery • Courses and Course Sequences • Alternative Environments • Implementation and Assessment

  5. SEEK Areas and Units

  6. The Knowledge Areas • Each area is broken down into topics • about one per hour of lectures • The first three areas are a subset of the standard computer science curriculum • introduction to CS & IT, programming, program construction methods, discrete maths, measurement and statistics, software economics, teamwork, communication skills, and professionalism • The other seven areas are more specialised • 200 lecture hours, about 10 of our modules • yet we only have ~7 specialist modules ourselves

  7. The Gaps in our Curriculum • Software Modelling & Analysis  • Software Design  • except Architectural Design (9)  • Software V & V  • except Testing (21)  • and Problem Analysis & Reporting (4)  • Software Evolution (10)  • Software Process  • Software Quality  • Software Management 

  8. Specialist Areas • In addition, SE2004 recommends that students should specialise in one or more areas such as • networking, information systems, e-commerce, fault-tolerant/security/embedded/real-time/safety-critical systems, biomedical systems, scientific computing, telecommunications, transportation, process control, multimedia & entertainment systems, agent-based systems, and mobile applications • We cover 10 or more of these 15 subject areas • but do our students learn “how the characteristics of typical products in these areas influence a system’s design and construction”?

  9. A Key Skill • Software engineers need to be able to make rational and justified decisions • Not just design decisions, but also their selection of methods, tools & techniques • So the curriculum must give them opportunities to make decisions and explain the reasons for their choices

  10. Going Further • Actually, students should learn several specialist areas, as the methods used vary so much • critical systems: hazard analysis, requirements engineering, formal methods • mass market software: open source, “synchronise and stabilise” • business systems: agile methods, customisation, system integration, outsourcing • This should help them to “compare and contrast”

  11. Gaps in SE2004 • SE2004 has good coverage of the methods used for critical systems • But there is not much on agile methods • only ~3 hours on some agile practices: • unit testing, refactoring, test-first programming • Nor on outsourcing • only ~2 hours on a couple of the issues • stakeholder interaction, multi-cultural environments • And nothing about open source software!

  12. Other Classic Questions • How to teach programming • object-first or procedures-first • command line versus IDE • Of course, professional software engineers should be comfortable with the full range of techniques • so most of these questions are about educational effectiveness – what to cover first • Which programming languages?

  13. Classic Programming Taxonomies • One classification is by generation • 1st G: machine code • 2nd G: assembly language • 3rd G: high level languages • 4th G: very high level languages? • Another is based on English grammar • imperative: structured, object-oriented • declarative: functional, logic programming • interrogative: regular expressions, SQL

  14. Query language OOPL OOPL OOPL Mark-up language Structured language Structured language Mark-up language Scripting language Modelling language Top Ten Languages • SQL • C# • C++ • Java • XML • C • VB • HTML • JavaScript • UML

  15. A Modern View • The main kinds of computer languages are now • query language • object-oriented programming language • mark-up language • modelling language • structured language • scripting language • A modern curriculum should include at least one the first four types, for example: • SQL, C#, XML, UML, … • SE2004 does not mention mark-up languages

  16. Summary • Our Software Engineering degrees are popular • Our curriculum follows SE2004 • but with some gaps • testing, evolution, architecture • SE2004 itself have some gaps • three or more specialist areas (not just one) • relevant methods: agile, open source, and outsourcing • how to make rational, justified decisions • a mark-up language such as XML

More Related