SOICT
School of Information and Communication Technology
IT3180 – Introduction to Software
Engineering
3 – Introduction to Software Projects
3
Major Objectives
• This course is about Software Engineering with focusing on how to
develop a software project by applying principles of SE
• Major component: software development project – The objective is to
develop a product for a client who intends to use it in regular
production
• During this course, the project team will work together through a full
development cycle
4
Project Teams
• You will work by team to develop your software project
• A project team is formed by a group of 5 to 6 students
• Evaluation over the team work as well as on individual contribution
Note: After week 1, as soon as possible, you have to form your group
and choose project
5
Choosing Project
• The project can be an application, system software, or even a toolkit, a
plugin or a library
• Software Engineering covers everything from smartphones to
supercomputers
• The only conditions are that there must be a real client who has to
participate to our course to evaluate assigments’ reports and project
progress
• The idea of your project comes from client, not your own
• In this semester, your teacher plays the role of your project client
• A list of suggested projects are available for 15 groups of 120 students
6
Milestones
The project is divided into 4 parts, each of which ends in a milestone
• The first milestone is a feasibility report
• The second and third milestones, the team makes a presentation and
submits a progress report to the client
• At the fourth milestone, the team demonstrates the working software
and makes a presentation to the client, followed by a final report and
handover of the completed project
7
Overview about Software Development Project
Software development is more than writing code
Every project includes all aspects of software development:
• feasibility study
• requirements
• system and program design
• coding
• reliability and testing
• delivery
• documentation for future maintenance
• etc.
8
Sprint
• The project is small, about the size of an agile sprint in most production
Sprint
• In agile terminology, a sprint is a fixed period of time during which a
team completes part of a software project
• Every sprint ends with code that is ready to put into production
• A typical sprint might have a team of 4 to 9 people working for 2 to 4
weeks
• It should be fully tested, with documentation for maintenance
9
Time box
Time box
• A time box is a set of period of time during which a development team
completes part of a software project
Our course:
• Time: one semester of 16 weeks (including the pausing mid-semester
week)
• Resources: The team size is fixed (5-6 students)
• Scope: The scope of the project should be determined during feasibility
study period to match with the time and resources
10
Team Organization
• An effective team organization makes the success of the project
• Every project should have:
• Regular meetings with the client (at least during assigment work
weeks)
• Regular team meetings
• A project plan which is kept up to date (e.g., Gantt chart)
• A project management system for code and documentation (e.g.,
Github)
11
Within the time box
You NEED a systematic process for developing your software project
Most projects use one of the following processes:
• Iterative refinement
• Modified waterfall model
Some projects may use
• An agile process with a sequence of short sprints
12
3. Introduction to Software Projects
(end of lecture)
14