IS3139 Software engineering: theory and application
Notes
Students taking this unit are required to submit coursework.
Prerequisites (applies to degree students only)
IS2062 Information systems development and management and IS3103 Elements of information and communication technologies or IS2138 Information and communication technologies: principles and perspectives.
Syllabus
This syllabus covers the methods, attitudes and values which underlie professional contemporary software systems development. The emphasis is on how to undertake formal software development through requirements specification, design and implementation, but within a broader understanding of software engineering practices.
Section 1: Software Engineering Process
The changing pressures on software engineering practices: History of the field, definition of software, the software crisis.
The Process for Developing Software and its importance
The Capability Maturity Model
The traditional software engineering process: The lifecycle model, evolutionary software development, incremental software development, spiral model. Prototyping
Rapid software development
Internet speed web based application development
End-user development.
Agile methods
Extreme programming
Refactoring
Section 2: The Practices of software engineering:
Introduction to structured vs. object oriented paradigms
Acquiring requirements
Specifying requirements and design (both structured and object oriented)
- Structured approaches: ER design, data flow, diagrams, data dictionary
- OO approach (using UML): use-case diagrams, Class diagrams, Object sequence diagrams, State-chart diagrams
Features of good design
Coding and configuration management
Implementation and testing (both structured and object oriented)
- Choice of programming languages and techniques
- Test planning
- White-box and black-box testing
- Testing automation
- Implementation
Maintenance and software evolution
- Systems re-engineering for Legacy systems
- Reuse
- Reasons for reuse
- Concept reuse - patterns, configurable systems products and program generators
- Component-based software engineering
Computer Aided Software Engineering (CASE) Tools
Documentation and Help Systems
Project Management in software engineering
Documentation and help systems.
Managing Software Engineering Projects
Coursework and examination
The examination will be three hours and consist of seven questions of which students must answer four. This will contribute 60% to the overall mark.
Students will undertake a project for the remaining 40% of marks. This will require them to review a software engineering approach or technique, apply this to a real problem and finally reflect on the experience. The project will require them to write a short essay describing the approach they are intending to apply and its relevance to the problem chosen. They will then present an account of how the approach was applied in practice. This should include the relevant documentary material required for the chosen approach (e.g. if the Rational Unified Process is chosen UML diagrams and various documents should be included). Finally they will need to complete a two page pro forma in which they will reflect on the practice of developing the system from the approach chosen. This should include lessons learnt and critical reflections on the process. A bibliography must also be provided demonstrating reading beyond the core textbooks.
Students are not required to produce programming code, but rather are assessed on their attempt to apply software engineering techniques and principles in practice. The focus is not on the produced system but on the quality of the process undertaken, the coherence of the documents presented and how successful the documents would be in developing a software system. Clearly however, for some students programming will be an integral part of this exercise.
IS3139: Software engineering: theory and application: amendment has been made to the relative weighting of the coursework and the examination. The original text in the syllabus for IS3139 Software engineering: theory and application stated that the examination will contribute 40% to the overall mark and that the coursework will contribute 60%. The correct percentages towards the overall mark are 60% for the examination and 40% for the coursework, and the syllabus has been amended accordingly.
