Software Engineering
Description
Software engineering is the discipline concerned with the application of theory, knowledge, and practice for effectively and efficiently building software systems that satisfy the requirements of users and customers. Software engineering can be applied to small, medium, and large-scale systems. It encompasses all phases of the life cycle of a software system. The life cycle includes requirements analysis and specification, design, construction, testing, deployment, and operation and maintenance. Software engineering employs engineering methods, processes, techniques, and measurements. It benefits from the use of tools for managing software development, analyzing, and modeling software artifacts, assessing and controlling quality, and ensuring a disciplined, controlled approach to software evolution and reuse. The elements of software engineering applied to the development of software in any computing application domain where professionalism, quality, schedule, and cost are important in producing a software system.
Aim of the course
Introduce basic knowledge for software design, verification and validation, documentation, project management and develop skills to design software systems.
Prerequisites
Fundamentals of Computer Programming and Information Technologies
Course content
1. Software design.
2. Software processes.
3. Business Domain Modelling.
4. Business Objects and Objects Life Cycle.
5. Business Process Modelling.
6. Requirements engineering. Requirements Modelling: Role of Use Cases in System Analysis and Development.
7. Software Verification Validation.
8. Software Evolution.
9. Software Project Management.
10. Information System Architectural Description.
11. Interaction Modelling.
12. UI Modelling.
Assesment Criteria
1. Student demonstrates the ability to analyse and design provided processes/systems.
2. Student is able to analyse software systems and discuss on software engineering models.
3. Student demonstrates skills in systems/system components design.
4. Student is able to choose appropriate software engineering method for different type of systems working in different circumstances.
5. Student is able to evaluate the quality of different software designs.
6. Student is able to use modelling techniques for software systems behaviour definition and description and choose appropriate methods for system analysis and design.
7. Student demonstrates skills in team work by running software engineering project.