1.     Expected Learning Outcomes

1.1.    Knowledge and understanding

á     know and understand how software engineering principles and techniques apply to the software development process including:

á      the role of notation and abstraction in software engineering;

á      the products (artifacts) and processes which are fundamental to software development;

á     know and understand relevant techniques and methods that apply to each stage of the software development process, including:

á          Requirements engineering, elicitation, analysis, specification, validation and management;

á          Software design issues, software architecture, software design notations, strategies and methods;

á          Software construction, including styles (linguistic, mathematical and visual) and goals (managing complexity, anticipating diversity, structuring for validation);

á          Software process definition, measurement, analysis, implementation and improvement;

á          Software evolution, maintenance, re-engineering and reuse;

á          Software testing and analysis, including techniques, tools, planning and management.

1.2.              Cognitive (thinking) skills

á       perform problem analysis from written descriptions (analysis);

á       derive requirements and design specifications from an understanding of problems (analysis, synthesis);

á       create and/or justify designs to satisfy given requirements (synthesis, evaluation, application).

1.3.              Practical skills

á       evaluate the available options to select the most suitable technology for use in each stage of software development, underpinned by a knowledge of the efficacy of the various options;

á       apply systems, tools and techniques to support development, analysis and modeling appropriate to the different stages of software development.

1.4.              Transferable skills

á       communicate effectively by oral, written and visual means;

á       work effectively as an individual and as a member of a team;

á       perform independent and efficient time management;

á       perform independent information acquisition and management, using the scientific literature and Web sources;

á       prepare technical reports to a professional standard;

á       demonstrate understanding of personal responsibilities and professional codes of conduct.