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

Notes Unit 1

This document provides the syllabus for the Master of Computer Applications course titled Software Engineering. The syllabus outlines 10 units that cover topics such as software development lifecycles, agile development, requirements analysis, design approaches, coding, testing, maintenance, and project management. The course aims to provide students with a strong foundation in software engineering principles and processes.

Uploaded by

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

Notes Unit 1

This document provides the syllabus for the Master of Computer Applications course titled Software Engineering. The syllabus outlines 10 units that cover topics such as software development lifecycles, agile development, requirements analysis, design approaches, coding, testing, maintenance, and project management. The course aims to provide students with a strong foundation in software engineering principles and processes.

Uploaded by

Viyan Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Master of Computer Applications

OMC 204
Software Engineering

OMC204 Software Engineering 1


Graphic Era Deemed to be University, Dehradun
Directorate of Distance and Online Education
Course Development Committee
Chairman
Prof. (Dr.) Sanjay Jasola
Vice Chancellor, Graphic Era Deemed to be University, Dehradun

Advisors

Prof. (Dr.) Durgesh Pant, Director, School of Computer Science and IT, UOU
Prof. (Dr.) H. N. Nagaraja, Director General, GEU
Dr. Pankaj Khare, Director, IGNOU, New Delhi
Dr. Akshay Kumar, School of Computer and Information Science, New Delhi

Administrative and Academic Team


Prof. (Dr.) H. Nagaraja Udupa Prof. (Dr.) Raghavendra V. Kulkarni
Director Dean Academics – Technology-Enabled Learning
Directorate of Distance and Online Education
Course Editing Team

 Master of Business Administration (MBA)  Bachelor of Computer Applications (BCA)


HOD: Prof. (Dr.) Navneet Rawat HOD: Prof. (Dr.) Kamlesh Purohit
Coordinator: Prof. (Dr.) Surekha Invalli Coordinator: Prof. Sreedevi Nagarmunoli
 Master of Computer Applications (MCA)  Bachelor of Commerce (BCom)
HOD: Prof. (Dr.) Kamlesh Purohit
HOD: Prof. (Dr.) Rupa Khanna
Coordinator: Prof. (Dr.) Vaishali Kulkarni
Coordinator: Ms. Arathi B M
 Bachelor of Business Administration (BBA)
HOD: Prof. (Dr.) Navneet Rawat
Coordinator: Prof. (Dr.) Rashmi Kodikal

Prepared by

Dr. Vaishali R. Kulkarni, Professor, Department of CSE


Graphic Era Deemed to be University, Dehradun, India

Production

All rights reserved. No part of this manual may be reproduced in any form by mimeograph or any
other means without permission in writing from the Graphic Era Deemed to be University, Dehradun.
GEU, DDOE SLM is for the of use GEU ODL students only.
Syllabus
Programme Master of Computer Applications
Semester II
Course Title Software Engineering
Course Code OMC204
Course Credits 3
Course Type Core Theory Course

1. Course Summary

The aim of this course is to create a strong foundation in Software Engineering (SE). The students are
taught the basic phases of the software development life cycle (SDLC) and the process of their
implementation. The students are also taught agile software development approach, project
management, and quality control measures. This course also emphasizes different styles such as
function- and object-oriented designs and coding. The different design tools and coding styles are
taught with their merits and demerits. Students are trained to employ various unit and system testing
methods for the development of a good software product. The activities in risk management and
maintenance of the deployed software are discussed with suitable case studies.

2. Course Outcomes (COs)

After the successful completion of this course, the student will be able to:

CO-1. Explain the basics of SE and ethical and professional issues of software engineers [L-1]
CO-2. Discuss the phases and activities of SDLC and compare different models including waterfall,
incremental, prototyping, and spiral. [L-2]
CO-3. Prepare designs using data flow diagrams and unified modeling language tools for function-
and object-oriented approaches [L-3]
CO-4. Develop test cases, perform testing, and analyze activities in the maintenance of software [L-
4]
CO-5. Design software project plans, size, and cost metrics, and assess risks in the software
development. [L-5]

