Software Engineering - Assignment 1
1. Define the following terms:
(1) Software
Software is:
1. Instructions (computer programs) that, when executed, provide desired features, functions, and
performance.
2. Data structures that enable the programs to adequately manipulate information.
3. Documentation that describes the operation and use of the programs.
Page No: 1
(2) Software Engineering
Software Engineering is defined by IEEE as:
1. The application of a systematic, disciplined, and quantifiable approach to the development,
operation, and maintenance of software.
2. The study of approaches as in (1).
Page No: 4
2. Explain Software Application domains
Software Application Domains:
1. System Software
2. Application Software
3. Engineering/Scientific Software
4. Embedded Software
5. Product-Line Software
6. Web Applications (WebApps)
7. Artificial Intelligence Software (AI Software)
Page No: 2
3. Describe Software Myths in Detail
Software Myths:
1. Management Myths (e.g., 'Adding more programmers will speed up the project.')
2. Customer Myths (e.g., 'Software requirements can be changed easily because software is
flexible.')
3. Practitioner's Myths (e.g., 'Once we write the program and get it to work, our job is done.')
Page No: 3
4. Explain Software Engineering as a Layered Technology
Layers of Software Engineering:
1. A Quality Focus - The foundation for software engineering.
2. Process - The framework that holds the technology layers together.
3. Methods - Provide technical guidance for software development.
4. Tools - Automated or semi-automated support for software development.
Page No: 5
5. Explain the Software Process Framework with types of process flow
Software Process Framework Activities:
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment
Process Flows:
1. Linear Process Model
2. Iterative Process Model
3. Evolutionary Process Model
4. Parallel Process Model
Page No: 6
6. List out process models and explain all process models in detail
Process Models:
1. Waterfall Model
2. V-Model
3. Incremental Process Model
4. RAD Model
5. Prototyping Model
6. Spiral Model
7. Concurrent Model
8. Agile Model
Page No: 8
7. What is a requirement? Explain understanding requirement engineering
Requirement:
A requirement is a condition or capability that must be met by a system to satisfy stakeholder needs.
Understanding Requirement Engineering:
1. Elicitation - Gathering requirements from stakeholders.
2. Analysis - Defining requirements clearly.
3. Specification - Documenting the requirements.
4. Validation - Ensuring the correctness of requirements.
Page No: 16
8. Explain Requirement Model
A requirement model represents how software must behave under different conditions. It includes:
- Functional requirements
- Non-functional requirements
- Constraints
Page No: 16
9. Explain Requirement Analysis Model
The Requirement Analysis Model helps in identifying, documenting, and validating system
requirements before development.
It includes:
1. Use Case Models
2. Data Flow Diagrams (DFD)
3. Entity-Relationship Diagrams (ERD)
Page No: 16
10. Explain System Requirement Specification (SRS)
System Requirement Specification (SRS):
1. Introduction
2. Overall Description
3. Functional & Non-functional Requirements
4. Interface Requirements
5. System Features
Page No: 17
11. Short note on Software Elicitation
Software Requirement Elicitation:
It is the process of gathering requirements from stakeholders through:
1. Interviews
2. Questionnaires
3. Prototyping
4. Observation
5. Brainstorming
Page No: 17