Software engineering notes
Software engineering notes
Explain the characteristics of Project and Justify that the software projects are different from
other projects
A project is a temporary endeavor undertaken to create a unique product, service, or result. Here are
some key characteristics of a project:
1. **Non-Routine Tasks**: Projects involve tasks that are not part of routine operations. They are
unique and require specific planning and execution.
2. **Planning Required**: Projects need careful planning to define objectives, resources, timelines,
and deliverables.
3. **Specific Objectives**: Each project has specific goals or objectives that need to be achieved.
4. **Predetermined Time Span**: Projects have a defined start and end date.
5. **Work for Someone Else**: Projects are usually undertaken for a client or stakeholder.
6. **Involves Several Specialisms**: Projects often require the collaboration of various specialists.
7. **Temporary Work Group**: A team is formed specifically for the project and disbanded once the
project is completed.
8. **Phased Work**: Projects are carried out in several phases, such as initiation, planning,
execution, and closure.
9. **Resource Constraints**: Projects have limited resources, including time, money, and personnel.
10. **Large or Complex**: Projects are often large or complex, requiring significant coordination and
management.
Software projects have unique characteristics that differentiate them from other types of projects.
Here are some key differences:
1. **Invisibility**: Unlike physical projects (e.g., construction), the progress of software projects is
not immediately visible. This makes it challenging to track progress and manage expectations.
2. **Complexity**: Software projects are inherently more complex per unit cost compared to other
engineered artifacts. This complexity arises from the intricate nature of software design and
development.
3. **Conformity**: Software developers must conform to the requirements of human clients, which
can be inconsistent and subject to change. This is different from traditional engineering projects that
deal with physical systems governed by consistent physical laws.
4. **Flexibility**: Software is highly flexible and can be easily changed. This flexibility, while a
strength, also means that software projects are subject to frequent changes and updates.
2. Summarize the typical sequence of Software development activities recommended in
international standard
The typical sequence of software development activities recommended in the international standard
ISO/IEC 12207 includes the following stages:
1. **Requirements Analysis**
- Gathering and defining what the potential users and their managers require from the new system.
- This includes functional requirements (what the system should do) and quality requirements (how
well the functions must work).
2. **Architecture Design**
- Identifying the components of the new system that fulfill each requirement.
- This involves both software and hardware components, as well as work processes.
3. **Detailed Design**
- Breaking down each software component into smaller units that can be separately coded and
tested.
- Writing code for each software unit and performing initial testing to debug individual units.
5. **Integration**
- Combining different software components and testing them together to ensure they meet the
overall requirements.
- This may also involve integrating the software with hardware platforms and user interactions.
6. **Qualification Testing**
- Thoroughly testing the entire system, including software components, to ensure all requirements
are fulfilled.
7. **Installation**
- Making the new system operational, which includes setting up data, configuring system
parameters, installing software on hardware platforms, and user training.
8. **Acceptance Support**
- Resolving any problems with the newly installed system, correcting errors, and implementing
agreed extensions and improvements.
- This stage often involves ongoing maintenance, which can be seen as a series of minor software
projects.
3. Outline the content of project charter document that authorizes the starting of project
A project charter is a crucial document that formally authorizes the start of a project. It outlines the
project's objectives, scope, stakeholders, and key deliverables. Here’s an outline of the typical
content of a project charter:
1. **Project Title**
2. **Purpose**
- A brief statement explaining why the project is being undertaken and its intended benefits.
3. **Objectives**
4. **Scope**
- A detailed description of what the project will deliver and any boundaries or limitations.
5. **Stakeholders**
- Identification of key stakeholders, including the project sponsor, project manager, team members,
and any other parties involved.
7. **Project Deliverables**
- A list of the main outputs or products that the project will produce.
8. **Timeline**
9. **Budget**
- Any assumptions made during the planning of the project and constraints that could impact its
execution.
11. **Risks**
12. **Approval**
- Signatures of the project sponsor and other key stakeholders to formally authorize the project.
4. With diagram explain the project control cycle
The **Project Control Cycle** is a crucial aspect of project management, ensuring that the project
stays on track and meets its objectives. It involves continuous monitoring and controlling of project
activities to address any deviations from the plan. Here’s an explanation of the Project Control Cycle
with a diagram:
1. **Planning**
- Creating a detailed project plan that outlines the tasks, timelines, and responsibilities.
2. **Monitoring**
- Collecting data on project performance, such as task completion, resource usage, and budget
expenditure.
3. **Comparing**
4. **Taking Action**
- Adjusting the project plan, resources, or schedule as needed to bring the project back on track.
5. **Reviewing**
### Diagram
```
| Planning |
| Monitoring|
| Comparing |
|Taking Action|
| Reviewing |
| Planning |
```
5.Summarize the product life cycle cash flow and illustrate behaviour with graph
The product life cycle describes the stages a product goes through from its introduction to the
market until its decline and eventual withdrawal. Each stage has different cash flow characteristics:
1. **Introduction Stage**
- **Reason**: High initial costs for product development, marketing, and distribution. Sales are low
as the product is new to the market.
2. **Growth Stage**
- **Reason**: Sales begin to increase rapidly as the product gains market acceptance. Economies
of scale reduce costs, leading to higher profitability.
3. **Maturity Stage**
- **Reason**: Sales peak and stabilize. Market saturation occurs, and competition increases. Costs
are controlled, and the product generates significant profit.
4. **Decline Stage**
In this graph:
- The **Introduction** stage shows negative cash flow due to high initial costs.
- The **Growth** stage shows increasing positive cash flow as sales rise.