3. Course Contents

Sr. Units Unit Outcomes


No After the successful completion of the
unit, the learner should be able to:
1 Unit 1: Introduction 1. Define SE.
 SE Fundamentals, Software Cost, and Projects 2. Explain the attributes of good
 Professional Software Development, FAQs in SE, software.
Software Products 3. Discuss the generic and customized
 Attributes of a good software software products.
 Importance of SE 4. Discuss the importance of SE and its
 Issues in SE applications.
 Internet and Web-Based SE, SE Applications
2 Unit 2: Software Process 1. Explain the activities in SDLC.
 Activities in the software process, SDLC 2. Compare different SDLC models.
 Software process models: waterfall model
 Incremental development model
 Software prototyping model
 Boehm’s spiral model
3 Unit 3: Agile Software Development 1. Discuss agile and rapid software
 Overview of Agile software development development.
 Agile methods: Principles 2. Analyze agile methods in various
 Plan-driven and Agile Development applications.
 Extreme programming
4 Unit 4: Software Requirements 1. Represent functional and non-
 Importance of Requirement Analysis, User Needs functional requirements for the given
 User and System requirements, examples software application.
 Functional and Non-functional requirements 2. Discuss the IEEE standard for SRS.
 Requirement Engineering Process 3. Explain requirement verification and
 Characteristics of Software Requirement validation methods.
Specification (SRS)
 IEEE SRS standard
 Case Study of SRS for a Real-Time System

5 Unit 5: Software Design: Introduction 1. Prepare a software design.


 Goals of Good Software Design 2. Analyze the coupling and cohesion of
 Top-Down and Bottom-Up Approach different modules.
 Function- and Object-oriented design 3. Compare functional and object-
 Structured Design: Structure Charts, Data Flow oriented design approaches.
Diagrams
 Concepts in software design: Coupling, Cohesion,
Modular Structure

6 Unit 6: Object-oriented Design 1. Demonstrate knowledge of


 Object-oriented software design and its activities techniques and tools used in object-
 Unified modeling language (UML) diagrams for oriented design.
object-oriented design 2. Design UML diagrams for different
 Structural, interaction, and behavioral diagrams applications.
 Use-case, class, sequence, activity, state-machine 3. Develop software architecture and
diagrams explain different patterns.
 Architectural software design and patterns
 Client-server, repository and pipe, and filter
7 Unit 7: Software Development 1. Discuss coding guidelines.
 Introduction to the coding 2. Assess the coding standard for a
 Coding guidelines good programming style.
 Coding documentation
 Code Review
8 Unit 8: Software Testing 1. Explain testing objectives.
 Testing Objectives 2. Construct test cases and plan.
 Verification versus validation 3. Perform structural and functional
 Development testing: unit, integration testing testing on developed software.
 Structural Testing: requirements-based, scenario,
performance testing, and types
 System testing: alpha, beta, and acceptance testing,
types
 White box and black box testing
9 Unit 9: Software Maintenance 1. Discuss software configuration and
 Software Maintenance: Definition and Types management.
 Forward and Reverse Engineering, Software Re- 2. Apply software re-engineering
engineering methods.
 Software Configuration Management: Introduction, 3. Apply CASE tools in software
SCM Process development.
 Overview of Computer-aided Software Engineering
(CASE) Tools

10 Unit 10: Software Project Management 1. Construct a software project


 Responsibilities of a Software Project Manager management plan.
 Project planning, software project management plan 2. Estimate the project size and cost
(SPMP) structure metrics.
 Project size estimation metric: lines of code, function
point
 Project estimation techniques: COCOMO model:
types and examples
 Software Measurement and Metrics: Various Size
Oriented Measures:
 Halstead’s software science, function point-based
