IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3



Similar documents
IT3205: Fundamentals of Software Engineering (Compulsory)

How To Understand Software Engineering

IT2404 Systems Analysis and Design (Compulsory)

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Karunya University Dept. of Information Technology

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

IT4203 Information Technology Project Management (Compulsory)

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

I219 Software Design Methodology

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

IT4304 Rapid Software Development (Optional)

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. COURSE CURRICULUM COURSE TITLE: FUNDAMENTALS OF SOFTWARE DEVELOPMENT (Code: )

Course Overview CEN 5035 Software Engineering

Course Computer Science Academic year 2012/2013 Subject Software Engineering II ECTS 6

Plan-Driven Methodologies

Unit 1 Learning Objectives

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

CS6403-SOFTWARE ENGINEERING UNIT-I PART-A

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Software Engineering Question Bank

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

CS4507 Advanced Software Engineering

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

توصيف مقرر دراسي Description Course

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

IT3503 Web Development Techniques (Optional)

Software Engineering. Introduction. Lecturer: Giuseppe Santucci

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

The most suitable system methodology for the proposed system is drawn out.

Software Development Life Cycle (SDLC)

How To Model Software Development Life Cycle Models

Quality Assurance Training Program

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

3C05: Unified Software Development Process

To introduce software process models To describe three generic process models and when they may be used

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Elite: A New Component-Based Software Development Model

Requirements Engineering Process

Syllabus. REQB Certified Professional for Requirements Engineering. Foundation Level

Software Development Methodologies

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

IT Information Technology Project Management (Compulsory)

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

IT1104- Information Systems & Technology (Compulsory)

Component Based Development in Software Engineering

Basic Unified Process: A Process for Small and Agile Projects

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Introduction to Software Engineering. Week 1

IT1105- Information Systems & Technology

Software Development: The Waterfall Model

CS314: Course Summary

An Integrated Quality Assurance Framework for Specifying Business Information Systems

Verification and Validation of Software Components and Component Based Software Systems

Title: Topic 3 Software process models (Topic03 Slide 1).

Chakra Vs Spiral Model - A Practical Approach

Artificial Intelligence BEG471CO

Introduction to Software Engineering (ESE : Einführung in SE)

Enhanced Funding Requirements: Seven Conditions and Standards

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Information Systems Development Process (Software Development Life Cycle)

NOTES SUBJECT: SOFTWARE ENGINEERING SUBJECT CODE: MCA-513 BRANCH: MCA SEM:5 th SESSION: Evaluation scheme: Subject Code MCA- 513

Software Development Process by a Logical Approach to Quantify the Throughput by Balancing Time and Cost

A Case study based Software Engineering Education using Open Source Tools

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Development Methodologies

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Syllabus. REQB Certified Professional for Requirements Engineering. Advanced Level Requirements Manager

Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Sistemi ICT per il Business Networking

Lecture 3 Software Development Processes

How To Understand The Software Process

2. Analysis, Design and Implementation

A Capability Maturity Model (CMM)

Software Production and Lifecycle Models

CREDENTIALS & CERTIFICATIONS 2015

Topics. Software development invariants. Stakeholders. The accidents of software development. The essence of software development

A Comparison of SOA Methodologies Analysis & Design Phases

7 Component-based Development Process and Component Lifecycle

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Surveying and evaluating tools for managing processes for software intensive systems

Software Design Models, Tools & Processes *

IT3504: Web Development Techniques (Optional)

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

CMSC 435: Software Engineering Course overview. Topics covered today

Software Engineering Reference Framework

What is a life cycle model?

Transcription:

Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 INTRODUCTION This course is designed to provide the students with the basic competencies required to identify requirements, document the system design and maintain a developed system. It presumes a general understanding of computers and programming which are covered in the first and second semester of the degree. Software engineering is a subject that emerged recently as a result of the need to manage software projects that are rising in demand day by day. Software is developed in diverse areas and the fact that a systematic approach is required to manage their development spawns this interesting subject of study. CREDITS: 04 LEARNING OUTCOME After successfully completing this module the student will be able to; explain the software engineering principles and techniques that are used in developing quality software products apply software engineering principles and techniques appropriately to develop moderately complex software system OUTLINE OF SYLLABUS Topic Minimum number of hours Introduction 06 Software Process Models 10 Requirements Analysis & Specification 10 Design 12 Coding 04 Testing 07 Maintenance 04

