CSC8005 : Software Engineering with Group Project
- Offered for Year: 2019/20
- Module Leader(s): Dr Dan Nesbitt
- Other Staff: Miss Laura Heels
- Owning School: Computing
- Teaching Location: Newcastle City Campus
|Semester 1 Credit Value:||10|
|Semester 2 Credit Value:||10|
To equip students with the knowledge and experience to function as successful practitioner software engineers.
This module aims to equip students with the knowledge and experience to function as successful practitioner software engineers. The course begins with a discussion of the nature of Software and the Software Engineering Industry. It then introduces Software Development Activities & important Process Models. A model-based approach is then used to introduce various Software Engineering Tools & Techniques. UML (Unified Modeling Language) is introduced to capture system design. Finally, methods of managing the Software Development Process are taught. A Group Project runs as part of this course to give students experience in team working and management of a software project.
Outline Of Syllabus
Software and the Software Engineering Industry
1. The discrete character of software
2. Programs: machine code to high level languages
3. Software Qualities: code qualities (e.g. maintainability, complexity); emergent properties (e.g. reliability)
4. The Software Industry: software as part of a system; products (closed source, open source, training, maintenance, ad-hoc bespoke, COTS); software developers (companies, teams, individuals: software engineer vs. programmer); life as a software engineering professional
Software Development Activities & Process Models
1. Development activities: synthesis and V&V; analysis, design, implementation, test.
2. Development process models as ways of organising activities: waterfall, V, evolutionary, Boehm's spiral model. Choosing a development model.
Software Engineering Tools & Techniques: a model-based approach
1. Models: abstraction and rigour.
2. The idea of modelling: data, functionality, data flow, control, consistency of models
3. Basic Modelling Skills in UML: conceptual and specification level models using use cases, class diagrams and activity charts
4. Model-based techniques for Synthesis
5. Issues in Requirements Modelling
6. The Design Process
8. Model-based techniques in Validation & Verification
9. The idea of correctness; difference between validation and verification
10. V&V by Inspection
11. V&V by Testing
12. V&V by automated analysis (static analysis, model checking and proof)
13. Deployment and Maintenance
Managing the Development Process
1. Cost Estimation
2. Planning Tools
3. Product Metrics
4. Process Improvement
Trends in Software Engineering
1. New architectural paradigms. An introduction to function orientation, compared with object orientation. Aspect-oriented programming
2. Open source development
3. New project paradigms: agility, extreme programming.
4. The Professional's Role: issues in ethics & conduct
|Scheduled Learning And Teaching Activities||Lecture||44||1:00||44:00||Lectures|
|Guided Independent Study||Assessment preparation and completion||48||0:30||24:00||Revision for end of Semester exam and exam duration|
|Guided Independent Study||Assessment preparation and completion||44||1:00||44:00||Lecture follow-up|
|Scheduled Learning And Teaching Activities||Small group teaching||22||1:00||22:00||Tutorials|
|Guided Independent Study||Project work||44||1:00||44:00||Coursework|
|Guided Independent Study||Student-led group activity||15||1:00||15:00||Informal/formal group meetings|
|Guided Independent Study||Independent study||7||1:00||7:00||Background reading|
Teaching Rationale And Relationship
Lectures will be used to introduce the learning material and for demonstrating the key concepts by example. Students are expected to follow-up lectures within a few days by re-reading and annotating lecture notes to aid deep learning.
Project meetings both formal and informal, will provide team members and the team monitor with the opportunity to follow progress and address team issues.
Students aiming for 1st class marks are expected to widen their knowledge beyond the content of lecture notes through background reading.
Students should set aside sufficient time to revise for the end of semester exam.
The format of resits will be determined by the Board of Examiners
|Practical/lab report||2||M||20||Individual work|
|Practical/lab report||2||M||40||Group work|
|Report||1||M||Requirements Specification: Group Work|
Assessment Rationale And Relationship
The Individual Report is used to assess what the individual has learnt about the group project, and whether he/she is able to function independently as a software engineering professional.
The Group Report is used to demonstrate what has been achieved in the Group Project, and the contribution that each group member has made. The formative "Requirements Specification" deliverable is used to provide early feedback to the group.
The examination assesses fundamental knowledge and understanding of theory and application of fundamental software engineering principles.
Study abroad students may request to take their exam before the semester 1 exam period, in which case the length of the exam may differ from that shown in the MOF.
N.B. This module has both “Exam Assessment” and “Other Assessment” (e.g. coursework). If the total mark for either assessment falls below 40%, the maximum mark returned for the module will normally be 40%.