GLOBAL INSTITUTE OF TCHNOLOGY
(Department of Computer Science & Engineering) 4CS5 SOFTWARE ENGINEERING Instructor Location Mobile No. E-mail : Kapil Kumar Jhajharia : Global Institute of Technology, Jaipur : 9887541842 : kapil.jhajharia@gmail.com
Course Objectives: The objective of this course is to provide the knowledge theories, processes, methods, and techniques of building high-quality software in cost-effective ways to the students, to give an understanding of some ethical and professional issues that are important for software engineers and development of significant teamwork and project based experience. Prerequisite:
(3CS4)-OBJECT ORIENTED PROGRAMMING (3CS3)-DATA STRUCTURES & ALGORITHMS
Course Description:
This course provides an introduction to software engineering: This is a comprehensive study of the theories, processes, methods, and techniques of building high-quality software in costeffective ways. It provides knowledge of basic SW engineering methods and practices, their appropriate application, general understanding of software process models such as the waterfall and evolutionary models, project management including planning, scheduling, risk management, software requirements, the SRS document, testing and understanding of quality control.
Syllabus: Units Contents of the subject I System Analysis: Characteristics, Problems in system Development, System level project Planning, System Development Life cycle (SDLC), computer system engineering & system analysis, modeling the architecture, system specification. II
Software & its characteristics: Software Development, Process Model, Prescriptive model, The water fall model, Incremental Process Modes, Evolutionary process model, specialized process model. III Requirement Analysis: Requirement analysis tasks, Analysis principles, Software prototyping and specification data dictionary finite state machine (FSM) models. Structured Analysis: Data and control flow diagrams, control and process specification behavioral modeling, extension for data intensive applications. IV Software Design: Design fundamentals, Effective modular design: Data architectural and procedural design, design documentation, coding Programming style, Program quality, quantifying program quality, complete programming example V Object Oriented Analysis: Object oriented Analysis Modeling, Data modeling Object Oriented Design: OOD concepts and methods class and object definitions, refining operations, Class and object relationships, object modularization, Introduction to Unified Modeling Language
Learning Outcomes: At the end of the course a student will: Be able to demonstrate knowledge of the distinction between critical and non-critical systems. Have the ability to manage a project including planning, scheduling and risk assessment/management. Have an understanding of the proper contents of a software requirements document a formal specification and demonstrate proficiency in software development cost estimation
Textbook: BK 1: Software Engineering Roger S. Pressman, TMH, sixth edition.
References: BK 2: Software requirements Karl E. Wiegers BK 3: A Practical handbook of software construction Steve McConnell
Assessment: University Assessment Mid-Term Test #1 (10%) Mid-Term Test #2 (10%) University End Semester Examination (80%)
Remedial Actions Taken (For Weak Students)
Course Plan:
Unit No. Topics to be covered Introduction of System Analysis Objective Met Knowledge of basic System Analysis to develop any system
System Characteristics
knowledge of basic SW engineering methods and practices, and their
Problems in system Development
appropriate application
System level project Planning
An understanding of the role of project management including risk
planning, scheduling, 1 System Development Life cycle (SDLC) management, etc.
Computer system engineering
Knowledge of basic engineering to develop any system (the basic system
System analysis
analysis and designing)
Modeling the architecture An System specification understanding of software requirements and the SRS document.
Software characteristics
Software development, process model 2 Prescriptive model
A general understanding of software process models such as the waterfall and evolutionary models.
The water fall model
Incremental Process Model, Evolutionary process model
Specialized process models
Finite state machine (FSM) models
Structured Analysis: Data flow diagrams
flow diagrams, control
Control and process specification 3 Behavioral modeling, Extension for data intensive applications see software as a part of a larger system and be familiar with the principles of systems engineering as they are relevant to software. Design fundamentals, Effective modular design
Data architectural and procedural design
Design fundamentals, Effective modular design An understanding of different software architectural styles. Data architectural and procedural design
Document the design of the software Design documentation 4 system.
An understanding of implementation Coding Programming style issues such as modularity and coding standards. An understanding of approaches to Program quality, quantifying program quality verification and validation including static analysis, and reviews & An
understanding on quality control and Complete programming example how to ensure good quality software.
Object oriented Analysis Modeling
Data modeling An understanding of some ethical and Object Oriented Design: OOD concepts 5 professional issues that are important for software engineers & An
understanding of software evolution Methods class and object definitions, refining and related issues such as version operations management. Class and object relationships, Object modularization
Introduction to Unified Modeling Language