Computer Aided Software Engineering (CASE) 02 Software quality assurance 02 Managing Software Projects 03 Total for the Subject 60 SYNOPSIS/OVERVIEW Stakeholders always expect to build software by avoiding bad things that prowl in the shadow of failed efforts. Therefore it has become a necessity to follow a systematic, disciplined, quantifiable approach such as software engineering that includes designing and developing disciplines. This course is designed to teach the students the software developing process that includes requirements Analysis & Specification, designing, coding, testing and maintenance. Talk about different software engineering process models to identify the most appropriate software process model for a given problem. Further the students will learn basic software engineering principles such as software quality assurance. PEDAGOGICAL FRAMEWORK This course is delivered through video lectures, teacher s notes and learning activities. You have to submit your observations to databases in the LMS and participation in forum discussions to learn collaboratively. EXPECTATIONS/EXAMINATIONS/REQUIREMENTS The learners are expected to obtain knowledge and master necessary skills to apply software engineering principles and techniques when developing quality software products or a software system. A practice quiz is provided to the learner at the end of the content of each section and two assignments are provided one at the end of the first half of the syllabus and the other at the end of the full syllabus. Marks for the activities and practice quizzes are not counted but marks for the assignments are tracked by the LMS and a pass grade is issued. Obtaining pass grades for the two assignments and Final Exam are mandatory for the completion of Semester 3.

REQUIRED MATERIALS Main Reading Ref. 1: Software Engineering by Ian Sommerville, 7th edition, Addison-Wesley, 2006. Ref. 2: Software Engineering: A practitioner's approach by Roger S. Pressman, 6th edition, McGraw-Hill International edition, 2005. Web references Ref. 3: http://portal.acm.org/citation.cfm?id=1159393] Ref. 4: http://www.vnunet.com/vnunet/news/2117315/air-traffic-system-already-obsolete DETAILED SYLLABUS Section 1: Introduction (06 hrs.) Describe what software is, different types of software and software quality attributes Describe with the problems associated with software and software development Define what software engineering is and explain why it is important State some professional issues related to software development 1.1. Software 1.1.1. What is software? [Ref.1: pg. 27-28] 1.1.2. Types of software [Ref.2: pg. 40-41] 1.1.3. Characteristics of Software [Ref.2: pg. 36-39] [Ref.4] 1.1.4. Attributes of good software [Ref.1: pg. 34-35] 1.2. Software Engineering 1.2.1. What is software engineering? [Ref.1: pg. 29] 1.2.2. Software engineering costs [Ref.1: pg. 31-33] 1.2.3. What are the key challenges facing software engineering? [Ref.1: pg. 35-36] 1.2.4. Systems engineering & software Engineering [Ref.1: pg. 29-30; Ref. 2: pg. 154-155] 1.2.5. Professional Practice [Ref.1: pg. 36-39; Ref.2: pg. 128-149]

Section 2: Software Development Process Models (10hrs.) Describe different process models used for software development Teach to identify the most appropriate software process model for a given problem 2.1. The generic software lifecycle [Ref.1: pg. 30] 2.2. What is a process model? [Ref.1: pg. 30-31, 87-88] 2.3. The waterfall model [Ref.1: pg. 88-90; Ref. 2: pg. 79-80] 2.4. Prototyping model [Ref.1: pg. 90-91; Ref.2: pg. 83-85] 2.5. Component-Based Software Engineering (CBSE) [Ref.1: pg. 418-420] 2.6. Incremental development [Ref.1: pg. 93-95; Ref.2: pg. 80-81] 2.7. Rational Unified Process (RUP) [Ref.1: pg. 104-107] 2.8. Spiral model [Ref.1: pg. 95-96; Ref. 2: pg. 86-88] 2.9. Agile methods [Ref.1: pg. 418-420] 2.10. Extreme programming [Ref.1: pg. 420-427] 2.11. Rapid Application Development (RAD) [Ref.1: pg. 427-431; Ref.2: pg. 81-83] Section 3: Software Requirement Analysis and Specification (10hrs.) Identify the types of requirements, which should be captured in a software project Describe and apply different requirement analysis and specification techniques Prepare a software requirement specification (SRS) for a given software problem 3.1. System and software requirements [Ref. 2: pg. 155-157] 3.2. Types of software requirements 3.2.1. Functional and non-functional requirements [Ref.1: pg. 141-147] 3.2.2. Domain requirements [Ref. 1: pg. 147-149] 3.2.3. User requirements [Ref. 1: pg. 149-151] 3.3. Elicitation and analysis of requirements 3.3.1. Overview of techniques [Ref. 1: pg. 168-171] 3.3.2. Viewpoints [Ref. 1: pg. 171-174] 3.3.3. Interviewing [Ref. 1: pg. 174-175] 3.3.4. Scenarios [Ref. 1: pg. 175-176] 3.3.5. Use-cases [Ref. 1: pg. 176-178]

