|
BIL3007 | Software Engineering | 3+0+0 | ECTS:4 | Year / Semester | Fall Semester | Level of Course | First Cycle | Status | Elective | Department | DEPARTMENT of COMPUTER ENGINEERING | Prerequisites and co-requisites | None | Mode of Delivery | Face to face, Group study | Contact Hours | 14 weeks - 3 hours of lectures per week | Lecturer | Doç. Dr. Sedat GÖRMÜŞ | Co-Lecturer | None | Language of instruction | Turkish | Professional practise ( internship ) | None | | The aim of the course: | The course aims to introduce the fundamental concepts and principles of software planning, construction, implementation and management, including various development activities and methodologies, software process models, analysis issues (i. e. user and system requirements) , design issues (i. e. architectural, interface, and component-level design) , testing issues (i. e. verification, validation) , estimation issues (i. e. cost and resource requirements) , and project metrics. |
Learning Outcomes | CTPO | TOA | Upon successful completion of the course, the students will be able to : | | | LO - 1 : | can understand how linear and iterative process models differ. | 2,3,4,12 | 1,3 | LO - 2 : | can choose the process models for a particular software project. | 2,3,4,12 | 1,3 | LO - 3 : | can create analysis models for data, function, and behavior of a software project. | 2,3,4,12 | 1 | LO - 4 : | can create design models for data, architecture, interfaces, and components of a software project. | 2,3,4,12 | 1 | LO - 5 : | can use black-box and white-box testing methods to design effective test cases. | 2,3,4,12 | 1,3 | LO - 6 : | can use software tools to manage a software project and the development process. | 2,3,4,12 | 1,3 | LO - 7 : | can understand how a distributed project development cycle works and can use distributed project development tools such as git. | 2,3,4,12 | 3 | CTPO : Contribution to programme outcomes, TOA :Type of assessment (1: written exam, 2: Oral exam, 3: Homework assignment, 4: Laboratory exercise/exam, 5: Seminar / presentation, 6: Term paper), LO : Learning Outcome | |
Software process: Process models, linear sequential model, prototyping model, RAD model, evolutionary software process models, components-based development, formal methods model. System engineering: Computer-based systems, system modeling, product engineering, requirements engineering: Requirements analysis, requirements elicitation, analysis principles, software prototyping, specification. Analysis modeling: Elements of analysis modeling, data modeling, functional modeling, behavioral modeling, mechanics of structured analysis. Design engineering: Design process, design principles, design concepts, effective modular design. Architectural design: Software architecture, data design, architectural styles. Component-level design: Graphical and tabular design notations, program design language. User interface design: Interface design models, task analysis and modeling, design activities. Software testing techniques: Testing fundamentals, white-box testing, basis path testing, control structure testing, black-box testing. Software testing strategies: Verification and validation, unit testing, integration testing, validation testing, system testing, debugging. Project management concepts: Management spectrum, software team, software scope, problem decomposition, process decomposition. Software metrics: project domain, project metrics, software measurement, metrics for software quality. Software project estimation: Software scope, human and environmental resources, decomposition techniques, empirical estimation models. Project scheduling and tracking: Basic principles, selecting software engineering tasks, timeline charts, tracking the schedule, error tracking. |
|
Course Syllabus | Week | Subject | Related Notes / Files | Week 1 | Introduction to Software Engineering and git version control. | | Week 2 | Problem definition, types of software and Software Process Models and Engineering Practices (Sustainability) | | Week 3 | Requirement Analysis, Engineering Standards and Realistic Conditions. Formation of project groups. | | Week 4 | System and Requirement analysis and an high level software architecture | | Week 5 | Steps of Requirement engineering and requirements analysis | | Week 6 | Detailed Software Architecture and UML | | Week 7 | Object Oriented Design principles: Packages, Classes and functions. | | Week 8 | Class level design | | Week 9 | Mid-term exam | | Week 10 | Function level design | | Week 11 | Safe programming approaches | | Week 12 | Debugging tools and approaches | | Week 13 | Data types and their impact on software flow | | Week 14 | Error controls and safe control structures. | | Week 15 | Term project presentations. | | Week 16 | End-of-term exam | | |
1 | Code Complete, 2nd Edition, Steve McConnell, 2004 | | |
1 | Sommerfield, I. 2004; Software Engineering, 7th ed., Addison Wesley, 784 p. | | 2 | Jalote, P. 2002; Software Project Management in Practice, Addison Wesley, 288 p. | | |
Method of Assessment | Type of assessment | Week No | Date | Duration (hours) | Weight (%) | Mid-term exam | 9 | 10/04/2013 | 2 | 25 | Homework/Assignment/Term-paper | 14 | 17/05/2013 | 15 | 25 | End-of-term exam | 16 | 27/05/2013 | 2 | 50 | |
Student Work Load and its Distribution | Type of work | Duration (hours pw) | No of weeks / Number of activity | Hours in total per term | Yüz yüze eğitim | 3 | 14 | 42 | Sınıf dışı çalışma | 2 | 14 | 28 | Arasınav için hazırlık | 5 | 1 | 5 | Arasınav | 2 | 1 | 2 | Ödev | 15 | 1 | 15 | Dönem sonu sınavı için hazırlık | 10 | 1 | 10 | Dönem sonu sınavı | 2 | 1 | 2 | Total work load | | | 104 |
|