DRAFT [2016-2017][KR][en] at 2023-06-02 13:24:01 +0300
Software Engineering Practices
© 2006—2023 Sumy State University
Contents
About the course
Introduction
Objectives and tasks of the course
Algorithm
Information about the author of the course
References and Bibliography
Chapter 1 - Introduction to Software Engineering
Unit 1 Software Life Cycle Models
Lecture
1.1 What is Software Engineering?
1.2 Phases in the Development of Software
1.3 Waterfall SDLC Model
1.4 Incremental SDLC Model
1.5 Iterative SDLC model
1.6 RAD SDLC model
1.7 Agile SDLC model
1.8 Spiral SDLC model
Exercises
Test for Unit 1
Unit 2 Planning and Managing the Project in Software Engineering
Lecture
2.1 Planning a Software Development Project
2.2 Controlling a Software Development Project
2.3 Software Product Lines
2.4 Configuration Management
2.4.1 Tasks and Responsibilities
2.4.2 Configuration Management Plan
2.5 Team Management
2.5.1 Coordination Mechanisms
2.5.2 Management Styles
Exercises
Test for Unit 2
Practice report 1 for Unit 2
Practice report 2 for Unit 2
Discussion for Unit 2
Chapter 2 Some Processes of Software Engineering Life Cycle
Unit 3 Requirements Engineering
Lecture
3.1 Requirements analysis
3.2 Requirements types
3.3 Requirements elicitation techniques
Exercises
Practice report 1 for Unit 3
Practice report 2 for Unit 3
Unit 4 Software Modeling
Lecture
4.1 Classic Modeling Techniques
4.1.1 Entity-Relationship Modeling
4.1.2 Finite State Machines
4.1.3 Data Flow Diagrams
4.1.4 Class-Responsibility-Collaborators Cards
4.2 The Unified Modeling Language
4.2.1 The Use Case diagram
4.2.2 The Class Diagram
4.2.3 The State Machine Diagram
4.2.4 The Sequence Diagram
4.2.5 The Communication Diagram
4.2.6 The Component Diagram
Exercises
Practice report for Unit 4
Discussion for Unit 4
Unit 5 Software Design
Lecture
5.1 Design issues
5.2 Classical Design Methods
5.3 Object-Oriented Analysis and Design Methods
5.4 Architecture design
5.5 Design Patterns
5.6 Design Documentation
5.7 Verification and Validation
5.8 Selection of Design Method
Exercises
Discussion for Unit 5
Unit 6 Software Quality Assurance
Lecture
6.1 Management of Software Quality
6.1.1 A quality attributes
6.1.2 Standards pertaining to software quality
6.2 Software Testing
Exercises
Discussion for Unit 6
Test for Unit 6
Unit 7 Software Maintenance
Lecture
7.1 Maintenance Issues
7.2 Software Evolution
7.3 Reverse Engineering and Refactoring
7.4 Quality Issues
Exercises
Test for Unit 7
Chapter 3 - Principles and Methodologies of Software Engineering
Unit 8 Rational Unified Process and Capability Maturity Model
Lecture
8.1 The Rational Uniļ¬ed Process
8.2 The Capability Maturity Model
Exercises
Test for Unit 8
Discussion for Unit 8
Practice report for Unit 8
Unit 9 Agile Methodologies
Lecture
9.1 Agile Methods
9.1.1 Prototyping
9.1.2 Extreme Programming
9.1.3 Scrum
The Scrum Team
Scrum Events
9.2 Agile team
Exercises
Test for Unit 9
Practice report for Unit 9
Discussion for Unit 9
Unit 10 Software Cost Estimation
Lecture
10.1 COCOMO
10.2 Function Point Analysis
10.3 COCOMO II
Exercises
Test for Unit 10
Practice report for Unit 10
Course paper
Assignment description
The purpose of the course project
General program requirements
General paper requirements
Variants
References
Execution guide
Guidance
Grading
List of Requirements
Test Case description
References
Individual assignment report
Project Charter short template
Final Quizz
Final Quizz
Index