MODULE 4 Flashcards

1
Q

Describe in detail the ISO12207 software development life cycle with neat diagram

A

ISO 12207 Software Development Life Cycle

The ISO 12207 standard defines a comprehensive framework for software life cycle processes, covering all aspects of software development, maintenance, and retirement. It is widely used as a benchmark for establishing software life cycle processes in various domains.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Key Activities in the ISO 12207 Software Development Life Cycle

A

Requirements Analysis

Involves gathering and defining what the users and stakeholders require from the system.
Includes both functional requirements (what the system should do) and quality requirements (how well the system should perform).
Example: Determining transaction time requirements for a system dispatching ambulances.
Architecture Design

The system’s components are identified to meet the requirements.
Includes identifying existing components that can be reused or designing new ones.
Focuses on how software interacts with hardware and legacy systems.
Detailed Design

Software components are further broken down into smaller units for coding and testing.
Ensures that each component is well-defined for development.
Code and Test

Coding the individual software units based on the detailed design.
Initial testing is performed to debug and verify the functionality of each unit.
Integration

Combines software components and tests them together to ensure overall functionality.
Integration may involve software-hardware interaction and user interaction testing.
Qualification Testing

Verifies that the integrated system meets the specified requirements.
Ensures that the system functions as intended under real-world scenarios.
Installation

Deploying the system to the operational environment.
Includes tasks such as setting up system parameters, configuring hardware, and training users.
Acceptance Support

Addresses post-installation issues and implements agreed improvements or extensions.
This stage often overlaps with software maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Key Features of ISO 12207

A

Supports iterative and sequential development models.
Integrates system-level considerations such as hardware-software interactions.
Emphasizes the importance of post-delivery activities like maintenance.
This lifecycle ensures a systematic approach to developing reliable, efficient, and maintainable software systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Illustrate the requirement of software project management with the explanation of what is the project.

A

Requirement of Software Project Management

Software project management is essential for the effective planning, execution, and delivery of software projects. Its primary goal is to ensure that projects are completed successfully, meeting their objectives while adhering to constraints such as time, budget, and quality.

ICT projects involve significant financial investments. For example, in 2002-2003, the UK
government spent more on ICT contracts than on roads, with the Department for Work and
Pensions spending over £800 million. However, many ICT projects face issues, with a 2003
Standish Group report revealing that only one-third of projects were successful, and many
were late or over budget. Poor project management, including a lack of skills and risk
management, is a major factor in these failures. While planning is crucial, especially for
uncertain or exploratory projects, it is less necessary for routine tasks that are well-known and
documented.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is a Project?

A

A project is a temporary endeavor undertaken to create a unique product, service, or result. It is distinguished by specific characteristics that differentiate it from routine operations.

Characteristics of a Project
Non-Routine Tasks

Projects involve unique and non-repetitive tasks, requiring planning and specialized skills.
Specific Objectives

A project is designed to meet specific goals, such as delivering a software application or upgrading an existing system.
Defined Time Span

Projects have a clear beginning and end, unlike ongoing operational activities.
Work for Others

Projects are often undertaken to deliver value to a client or stakeholder.
Temporary Work Group

Projects bring together people from different disciplines who work together for the project’s duration.
Multiple Phases

Work is executed in distinct phases, such as initiation, planning, execution, monitoring, and closure.
Resource Constraints

Projects operate under predefined limits of resources like time, budget, and manpower.
Large or Complex Tasks

Projects often involve significant complexity, requiring robust management practices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Illustrate the classification of software projects with neat diagram

A

Classification of Software Projects

Software projects can be classified based on various criteria such as the nature of users, technical characteristics, and management approaches. Understanding these classifications helps in selecting appropriate project management techniques and methodologies.

Classification Criteria
Based on User Type

Compulsory Users: Systems that users must utilize to perform mandatory tasks.
Example: Employee attendance recording system.
Voluntary Users: Systems where user participation is optional.
Example: Video game applications.
Based on Technical Characteristics

Information Systems:
Support business operations by handling and managing data.
Example: Stock management systems.
Embedded Systems:
Control physical devices and have real-time requirements.
Example: Air conditioning control systems.
Mixed Systems:
Combine information processing with control functionalities.
Example: Automated warehouse systems.
Based on Outsourcing