measures
11 Unit 11: Risk Management 1. Identify the risks in the software.
 Risk identification 2. Assess and monitor different
 Risk, assessment, and monitoring categories of risks.
 Risk containment
12 Unit 12: Software Quality 1. Discuss quality parameters for
 Quality concepts the software.
 Software Quality Management System 2. Compare product and process
 Evolution of Quality Systems metrics.
 Product Metrics versus Process Metrics

3. Course Articulation Matrix (CO-PO-PSO Map)


Programme Outcomes (POs) Programme Specific
Outcomes (PSOs)
PSO- PSO- PSO- PSO-
PO-1 PO-2 PO-3 PO-4 PO-5 PO-6 PO-7 PO-8 PO-9 PO-10 PO-11 PO-12
1 2 3 4
CO-1 2 3 2 2 3 2 3 2 3 1 3 3 2
CO-2 2 2 3 3 3 2 3 2 2 1 2 2 2
CO-3 3 2 2 2 3 2 1 3 2 3 2 3 2 3 1
CO-4 2 3 2 2 3 2 2 3 1 3 3 2 1
CO-5 3 2 2 2 3 2 3 1 3 1 1 3 2 2 1
3: Very Strong Contribution, 2: Strong Contribution, 1: Moderate Contribution
4. Course Resources

a. Essential Reading
1. Course Self-Learning Material
2. Sommerville, Ian. (2010). Software Engineering, 10th Ed., Addison-Wesley
3. Pressman, Roger S. (2009), Software Engineering: A Practitioner’s Approach, 7th
Ed., McGraw-Hill.
b. Recommended Reading
1. Jalote, Pankaj. (1997). An Integrated Approach to Software Engineering, Springer
Science and Business Media.
2. Mall Rajib. (2014), Fundamentals of Software Engineering, 4th Ed., PHI Publication.
3. Carlo Ghezzi, M. Jarayei, D. Manodrioli. (2002). Fundamentals of Software
Engineering, PHI Publication.
c. Magazines and Journals
1. IEEE Transaction on Software Engineering
2. Springer Empirical Software Engineering
d. Websites
1. https://www.coursera.org/
2. http://nptel.ac.in/
e. Other Electronic Resources
1. https://ocw.mit.edu/index.htm
2. Course Video Lectures on Bright Space
Contents
Unit 1 Introduction 1
1.0 Structure of the Unit 1
1.1 Unit Outcomes 1
1.2 SE Fundamentals, Software Cost and Projects 1
1.3 Professional software development: FAQs in SE, Software products 3
1.4 Attributes of good software 5
1.5 The importance of SE 5
1.6 Internet and web-based SE, SE applications 7
1.7 Self-Assessment Questions 8
1.8 Multiple Choice Questions (MCQs) 8
1.9 Keys to MCQs 9
1.10 Summary of the Unit 9
1.11 Keywords 9
1.12 Recommended Reading 9
Unit 1
Introduction

1.0 Structure of the Unit:


1.1. Course Outcomes
1.2. Software Engineering (SE) Fundamentals, Software Cost, and Projects
1.3. Professional software development: FAQs in SE, Software products
1.4. Attributes of good software
1.5. The importance of SE
1.6. Internet and web-based SE, SE applications
1.7. Self-Assessment Questions and Activities
1.8. Multiple-Choice Questions
1.9. Keys to Multiple Choice Questions
1.10. Summary of the Unit
1.11. Keywords
1.12. Recommended Reading

1.1 Unit Outcomes


After the successful completion of this unit, the student will be able to:
1. Define SE.
2. Explain the attributes of good software.
3. Discuss the generic and customized software products.
4. Discuss the importance of SE and its applications.

1.2 Software Engineering Fundamentals


