0% found this document useful (0 votes)
73 views

Software Engineering EG2105CT Year Syllabus

This document provides an overview of a software engineering course, including its objectives, contents, and units. The course aims to guide students in theoretical and practical software development aspects. Key topics covered include introduction to software and programming, software components, characteristics of software, and types of software like system software.

Uploaded by

Dipen Tamang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Software Engineering EG2105CT Year Syllabus

This document provides an overview of a software engineering course, including its objectives, contents, and units. The course aims to guide students in theoretical and practical software development aspects. Key topics covered include introduction to software and programming, software components, characteristics of software, and types of software like system software.

Uploaded by

Dipen Tamang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Software Engineering EG2105CT Year: II

Total: 5 hours /week


Part: I Lecture: 3 hours/week Tutorial: hours/week
Practical: hours/week Lab: 2 hours/week
Course Description: This course aims to guide the students in both the theoretical and practical aspects
of developing computer solutions for real-world problems. One will study the tools and techniques used
in analysis and design of software systems, and apply those tools within a recognized software.
Course Objectives: After completing this course,
the students will be able to:
1. Introduce the theory and foundations of software engineering
2. Explain Software Project Management
3. Describe some key aspects of a software engineering process
4. Apply fact-finding and problem-solving skills
5. Determine the requirements for a software system
6. Enlist/Explain key aspects of models and processes for design of a software system
7. Apply current trends in the area of software engineering

Course Contents: Theory

Unit 1. Introduction [4 Hrs.]


1.1 Introduction to software
Software is a set of instructions, data or programs used to operate computers and execute specific tasks.
It is the opposite of hardware, which describes the physical aspects of a computer. Software is a generic
term used to refer to applications, scripts and programs that run on a device.

software, instructions that tell a computer what to do. Software comprises the entire set of programs,
procedures, and routines associated with the operation of a computer system. The term was coined to
differentiate these instructions from hardware—i.e., the physical components of a computer system. A
set of instructions that directs a computer’s hardware to perform a task is called a program, or software
program.

Software is a set of programs, which is designed to perform a well-defined function. A program is a


sequence of instructions written to solve a particular problem.

Software is a program or set of programs containing instructions that provide desired functionality. And
Engineering is the process of designing and building something that serves a particular purpose and
finds a cost-effective solution to problems.

1.2 Program Vs software


A computer program is a set of instructions that is used as a process of creating a software program by
using programming language. Software is a set of programs that enables the hardware to perform a
specific task.
1. Software :
Software, as name suggest, is simply a collection or set of programs, procedures, data or instructions to
instruct computer about what to do and are designed to perform well defined function.
2. Program :
Program, as name suggests, is simply a collection of instructions or ordered operations for computer to
perform specific function or perform particular task and achieve a specific result.
Difference between Software and Program :

Software Program
Software’s are mainly dependent on operating Programs are mainly dependent on compiler.
system.
Various categories of software includes application There are no such categories of program.
software, system software, computer
programming tools, etc.
Size of software generally ranges from megabytes Size of program generally ranges from kilobytes
(Mb) to gigabytes (Gb). (Kb) to megabytes (Mb).
Software’s are usually developed by people having Programs are usually developed by person who is
expert knowledge and experience as well as are beginner and have no prior experience.
trained in developing software and are also
referred to as software developers.
Software’s can be a program that generally runs Programs cannot be a software.
on computer.
If software’s are not present in computers, then If programs are not present in computer, then also
computer is useless. computer can function well because of operating
system.
Software’s can be downloaded on computer using Program cannot run on computer without any
internet without any need of program. software present in computer.
Features of software includes security, safety, Features of program includes reliable, cost
dependability, correctness, etc. effectiveness, maintainability, profitability, etc.
It requires more time to create software than It requires less time to create program than
program. software.
Examples of software includes Adobe Photoshop, Examples of program includes Web browsers,
Google Chrome, PowerPoint, Adobe Reader, etc. word processors, video games, etc.

1.3 Software components