In-house Projects: Developed within the organization using internal resources.
Outsourced Projects: Specific tasks or components are contracted to external entities.
Example: Developing a payment gateway module outsourced to a specialized company.
Based on Development Objectives

Product-Driven Projects:
Focus on creating a specific product as per client specifications.
Example: Developing a commercial CRM software.
Objective-Driven Projects:
Focus on achieving a business objective, with flexibility in implementation.
Example: Improving customer engagement through a digital platform.
Based on Development Approach

Traditional Development: Follows a structured methodology such as the Waterfall Model.
Agile Development: Uses iterative and incremental development methodologies for flexibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explanation
Each type of classification impacts how the project is managed:

A

Compulsory vs. Voluntary Users: Projects for compulsory users demand stringent requirement analysis, while voluntary systems focus on user engagement.
Information vs. Embedded Systems: Information systems prioritize data accuracy, while embedded systems require real-time responsiveness.
In-House vs. Outsourced Projects: In-house projects offer control, while outsourcing reduces overhead but introduces coordination challenges.
Product vs. Objective-Driven: Product-driven projects follow detailed specifications, whereas objective-driven ones allow exploratory approaches.
Understanding the classification enables project managers to tailor planning, risk assessment, and resource allocation to the project type

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe about project details with software project versus other type of project.

A

Details of a Project

A project is a temporary endeavor undertaken to achieve a unique goal or deliverable. It involves non-routine tasks, specific objectives, resource constraints, and a defined timeline. Projects are different from routine operations, which are ongoing and repetitive in nature.

Characteristics of a Project
Non-Routine Tasks: Projects deal with unique activities requiring innovative approaches.
Specific Objectives: They aim to produce a defined product or achieve a particular result.
Defined Time Span: Projects have a clear start and end date.
Temporary Team: A team is formed for the duration of the project and dissolved afterward.
Resource Constraints: Projects operate within limited resources such as budget, manpower, and tools.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Software Projects versus Other Types of Projects

A

Although software projects share some similarities with other projects, they also have unique characteristics that make them distinct.

Common Characteristics
Defined Objectives: Both software and non-software projects aim to meet specific goals.
Phased Development: They progress through stages such as initiation, planning, execution, and closure.
Resource Management: Both types require effective allocation and utilization of resources.
Risk Management: Managing uncertainties is crucial in all projects.
Unique Challenges in Software Projects
Invisibility of Progress:

Unlike physical projects (e.g., constructing a building), software development lacks tangible milestones visible during progress.
Example: Code development cannot be seen until it is implemented and tested.
Higher Complexity:

Software involves intricate logic, interdependencies, and dynamic user requirements.
Example: A simple mobile application may involve complex integrations with databases and APIs.
Flexibility:

Software systems are easier to modify than physical systems, leading to frequent scope changes.
Example: Incorporating additional features during software development.
Conformity to Requirements:

Software projects must adhere to inconsistent and evolving client needs, unlike physical systems governed by natural laws.
Example: Adding localization features for different regions after initial release.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Example

A

Example
Software Project:
Developing a mobile application for online food delivery.

Characteristics: Complex requirements, iterative development, intangible deliverables, and frequent updates based on user feedback.
Non-Software Project:
Constructing a bridge.

Characteristics: Visible progress, tangible deliverables, adherence to strict engineering standards, and minimal changes after construction begins.
Conclusion
While software projects share commonalities with other types of projects, their unique challenges such as invisibility, flexibility, and conformity to dynamic requirements necessitate specialized project management practices

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Elaborate the principle of project management process with neat diagram

A