Today’s world cannot be imagined without software. Software is the soul of the computer. Most of the
systems and functions in real life are managed by computer hardware and software. The software is
effectively used in television, movies, games, industries, medicine, education, various reservation
systems, etc. The computer is an electro-mechanical system that accepts input using input devices and
produces visual results using output devices. Software applications are getting more complex and
wider.
The software development process demands to be quick and cost-effective. In the early stages of
software development in the 1960s, the development approach was ad-hoc or it was done using a
customized approach. Every individual software engineer was using his/her approach. This led to
unreliable and costly software. The software developed using the ad-hoc method was difficult to
maintain and was not suitable for a long time. There was a necessity for a systematic engineering

OMC204 Software Engineering Page 1


approach to develop good software. There was a need for good training and education for the people
involved in the software development process.
Software engineering (SE) is that systematic approach to software development with standard tools and
methods, and well-known programming and testing practices. Some of the fundamental concepts in SE
are as follows:
Software: Software is defined as Software is a set of programs, data structures, methods, and related
documentation. The software consists of objects that configure programs, data structures, and
documentation. A computer program is a set of instructions that provides required functions and
performance. Data structures are used for manipulating data. The use of different operations and programs
is described by documentation. Software is also defined as a digital form of knowledge. A program is a
set of instructions written in a programming language used to execute a specific task or function.
Computer programs are coded in a programming language like c, C++, PHP, Java, etc. A software project
is understanding the client’s needs, preparing the design, coding, testing, and maintaining good quality
software in a specified time.

Software and Computer Programs: Software is not the same as computer programs, but it includes
configuration and documentation. When a small project is programmed then a single program can be
software. Thus, the software can be a computer program but not vice versa. Always professional software
consists of several independent programs with user documentation. The documentation describes the
structure of the software, how to use the software system, download options, and guidelines to use
websites. The software consists of bundles of programs and data files. Programs in specific software use
these data files to perform dedicated types of tasks. The comparison of the software and computer
program is expressed in Table 1.1.

Computer Program Software


Programs are developed quickly. Takes relatively more time to
build/make when compared to a
program
The program development approach may be un-procedural, Software development is organized,
unorganized, and unplanned. systematic, and planned rigorously.
The size of the computer program may be in the range of The size of the computer program may
Kilobytes (KB) to Megabytes (MB) be in the range of Megabytes (MB) to
Megabytes (MB), Gigabytes (GB), or
Terabytes (TB)
Table 1.1 Computer Program versus Software
Software Engineering: Software development needs to be engineered properly so that it can be used
across many applications. Software engineering makes use of the principles of engineering to develop
economical, reliable, and efficient software. According to the IEEE standards, the definition of software
engineering is a systematic approach to developing, operating, and maintaining good software. The
students work on smaller software which is in the range of a few 1000 lines of code (LOC) and require a
month. These software projects are mainly for demonstration purposes. These projects are not expected to

OMC204 Software Engineering Page 2


be put into use later. The software industry handles different clients to develop projects for implementing
client organization functions. If there are any defects or malfunctioning in the development, there will be
a serious effect on the financial and reputation of the developer’s firm. Software engineering focuses on
how to develop industrial-strength software. There are three important parameters in developing
industrial-strength software, namely cost, schedule, and quality.
Software Cost: A software project is defined and driven by three parameters: a reasonable cost, time, and
good quality. The most used factor in determining software cost is based on LOC and how many person’s
efforts per month are used in development. Generally, a small software project can be 50000 LOC. The
productivity of a person is assumed as approximately 1000 LOC per month. Based on this basic
calculation software companies charge their clients. The schedule for software development is another
important factor as the development should be faster and in-time. If the LOC is less with a reduced time
for developing software, then the software cost also comes down. Software companies aim at the usage of
tools and techniques to optimize the cost and time of developing a product.
Besides cost and schedule, quality is another driving force that needs to be addressed. The attributes of
good software are given by international standards. Professional software development is done for
different software systems using different tools and by understanding ethical and professional values.
1.3 Professional Software Development: FAQs in SE, Software Products
Computer programs are written by many people for their personal and professional use. People maintain
their diaries, daily routines, money matters, etc. using Word documents or Excel spreadsheets. Science
and technology community, engineering students use scientific software to test the results of different
experiments. Artists and a lot of people write programs for enjoyment or their hobby. But the major
software development is professional and done by a team for specific business purposes. The software
products can be some local information systems, machine or building designs, websites, mobile apps, etc.
These software products are not only developed but maintained after it is in use. Programming done by
individuals can be random and based on personal choices. But support professional software
development, SE is used. The different phases of software such as requirement specification, design,
coding, testing, maintenance, project planning, and quality control are carefully handled by professional
software development. The FAQs in SE are listed as given in Table 1.2.

