1. Course description
This course is an introduction to computing ethics, law and marketing. It is intended for IT students who have not studied business principles, or who have little work experience in the industry. The course provides a survival kit for IT graduates entering the work force. The course considers computer ethical issues, such as information privacy, computer crime, computer terrorism. The course considers the international legal framework available to protect software system development. This includes non-disclosure agreements, employment contracts, intellectual property law (copyright, patent, licensing, and royalties), trademarks and warranty disclaimers. The course also considers the marketing of a software system development, involving SWOT analysis and action plan (including budget).
2. Learning Outcomes
A. Knowledge and Understanding
Having successfully completed the module, students should be able to demonstrate knowledge and understanding of:
1. Knowledge and principles related to computing with professional ethics.
2. Responsibly design and develop software.
3. Understand the professional, follow legal and ethical responsibilities of software Engineer.
4. Manage ethically and professionally various key and specific issues intelligently.
5. Maintain and assess quality and standards for software developed and used.
B. Cognitive/Intellectual skills/Application of Knowledge
Having successfully completed the module, students should be able to:
1. Persistently use various scientific principles ethically.
2. Evaluate technical risk appropriately.
3. Appropriately assess commercial risk.
4. Maintain and ascertain social impact of software development and its effects.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
Having successfully completed the module, students should be able to:
1. Analyze safety standards and risk efficiently.
2. General transferable skills
3. Having successfully completed the module, students should be able to:
4. Carry out independent research work professionally.
5. Do team-based assignments with an appropriate working environment.
6. Effectively communicate ideas, views and share as well as present reports etc. Fluently.
3. Indicative Content
Ethics: Computer Ethics. Ethical Theories: What Is Ethics, A variety of Ethical views, important distinctions, Ethical Guidelines for Computer Professionals: Special aspects of professional ethics, new ethical problems and standards for computer technology, Professional codes of Ethics. Cases: Introduction and methodology, Copying an Employee’s file, Insufficient Privacy Protection, Risky Systems, Going Public, Release of personal information, Conflict of Interest, Copyright Violation, trademarks, patents, to different types of intellectual property, Hiring foreign programmers. The structure of the engineering profession, Professional codes of conduct and codes of practice. Produce quality software.
Law: Employment, Contract, Software law overview, Copyright in detail, Software licensing, Trade secrecy (non-disclosure/confidentiality) agreements and trade mark registration, Patents, Template contracts in law notes, recent information privacy related law amendments, eg. Covering websites, spam, spyware (supplementary document on Privacy Law), recent computer crime related law amendments, eg. Napster successors, spam, censorship, defamation (supplementary document on IT Crime Law), Professional organizations, eg. ACM, IEEE, ACS.
Health and Safety: The Health and Safety at Work Act and other relevant statutory provisions, Human factor, Financial considerations, Regulatory issues as they affect software systems: standards, certification and licensing, professional codes of practice, legal regulation. Liability: negligence and product liability; the Consumer Protection Act.
Marketing: Introduction to marketing: definition of marketing Concept, marketing core concepts, Marketing management philosophies, The marketing environment: Analysing the marketing macro environment & microenvironment, Consumer behaviour, Factors influencing consumer behaviour
The marketing management process: market segmentation, targeting and positioning analysing marketing opportunities, Product decisions: Product Classifications, Product line, New product development process, Product life cycle strategies, Branding and packaging Pricing: Considerations and approaches, Pricing strategies, Distribution channels: Types of distribution channels: retailing and wholesale, Organization of channels, Channel design, channel management, Physical distribution, Promotion: Promotion mix, Sales force management, Introduction, What is e-marketing?, Distinguishing between e-marketing e-business and e-commerce, E-marketing planning, Situation analysis , Demand analysis, Competitor analysis, Intermediary analysis. Financial accounts: balance sheets, profit and loss accounts, cash flow statements. The treatment of software in company accounts & customer satisfaction.
Related case study
4. Learning and Teaching Strategy
The strategy is to use lectures, tutorial support and group work (with about 5 students in each group).the lecture shall be delivered in a week intensive lecturing while a final assessment shall also be done.
5. Assessment Strategy
This module shall have 100% assessment based on individual assignment or group assignments.
The final assessment shall be made in three parts as the three module leaders individually complete their portions of the module. The final assessment shall be averaged.
6. Assessment Criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the learning outcomes.
1. Course description
The aim of this course is to appraise the learners of the latest automation tools available for the analysis and design of software. The practical skills in using some of the available CASE tools will also form part of the instruction. Another objective is to equip the learners with the necessary skills to apply the CASE techniques and use the relevant CASE tools in practical software development projects.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of
1. Design and development of software and software systems using case tools at a specialist level.
2. The principles of design and automated development of computer software.
3. The professional, legal and ethical responsibilities of a software user.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
1. Select and apply appropriate CASE methods for modelling and analysing software.
2. Use scientific and engineering principles in the development of solutions to problems in computing and computer software.
3. Apply CASE knowledge, computing standards, software metrics and bench marks to produce innovative designs of software, software systems and components.
4. Critically assess software analysis and design work done by others.
5. Analyse failures in computer systems using CASE tools.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
1. Specify, plan, manage, conduct and report on software development and research projects.
2. Prepare automated technical reports and deliver technical presentations at an advanced level.
6. Plan the installation and maintenance of computer software, software systems and components using CASE tools.
7. Demonstrate an awareness of advanced and practical computing skills especially in analysis and design of computing systems.
8. Use CASE tools and packages appropriate to software analysis, design, development and research.
D. General transferable skills
At the end of the programme students should be able to:
1. Carry out independently a sustained investigation and research with /on CASE.
2. Work effectively both as a member or leader of a software development team.
3. Efficiently manage both time and resources by using CASE tools.
4. Create analysis and design documents efficiently.
5. Demonstrate general solving skills with CASE tools.
3. Indicative Content
1. computer-aided design (CAD)
2. computer-aided analysis (CAA)
3. computer-integrated manufacturing (CIM)
4. computer-aided manufacturing (CAM)
5. material requirements planning (MRP)
6. computer-aided planning (CAP)
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
The assessment is100% based on individual assessment.
As this is a theoretical and Practical module:
The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
The assessments shall be made 50% each for practical and theoretical aspects.
For Example:
one quiz (5%), one/two practical assignment (10%), one mini project for presentation (20%), one tutorial session (5%), short practical test (10%) and a short written test (10%) followed by final assessment (40%) of End of Module Examination divided equally into practical viva-voce and theoretical examination.
6. Assessment Criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the expected learning outcome.
1. Course description
This module has the primary objective of equipping the learners with the principles, concepts and practices of software maintenance. The course is aimed at imparting the learners the necessary knowledge to support already deployed software and software systems. The course administration is aimed to create confidence in the learners by strengthening their capabilities to support sustained usage of the deployed software.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of
1. The concepts, principles and theories of software maintenance.
2. The professional, legal and ethical responsibilities of a software maintenance engineer.
3. The environmental and social impact of software maintenance activity.
4. Business and management techniques relevant to software maintenance.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
1. Use scientific and engineering principles in the development of solutions to problems in software maintenance.
2. Analyse failures in computer systems due to inappropriate/poor maintenance devise ways to prevent them.
3. Apply technical knowledge to produce a technical risk assessment.
4. Apply professional knowledge to produce a commercial risk assessment.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
1. Specify, plan, manage, conduct and report on computer maintenance projects.
2. Observe and record skilfully and accurately data as well as experimental evidence both in the laboratory and in the field during software maintenance.
3. Use computational tools and packages appropriate to software testing, debugging and research.
D. General transferable skills
At the end of the programme students should be able to:
1. Carry out independently a sustained investigation and research.
2. Work effectively in a software maintenance team both as a member or leader.
3. Efficiently manage both time and resources.
4. Prepare maintenance schedules and reports documents.
5. Use competently information technology (ICT).
3. Indicative Content
- Software Maintenance Fundamentals
- definitions and terminology
- nature of maintenance
- need for maintenance
- majority of maintenance costs
- evolution of software
- the categories of maintenance
- Key Issues in Software Maintenance
- technical issues
- the management issues
- defining user roles and permissions
- maintenance cost estimation
- software maintenance measurement
- Maintenance Process (process and activities)
- Techniques for Maintenance
- program comprehension
- re-engineering
- reverse engineering
- cloud hosting, browser interfaces, web services
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
The assessment is100% based on assignments etc. conducted individually or as team.
As this is a theoretical and Practical module:
The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
The assessments shall be made 50% each for practical and theoretical aspects.
For Example:
one quiz (5%), one/two practical assignment (10%), one mini project for presentation (20%), one tutorial session (5%), short practical test (10%) and a short written test (10%) followed by final assessment (40%) of End of Module Examination divided equally into practical viva-voce and theoretical examination.
Assessment on the programme is undertaken in accordance with the current Academic Regulations of the Institute.
6. Assessment Criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the expected learning outcome.
1. Course description
The primary objective of this course is to impart the learners the required knowledge and skill on the advanced concepts of software construction and the associated testing. The learners are destined to construct and test software and software components skillfully either independently or as the member of a group. The administration also involves equipping the learners with hands on practical training with practice sessions and case studies.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of
1. Statistics and metrics relevant to software testing.
2. Construction and testing of software and software systems at a specialist level.
3. The standards of practice applied in software construction and testing.
4. Business and management techniques relevant to software construction and testing.
5. Quality and benchmarks in software construction and testing.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
1. Select and apply appropriate mathematical methods for testing software.
2. Use statistics and product testing principles in the development of solutions to problems in software construction and testing.
3. Critically assess software construction and testing work done by others.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
1. Specify, plan, manage, conduct and report on software construction and relevant research projects.
2. Prepare construction documents and test reports.
3. Use competently and safely standard electrical/electronic/computer laboratory instrumentation.
4. Observe and record skilfully and accurately test data.
5. Analyse, evaluate and interpret test data and apply them to the solution of practical software testing problems.
6. Use computational tools and packages appropriate to software construction, testing and research.
D. General transferable skills
At the end of the programme students should be able to:
1. Carry out independently a sustained investigation and research on software construction and testing.
2. Work effectively both as a member or leader of a software testing team.
3. Efficiently manage both time and resources in the construction and testing of software.
4. Develop/prepare Test Documents and reports.
3. Indicative Content
- Software Construction Fundamentals
- basic principles of construction: minimizing complexity, anticipating change, and constructing for verification
- standards for construction
- Managing Construction
- construction models, construction planning, and construction measurement
- Practical Considerations
- construction design
- construction languages
- coding
- construction testing
- reuse
- construction quality
- integration
Software Testing
The dynamic verification of the behavior of a program on a finite set of test cases, suitably selected from the usually infinite executions domain, against the expected behavior.
Objectives
- Software Testing Fundamentals
- testing-related terminology
- key issues of testing, e.g.,
- relationship of testing to other activities
- Test Levels (between targets and objectives of tests)
- Test Techniques
- tests based on the tester’s intuition and experience
- specification-based techniques
- code-based techniques
- fault-based techniques
- usage-based techniques
- techniques relative to the nature of the application
- selection and combination of test techniques
- Test-Related Measures
- evaluation of the program under test
- evaluation of the tests performed
- Test Process (practical consideration and test activities)
Practicals: related to software testing to implement test conditions with different applications
Mini Project: C# or/and .Net based on construction techniques utilizing requirements and design of selected topic
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial/practice sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies and mini research projects. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
100% based on individual assignment and team assignments.
As this a Theoretical and Practical module:
The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
The assessments shall be made 50% each for practical and theoretical aspects.
For Example:
one quiz (5%), one/two practical assignment (10%), one mini project for presentation (20%), one tutorial session (5%), short practical test (10%) and a short written test (10%) followed by final assessment (40%) of End of Module Examination divided equally into practical viva-voce and theoretical examination.
6. Assessment Criteria
For the assignments, criteria will be drawn up appropriate to the topic, based on the expected learning outcomes.
1. Course aims
This course is aimed at imparting the learners the advanced concepts of software design which forms the core of the software development activities. The traditional, as well as the most modern techniques and technologies of software design, are dealt with. This module has also a practical component that simulates the shop floor experience in the learning environment through case studies etc. The learner also will be able to gain confidence in doing independent or coordinated design.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of:
1. The advanced concepts, principles and theories of software development process.
2. Design and development of software and software systems for different/specific applications.
3. The details of standards of practice in software design development.
4. The professional, legal and ethical responsibilities of a software design engineer.
5. The environmental and social impact of software design activity.
6. Quality and benchmarks in software design.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
- Select and apply appropriate mathematical methods for software modelling and design.
2. Use software design principles in the development of solutions to computing.
3. Apply software design knowledge and computing standards, software metrics and benchmarks to produce innovative designs software systems and components. (B3)
4. Critically assess software design work done by others.
5. Analyse failures in computer systems due to design flaws devise ways to prevent them.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
- Specify, plan, manage, conduct and report on software design, development and research projects.
2. Prepare design documents and deliver those presentations at an advanced level.
3. Observe and record skilfully and accurately all relevant design data.
4. Analyse, evaluate and interpret data and apply them to the solution of practical software design problems.
5. Demonstrate an awareness of advanced and practical computing skills especially in the design of software systems.
6. Use computational tools and packages appropriate to software design and research.
D. General transferable skills
At the end of the programme students should be able to:
1. Have the capacity for independent learning.
2. Undertake lifelong learning with active involvement in research on software design and development.
3. Carry out independently a sustained investigation and research on software design.
4. Work effectively in a team both as a member or leader of a software design team.
5. Prepare effectively software design documents.
6. Demonstrate problem solving skills required for software design.
3. Indicative Content
Theory:
- Software Design Fundamentals
- general software concepts
- the context of software design
- the software design process
- software design techniques (abstraction, coupling & cohesion, decomposition & modularization, encapsulation/information hiding, separation of concerns, sufficiency, completeness & primitiveness)
- Key Issues in Software Design
- Concurrency control and handling of events
- distribution of components
- error and exception handling and fault tolerance
- interaction and presentation
- data persistence
- Software Structure and Architecture
- architectural structures and viewpoints
- architectural styles
- design patterns
- families of programs and frameworks
- Software Design Quality Analysis and Evaluation
- quality attributes, quality analysis, and evaluation techniques and measures
- Software Design Notations
- structural and behavioral descriptions
- Software Design Strategies and Methods
- general strategies, e.g.,
- function-oriented design methods, e.g.,
- object-oriented design methods, e.g.,
- data-structure-centered design, e.g.,
- component- based design, e.g.,
- data modelling- abstracting data structure and user permissions from the real-world application
- Software performance Design: code and algorithm based performance
- Human-Software Interface Design: Designing good and poor Interface, Interface
Design Principles and Interface Evaluation, User Centered Interface Design and any
other topic you might think is required.
Practical: related to different design fundaments with C++ or Java using OOPs concepts
Mini Project: C# or .Net framework related to design including UML design
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial/practice sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies and mini research projects. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
100% based on individual assessment.
As this is a Theoretical and Practical module: The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
The assessments shall be made 50% each for practical and theoretical aspects.
For Example:
one quiz (5%), one/two practical assignment (10%), one mini project for presentation (20%), one tutorial session (5%), short practical test (10%) and a short written test (10%) followed by final assessment (40%) of End of Module Examination divided equally into practical viva-voce and theoretical examination.
6. Assessment Criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the learning outcomes.
The main objective of this course is to impart the learners a sound knowledge on the management aspects of the software development process in general and software projects in particular. The course in mainly intended for the learner to gain all the knowledge required to manage the most challenging software projects. Though there is no practical component, the module is supplanted with adequate case studies from the relevant software industry.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of
1. Statistics and theories of management at advanced level.
2. The principles of project management applied in the design and development of computer software.
3. The professional, legal and ethical responsibilities of a software project manager.
4. The social impact of software engineering activity.
5. Business and management techniques relevant to software development.
6. Quality and benchmarks in computer software and software development.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
1. Select and apply appropriate mathematical methods for modelling software projects.
2. Critically assess the work done by others.
3. Apply management knowledge to produce a commercial risk assessment.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
1. Specify, plan, manage, conduct and report on software development projects. (C1)
2. Prepare technical reports and deliver technical presentations on software projects. (C2)
3. Analyse, evaluate and interpret data and apply them to the solution of practical software management problems. (C5)
4. Use appropriate management software tools and packages appropriate to software development. (C8)
D. General transferable skills
At the end of the programme students should be able to:
1. Carry out independently a sustained investigation and research on software project management. (D3)
2. Work effectively in a team both as a member or leader in a software project. (D4)
3. Efficiently manage both time and resources as a project manager. (D5)
4. Prepare project proposals and deliver project reports. (D6)
5. Demonstrate general skills in solving problems on software management. (D7)
6. Use competently all information technology tools and techniques (ICT). (D8)
3. Indicative Content
- Initiation and Scope Definition
- determination and negotiation of requirements
- feasibility analysis
- process for the review and revision of requirements
- Software Project Planning
- process planning, determining deliverables, effort, schedule and cost estimation, resource allocation, risk management, quality management, and plan management
- Estimating development effort and time
- and Ticketing, version control/ integration systems, captive systems
- Software Project Enactment
- implementation of plans, supplier contract management, implementation of measurement process, monitor process, control process, and reporting
- Review and Evaluation
- determining customer satisfaction of requirements and reviewing and evaluating performance
- Closure
- Software Engineering Measurement
- establishing and sustaining measurement commitment, planning the measurement process, performing the measurement process, and evaluating measurement
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
Assessment is 100% based on individual assignments and group work.
As this is a Theoretical module:
The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
For Example:
One quiz (10%), one assignment (5%), and one seminar for presentation (Research paper) (20%), one tutorial session (5%), and a short test (20%) followed by final assessment (40%) of End of Module Examination.
6. Assessment criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the expected learning outcomes.
The Software Concepts and Requirements Engineering course offers Master's students in software engineering a rigorous yet practical exploration of software engineering principles and requirements engineering practices. Through a blend of theoretical learning, hands-on experiences, and real-world applications, students develop the skills and expertise necessary to succeed in complex software development projects as proficient requirements engineers. This course is designed to provide a solid foundation in software engineering principles and requirements engineering practices, ensuring that students are well-equipped to tackle the challenges of modern software development environments.
This course introduces learners to the most modern concepts and practices of software engineering including those currently in use in the industry, and in research at an advanced level. In-depth knowledge of the most recent advances in the field is imparted so that learners can pursue research on successful completion of the module. Practice oriented approach will be attempted with case studies.