School of Electronic Engineering and Computer Science EBU6304: 01
EBU6304 Software Engineering
Introduction to Software Engineering
Copyright By PowCoder代写 加微信 powcoder
School of Electronic Engineering and Computer Science EBU6304: 01 EBU6304: Software Engineering
Teaching team:
– Dr Luca Rossi (Module organiser)
• – DrLingMa
• – Dr Gokop Goteng
– Dr Matthew Huntbach
School of Electronic Engineering and Computer Science EBU6304: 01 QMPlus and Email
• Module website:
– QMPlusà
https://qmplus.qmul.ac.uk/course/view.php?id=16593
– Module Area: EBU6304 – Software Engineering
– Check it regularly, as we could put there information
related to e.g. extra practice exercises.
– You are expected to check your email regularly!
– Use your QMUL email or BUPT email ONLY
Emails to the lecturers from other accounts are ignored.
School of Electronic Engineering and Computer Science EBU6304: 01 Questions and feedback
• Messageboard:
– Use the “Student Forum“ activity in this course area.
– For all general questions related to the module
– Check existing discussions before you post a new question. – Notification is sent to QMUL email ONLY
Message board is the primary way of communication for this module
• Feedback:
Give lecturers timely feedback is important.
School of Electronic Engineering and Computer Science EBU6304: 01 Recommended Textbooks
See the “Module Information” topic of the course website.
School of Electronic Engineering and Computer Science EBU6304: 01 Online resources – ACM, IEEE
• Make use of the QMUL digital library.
https://www.library.qmul.ac.uk/
• ACM Transactions and Digital Library via portal at http://www.acm.org, http://portal.acm.org/portal.cfm
• ACM Transactions on Software Engineering and Methodology
• IEEE Computer Society http://www.computer.org
• IEEE Transactions on Software Engineering
• Software Engineering Journal
• Publications from Wiley, Springer and others
School of Electronic Engineering and Computer Science EBU6304: 01 Module Aims and Objectives
• The module provides:
– an introduction to modern software development techniques necessary to produce high quality software and to manage the production of this software.
– additional practice in program development.
• The module aims to give each participant:
– an idea of the necessity of good software engineering practice when developing complex software systems
– knowledge of suitable software engineering techniques [in particularàpractice in applying these techniques]
– experience of working in teams to develop a product to a specification within strict deadlines [in particularàexperience of time-keeping, which provides valuable experience for the final-year project]
School of Electronic Engineering and Computer Science EBU6304: 01 Topics
• Introduction to module & Software Engineering
• Software Processes and Agile Overview
• Requirements
• Analysis and Design
• Software Architecture
• Implementation and T esting
• Project Management
• Design Principles
• Design Patterns
• Software Craftsmanship • Open Source software
• Software Development T ools
School of Electronic Engineering and Computer Science EBU6304: 01 Lecture Delivery
Synchronous and Asynchronous
Live: In classroom via MS Teams. Lecture/Tutorial/Quiz/Q&A. please bring your laptop/or tablet/or phone for interaction.
Rec: Video recordings on Echo360. With post session exercises to be completed before the next live session.
School of Electronic Engineering and Computer Science
Assessments
• 35% Coursework, made up of: – Individual lab exercise: 5%
– Group-based project: 30%
• 65% Final Examination
– Closed book exam, all compulsory questions. – Duration: 2 hours
Details of each assessment will be published on QM+ in due course.
EBU6304: 01
School of Electronic Engineering and Computer Science EBU6304: 01 Plagiarism is strictly forbidden!
• What is it?
– The reproduction of ideas, words or statements of another person without appropriate acknowledgement.
– Examples:
• A student knowingly permits another to turn in his/her work.
• Presenting someone else’s work as your own, without giving credit.
• All students must complete their own work and are expected to behave with integrity at all times.
• Plagiarism is strictly forbidden; there are severe penalties when detected!
• More information about this at the student handbook.
School of Electronic Engineering and Computer Science EBU6304: 01 Interactive Session
Now it is time for live interactive session.
There is no notes in this part. It is important that you attend the live session and take notes yourself.
School of Electronic Engineering and Computer Science EBU6304: 01 EBU6304 – Software Engineering
Getting started with Software Engineering
• T opics:
• Overview of software
• Introduce software engineering and its needs
• The importance of software engineering
School of Electronic Engineering and Computer Science
• Computer programs
• Libraries
• Data (non-executable)
• Digital media • Documentation
• System documentation
• User documentation/ manuals
• Requirements
• Design models
EBU6304: 01
Computer software, or
simply software, is a
collection of data or
computer instructions
that tell the computer
how to work. This is in
contrast to physical
hardware, from which the
system is built and
actually performs the
In computer science and
software engineering,
computer software is all
information processed by
computer systems,
programs and data.
https://en.wikipedia.org/
wiki/Software
School of Electronic Engineering and Computer Science
Software types
• System software
– Operating systems – Device drivers
– Utilities
• Application software (Perform a specific task)
– Word processing – Image processing
– Social network –…
EBU6304: 01
Application software
System Software
School of Electronic Engineering and Computer Science
Application Software types
• Stand-alone applications • Web applications
• Phone App
• Embedded control
• Entertainment
• Modeling and simulation • Data collection
EBU6304: 01
School of Electronic Engineering and Computer Science
Generic vs Custom
• Generic Software
– Developed for a general market
– To be sold to a range of different customers
– Example: Microsoft Office, Photoshop
– Owned and controlled by the development organisation
• Custom software
– Developed for a particular customer, according to their
specific needs
– Examples: software used in banks, airlines, embedded systems
– Owned and controlled by the customer organisation
EBU6304: 01
School of Electronic Engineering and Computer Science EBU6304: 01
Generic vs Custom
• Generic to custom:
– More and more, software companies are starting with a generic system and customising it to the needs of a
particular customer. • Examples:
越来越多的软件公司开始采用通用系 统,并根据特定客户的需求进行定制。
– University:
• Moodle – generic
• QMPLUS – for QMUL
– Enterprise management: SAP – Insurance company
– Ticket booking
– e-Commerce
School of Electronic Engineering and Computer Science EBU6304: 01 Good Software?
School of Electronic Engineering and Computer Science
Good Software
Features of “Good” software
• Delivers required functionality.
• Dependable
– Robust, reliable, trustworthy.
• Efficient
– Good use of resources: computational, user time, development time/cost
– Usable by the users (or systems) it is designed to interact with.
EBU6304: 01
School of Electronic Engineering and Computer Science
Good Software
Features of “Good” software
• Maintainable
– can evolve to meeting changes in requirements.
• Understandable • Cost-effective
• Secure/Safe •…
EBU6304: 01
School of Electronic Engineering and Computer Science EBU6304: 01
Software Engineering
• “an engineering discipline that is concerned with all aspects of software production”—
• “the systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software”—IEEE Systems and software engineering
• “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”—IEEE Standard Glossary of Software Engineering Terminology
School of Electronic Engineering and Computer Science EBU6304: 01 Software Engineering
• An engineering discipline
• Theories, methods, tools, constraints
• Concerned with all aspects for professional software production
• Goal: develop high-quality software
• Systematic and organised approach
• Use appropriate methods, tools and technologies
• The problem to be solved
• The development constraints
• The resources available
School of Electronic Engineering and Computer Science EBU6304: 01 Software Engineer
School of Electronic Engineering and Computer Science
Software engineering layers
Tool Method
A quality focus
• Software engineering is a layered technology – Commitment to quality
– Process: foundation layer
– Methods: technical layer
– Tools: support layer
EBU6304: 01
School of Electronic Engineering and Computer Science EBU6304: 01 Why do we need software engineering?
• Questions and issues:
– Why does it take so long to get software finished?
– Why are development costs so high?
– Why can’t we find all errors before we give the software to our customers?
– Why do we continue to have difficulty in measuring progress as software is being developed?
– Why do we create software that does not fulfil user requirements?
School of Electronic Engineering and Computer Science EBU6304: 01
http://www.jokeoverflow.com/
School of Electronic Engineering and Computer Science EBU6304: 01 Software failures
• Large scale software development failure
– Numerous examples of failed or seriously delayed software development projects
– Or fail to deliver full functionality within time and budget. – Or disasters:
• E.g., NHS IT System, Heathrow T5, Pensions system,Taurus (Stock Exchange), Air Traffic Control, ESA Arianne 5, Patriot Missile System, Therac-25 radiation therapy machine
• Small scale software development failure
School of Electronic Engineering and Computer Science EBU6304: 01 1982
School of Electronic Engineering and Computer Science EBU6304: 01 1995
School of Electronic Engineering and Computer Science EBU6304: 01 2009
School of Electronic Engineering and Computer Science EBU6304: 01 2016
School of Electronic Engineering and Computer Science EBU6304: 01 Present reality
The reality is mixed
– Computer Science provides the scientific basis.
– A growing number of software development approaches are recognised as good engineering practice -Good Design Patterns
– But many aspects of development are still ad hoc Software design is still very difficult
– Few guiding scientific principles.
– Few universally applicable methods.
– Much poor practice & frequent failures.
School of Electronic Engineering and Computer Science EBU6304: 01 General issues that affect software
• Heterogeneity
– distributed systems, across networks, different types of devices
• Business and social change
– emerging economies develop, new technologies
• Security and trust
– it is essential that we can trust that software
– Software has to be developed across a very wide range of scales
School of Electronic Engineering and Computer Science
• Software – Types
– Good software features • Software engineering
• Software failure
• Software issues
EBU6304: 01
School of Electronic Engineering and Computer Science EBU6304: 01 References and further reading
• Chapter 1 – “Software Engineering” textbook by
• “Software failure” examples – see course website
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com