1.A] Define Software & Software Engineering. Why is it important? Explain the Software Process in Software Engineering.
Answer:
Software
instructions (computer programs) that when executed provide desired features, function, and performance
Software engineering
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
Importance of Software Engineering
- Systematic Approach: It provides a structured methodology for software development, ensuring that software is built in a systematic and organized manner.
- Quality Assurance: It focuses on ensuring that the software meets the required quality standards and user expectations.
- Predictability: By following a defined process, it helps in making project timelines, costs, and resources more predictable.
- Manageability: It allows for better management of software projects, including planning, risk management, and resource allocation.
- Adaptability: It enables the development of software that can be adapted to changing requirements and technologies.
Software Process in Software Engineering
The software process is a structured set of activities, actions and tasks designed to produce software products.
Your description outlines the hierarchical nature of processes, activities, actions, and tasks in software engineering. Here’s a breakdown:
Process:
- Definition: A process is a comprehensive sequence of activities, actions, and tasks aimed at producing a work product.
- Scope: It includes everything necessary to achieve the end goal, which could be the creation of software, documentation, or other deliverables.
Activity:
- Definition: An activity is a broad effort with a specific objective. It encompasses multiple actions and tasks.
- Characteristics: Activities are general and applicable across various projects, regardless of their domain or complexity. Examples include communication with stakeholders or project planning.
Action:
- Definition: An action is a more focused effort within an activity that produces a significant work product.
- Characteristics: It involves a set of tasks directed toward a major outcome. For example, architectural design is an action that leads to the creation of an architectural design model.
Task:
- Definition: A task is a specific, well-defined effort that contributes to an action.
- Characteristics: Tasks are concrete and have a tangible outcome. For example, conducting a unit test is a task aimed at verifying a particular part of the software.
In essence, processes are structured collections of activities, actions, and tasks, where:
- Processes are broad and encompass the overall workflow.
- Activities are broad objectives within the process.
- Actions are specific efforts within activities.
- Tasks are the smallest units of work, focusing on achieving a specific goal.