CS6003 - Advanced Software Engineering (2017/18)
|Module specification||Module approved to run in 2017/18|
|Module title||Advanced Software Engineering|
|Module level||Honours (06)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2017/18||
This module is one of backbone modules of the BEng Software Engineering (top-up) course that is designed for those students who have already obtained a two-year Higher National Diploma (HND), the Association of Computer Professionals (ACP) Advanced Diploma or an International Advanced Diploma (IAD) in Software Engineering, Computing, Computer Studies or other software development-related courses and would like to gain an internationally-recognised degree qualification specialising in building software for various software-based systems.
Prior learning requirements
Successful Completion of Level 5 or equivalent
To achieve the aim, this module combines:
1) Understanding and application of software project management process, its products and people roles in the process
2) Learning software development, support and maintenance processes, their products and people roles in the processes
3) Application of software development activities, methods, and documents to carry out every-day tasks of software developers
4) Studying testing activities, methods, and documents to carry out every-day tasks of software testers
5) Full coverage of the “ISTQB Foundation Certificate in Software Testing” syllabus;
6) Increase employability.
A. Professional Software Engineering Foundation
1.Professional Software Engineering
Overview of software engineering process. Software engineering products, systems and services.An overview of UML. Software engineering industrial standards. Software engineering products and processes. Ethical, legal and associated issues of software engineering.
2. System Engineering
Business processes, business data processing and Information Systems. Information systems development. Business process engineering and re-engineering
3. Managing Software Projects
Main project management concepts. Software life cycles and life cycle models. Project scope management. Project time management. Project risk management.
4. Quantitative Techniques in Software Project Management
Risk assessment and cost estimation. Software metrics. Network diagrams and propagation. Function point analysis and introduction to COCOMO.
B. Software Development and Implementation
5. Requirements Engineering
Stakeholder requirements definition. Main requirements analysis concepts. Scenario-based modelling. Data-flow-oriented modelling. Object-oriented modelling.
6. Software Design
Main software design concepts. Architectural design. User interface design.
7. Software Implementation
Software Components and Component Engineering.
Comparison of technology stacks, software frameworks and CASE tools.
Team collaboration and version control.
8. Software Quality and Quality Assurance
Software quality and quality models and metrics. Software Quality Assurance process. Software Verification and Validation processes.
9. Software Documentation
Documentation and professional standards for documentation. Documentation of software products, systems and services.
C. Software Support and Maintenance
Business process reengineering. Software reengineering. Reverse engineering. Restructuring and refactoring.
11. Software Reviewing and Testing
Fundamentals of software testing. Software testing in life cycles. Static software examination: Reviews. Test design techniques. Test management. Tool support for testing.
12. Software Configuration Management
Main software configuration management (SCM) concepts. SCM repository. SCM process.
Learning and teaching
The module is taught through a combination of lectures (1.0-1.5 hours, depending on the topic) for studying main concepts of Software Engineering, its methods, techniques and tool, and practical tutorials (1.5-2.0 hours, depending on the topic) for enhancing learning and development of skills each week for 30 weeks (a lecture + a tutorial, 3 hours, each week).
Appropriate blended learning approaches and technologies, such as, university’s integrated learning environment (currently WebLearn) and online tools, will be used to facilitate and support students learning, in particularly to:
• Deliver teaching materials
• Provide a communication platform to support coursework
• Provide formative and summative feedback to students
Students are expected to spend additional time working on coursework (100 hours), exercises and private study (110 hours).
On completing the module the student will be able to:
LO1) Display knowledge and basic skills of software development and maintenance: their main activities and products, commonly used methods and techniques to create the products;
LO2) Applybasic knowledge and skills of software testing: testing approaches, development of test cases, and test management;
LO3) Manage a software development project: planning project scope, scheduling the project and evaluating project and product risks;
LO4) Transform a set of software requirements into software requirements specification and then into software design choosing a proper set of software engneering methods and techniques;
LO5) Use a particular test basis to develop a set of test cases, implement testing of a piece of software with this set of test cases and prepare a test report.
LO6) Apply for ISTEB Software Testing Certification.
Semester I Assessment includes a coursework (25% of the module): two pieces, group and individual, submitted separately in different times, and two in-class tests of 1 hour and 45 minutes (25%).
Semester II Assessment includes a coursework (25% of the module): two pieces, group and individual, submitted separately in different times, and one hour and 30 minutes exam (25%).
1. Learning resources on the module WebLearn.
2. Pressman R.S. Software Engineering: Practitioner's Approach. Fifth edition. McGraw-Hill Higher Education, 2005. ISBN 0-07-285318-2 (main bookon software development and project management) (Or later editions.)
3. Hambling B. (Editor). Software Testing: An ISEB Foundation. The British Computer Society, 2007. ISBN 978-1-902505-79-4 (main book on software testing)
4. Graham D. at al. Foundation of Software Testing: ISTQB Certification. Thomson, 2007. ISBN 978-1-84480-355-2 (main book on software testing)
5. Lunn K. Software Development with UML. Palgrave Macmillan, 2003, ISBN 0-333-98595-8 (recommended book)
6. Patton R. Software Testing. Second Edition. SAMS Publishing, 2006. ISBN 0-672-32798-8 (recommended book)
7. Pressman’s Web site: http://www.rspa.com/
8. Object Management Group: Unified Modelling Language (UML) http://www.uml.org/
9. RaG Systems: A UML Tutorial Introductionhttp://www.cragsystems.co.uk/uml_tutorial/