Lesson plan / PRINCIPLES OF SOFTWARE ENGINEERING

Lesson Information

Course Credit 3.0
Course ECTS Credit 4.0
Teaching Language of Instruction İngilizce
Level of Course Bachelor's Degree, TYYÇ: Level 6, EQF-LLL: Level 6, QF-EHEA: First Cycle
Type of Course Compulsory
Mode of Delivery Face-to-face
Does the course require compulsory or optional work experience? Z
Course Coordinator
Instructor (s) Assoc. Prof. (Ph.D.) ILHAM HUSEYINOV
Course Assistant

Purpose and Content

The aim of the course To provide a background for software development
Course Content Software engineering issues, software processes, life cycle models; agile methods; agile project management, requirement engineering; software prototyping; software modeling types and modeling languages, software design; object-oriented design; software architectural patterns, user interface design; software re-use; software engineering environment; software design patterns, software testing methods.

Weekly Course Subjects

1To introduce software engineering and to explain its importance To set out the answers to key questions about software engineering. Consider some case studies
2To introduce software process models,To describe three generic process models and when they may be used, To describe software activities, Plan-driven and agile processes, Waterfall model, Incremental model,
3Reuse oriented software engineering methods, The requirement engineering process, Design activities.
4Software testing and validation, Software evolution, Prototyping, Incremental development, Spiral method, To explain the Rational Unified Process model.
5To introduce Agile methods, Rapid software development, Plan driven and agile development, agile method manifesto, Extreme programming, agile project management, scaling agile methods.
6To introduce concepts of user and system requirements, To describe functional and non-functional requirements, To explain how software requirements may be organised in a requirements document.
7To explain why the context of a system should be modelled as part of the RE process, To describe behavioural modelling, data modelling and object modelling, To introduce some of the notations used in the Unified Modeling Language (UML).
8To show data driven and event driven modeling, State machine models, To show how CASE workbenches support system modelling, Model driven engineering, Model driven architecture, Executable UML,
9To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made, Architecture patterns, 4+1 view model of architecture, The model-view controller pattern, Layered architecture.
10Architecture design, repository architecture, client server architecture, pipe and filter architecture, Application architectures, A case study: transaction processing system, Information System architecture, Web based IS, Language processing systems, Compiler components To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system test cases To understand the essential characteristics of tool used for test automation
11Software design and implementation, Object oriented design process, System context and interactions, Use cases, A case study: weather station,
12Design models, Subsystem models, Sequence models, State diagram, Interface specification, Design patterns and its elements, The observer pattern, Implementation, Reuse, Configuration management, Development platform tools, IDE, Deployment, Open source systems, License management
13Program testing, Software validation, Difference between validation and verification, V&V model, A model for software testing
14Overview

Resources

1-Software Engineering, 6th Edition by Ian Somerville, Addison-Wesley ISBN 0 201 39815 X