Estimation: The project manager estimates key project attributes such as cost,
duration, and effort required to complete the project. Accurate estimation is crucial for
developing schedules, staffing plans, and resource allocation. It helps in setting realistic
expectations and managing resources effectively.
2. Cost: This refers to estimating how much the project will cost to complete, including all
resources, materials, and labor. Accurate cost estimation helps in budgeting and
ensures financial resources are available throughout the project.
3. Duration: Duration estimation involves determining how long the project will take to
complete. This is important for setting deadlines and for making resource allocation
decisions in the project schedule.
4. Effort: Effort estimation involves calculating how much work (in terms of person-hours
or resources) is required to complete the project. This helps in setting realistic work
schedules and ensuring the project is staffed adequately.
5. Scheduling: Based on the estimated effort and duration, the project manager creates a
detailed schedule, outlining when tasks need to be completed and which resources are
needed
6. Staffing: Staffing involves organizing the project team, determining the roles and
responsibilities of each team member, and ensuring the necessary skills and resources
are available.
7. Risk Management: This includes identifying potential risks, analyzing their impact, and
creating strategies to mitigate or manage them. Proactively addressing risks helps
minimize disruptions and ensures the project can stay on course despite unforeseen
issues.
8. Miscellaneous Plans: These are additional plans, such as a quality assurance plan or
configuration management plan, that ensure the project meets quality standards and
is managed effectively.
9. Project Monitoring and Control: After the project starts, the manager continuously
monitors progress against the plan. This involves tracking performance, identifying
deviations, and taking corrective actions when necessary to ensure the project stays on
track.
10. Re-estimation and Adjustments: As the project progresses, the manager gains more
information about the project, and initial estimates are revisited. Adjustments are
made to the plan as needed, reflecting new insights and resolving issues, allowing for
more accurate planning in future stages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Describe the plans, methods and methodologies in detail.

A

The success of a software project relies heavily on the effective application of plans, methods, and methodologies. Each of these elements plays a crucial role in organizing, managing, and delivering the project within defined constraints.

  1. Plans
    A plan outlines the steps, resources, and timeline required to achieve the project objectives. It translates abstract ideas into actionable tasks and helps guide the project team through structured execution.

Key Elements of a Plan
Goals and Objectives: Clearly defined outcomes that the project aims to achieve.
Activities: Tasks required to achieve the goals, including their sequence and dependencies.
Timeline: A schedule indicating when each activity should be completed.
Resources: Identification of manpower, tools, and materials required.
Risk Assessment: Identification and mitigation of potential risks.
Deliverables: Tangible outcomes produced during the project lifecycle.
Types of Plans
Project Plan: Overall blueprint for managing the project.
Quality Assurance Plan: Ensures deliverables meet quality standards.
Risk Management Plan: Identifies risks and defines mitigation strategies.
Configuration Management Plan: Manages project artifacts and changes systematically.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Methods
A
  1. Methods
    A method refers to a systematic way of performing a task or activity. Methods are used to address specific aspects of project development, such as requirements gathering, testing, or risk management.

Examples of Common Methods
Requirements Analysis:

Gather, document, and analyze user requirements.
Techniques: Interviews, surveys, and use case modeling.
Estimation Techniques:

Estimate project effort, cost, and duration.
Methods: Function Point Analysis, COCOMO Model.
Testing Methods:

Unit testing, integration testing, and system testing ensure the software meets requirements.
Risk Management:

Proactively identify and mitigate risks.
Techniques: SWOT analysis, risk prioritization matrices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Methodologies
A
  1. Methodologies
    A methodology is a collection of methods and best practices organized into a framework to guide the planning, execution, and management of projects. It provides a high-level structure for how projects should be approached and completed.

Popular Software Development Methodologies
Waterfall Methodology:

Sequential approach with distinct phases like requirements, design, implementation, testing, and maintenance.
Suitable for projects with well-defined requirements.
Agile Methodology:

Iterative and incremental approach emphasizing flexibility and customer feedback.
Includes frameworks like Scrum and Kanban.
Spiral Model:

Combines iterative development with risk analysis.
Suitable for large, complex projects with evolving requirements.
DevOps:

Focuses on collaboration between development and operations teams.
Automates workflows and integrates continuous development and delivery.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Information Systems vs. Embedded Systems
A
  1. Information Systems vs. Embedded Systems
    Software systems can be broadly categorized into Information Systems and Embedded Systems based on their purpose, functionality, and environment.

Information Systems
Definition: Systems designed to manage data and support business processes. They help organizations in decision-making, record-keeping, and data analysis.
Purpose: To process and manage information effectively.
Examples:
Payroll systems
Stock management systems
Customer Relationship Management (CRM) systems
Key Features
Focus on data processing and user interaction.
Operate in flexible and dynamic environments.
Typically run on general-purpose computing platforms (PCs, servers, or cloud environments).
Must be user-friendly and efficient for non-technical users.
Embedded Systems
Definition: Software designed to control hardware or machines in real-time environments. Often integrated into devices and have dedicated functions.
Purpose: To control hardware and manage real-time operations.
Examples:
Air conditioning systems
Automotive control systems (e.g., ABS in cars)
Medical devices like pacemakers
Key Features
Operate in constrained environments (low power, limited memory).
Require high reliability and real-time responsiveness.
Are hardware-dependent and typically run on specialized platforms.
Developed with strict timing and performance constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Software Products vs. Software Services
A