Components of Software :
“A software component is a unit of composition with contractually specified interfaces and explicit
context dependencies only. A software component can be deployed independently and is subject to
composition by third parties.”
There are three components of the software:
These are : Program, Documentation, and Operating Procedures.
1. Program –
A computer program is a list of instructions that tell a computer what to do.
2. Documentation –
Source information about the product contained in design documents, detailed code comments,
etc.
3. Operating Procedures –
Set of step-by-step instructions compiled by an organization to help workers carry out complex
routine operations.
4. Code: the instructions that a computer executes in order to perform a specific task or set of tasks.
5. Data: the information that the software uses or manipulates.
6. User interface: the means by which the user interacts with the software, such as buttons, menus,
and text fields.
7. Libraries: pre-written code that can be reused by the software to perform common tasks.
8. Documentation : information that explains how to use and maintain the software, such as user
manuals and technical guides.
9. Test cases: a set of inputs, execution conditions, and expected outputs that are used to test the
software for correctness and reliability.
10. Configuration files: files that contain settings and parameters that are used to configure the
software to run in a specific environment.
11. Build and deployment scripts: scripts or tools that are used to build, package, and deploy the
software to different environments.
12. Metadata: information about the software, such as version numbers, authors, and copyright
information.
“A software component is a unit of composition with contractually specified interfaces and explicit
context dependencies only. A software component can be deployed independently and is subject to
composition by third parties.”

1.4 Characteristics of software


There are various characteristics of software in software engineering:

 Software is developed or engineered; it is not manufactured in the classical sense:


 Although some similarities exist between software development and hardware manufacturing,
few activities are fundamentally different.
 In both activities, high quality is achieved through good design, but the manufacturing phase for
hardware can introduce quality problems than software.

 The software doesn’t “wear out.”:


 Hardware components suffer from the growing effects of many other environmental factors.
Stated simply, the hardware begins to wear out.
 Software is not susceptible to the environmental maladies that cause hardware to wear out.
 When a hardware component wears out, it is replaced by a spare part.
 There are no software spare parts.
 Every software failure indicates an error in design or in the process through which design was
translated into machine-executable code. Therefore, the software maintenance tasks that
accommodate requests for change involve considerably more complexity than hardware
maintenance. However, the implication is clear—the software doesn’t wear out. But it does
deteriorate.

 The software continues to be custom-built:


 A software part should be planned and carried out with the goal that it tends to be reused in
various projects.
 Current reusable segments encapsulate the two information and the preparation that is applied
to the information, empowering the programmer to make new applications from reusable parts.
 In the hardware world, component reuse is a natural part of the engineering process.

1.5 Types of software


System software :
On account of system software, it helps client just as equipment to work and associate effectively with
one another. Ordinarily, this is bit of software that is utilized to deal with conduct of PC equipment so
client needs essential usefulness. Basically, system software is basically go-between or middle of road
layer between client and equipment.

This software permits earth or stage for other software to work easily. Along these lines, system
software is significant in dealing with whole PC system. At the point when you first turn on PC, it is
system software, which is begun and afterward stacked into system memory. The system software
basically runs out of sight and isn’t really utilized by end clients. Consequently, system software is
otherwise called “low-level software”. Organizations typically utilize best software improvement
organization to make system software.

A few instances of normal system software are :


1. Operating System :
Being an unmistakable model for system software, it is basically an assortment of software which
handles assets just as offers general administrations for different other application which really run over
them. There are various kinds of working systems like installed, ongoing, circulated, single-client, multi-
client, versatile, web and significantly more. Full stack web improvement administrations create
applications to work o versatile working system like Android and iOS. A portion of key instances of
working systems are as per following :

 MS Windows
 macOS
 Linux
 iOS
 Android
 CentOS
 Ubuntu
 Unix
 Gadget Drivers :
This kind of software controls specific hardware which is basically connected to system. Diverse
hardware gadgets which require driver to interface with system effectively comprise of
showcases, printers, sound cards, hard circles, console, and mice. Not many of instances of such
drivers are :
 Profiles Driver
 Motherboard Drivers
 Show Drivers
 ROM Drivers
 Printer Drivers
 USB Drivers
 Sound Card Driver
 VGA Drivers

 Firmware :
