9/8/21
SOICT
School of Information and Communication Technology
1
9/8/21
IT3180 – Introduction to
Software Engineering
4 – Introduction to Software Projects 20211
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
2
9/8/21
Project Teams
• You will work by team to develop your software project
• A project team is formed by a group of 6 to 8 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
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
3
9/8/21
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
4
9/8/21
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
Time box
Time box
• A time box is a set of period of time during which a development team
completets 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 (6-8 students)
• Scope: The scope of the project should be determined during feasibility
study period to match with the time and resources
10
10
5
9/8/21
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
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
12