|
Instructor |
Dr Zumao Weng |
|
Lecture/Lab Time |
Tuesday, 9.15- 12.05/12.15-14.05 |
|
Location |
Lecture MF023/Lab MG122 |
It is now widely recognized that the engineering of
software systems has a pivotal role to play in the production of quality software
systems which are produced on time, to budget, and to the correct level of
quality. Indeed, the term Software Engineer has now replaced the term
Programmer as the job description used in industry. This module will give the
student a detailed understanding of many of the core and advanced topics within
Software Engineering.
The aim of this module is to develop students?knowledge and capability
in the theories, methods and tools required to build manage and evolve
efficient, economic and effective software systems. To build upon the second
year prerequisites and provide students with a critical awareness of the
relationship between software engineering and systems design, quality
management, process improvement, project and risk management, reliability and
the ethical and legal dimensions of the subject. To provide
the student with knowledge, understanding and experience in designing and
implementing software solutions. To foster an understanding of the
software engineering process, and the tools and technologies required to
support this process. To engender an ability to operate in a
proper professional and ethical framework.
R.
Pressman, Software Engineering - A Practitioner’s Approach, 7th Ed., McGraw
Hill, 2010
Leszek A. Maciaszek and Bruc Lee Liong, Practical
Software Engineering: A Case Study Approach, Addison Wesley, 2005
I. Sommerville, Software Engineering, (9th ed.), Addison
Wesley, 2010.
Bernd Bruegge, Allen
H. Dutoit, Object-Oriented Software Engineering:
Using UML, Patterns and Java, 3rd Edition, Prentice Hall, 2009; ISBN
0-13-606125-7
Timothy C. Lethbridge
and Robert Laganière, Object-Oriented Software
Engineering: Practical Software Development using UML and Java, 2nd Ed., McGraw
Hill, 2001
|
INTRODUCTION
AND PROJECT PLANNING |
|
|||||||||||
|
Need for Software Engineering |
25-Sept |
|
||||||||||
|
Problems in
software development |
25-Sept |
|
||||||||||
|
What is software
engineering? Project Planning |
|
25-Sept 25-Sept |
|
|||||||||
|
SOFTWARE
PROCESS
MANAGEMENT |
|
|||||||||||
|
Need for Software Process |
|
|
02-Oct |
|
||||||||
|
Capability Maturity Model (CMM) |
|
02-Oct |
|
|||||||||
|
People Management |
02-Oct |
|
||||||||||
|
Project Communications |
|
02-Oct |
|
|||||||||
|
Risk Management |
|
02-Oct |
|
|||||||||
|
Quality Management |
|
02-Oct |
|
|||||||||
|
REQUIREMENTS ENGINEERING |
|
|||||||||||
|
Requirements Engineering |
|
|
09-Oct |
|
||||||||
|
Analysis, Definition,
Specification |
09-Oct |
|
||||||||||
|
Requirements
document |
09-Oct |
|
||||||||||
|
Functional and
Non-Functional Requirements |
|
09-Oct |
|
|||||||||
|
UML - Use-cases |
|
|
09-Oct |
|
||||||||
|
ANALYSIS/
DESIGN USING UML |
|
|||||||||||
|
Class Diagrams |
16-Oct |
|
||||||||||
|
State Diagrams |
16-Oct |
|
||||||||||
|
Sequence Diagrams
|
|
16-Oct |
|
|||||||||
|
SOFTWARE
DESIG PROCESS AND QUALITY |
|
|||||||||||
|
Principles of
Design |
|
|
23-Oct |
|
||||||||
|
Designing for
reusability, adaptability and maintainability |
23-Oct |
|
||||||||||
|
Design Quality |
|
23-Oct |
|
|||||||||
|
Software
Architecture |
|
|
23-Oct |
|
||||||||
|
Software Design
Process |
|
|
23-Oct |
|
||||||||
|
Component-Level
Design and User Interface Design |
|
|||||||||||
|
Component-level
design |
|
30-Oct |
|
|||||||||
|
User Interface
Design |
30-Oct |
|
||||||||||
|
VERIFICATION
AND VALIDATION
|
|
|||||||||||
|
Test Plans |
|
|
06-Nov |
|
||||||||
|
Testing Methods |
|
06-Nov |
|
|||||||||
|
Test Strategies |
Ch7.ppt updated! |
Read R. Pressman’s book chapter 17-20 |
06-Nov |
|
||||||||
|
Software
Inspection |
|
06-Nov |
|
|||||||||
|
Regression
Testing |
|
|
06-Nov |
|
||||||||
|
AGILE SOFTWARE DEVELOPMENT |
|
|||||||||||
|
Agile manifesto, process,
principles |
13-Nov |
|
||||||||||
|
Extreme programming Adaptive and dynamic software
development Scrum Feature driven development |
13-Nov |
|
||||||||||
|
Agile modelling |
13-Nov |
|
||||||||||
|
Software Configuration Management and
Product Metrics |
|
|||||||||||
|
Software configuration management |
Ch9.ppt
updated! |
20-Nov |
|
|||||||||
|
Software product metrics |
Read R. Pressman’s book Chapter 22-23 |
20-Nov |
|
|||||||||
|
Component-Based Software Engineering and
Reuse |
|
|||||||||||
|
Component-based software engineering (CBSE) Software reuse |
Lab 10 Solutions |
27-Nov 27-Nov |
|
|||||||||
|
Software Process Improvement and emerging trends in Software
engineering |
|
|||||||||||
|
Software process improvement |
|
04-Dec |
|
|
||||||||
|
CMM & CMMI |
|
|
|
|||||||||
|
Software engineering trends |
Read Chapter 30,31 |
04-Dec |
|
|||||||||
|
Revision |
|
|||||||||||
|
Revision
- concepts and questions |
|
|
11-Dec |
|
|
|||||||
The Generic Software Process
When you
work to build a product or system, it's important to go through a series of
predictable steps; a road map that helps you creating a timely, high quality
result. The road map that you follow is called a 'software process.' The
resources presented on this page address generic information about software
engineering and the software process. The following topic categories are
considered:
Generic Software Engineering Resources
Software Process Models—Generic Discussion
Software
Engineering Standards