What is software? Computer programs and associated


documentation.

What are the attributes of good software? Good software should work for the required
specification with reliability and good quality.
It should be efficient, dependable, usable, and
secure.

What is SE? SE is an engineering approach related to all


aspects of the software product.

What are the fundamental software engineering Software specification, software development,

OMC204 Software Engineering Page 3


activities? software validation, and software evolution.

What is the difference between software Computer science focuses on theory and
engineering and computer science? fundamentals; SE is concerned with the
practicalities of developing and delivering
useful software.

What is the difference between software System engineering is concerned with all
engineering and system engineering? aspects of computer-based systems
development including hardware, software,
and process engineering. SE is part of this
more general process

What are the key challenges facing software Coping with increasing diversity, demands for
engineering? reduced delivery times, and developing
trustworthy software.

What are the costs of software engineering? Roughly 60% of software costs are
development costs; 40% are testing costs. For
custom software, evolution costs often exceed
development costs

What are the best software engineering techniques While all software projects must be
and methods? professionally managed and developed,
different techniques are appropriate for
different types of systems. For example,
games should always be developed using a
series of
prototypes whereas safety-critical control
systems require a complete and analyzable
specification to be developed. You can’t,
therefore, say that one method
is better than another.

What differences has the Web made to software The Web has led to the availability of
engineering? software
services and the possibility of developing
highly distributed service-based systems.
Web-based systems development has led to
important advances in programming
languages and software reuse

Table 1.2 Frequently Asked Questions in SE

OMC204 Software Engineering Page 4


Software Product: A software product is a software system developed as per the client’s requirements
and delivered with documentation about usage. In today’s world, there are When software is developed
for a specific requirement then it is known as a software product. Software products are classified as
follows:
Generic Software: Software developed by an organization and sold in an open market to many
customers. Examples of generic products include word processors, websites, accounting software,
operating systems, general media players, etc. Generic software is targeted at a set of users. The
requirements, design, and implementation of the generic software are based on the feedback given by the
clients.

Bespoke or Customized Software: Software developed for a specific customer is called bespoke or
customized products. The powerful software behind Netflix or Amazon is an example of bespoke
software products.
1.4 Attributes of a Good Software
Software quality is determined by the six attributes as depicted in Figure 1.1.

Figure 1.1 Software Quality Attributes

1. Functionality: The software should provide the functions for which it is developed. It must fulfill
all the stated requirements.
2. Reliability: The software should maintain its performance. Reliability includes security and
safety. The software should be dependable, and it must protect the system from unauthorized users
or damages due to accidents and failures.
3. Usability: The software must be understandable for its use. It should be learned and used
efficiently.
4. Efficiency: The number of resources such as space, time, and effort must be used appropriately in
the software.
5. Maintainability: The software should be capable of modifying, improving, and adapting after it is
put into use. The maintenance of software is done after deploying the software in the client’s
workspace.
6. Portability: The software should be adaptable to different specified environments.

The other quality attributes are correctness, security, safety, reusability, testability, and integrity.

1.5 The Importance of SE

OMC204 Software Engineering Page 5


SE is related to all aspects of software production from the initial stages of specifying requirements to the
maintenance phase after deploying in the client’s workspace. A systematic and organized approach is used
in SE to produce high-quality software. An engineering approach is used in SE for applying the formal
method to develop software.

