Lesson plan / SOFTWARE ENGINEERING ORIENTATION

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)
Course Assistant

Purpose and Content

The aim of the course To give the students a general perspective about software engineering study.
Course Content Software life cycle models; project management; requirement engineering; requirements definition and specification; software prototyping; formal specification; algebraic specification; software design; object-oriented design; function-oriented design; real-time systems, user interface design; software reliability; software re-use; safety-critical software; verification and validation; software engineering environment; managing people; software cost estimation; quality assurance; software maintenance; configuration management; software re-engineering.

Weekly Course Subjects

1introduce software engineering and to explain its importance To set out the answers to key questions about software engineering
2introduce software process models describe three generic process models and when they may be used describe outline process models for requirements engineering, software development, testing and evolution explain the Rational Unified Process model introduce CASE technology to support software process activities
3explain the main tasks undertaken by project managers introduce software project management and to describe its distinctive characteristics discuss project planning and the planning process show how graphical schedule representations are used by project management
4explain the importance of software change management describe key change management activities - planning, change management, version management and system building discuss the use of CASE tools to support change management processes
5introduce the concepts of user and system requirements describe functional and non-functional requirements explain how software requirements may be organised in a requirements document
6explain why the context of a system should be modelled as part of the RE process describe behavioural modelling, data modelling and object modelling introduce some of the notations used in the Unified Modeling Language (UML) To show how CASE workbenches support system modelling
7introduce architectural design and to discuss its importance explain the architectural design decisions that have to be made introduce three complementary architectural styles covering organisation, decomposition and control discuss reference architectures are used to communicate and compare architectures
8introduce an object-oriented design process for developing OO software. develop a case study (based on a weather monitoring system) that illustrates some of the models developed as part of an OO process. illustrate how an OO approach can lead to systems that can evolve in response to new requirements.
9explain the benefits of software reuse and some reuse problems discuss several different ways to implement software reuse explain how reusable concepts can be represented as patterns or embedded in program generators discuss COTS reuse To describe the development of software product lines
10discuss the distinctions between validation testing and defect testing describe the principles of system and component testing describe strategies for generating system test cases understand the essential characteristics of tool used for test automation
11Complete test coverage of a class involves Testing all operations associated with an object; Setting and interrogating all object attributes; Exercising the object in all possible states. Inheritance makes it more difficult to design object class tests as the information to be tested is not localised.
12explain the principle of separation of concerns in software development introduce the fundamental ideas underlying aspect-oriented development show how an aspect-oriented approach can be used at all stages of development discuss problems of testing aspect-oriented systems
13introduce issues that must be considered in the specification and design of secure software discuss security risk management and the derivation of security requirements from a risk analysis To describe good design practice for secure systems development. To explain the notion of system survivability and to introduce a method of survivability analysis.
14Overview

Resources

1-Fundementals of Software Engineering, Sommersville