This course offers an overview of the fundamental concepts and principles behind existing and developing approaches, tools, and techniques for the cost-effective engineering of high-quality software systems at the undergraduate level. Software engineering encompasses all facets of software development, from the earliest stages of system specification to the maintenance of the system after it has been implemented. This encompasses tasks such as software project management and the creation of tools, methods, and theories that support software development.
Prerequisite(s)
Although there is no formal prerequisite for this course, students are expected to have experience on object-oriented programming languages.
Corequisite(s)
-
Special Requisite(s)
-
Instructor(s)
Assoc. Prof. Akhan Akbulut
Course Assistant(s)
Res. Assis.Büşra Kocaçınar
Schedule
Theory: Monday 11:00 to 12:45 and 13:00 to 14:45
Lab: Thursday All Day
Office Hour(s)
Monday from 15:00 to 16:00 or by appointment. If you need an appointment, please send an email at least 24 hours before the requested time.
Teaching Methods and Techniques
Lecture, Application and Term Project: Students work in teams of 5-7 students designing and implementing a large software system taken through the specification, design, integration and implementation phases.
Principle Sources
Required: Software Engineering, 10/E, Ian Sommerville, ISBN: 9780133943030, Pearson, 2015
Other Sources
Recommended: Code complete. McConnell S. ISBN: 0735619670, Pearson, 2004.
Recommended: Clean code: a handbook of agile software craftsmanship. Martin RC. ISBN: 0132350882 Pearson, 2009.
Course Schedules
Week
Contents
Learning Methods
1. Week
Introduction to Software Engineering,
ACM/IEEE Code of Ethics
Lab Introduction
2. Week
The Software Process
Forming Groups and assigning Project Topics, Assign Roles and Modules
3. Week
Agile Software Development
Decide Development Method Activity Assignment for each group member
4. Week
Requirements engineering
Preparing Interview Question and Project Proposal, Document Conventions Activity Assignment for each group member
5. Week
System modeling
Designing user Interface, Input and Output Design, Menu hierarchy Activity Assignment for each group member
6. Week
Architectural Design
Drawing Architectural Design and Specifying Functional and Non-functional requirement Activity Assignment for each group member
7. Week
Object-oriented design using the UML
Drawing Use Case Diagram, Sequence, State Activity Assignment for each group member
8. Week
Design and Implementation
Application Development Rapid Prototype Demo I: Students demo their current program and get immediate feedback on quality and future direction Activity Assignment for each group member
9. Week
Software testing
Application Development and Data Design, Writing Test Scenarios Activity Assignment for each group member
10. Week
Software evolution
Application Development Rapid Prototype Demo II: Students demo their current program and get immediate feedback on quality and future direction Activity Assignment for each group member
11. Week
Distributed software engineering
Application Development Activity Assignment for each group member
12. Week
Service-oriented Architecture
Final Demo: Students demo their current program and get immediate feedback on quality and future direction. Activity Assignment for each group member
13. Week
Project Management, Risk Management
Application Development Installation and Evaluation Activity Assignment for each group member
14. Week
Maintenance
Project Presentation
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
25
Quizzes
2
10
Project(s)
1
40
Final Exam
1
25
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Can design and implement complex software solutions using state of the art software engineering techniques.
LO-2
Have working knowledge of CASE tools, source control, and project management.
LO-3
Have deep knowledge of the technologies they used for implementing their project.
LO-4
Know how to test and document software.
LO-5
Are capable of working as part of a software team and develop significant projects under a tight deadline.
LO-6
Are able to present their work in a professional manner.