IT3204: Fundamentals of Software Engineering
IT3204: Fundamentals of Software Engineering
INTRODUCTION
This course is designed to provide the students with the basic competencies required
to identify requirements, document the system design and maintain a developed
system. It presumes a general understanding of computers and programming which
are covered in the first and second semester of the degree.
CREDITS: 04
LEARNING OUTCOMES
After successfully completing this module the student will be able to explain the software
engineering principles and techniques that are used in developing quality software
products.
MINOR MODIFICATIONS
When minor modifications are made to this syllabus, those will be reflected in the
Virtual Learning Environment (VLE) and the latest version can be downloaded from
the relevant course page of VLE. Please inform your suggestions and comments
through the VLE. http://vle.bit.lk
You can access all learning materials and this syllabus in the VLE: http://vle.bit.lk/, if
you are a registered student of BIT degree program.
BIT Year2 - Semester 3 - Detailed Syllabi IT3204
ONLINE ASSIGNMENTS
The assignments consist of two quizzes, assignment quiz 1 (It covers the first half of
the syllabus) and assignment quiz 2 (It covers the second half of the syllabus).
Maximum mark for a question is 10, minimum mark for a question is 0 (irrespective of
negative scores). Final assignment mark is calculated considering 40% of assignment
quiz 1 and 60% of assignment quiz 2. Pass mark for the online assignments in a
course is 50. You are advised to do online assignments before the final exam of the
course. It is compulsory to pass all online assignments to partially qualify to obtain
year 2 certificate.
FINAL EXAMINATION
Final exam of the course will be held at the end of the semester. Each course in the
semester 3 is evaluated using a two hour question paper which consists of 20-25
MCQs and 3-4 structured questions.
OUTLINE OF SYLLABUS
Topic Hours
1. Introduction 06
4. Design 12
5. Coding 04
7. Software Maintenance 04
REQUIRED MATERIALS
Main Reading
Ref. 1: Software Engineering by Ian Sommerville, 7th edition, Addison-Wesley, 2006.
Ref. 3: http://portal.acm.org/citation.cfm?id=1159393
Ref. 4: http://www.vnunet.com/vnunet/news/2117315/air-traffic-system-already-obsolete
DETAILED SYLLABUS
Learning Objectives
• Describe what software is, different types of software and software quality
attributes
• Describe with the problems associated with software and software development
• Define what software engineering is and explain why it is important
• State some professional issues related to software development
Sub Topics
1.1. Software
1.1.1. What is software? [Ref.1: pg. 27-28]
1.1.2. Types of software [Ref.2: pg. 40-41]
1.1.3. Characteristics of Software [Ref.2: pg. 36-39] [Ref.4]
1.1.4. Attributes of good software [Ref.1: pg. 34-35]
1.2. Software Engineering
1.2.1. What is software engineering? [Ref.1: pg. 29]
1.2.2. Software engineering costs [Ref.1: pg. 31-33]
1.2.3. What are the key challenges facing software engineering?
[Ref.1: pg. 35-36]
1.2.4. Systems engineering & software Engineering
[Ref.1: pg. 29-30; Ref. 2: pg. 154-155]
1.2.5. Professional Practice [Ref.1: pg. 36-39; Ref.2: pg. 128-149]
BIT Year2 - Semester 3 - Detailed Syllabi IT3204
Learning Objectives
• Describe different process models used for software development
• Identify the most appropriate software process model for a given problem
• Identify how CASE tools can be used to support software process activities
Sub Topics
Learning Objectives
• Identify the types of requirements, which should be captured in a software project
• Describe and apply different requirement analysis and specification techniques
• Prepare a software requirement specification (SRS) for a given software problem
Sub Topics
Learning Objectives
• Describe the important software design issues and concepts
• Compare different approaches to software design
• Identify suitable design approaches for a problem
Sub Topics
Learning Objectives
• Select appropriate programming language and development tools for a given problem
• Identify the features of a good program, good programming practices and program
documentation
Sub Topics
Learning Objectives
Sub Topics
Learning Objectives
• Describe the types of software maintenance
• Describe the software maintenance process
• Describe activities of configuration management
Sub Topics
Learning Objectives
Sub Topics
8.1. Need for the proper management of software projects [Ref. 1: pg. 115-116]
8.2. Management activities
8.2.1. Project planning [Ref.1: pg. 118-121]
8.2.2. Estimating costs [Ref.1: pg. 635-636, 660]
8.2.3. Project scheduling [Ref. 1: pg. 121-126]
8.2.4. Risk management [Ref. 1: pg. 126-133]
8.2.5. Managing people [Ref. 1: pg. 614-631]