The software is important because many individuals, organizations, offices, and large societies are
dependent on advanced software systems. The different systems in many disciplines need fast and quality
development of reliable and economical trustworthy software support.

The software developed using the SE approach is faster, of good quality, and cheaper. Due to advanced
technology, software product is become quick and has gained popularity in almost every walk of life. The
approach in SE is known as the software process.

The software process is a sequence of activities to produce a software product. These activities include:

1 Defining the requirement and specifications of the software. Determining conditions in which the
software works by consulting both the customer and the software engineers.
2 Designing and programming the software requirements and specifications.
3 Validating the software to ensure that the customer’s requirements are fulfilled.
4 Modifying or evolving software to accommodate customers’ changing or modified requirements

Software processes vary for different types of users or systems. For example, chemical plants or real-time
aircraft controllers require safety-related features to be addressed first. The e-commerce or online
shopping software requires security from malicious or unauthorized users. Different types of systems
need different development processes. SE is related to both Computer Science (CS) and systems
engineering. The relevance of the SE in computer science and systems engineering is discussed in Table
1.2.

In CS, theories and methods behind the software are System engineering involves hardware,
discussed. Software engineers must have some software, policies, and process design. The
knowledge of CS. The CS theories are useful in small overall architecture of the system is
programs. Very rigid and elegant theories of CS determined in systems engineering. System
cannot be applied in large, complex, heterogeneous engineers integrate the different software parts
software. SE addresses the practical problems of to build a complete system. System
developing software. engineering is less concerned with the
development of small software components.

Table 1.2 SE versus System Engineering


There are different types of software developed using SE as listed in Table 1.3.
Type of Software Examples
System Software Operating Systems, Text Editors, Compilers
Programming Software Tools for writing computer programs, such as Java, Python, C,
C++, etc.
Application Software Software for a particular task such as accounting, data

OMC204 Software Engineering Page 6


processing, games, etc.
Scientific / Engineering Software Computer-Aided Design and Computer-Aided Manufacturing
software.
Embedded Software Aircraft controlling software, traffic control systems, image
processing software in medical equipment, motion detection
software in security cameras, etc.
Artificial intelligence software Google Assistant, Alexa, Cortana Microsoft Assistant for
organizing day-to-day activities, etc.
Web applications Online forms, Gmail, google sheets, video and photo editors,
Microsoft 365, etc.
Table 1.3 Types of Software
To support the diversified software products mentioned above, SE tools are evolved in the last 50 years.

There is no single SE process to develop the above-mentioned software types. The different issues in SE
include heterogeneity in software. The software may be installed on mobile devices, networks, different
types of computers, and so on. The business and social changes in society is a major issue in SE. The
software may become legacy. The legacy software is old software but still in a working state. The
fundamental SE processes are time-consuming and need to be changed. The software systems are in-
network and on shared web service. The SE must include a strong security base to support the software so
that malicious users cannot attack our software and that information security is maintained.
There are some SE fundamentals applicable to all the applications. The common fundamentals of SE are
based on five themes as given below.
1 A well-understood SE process
2 SE approach with Dependability and performance of all the software systems
3 Understanding and managing requirement specifications
4 Effective use of resources or re-usability

1.6 Internet and Web-based SE, SE applications


With the development of the world wide web, browsers, online services, etc. different organizations, and
businesses are using programs uploaded on the Internet. with the use of the internet, the notion of
software as a service is increasing. It is not necessary to develop and install programs on a local single
computer. Web servers and cloud computing has enabled software services available in a distributed form.
Applications are utilizing reusable software components rather than writing the programs from the
scratch. The Internet-based SE has resulted in numerous advantages as given below.

 Web-based systems have helped in using and combining assembling the pre-existed software
components to develop new software.
 Nowadays, it is not necessary to mention all the requirements beforehand. The internet helps
develop a small software at the beginning and then goes on adding different software parts and
features as and when required.

OMC204 Software Engineering Page 7


 The user interface, menus, various designs, front end, databases, mobile apps, media, etc. have
