Undergraduate
Faculty of Engineering and Architecture
Computer Engineering
Anlık RSS Bilgilendirmesi İçin Tıklayınız.Düzenli bilgilendirme E-Postaları almak için listemize kaydolabilirsiniz.


Software Engineering

Course CodeSemester Course Name LE/RC/LA Course Type Language of Instruction ECTS
CSE6064 6 Software Engineering 2/0/2 CC English 6
Course Goals
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-1Adequate 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-2Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3Ability 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-4Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8Recognition 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-9Awareness of professional and ethical responsibility.
PO-10Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11Knowledge 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-1Can design and implement complex software solutions using state of the art software engineering techniques.
LO-2Have working knowledge of CASE tools, source control, and project management.
LO-3Have deep knowledge of the technologies they used for implementing their project.
LO-4Know how to test and document software.
LO-5Are capable of working as part of a software team and develop significant projects under a tight deadline.
LO-6Are able to present their work in a professional manner.
Course Assessment Matrix:
Program Outcomes - Learning Outcomes Matrix
 PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11