3.3.6. Ethnography [Ref. 1: pg. 179-180] 3.4. Requirement validation [Ref. 1: pg. 180-182] 3.5. Requirement specification [Ref.1: pg. 158-161] 3.6. Feasibility [Ref. 1: pg. 166-168] Section 4: Software Design (12hrs.) Describe the important software design issues and concepts Compare different approaches to software design Apply suitable design approaches for a problem 4.1. Design concepts 4.1.1. Abstraction [Ref. 2: pg. 265] 4.1.2. Architecture [Ref. 2: pg. 265-266] 4.1.3. Patterns [Ref. 2: pg. 266] 4.1.4. Modularity [Ref. 2: pg. 267-268] 4.1.4.1. Cohesion [Ref. 2: pg: 335-336] 4.1.4.2. Coupling [Ref. 2: pg: 337-338] 4.1.5. Information hiding [Ref. 2: pg. 268] 4.1.6. Functional independence [Ref. 2: pg. 268-269] 4.1.7. Refinement [Ref. 2: pg. 269] 4.2. Architectural design 4.2.1. Repository model [Ref. 1: pg: 269-271] 4.2.2. Client-server model [Ref. 1: pg. 271-272, 292-297] 4.2.3. Layered model [Ref. 1: pg. 272-274] 4.2.4. Modular decomposition [Ref. 1: pg. 274-275] 4.3. Procedural design using structured methods [Ref. 2: pg. 347-348] 4.4. User Interface design 4.4.1. Human-computer interaction [Ref. 1: pg. 389-392] 4.4.2. Information presentation [Ref. 1: pg. 392-398] 4.4.3. Interface evaluation [Ref. 1: pg. 405-407] 4.5. Design notations [Ref. 1: pg. 347-353]

Section 5: Coding (04hrs.) Select appropriate programming language and development tools for a given problem Identify the features of a good program, good programming practices and program documentation 5.1. Programming languages and development tools [Ref. 3] 5.2. Selecting languages and tools [Ref. 3] 5.3. Good programming practices [Ref. 2: pg. 144-146] Section 6: Testing (07hrs.) State the software testing process and required documentation Explain the different software testing techniques and integration strategies Design test cases and write test programs for a given simple software problem Describe the code verification techniques Write codes for a simple software project using good programming practices 6.1. Verification and validation [Ref. 1: pg. 538-541] 6.2. Techniques of testing 6.2.2. Black-box and White-box testing [Ref. 2: pg. 423-441] 6.2.3. Inspections [Ref. 1: pg. 543-549] 6.3. Levels of testing 6.3.1. Unit testing [Ref. 1: pg. 569-571] 6.3.2. Integration Testing [Ref. 1: pg. 563-565; Ref.2: pg. 397-401] 6.3.3. Interface testing [Ref. 1: pg. 571-573] 6.3.4. System testing [Ref. 2: pg. 408-411] 6.3.5. Alpha and beta testing [Ref. 2: pg. 406-407] 6.3.6. Regression testing [Ref. 2: pg. 401] 6.4. Design of test cases [Ref. 1: pg. 573-585]

Section 7: Software Maintenance (04hrs.) Describe the types of software maintenance Describe the software maintenance process Describe activities of configuration management 7.1. Evolving nature of software [Ref. 1: pg. 512-514] 7.1.2. Different types of maintenance [Ref. 1: pg. 514-520] 7.1.3. Re-engineering [Ref. 1: pg. 523-526] 7.2. Configuration Management (CM) 7.2.1. Importance of CM [Ref. 1: pg. 712-714] 7.2.2. Configuration items [Ref. 1: pg. 715-716] 7.2.3. Versioning [Ref. 1: pg. 720-727] Section 8: Computer Aided Software Engineering (CASE) (02hrs.) Identify the need for use of appropriate CASE tool for software development Describe the features of a CASE tool 8.1. Overview of CASE approach [Ref. 1: pg. 107-108] 8.2. Examples of CASE tools [Ref. 1: pg. 108-111] Section 9: Software Quality Assurance (02hrs.) Describe the importance of software quality Distinguish the difference between product quality and process quality Describe some important quality standards with respect to software 9.1. Quality management activities [Ref. 1: pg. 664-666] 9.2. Product and process quality [Ref. 1: pg. 666-667] 9.3. Standards [Ref. 1: pg. 667-674] 9.3.1. ISO9000 [Ref. 1: pg. 670-671] 9.3.2. Capability Maturity Model (CMM) [Ref. 2: pg. 59-63]

Section 10: Managing Software Projects (03hrs.) State the requirement of managerial control of the development process Describe the main phases of software project management Describe project planning and project scheduling activities in detail 10.1. Need for the proper management of software projects [Ref. 1: pg. 115-116] 10.2. Management activities 10.2.1. Project planning [Ref.1: pg. 118-121] 10.2.2. Estimating costs [Ref.1: pg. 635-636, 660] 10.2.3. Project scheduling [Ref. 1: pg. 121-126] 10.2.4. Risk management [Ref. 1: pg. 126-133] 10.2.5. Managing people [Ref. 1: pg. 614-631]