Total Credits: 10
Level: Level 1
Target Students: First year undergraduate students in the School of Computer Science. Available to JYA/Erasmus students.
This Module has been identified as being particularly suitable for first year students, including those from other Schools.
|Spring||Assessed by end of Spring Semester|
Summary of Content: The software engineering crisis; software qualities and principles; examples of software lifecycles; specification notations including descriptive and operational specifications (e.g. use case and class diagrams); Software Architectures; Notations for software design, in particular the design of module/class interfaces; test suite generation principles and techniques (eg. extended decision tables, control flow diagram coverage); Techniques for breaking work down into packages and determining deliverables; using Gantt charts to schedule activity; models of team composition; Case Studies emphasising that all these activities interact (eg. illustrating how specifications/requirements can be used to set deliverables, how a specification can effect the design, how the design affects the implementation, how testing and test suite construction can inform all phases of the process, how implementations can make testing easier or harder).
Module Web Links:
Method and Frequency of Class:
|Activity||Number Of Weeks||Number of sessions||Duration of a session|
|Lecture||12 weeks||2 per week||1 hour|
|Computing||12 weeks||1 per week||1 hour|
Method of Assessment:
|Coursework 1||15||Object based code|
|Coursework 2||10||Object-oriented design|
|Coursework 3||25||Object-oriented implementation|
|Coursework 4||25||Object-oriented maintenance (fix + extend x2)|
Dr P Blanchfield
Education Aims: The aim of this module is to provide a general understanding of Software Engineering; the typical phases of the software lifecycle with particular reference to practical specification, design and testing techniques and notations; and general aspects of the management of this process such as time management, setting deadlines and deliverables and team working. It serves to prepare students for the various group projects undertaken in second year and introduces them to important concepts that will be studied in more detail in modules such as Object-Oriented Methods, Large-Scale System Design and Quality Assurance and Testing.
Learning Outcomes: Knowledge and Understanding: The theory of designing a program and producing a program from a design. The practice of producing designs and implementations. The strengths and weaknesses of specification, design and testing techniques and notations. The issues, problems and solutions relating to human factors in the software production process. Intellectual Skills: The ability to understand and logically evaluate requirements and specifications. Understand complex ideas and relate them to specific problems or questions. Acquire, and analyse systematically and effectively, substantial quantities of information in order to produce specifications, design, implementations and test suites. Professional Skills: The ability to understand and make use of software engineering methodologies. The ability to evaluate, select and deploy tools and techniques. The ability to work effectively and ethically with others. Transferable Skills: The ability to solve software engineering problems. The ability to work productively in a collaborative environment. The ability to communicate effectively in writing. The ability to organise and manage their own (and other's time) including scheduling tasks and meeting deadlines.
Offering School: Computer Science
Use the Back facility of your browser to return to the previous page.
Search for another module
Return to The University of Nottingham Welcome Page