You are on page 1of 8


of Karnataka, Department of Technical Education Diploma in Computer Science & Engineering Fourth Semester Subject: SOFTWARE ENGINEERING Contact Hrs / week: 4 Total hrs: 64 Table of Contents Chapter No 1 2 3 4 5 6 7 8 Topics The Software Problem Software Process Software Requirements Analysis and Specifications Software Architecture Planning a Software Project Design Coding Testing Seminars and Guest Lectures from industry and institutes Test Total Detailed Contents 1 1.1 1.2 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4 The Software Problem Cost, Schedule and quality Scale and Change Software Processes Process and Project Component Software Processes Software development Process Models Waterfall Prototyping Iterative development Rational Unified Process Time boxing Model Extreme programming and Agile processes Using process model in a project Project Management Process Hours 02 10 08 06 06 10 06 08 05 03 64 Marks 05 26 20 16 16 26 16 20


3 3.1 3.2 3.3 3.3.1 3.3.2 3.3.3 3.4

3.5 3.6 4 4.1 4.2 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.5 4.6 5 5.1 5.1.1. 5.1.2 5.2 5.3 5.4 5.4.1 5.4.2 5.4.3 5.4.4 5.5 5.5.1

Software Requirements Analysis and Specifications Value of good SRS Requirement process Requirement Specification Desirable Characteristics of an SRS Components of an SRS Structure of a Requirements Documents Functional Specification with use cases Basics Examples Extensions Developing use cases Other Approaches for Analysis Data Flow Diagram Entity Relationship Diagrams Validation Software Architecture Role of Software Architecture Architecture Views Component and Connector view Components Connectors Example Architecture styles for C&C View Pipe and Filter Shared data Style Client Server style Some other styles Documenting Architecture Design Evaluating Architectures Planning a Software Project Effort Estimation Top-Down Estimation Approach Bottom-Up Estimation Approach Project Schedule and Staffing Quality Planning Risk Management Planning Risk Management Concepts Risk Assessment Risk Control A Practical Risk Management Approach Project Monitoring Plan Measurements

5.5.2 5.6 6 6.1 6.1.1 6.1.2 6.1.3 6.2 6.2.1 6.2.2 6.2.3 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.4 6.4.1 6.4.2 6.5 7 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.2 7.2.1 7.2.2 7.2.3 7.3 7.3.1 7.3.2 7.4 7.4.1 7.4.2 7.5 7.5.1 7.5.2 7.5.3 8 8.1

Project Monitoring and tracking Detailed Scheduling Design Design Concepts Coupling Cohesion The Open-Closed Principle Function Oriented Design Structure Charts Structured Design Methodology Example Object Oriented Design OO Concepts Unified Modeling language (UML ) A Design Methodology Examples Detailed Design Logic/Algorithm Design State Modeling of Classes Verification Coding Programming Principles and Guidelines Structured Programming Information Hiding Some Programming Practices Coding Standards Incrementally Developing Code An incremental coding process Test Driven development Pair Programming Managing Evolving Code Source Code Control and Build Refactoring Unit Testing Testing procedural units Unit testing of Classes Code Inspection Planning Self review Group review meeting Testing Testing Concept

8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.1 8.2.2 8.2.3 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.4 8.4.1 8.4.2 General Objectives : 1 2 3 4 5 6 7 8

Error, Fault and Failure Test Case, Test Suite and Test Harness Psychology of Testing Levels of Testing Testing Process Test Plan Test Case Design Test Case Execution Black Box Testing Equivalence Class Partitioning Boundary value Analysis Pair Wise Testing Special Cases State based testing White Box testing Control Flow Based Criteria Test Case Generation and Tool Support

Know how costs, schedule and quality drive a software project Learn the role of software process and a process model in a project Understand the role of SRS in a project and how requirements are validated Understand the software architectural views Learn planning and estimation of a software project Know the key design concepts of software engineering Learn the structured code inspection process Learn how testing is planned and testing done

Specific Objectives: 1 The Software Problem Differentiate between a student software and an industrial-strength software Learn the software quality attributes Learn the additional software quality attributes : Scale and Change Software Processes Define Process, Project, Process Model Learn the components of software processes Explain different Software Development Process Models Illustrate temporal relationship between development and management process Software Requirement Analysis and Specification Learn the value of Good SRS Explain the tasks involved in the requirement process

Appraise the characteristics of a SRS Explain the components of SRS Describe the general structure of SRS Learn the functional specification with use cases with examples Learn the levels of abstraction used for developing Use cases Explain DFD , ERD Learn how a SRS should be validated Software Architecture Appraise the role of software architecture Discuss architectural views Explain component and connector view Learn various Architecture Styles for C&C view Learn Documenting Architecture Design and Evaluation Planning a Software Project Learn how to estimate effort and schedule for the project to establish project goals and mile stones and team size How to establish quality goals for the project and prepare a quality plan Identify high-priority risk that can threaten the success of the project and plan for their mitigation How to plan for monitoring a project using measurements to check if a project is progressing as per plan How to develop a detailed task schedule for the overall estimates and planning task Design Identify the key design concepts Learn the structure chart notation for expressing the structure of a function oriented system Learn key concepts related to OO and UML that can be used to express an OOD Learn the guidelines for making a detailed design Learn to verify a design Coding Know the programming principles and guidelines Appraise coding standards Learn the effective processes that developers use for incremental developing code Explain how to manage evolving code by using proper source code control and refactoring Explain unit Testing Learn the process of code inspection Testing Learn the concepts and definition relating to testing Appraise how testing is planned and how unit test is done Learn to test case selection using black box and white box testing approaches

1. Software Engineering A Precise Approach, Pankaj Jalote, edition 2010, Wiley India,

ISBN: 9788126523115. References: 1. Software Engineering A Practitioners Approach, Roger S Pressman, 2010, Tata McGraw Hill Publishing Co Ltd, ISBN 9780070701137 2. Software Engineering, Sajan Mathew, 2009 Reprint, S Chand publications

Govt. of Karnataka, Department of Technical Education Diploma in Computer Science & Engineering Fourth Semester Subject: Software Engineering Max. Marks: 100 Model Question Paper Note: 1. Section I is compulsory. 2. Answer any TWO questions from each remaining Sections. Section - I 1 a. i. ii. iii. iv. v. b. Fill in the blanks ___________ is a critical activity in software development ___________ are commonly used during problem analysis A _________ connects a client to a server. A testing frame work is also called as ______________ Write a short note on white box testing Section II 2. 3 4 a) Define Software quality attributes b) Explain with a neat diagram the components of software processes a) Explain any one software development process mode? b) Which is more important the process or the product? Why? a) Explain the desirable Characteristics of SRS b) Write a short note on DFD Section-III 5 6 a) What is requirement analysis? Explain briefly b) What is software architecture a) What are the steps taken for avoiding, monitoring and managing risk 10 5 10 5 10 10 5 10 5 5 5x1=5 Once the software is delivered and deployed it enters _____________ phase Max. Time: 3 Hours

b) Write a short note on software project planning 7. a) What is the relevance of design concept cohesion b) Explain coupling, functional dependences Section -IV 8. 9. 10. a) Explain the design concepts in software engineering b) Differentiate between flowchart and structure chart a) Write a note on information hiding b) Explain test driven development a) Explain test case execution b) Define boundary value analysis

5 5 10

10 5 5 10 10 5