The previous lecture covered change management dealing with the managerial aspect of software engineering. In this lecture, we continue with a managerial topic, namely project management. It is possible to devote a whole course to project management. Our treatment on the subject will therefore be quite brief.
We will focus on management of a software project and the role of software project manager. The following lists the main topics in this lecture.
- Role of a Project Manager
- Project Development Phrases
- Project Development Activities
- Project Organization
- Risk Management
Your actions before next class: Read Chapter 14 Project Management and Chapter 3 Project Organization and Communication of the textbook.
2 Comments
In this lecture, we will start to learn Software Configuration Management, or SCM in short. SCM is the discipline of monitoring and controlling change in the evolution of software system. More specifically, you will learn the following concepts and activities in the process of SCM:
- Configuration item identification
- Promotion management
- Release management
- Branch management
- Variant management
- Change management
Your actions before next class: Read Chapter 13 Configuration Management of the textbook.
The following lists seven software configuration management tools. Some of them offer test drive to play with.
Build and release management tools:
Comments Off
In these two tutorials, you do some practical activities on black-box testing. You also do some class exercises on mapping class to relational schema, and discussions on the roles of test stubs and test drivers.
Comments Off
In this lecture, we will continue to learn Software Testing. It covers System Testing, Regression Testing, and Documenting Testing. We will also have a brief touch on how JUnit is used to automate unit testing in Java.
While unit and integration testing focus on finding faults in individual components and the interfaces between the components, system testing ensures that the complete system complies with the functional and nonfunctional requirements. System testing includes functional testing, performance testing, pilot testing, acceptance testing, and installation testing.
Regression testing is to ensure that a program has not regressed; the functionality that was working yesterday is still working today. In other word, regression testing is to ensure that we do not introduce new bugs while removing existing bugs. A program still works correctly after changes were made to it.
Suggested Readings on JUnit:
Some Tools for Performance Testing :
Some Tools for Testing Automation
Comments Off