It is really perpetual software which is installed in system’s perused just memory. It is basically
lot of guidelines which are for all time put away onto to hardware gadget. It offers essential data
in regards to how specific gadget collaborates with various other hardware. A portion of
instances of firmware are :
 PC Peripherals
 Inserted Systems
 UEFI
 Profiles

Utility :
These software are intended to help with breaking down, just as advancing, alongside arranging and
keeping up given PC system. It offers help to PC foundation. Software like circle cleanup and board
apparatuses, against infections, defragmenters, pressure devices and so forth are on whole utility
software. A portion of its models are :

 Norton Antivirus
 McAfee Antivirus
 WinRAR
 WinZip
 Piriform CCleaner
 Windows File Explorer
 Registry Opus
 Razer Cortex
Application Software :

They are likewise prevalently known as end-client programs or even efficiency programs which help
client in finishing different undertakings like leading on web research, making notes, planning
illustrations, looking after records, completing computations or in any event, playing PC games. They
basically lie over system software. They are really utilized by end-client just as have explicit usefulness or
undertakings which they are intended to perform. These software are regularly evolved through custom
software improvement, in light of prerequisites of clients. There is an assortment of use software. Some
of them are :
Word Processors :

Such applications are intended for documentation. It helps with putting away just as organizing and in
any event, printing of reports. Key instances of such software are :
MS Word
Apple iWork-Pages
Corel WordPerfect
Google Docs

Database Software :
It is utilized to make just as deal with database and furthermore known as Database Management
System or to put it plainly, DBMS. Such software aids information association. A portion of instances of
DBMS are :
 MS Access
 FileMaker
 dBase
 Scissors
 MySQL
 FoxPro

1. Sight and sound Software :


This is software which can play, make just as record pictures, sound or even video documents. These
software are used for liveliness, video altering, illustrations just as picture altering. Because of
popularity for such software, each software item improvement organization has huge roads in
creating them. A portion of instances of such software are :
 Adobe Photoshop
 Picasa
 VLC Media Player
 Windows Media Player
 Windows Movie Maker

2. Internet Browsers :
These software are used to peruse web. Internet browsers help clients in situating just as recovering
information well over web. A portion of key instances of them are :
 Google Chrome
 Mozilla Firefox
 Web Explorer
 Drama
 UC Browser
 Safari

Be that as it may, there additionally exists another characterization of software. They can without much
of a stretch be characterized based on their accessibility just as sharability.

Their classification is as underneath :


Freeware :
These software are accessible liberated from cost. A client can undoubtedly download them from web
and can undoubtedly utilize them without paying any charges or expenses. Be that as it may, they don’t
give any kind of freedom to change whole software or charging fixed expense for its conveyance. A best
software advancement organization can build up its own freeware to connect with more clients. A
portion of instances of these software are :
 Adobe Reader
 Skype
 ImgBurn
 Group Viewer
 Yahoo Messenger

Shareware :
This software is circulated openly to clients on fixed preliminary premise. It for most part accompanies
set time limit, and on termination of as far as possible, client is at long last approached to pay fixed
charge for proceeded with administrations. There are various sorts of shareware, for example,
Freemium, Donationware, Adware, Demoware and so forth. Not many of instances of shareware are :
 Adobe Acrobat
 PHP Debugger
 WinZip
 Getright

Open-source :
Such kinds of software are generally accessible to clients alongside their source code which implies that
client can without much of stretch alter and circulate software just as add extra highlights to them. They
can either be chargeable or free. Not many of instances of such software are :
 Mozilla Firefox
 Thunderbird
 GNU Compiler Collection
 Moodle
 Apache Web Server