Software can be classified into Products and Services based on their delivery model, ownership, and purpose.

Software Products
Definition: Standalone software applications developed for sale or distribution to multiple customers.
Purpose: Designed to address specific, recurring needs of a broad audience.
Examples:
Microsoft Office Suite
Adobe Photoshop
ERP Systems
Key Features
Once developed, it can be distributed to multiple users with minimal changes.
Revenue is generated through licenses or subscriptions.
Requires periodic updates to maintain relevance.
Software Services
Definition: Custom-built software solutions or online platforms designed to address specific needs of individual clients or organizations.
Purpose: To provide tailored solutions or ongoing functionality via the cloud or on-premises deployment.
Examples:
Web development services
SaaS platforms like Google Workspace
Consulting services for application customization
Key Features
Built or delivered based on customer-specific requirements.
Revenue is based on usage, time, or subscription models.
Continuously evolves based on customer feedback or operational needs.

17
Q

Outsourced Projects

A
  1. Outsourced Projects
    Outsourcing refers to the practice of delegating certain tasks or parts of a project to an external organization or third party. Companies often choose outsourcing to leverage expertise, reduce costs, or save time.

Definition
An outsourced project is one in which an organization contracts a third party to perform specific tasks or deliverables that are part of the larger project.

Key Characteristics of Outsourced Projects
Specialized Tasks: Tasks that require expertise unavailable within the organization are outsourced.
Cost Efficiency: Often more economical than in-house development.
Temporary Collaboration: The external team is usually engaged for the project duration only.
Defined Scope: The tasks or components to be delivered are clearly specified in the contract.
Risk Management: Includes challenges like communication gaps, cultural differences, or dependency on external vendors.
Advantages of Outsourcing
Cost Savings: Reduces the cost of hiring, training, and maintaining in-house staff.
Access to Expertise: External teams bring specialized knowledge and skills.
Focus on Core Activities: Allows organizations to concentrate on their core competencies.
Scalability: Provides flexibility to scale up or down as per project requirements.
Challenges of Outsourcing
Communication Barriers: Geographical and cultural differences can lead to misunderstandings.
Quality Assurance: Ensuring the deliverables meet the required standards can be difficult.
Dependency: Over-reliance on external teams can pose risks to project continuity.
Examples of Outsourced Projects
Development of specific software modules by a third-party company.
Outsourcing customer service operations to a call center.
Contracting cloud service providers to manage infrastructure

18
Q
  1. Objective-Driven Development
A
  1. Objective-Driven Development
    Objective-driven development focuses on achieving specific goals or outcomes, as opposed to merely delivering a predefined product or service. It emphasizes the results and benefits of a project rather than the process or product itself.

Definition
An objective-driven project is one where the emphasis is on meeting certain objectives or solving a problem, allowing flexibility in how those objectives are achieved.

Key Characteristics of Objective-Driven Development
Flexibility: Developers have the freedom to decide the best methods or tools to meet the objectives.
Outcome-Oriented: Success is measured by the achievement of goals rather than adherence to a predefined product specification.
Exploratory Approach: Often used in projects where the exact requirements are unclear at the outset.
Stakeholder Involvement: Continuous feedback and collaboration with stakeholders help refine objectives and ensure alignment.
Advantages of Objective-Driven Development
Adaptability: Allows changes in approach as new requirements emerge.
Stakeholder Focus: Ensures objectives align with user and organizational needs.
Innovation: Encourages creative solutions to meet goals.
Examples of Objective-Driven Projects
Reducing operational costs by 20% through automation.
Enhancing user engagement on a digital platform without specifying the exact features to be developed.
Improving response times in a customer support system.

19
Q

Conclusion

A

Conclusion
Outsourced Projects help organizations achieve their objectives by leveraging external expertise, but they come with risks like communication challenges and quality control.
Objective-Driven Development, on the other hand, emphasizes flexibility and outcomes, making it ideal for projects with evolving requirements or broad goals. Both approaches are integral to modern software development, depending on the project’s nature and requirements​