Basic Principles of Software Engineering/L1 & T1
Gazipur Digital University
Department of Software Engineering
Course Outline
1 General Information
Faculty Faculty of Software and Machine Intelligence
Department Department of Software Engineering (SE)
Programme Bachelor of Science in Software Engineering
SE 103
Level & Term L1 & T1
CORE
Course Title Basic Principles of Software Engineering
Course Code SE 103
Course Credit 3 units
Contact Hours 4/week
Type of Course CORE
Prerequisite Course None
2 Course Rationale
The Basic Principles of Software Engineering course serves as the cornerstone of the Bachelor of Science
▲
in Software Engineering program, providing first-semester students with a comprehensive introduction
to the field. This course emphasizes the importance of systematic processes and methodologies essential
for developing reliable, efficient, and maintainable software systems. Students will gain an understand-
ing of the entire software development lifecycle, including requirement analysis, design, implementation,
testing, and maintenance. The course also covers fundamental design principles, coding standards, and
software testing techniques, equipping students with the necessary skills to ensure software quality and
manage complexity. Additionally, the course introduces basic project management concepts and high-
lights the significance of teamwork in software development projects. By establishing a strong foundation
in these core principles, students will be well-prepared to tackle more advanced topics and real-world
challenges in their subsequent studies and professional careers.
3 Course Content
History, Nature, Relation of Software Engineering to Other Discipline; Software Development Life Cy-
cle: Stages, SDLC Models(Waterfall, Iterative, V-Model, Spiral, Agile etc.), Software Prototyping, Software
Requirement Analysis: Types of Requirements, Interview Process, User Story, Use Cases, Data Flow Di-
agram, Activity Diagrams, Sequence Diagram; Teams and Communication: Working Solo vs as a Team,
Team Formation, Establish a collaboration process, Running a meeting, Divide work and integrate, Knowl-
edge Sharing, Resolve Conflicts, Interview Process; Risk and Mistakes Management: Internal vs. External
Risk, Levels of Risk Management, Risk Analysis, Risk Prioritization, Risk Control, DECIDE Model, The
Swiss cheese model, OODA Loop, Generalization; Software Quality in Practice: Internal vs External Qual-
ity, Software Entropy, Technical Debt, Quality Practices(Trunk-Based Development, Squash and Merge),
Continuous Integration and Deployment, Automation in Testing, Issue Reporting, Stack Tree, Assertion,
Debugging, Unit Testing, Test Coverage etc.), Software Design and Architecture, Software Testing: Auto-
mated Testing, Manual Testing, Black-Box Testing, White-Box Testing, Stress Testing, Profiling; Software
Analysis: Static vs Dynamic Analysis, Linters, Pattern Based Static Analysis; Agile Methodology: Princi-
ples of Agile Software Development, Practices, Scrum Process, Extreme Programming; Secured Software
© Department of Software Engineering, GDU Page 1 of 4
Basic Principles of Software Engineering/L1 & T1
Development: Vulnerabilities, Attack Surfaces, Mitigations Strategies, Secured Design Principles, Threat
Modeling, STRIDE;
4 Course Objectives
By the end of this course, students will be able to:
■ Elicit, describe, and evaluate a system’s requirements and utilize metrics and measures to develop
software.
■ Plan the fundamental steps and oversee a software project.
■ Develop skills in using tools and techniques for developing commercial software in practice.
5 Course Outcomes
Domain Assessment
CO CO Description PO Weight WK WP EA
(LoBT) Methods
Written
Understand the key concepts
exams; viva
and features of a program- Cognitive
CO1 PO1 40% WK1,WK3 voce; pre-
ming language to develop (C1)
sentation;
software.
assignment
Written
Apply the modern tools of
exams; viva
programming languages to Cognitive
CO2 PO3 50% WK4 voce; pre-
construct programming solu- (C2)
sentation;
tions to simple problems.
assignment
Analyze a complex problem Written
and create a sustainable solu- exams; viva
Affective
CO3 tion applying the features of PO12 10% WK5 voce; pre-
(A2)
programming language prin- sentation;
ciples. assignment
Legend:
CO: Course Outcome PO: Program Outcome
WK: Knowledge Profile WP:Complex Problem Solving
EA: Complex Engineering Activities Level of Bloom’s Taxonomy
6 Lecture/Activity Plan
Week Topic Course
Outcomes
1 Overview: History, Nature, Relation of Software Engineering to CO1
Other Discipline
2 Software Development Life Cycle: Stages, SDLC Models (Water- CO2
fall, Iterative)
3 SDLC Models (V-Model, Spiral, Agile etc.), Software Prototyping CO2
4 Agile Methodology: Principles of Agile Software Development, CO2
Practices, Scrum Process, Extreme Programming
© Department of Software Engineering, GDU Page 2 of 4
Basic Principles of Software Engineering/L1 & T1
Week Topic Course
Outcomes
5 Software Requirement Analysis: Types of Requirements, Inter- CO3
view Process, User Story
6 Use Cases, Data Flow Diagram CO3
7 Activity Diagrams, Sequence Diagram, State Machine Diagram CO3
Mid term examination
8 Teams and Communication: Working Solo vs as a Team, Team CO3
formation, Establish a collaboration process, Running a meeting,
Divide work and integrate, Knowledge Sharing, Resolve Con-
flicts, Interview Process
9 Software Quality in Practice: Internal vs External Quality, Soft- CO3
ware Entropy, Technical Debt, Quality Practices (Trunk-Based
Development, Squash and Merge), Software Design and Archi-
tecture
10 Software Testing: Automated Testing, Manual Testing, Black-Box CO3
Testing, White-Box Testing, Stress Testing, Profiling
11 Continuous Integration and Deployment, Automation in Testing, CO2
Issue Reporting, Stack Tree, Assertion, Debugging, Unit Testing,
Test Coverage etc.
12 Risk and Mistakes Management: Internal vs. External Risk, Lev- CO2
els of Risk Management, Risk Analysis, Risk Prioritization, Risk
Control, DECIDE Model, The Swiss cheese model, OODA Loop,
Generalization
13 Software Analysis: Static vs Dynamic Analysis, Linters, Pattern CO3
Based Static Analysis
14 Secured Software Development: Vulnerabilities, Attack Surfaces, CO3
Mitigations Strategies, Secured Design Principles, Threat Model-
ing, STRIDE
7 Text and Reference Materials
T Textbook:
– Sommerville, I. (2011). Software Engineering. Pearson, 9th Edition.
– Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall,
1st Edition.
R References:
– Pressman, R. S. (2014). Software Engineering: A Practitioner’s Approach. McGraw-Hill Edu-
cation, 8th Edition.
– Brooks, F. P. (1995). The Mythical Man-Month: Essays on Software Engineering. Addison-
Wesley, Anniversary Edition.
© Department of Software Engineering, GDU Page 3 of 4
Basic Principles of Software Engineering/L1 & T1
Course Outline - Lab
1 General Information
Faculty Faculty of Software and Machine Intelligence
Department Department of Software Engineering (SE)
SESSIONAL
Programme Bachelor of Science in Software Engineering
SE 104
Level & Term L1 & T1
Course Title Basic Principles of Software Engineering Sessional
Course Code SE 104
Course Credit 1 units
Contact Hours 2/week
Type of Course CORE
Prerequisite Course None
2 Description
Laboratory works will be specifically designed to align with the concepts covered in SE 103, offering stu-
dents an opportunity to directly apply and test the theories learned in class. This includes implementing
techniques, developing software projects, conducting experiments, and analyzing data, thereby solidifying
their understanding and enhancing their practical skills.
© Department of Software Engineering, GDU Page 4 of 4