Software Engineering I
Software Engineering I is designed to:
- Provide an introduction to software engineering as a professional discipline.
- Provide insight and understanding of the context and constraints within which software is developed.
- Provide a clear understanding of processes, methods, activities, tools and techniques involved in professional software engineering.
- Equip students with the theory, tools and techniques for professional software development and software project management.
- Provide students with the opportunity to participate in practical software engineering tasks.
- Empower students to be able to develop software in a systematic, structured rigorous, safe and secure manner.
On successful completion of this module a student will be expected to be able to:
- Understand the role of software engineering and its importance in software development. Understand the main reasons for success and failure in software development.
- Explain issues of professionalism related to Software Engineering. Understand the social, ethical and legal context in which software engineers work.
- Enumerate the main software development process models, specifically plan based and Agile models, and explain the applicability of these models to the development of different software types.
- Evidence a thorough understanding of software process model activities, including analysis and design, implementation, testing and software deployment. Undertake core software development activities in a structured, competent and professional manner, using industry standard techniques.
- Explain how software is tested to ensure quality. Devise a test plan that includes elements of unit testing, system testing, functional testing, acceptance testing and release testing.
- Understand how systems adapt and evolve, and how systems are maintained throughout their lifespan.
- Understand the range of software project management tasks, including planning, resource and people management, and risk management. Understand standard project management techniques and tools, and be able to apply these techniques and tools to a software development project.
- Understand the role and importance of quality management activities in the software development process, including reviews and inspections. Undertake software quality assurance activities as part of the software development process.
- Explain how software configuration management helps ensure software quality. Undertake software configuration management activities, including version management, change management and release management.
- Use industry standard tools for all areas of the software development process, including tools for all areas of software development, including analysis, design, testing, project management and configuration management.
- Engineering/Software/Software Engineering
- Software Process Models
- Agile Software Development Approaches
- Systems Analysis and Design
- Software Implementation and Deployment
- Software Testing
- Software Evolution
- Software Project Management
- Software Project Planning
- Quality Management and Configuration Management
Portfolio of completed tasks.
Sommerville, I (2016). Software Engineering. Pearson.