Content (Syllabus outline)
• Introduction: history, software crisis, the future of software engineering
• Software life cycle models
• Requirements engineering: definition, process of requirements eliciting, functional and non-functional requirements, user interface requirements, standards, documents, requirement analysis. Document maintenance, validation of requirements
• Software development: basic concepts, processes, principles, strategies, software structures and architectures, patterns, user interface design, notations, versioning
• Software optimisation: complexity reduction, flexibility, adaptability, reuse, sustainability, tools
• Project management basics and professional issues: planning and control, human resource management, motivation, resource management, communication, team work
• Software testing: validation, verification, testing methods, metrics, processes,
• Software maintenance: definitions, technical and management aspects, economics, processes, migration, re-engineering
• Software development economics: cost benefit analysis, ROI, ecosystems, resource estimation, risk estimation and management
Learning and teaching methods
• lectures,
• tutorials,
• lab work,
• case study.
Intended learning outcomes - knowledge and understanding
On completion of this course the student will be able to analyse, plan, manage, implement, verify and validate large software systems.
Readings
• R. S. Pressman: Software Engineering - A Practitioner’s Approach, Sixth edition, McGraw-Hill, New York, 2014
• K. Wiegers and J. Beatty, Software Requirements (3rd Edition), Microsoft Press, Redmond, Washington, 2013
• I.Sommerville, Software engineering. Pearson Education, New York, 2015
• Project Management Institute A Guide to the Project Management Body of Knowledge, Project Management Institute, Pennsylvania, USA, 2013