been readily available on the internet. For example, GitHub, and library files in Python are
available for readymade computer programs.
 The data store is available on the internet, and this has saved a lot of time and effort for a user to
predict the input/output and develop test cases for testing their programs.

The most identified types of software applications developed using the SE approach are as given in Table
1.4.

Type of Description
Application
Stand-alone Application systems running on local computers, such as a PC.
applications
Interactive These are applications executed on remote computers and accessed by users
transaction-basedfrom their PCs or terminals. e-business systems, cloud-based services, mail, and
applications photo sharing. Interactive applications using a large data store that is accessed
and updated in each transaction
Embedded control Software systems for controlling and managing hardware devices. Software in
systems the microwave, washing machine, cell phone, etc.
Batch processing Software systems designed to process data in large batches. Banking transactions
systems where many individual inputs are processed to generate outputs
Entertainment SE systems are used in personal works and entertainment.
systems
Systems for SE is used in developing computation-intense, parallel complex software used by
modeling and scientists and engineers, etc.
simulation
Data collection Systems are used to collect data from the environment for processing.
systems
Systems of systems Systems that are composed of several other software systems. For example, MS
Office 365 includes word, spreadsheets, ppts, etc.
Table 1.4 SE Applications

1.7 Self-Assessment Questions


1. Discuss SE. [5 marks, L1]
2. What are the attributes of good software? [5 marks, L2]
3. Discuss software products with suitable examples. [8 marks, L3]
4. Discuss the different types of SE applications. [10 marks, L4]
5. Explain how the web has changed software systems. [5marks, L5]
6. What are the types of software? Explain with suitable examples. [8 marks, L2]
7. Compare SE and System Engineering [ 5 marks, L1]
8. Mention key challenges in SE [5 Marks, L1]

OMC204 Software Engineering Page 8


9. What is the difference between Computer Science and SE [5 Marks, L2]
10. Compare computer programs and software [ 5 Marks, L1]

1.8 Multiple-Choice Questions


Q1. A software product for managing a commercial shop owned by a single person is an example of
——[1 mark, L1]
A. Generic software product
B. Bespoke software product

Q2. The SE principles are applied by ______. [1 mark, L1]


A. Civil Engineers
B. Electrical Engineers
C. Software Engineers
D. All the above

Q3. Software is a —–.[1 mark, L2]


A. Collection of programs
B. Data structures
C. Documentation
D. All the above

Q4. A software process is a —— in SE. [1 mark, L1]


A. Product
B. Framework
C. Program
D. Testing

Q5. The continuous refining of the software for better quality is known as ____ [1 mark, L2]
A. Software specification
B. Software Maintenance
C. Software Evolution
D. Software Process

1.9 Keys to Multiple-Choice Questions


Q1. Bespoke software product (B)
Q2. Software Engineers (B)
Q3. All the above (D)
Q4. Framework (B)
Q5. Software Evolution (C)

OMC204 Software Engineering Page 9


1.10 Summary of the Unit
All the aspects of producing software are done by an engineering discipline known as SE. Software is
not just a collection of programs but it includes information, data structures, and documentation. As
software must be efficient, dependable, secure, reliable, maintainable, and acceptable. The software
products can be generic or customized. A software process is concerned with producing a software
product. The different activities in the software process are requirement specification, development,
validation, and evolution. SE applications are used in the web, e-commerce, embedded systems,
different branches of science and technology, and day-to-day works of the people. SE is a systematic
approach to producing a good quality software product.
1.11 Keywords
 SE
 Software and Computer Program
 Software Products: Generic and Bespoke
 Attributes of a good software
 Types of software
 Types of SE applications
 Software Process
1.12 Recommended Reading
1. Sommerville, Ian. (2010). Software Engineering, 10th Ed., Addison-Wesley
2. https://www.digimat.in/nptel/courses/video/106105182/L01.html

OMC204 Software Engineering Page 10

You might also like