ACS233 Systems Engineering and Object Oriented Programming

Module Description

Engineering applications in manufacturing, aerospace, robotics, energy, finance, healthcare and a host of other areas are predominantely computer based or computer controlled. In order to be able to create computer based and computer controlled applications, students need to acquire understanding of and proficiency in working across the systems engineering lifecycle. This module builds on the first year undergraduate Introduction to Systems Engineering and Software module, to develop further students’ skills in the design and development of computer based and software dominated systems. There will be an emphasis on the systems engineering lifecycle (requirements capture, architecture definition, sub-system design and testing, integration, implementation and validation) and project management. Students will use UML/SysML to model systems. C++ will be introduced for algorithmic problem solving. Quality, risk and reliability associated with engineering systems will be explored.

Credits: 20 (Academic year)

Pre-requisites:

Restrictions: Available to ACSE students only

Module Leader

Dr Tara Baldacchino

Dr Tara Baldacchino
Email: t.baldacchino@sheffield.ac.uk
Amy Johnson Building

If you have any questions about the module please talk to me during the lectures or the labs in the first instance. It is likely that other students will learn from any questions you ask as well, so don’t be afraid to ask questions.

Outside of lectures either post a question on the ACSE223 MOLE discussion board, contact me via email, or drop in to see me in my office.

Learning Outcomes

Learning Outcomes

By the end of the module students will be able to:

  1. Analyse, design and develop a system within the framework of the systems engineering lifecycle. [SM1m, EA4m, D1m, D4p, EP1p, ET3m]
  2. Apply tools and methodologies, including project management, relevant to industry-standard modelling methodologies and object oriented programming. [EA3p, EA4p, EP3p]
  3. Analyse system quality, risk and reliability, and standards applied in the development of systems. [EA1p, EA2p, D1m, D2p, D3p, D4p, D5p, ET5p, Ep6p, EP7p]
  4. Explain, evaluate and critique own work in a team and that of team members. [EP7p]

This module satisfies the AHEP3 (Accreditation of Higher Education Programmes, Third Edition) Learning Outcomes that are listed in brackets after each learning outcome above. For further details on AHEP3 Learning Outcomes, see the downloads section of our accreditation webpage.

Syllabus

Syllabus

Semester 1:

  • Week 1: Module introduction and overview. System lifecycle. Introduction to requirements.
  • Week 2: Requirements – user requirements, systems requirements, UML use case diagrams, UML package diagrams.
  • Week 3: Requirements – detailed requirements, SysML requirement diagrams. Context and activities. UML activity diagrams. Project briefing.
  • Week 4: Design – object orientation, identifying objects and relationships.
  • Week 5: Design – UML class/object diagrams. Relationships between classes/objects. SysML bdd, ports.
  • Week 6: Design – UML sequence diagrams and state diagrams.
  • Week 7: Design – Coupling and cohesion, detailed design, algorithms and errors.
  • Week 8: Verification and validation – definitions, approaches and coverage measures, scenario based testing.
  • Week 9: Verification and validation – traceability, testing and debugging.
  • Week 10: Case study – Systems engineering lifecycle.
  • Week 11: Software quality – control flow analysis (complexity), visibility, reuse.
  • Week 12: Q&A

Semester 2:

  • Week 1: Design – design patterns.
  • Week 2: Design – principles for reliability.
  • Week 3: Design – review of probability, network topologies and reliability.
  • Week 4: Reliability – network topologies and reliability, failure rates.
  • Week 5: Reliability – fault tree, event tree.
  • Week 6: Reliability – failure mode analysis, hazards and risk.
  • Week 7: Case study – reliability, failure, analysis and control of hazards.
  • Week 8: System life cycle - standards.
  • Week 9: Systems life cycle – production, distribution, maintenance.
  • Week 10: Systems life cycle – evolution and agile methods.
  • Week 11: Module review tutorial.
  • Week 12: Exam preparation tutorial.
Teaching Methods

Learning and Teaching Methods

  • Lectures and tutorial classes (30 hours) – Lectures will be used to introduce new ideas and give guidance on approaching practical work.
  • Laboratory Sessions (30 hours) – support for learning C++ and practical implementation and assessment of project work.
  • Independent Work (146 hours) – students are expected to spend 146 additional hours on self-study including understanding the notes, doing background and directed reading, practising C++ programming, completing assignments and project work, group meetings, and revision.
Teaching Materials

Learning and Teaching Materials

  • Students will be provided with electronic copies of lecture powerpoint slides. These will be available on MOLE.
  • Students will be provided with a summary sheet of each lecture, with space for taking notes. These will be provided on paper and electronically on MOLE.
  • Online formative quizzes and tutorial sheets will be available electronically on MOLE. Problem exercises will be provided which will be representative of the understanding needed on the exam. Some sample solutions will be provided.
  • Assignment briefings will be available electronically on MOLE and on paper.
Assessment

Assessment

Continuous assessment:

  • Group project (34%) (Module Learning Outcomes 1, 4)
  • C++ programs (6%) – These will assess problem solving skills and fluency in C++ programming. (Module Learning Outcomes 2)

Exam:

One 3 hour written examination (60%) (Module Learning Outcomes 1-3)

Resit:

Students will have the opportunity to resit the exam in August. The module resit mark will be based on the resit exam plus the original assignment marks (this is due to the high percentage of coursework in this module).

Feedback

Feedback

  • C++ practice labs – Lecturer and experienced demonstrators help the students with C++ problems, giving them feedback on their work and suggestions for improvement.
  • C++ assessments – Lecture and experienced demonstrators mark programs, giving feedback and reasons for the marks, where appropriate suggesting better approaches for the future.
  • Group project. All feedback and marks returned electronically. Individual marks will be derived from group marks, according to group members’ marking of the level of contribution of each group member, using WebPA.
  • Requirements document – feedback and marks will be given by lecturer and by peers.
  • Design document – feedback and marks will be given by lecturer and by peers.
  • Implementation and test report – lecturer will mark and give detailed feedback.
  • Discussions board and staff email are available in this module, and student queries may be answered by staff or by students (via the discussion board).
  • A brief summary of how the class performed in the examination, both on the paper overall and on individual questions will be provided shortly after the examination board. Students will have the opportunity to view their exam scripts.
Student Evaluation

Student Evaluation

Students are encouraged to provide feedback during the module direct to the lecturer. Students will also have the opportunity to provide formal feedback via the Faculty of Engineering Student Evaluation Survey at the end of the module.

In response to last year’s student feedback, webPA will be used to support groupwork, in an attempt to expose those who do not contribute and reward (without overburdening) those who do.

Recommended Reading

Recommended Reading

  • Weilkiens, T (2006). Systems Engineering with SysML/UML: Modelling, Analysis, Design. Morgan Kaufmann OMG Press, Heidelberg, Germany [available in Information Commons, 620.001171(W)]
  • Blanchard, B and Fabrycky, W J (2006). Systems Engineering and Analysis (Fourth Edition). Prentice Hall, New Jersey, USA
  • Kossiakoff, A and Sweet, W N (2003). Systems Engineering Principles and Practice. Wiley, New Jersey, Massachusetts, USA [available in Information Commons, 620.0011(S)]
  • Sommerville, I (2007). Software Engineering. Pearson Education. England [available in Information Commons, 005.1(S)]
  • Pfleeger, S L (2010). Software Engineering: Theory and Practice. 4th Edition, Pearson Prentice Hall. New Jersey [available in Information Commons, 005.1(P)]
  • Dale, N and Weems, C (2010). Programming and Problem Solving with C++. Jones and Bartlett, USA [available in Information Commons, 005.133(C D)]