Final words
1.6 Generic view of software engineering
The process of a software development has three Generic views which are:
1. Definition Phase - It is the base of Definition phase. The experts get the
knowledge about "What".
o Information needed for processing.
o Which functions are required.
o Expectations about the capacity.
o Interface which is established.
o Area of the validation.
This phase defines all the expectations depending on the standard of the
software Engineering. It contains three steps.
o Analysis of system
o Planning of project
o Requirement Analysis
2. Development phase - Focus point of development phase is "How". After the
explanation of "What" it turn to "How". Various type of question raised in
developer mind that how to design the data structure and Architecture of
software, Procedural detail how to implemented and how design convert in a
programming language and testing of software how to perform. Three special
steps always taken in this phase which are
o Design of software
o Coding
o testing of software system
3. Maintenance phase - The main focus of maintenance phase is change which
cause is correction of errors, adaption of new idea, According to the needs of
software after change in customer mood.
2 Unit 2. Software Development Life Cycle Models [7 Hrs.]

2.1 Build and fix model

2.2 The waterfall model

2.3 Prototyping model

2.4 Iterative enhancement model

2.5 Spiral model

2.6 Rapid application development model (RAD)

2.7 Selection criteria of a lifecycle model

3 Unit 3. Software Project Management [7 Hrs.]


3.1 Activities in project management

3.2 Software project planning

3.3 Software project management plan

3.4 Software project scheduling and Time Line Charts

3.5 Software project team management and organization

3.6 Software Project estimation 27

3.7 LOC Based Estimation

3.8 FP Based Estimation

3.9 COCOMO model

3.10 Risk analysis and management

3.11 Risk management process

3.12 Software configuration management

4 Unit 4. Software Requirement Analysis & Specification [6 Hrs.]


4.1 Requirement engineering 4.2. Requirement elicitation

4.2 Interviews

4.3 Brainstorming series

4.4 Use case approach

4.5 Requirement analysis

4.6 Data flow diagram

4.7 Data dictionary

4.8 Entity-Relationship diagram

4.9 Requirement documentation

4.10 Nature of SRS

4.11 Characteristics of a good SRS

4.12 Organization of SRS

5 Unit 5. Software Design [6 Hrs.]


5.1 Objectives of design

5.2 Design framework

5.3 Software design models

5.4 Design process

5.5 Architecture design

5.6 Low level design

5.7 Software design strategies

5.8 Function oriented design Vs Object oriented design

6 Unit 6. Software Metrics [3 Hrs.]


6.1 Software metrics

6.2 Token count

6.3 Data structure metrics

6.4 Information flow metrics

6.5 Metrics analysis

7 Unit 7. Software Reliability [2 Hrs.]


7.1 Basic Concepts

7.2 Software quality

7.3 Software reliability model

8 Unit 8. Quality Management and Testing [7 Hrs.]


8.1 Software quality attributes

8.2 Quality factors

8.3 Quality control

8.4 Quality assurance

8.5 Verification and validation 28

8.6 Testing and debugging

8.7 Testing process

8.8 Unit testing

8.9 Integration testing

8.10 System testing

8.11 Regression testing

8.12 White Box testing and Black Box testing


9 Unit 9. Software Maintenance [3 Hrs.]
9.1 Need for software maintenance

9.2 Types of software maintenance

9.3 Software maintenance process model

9.4 Software maintenance cost Practical: [30 Hrs.]


The practical should contain all features mentioned above.
Final written exam evaluation scheme Unit Title Hours Marks Distribution*
1 Introduction 4 7
2 Software Development Life Cycle Models 7 12
3 Software Project management 7 12
4 Software Requirement Analysis & Specification 6 11
5 Software Design 6 11
6 Software Metrics 3 5
7 Software Reliability 2 5
8 Quality Management and Testing 7 12
9 Software Maintenance 3 5
Total 45 80
* There may be minor deviation in marks distribution.
Reference:
1. Agarwal, K. and Singh, Y., 2007. Software Engineering. (3rd ed). New Delhi: New Age International
Publisher.
2. Ghezzi, Jayazeri and Mandrioli(2002). Fundamentals of Software engineering (2nd ed).
3. Mall, Rajib(2006).Fundamentals of Software Engineering (2nd ed). India: Prentice-Hall of India
4. Sommerville, I. (2010). Software engineering (10th ed). Harlow, England: Addison-Wesley.

You might also like