• Wed. Oct 30th, 2024

ALM Components

ALM (Application Lifecycle Management) encompasses a set of components that facilitate the management and coordination of software development processes throughout the entire application lifecycle.

Components of ALM

  1. Requirements Management: This component involves capturing, documenting, and managing the functional and non-functional requirements of the software application. It includes features like requirement gathering, tracking changes, and ensuring traceability between requirements and development artifacts.
  2. Version Control: Version control is a critical component that manages source code and tracks changes made by developers. It enables collaboration, ensures code integrity, and provides the ability to revert to previous versions if necessary. Popular version control systems include Git, Subversion (SVN), and Mercurial.
  3. Change Management: Change management handles the process of requesting, reviewing, approving, and implementing changes to the software application. It helps maintain the stability and reliability of the software by ensuring that changes are properly evaluated, tested, and deployed.
  4. Test Management: Test management component focuses on planning, designing, executing, and tracking software testing activities. It includes test case management, test execution, defect tracking, and test result analysis. Test management tools often integrate with test automation frameworks and provide reporting capabilities.
  5. Defect/Issue Tracking: Defect or issue tracking is crucial for recording, tracking, and managing software defects, issues, and enhancements reported during testing or production. It helps teams prioritize and address identified problems efficiently and ensures proper communication between developers, testers, and stakeholders.
  6. Build Automation: Build automation involves automating the process of compiling, building, and packaging the software application. It ensures consistent and repeatable builds, reduces human error, and facilitates faster delivery of new features and bug fixes.
  7. Continuous Integration/Continuous Delivery (CI/CD): CI/CD enables the automated and frequent integration, testing, and deployment of software changes. It ensures that software changes are validated and delivered to production reliably and quickly. CI/CD pipelines automate tasks such as code compilation, testing, and deployment.
  8. Project Management: Project management component provides capabilities for planning, tracking, and managing software development projects. It includes features like task management, resource allocation, scheduling, and reporting to ensure successful project execution and meet project objectives.
  9. Collaboration and Communication: Collaboration and communication tools facilitate effective communication and collaboration among team members, stakeholders, and other project stakeholders. These tools often include features such as team chat, document sharing, wikis, and discussion forums.
  10. Reporting and Analytics: Reporting and analytics components provide insights into project progress, quality metrics, and other key performance indicators. They enable project stakeholders to monitor the status, identify bottlenecks, and make data-driven decisions for process improvement.

ALM tools and platforms often integrate and provide functionalities across these components, streamlining software development processes and improving overall productivity and quality.

Understanding Requirements

Stakeholder Requirements

  • Stakeholder Requirements refers to User Need document, which describes what users do with the system.
  • They are drafted with simple text, use cases, user stories, example scenarios and some table representation
  • Requirements which acts as primary input to System team development
  • Requirement comes from various stakeholders like Supplier, sales, marketing, R&D, ISO standards, regulatory laws
  • They will be obtained in the form of ReqIF, Word, Excel or even PDF formats

System Requirements

  • Derived from stakeholder requirements and describe what system must do based on those requirements.
  • In this phase the input requirements are transformed into unique, quantitative and measurable technical requirement
  • System RQ are the minimal or maximum hardware and software specification that system need to function properly
  • In order to define system requirement for particular function, its necessary to analyze functional and non functional requirements of the system

Software Requirements

  • This defines the features and functionalities of target system
  • The requirements says the expectation from the software product
  • Software Requirements give feedback to the potential customer, break down any problems into smaller parts, and also provide input toward the actual design
  • Here functional requirements requirement defines what a product must do, what its feature and functions are
  • Non-Functional requirements describes the general properties of the system

Specification/Design Document

  • The specification/design document describes the overall architecture
  • Its usually done by software designer or architect and given to software development team to give them overview of what needs to build and how
  • Software design documents not only help others understand the system and provide documentation for future projects, but it also forces to think through the entire system architecture.
  • Commonly used design tools for Design includes Enterprise Architecture, Cameo, Simulink models and Doxygen (code snippets)

How to Write System Requirements ?

System requirement plays an important role in satisfying stakeholder requirement,

  1. Identify the purpose of the system and Identifying the stakeholder who will be using it. This helps to understand the goal and need of system
  2. Create list of functional requirements for the system. They are specific action that system is capable to perform. Eg., in case of website, ability to create account, login and search for products
  3. Create list of non-functional requirements. They defines the quality or performance of the system. Eg., in case of website, response time, uptime and security
  4. Organize requirements as different category and sections. This ensure easy readability
  5. Review System Requirements with stakeholders as this is base for software development

How to write Software Requirement

  1. Software requirements detail the features and functions of a software application and outline the organization’s understanding of the client’s needs
  2. Software requirements outline the blueprint for the scope of the software project, but they don’t include technological solutions or designs.
  3. The Software Requirement will include information about what the end-user will be able to do with the software and details about security, user interface, and data requirements.
  4. Process involved in gathering information to fill out the software requirements includes four steps: elicitation, analysis, specification, and validation
  5. The document should be consistent and complete. Avoid duplication so that you don’t end up with inconsistencies as requirements change.
  6. Every requirement must be unambiguous and correct. Nothing should be left to explain
  7. Each requirement should be verifiable and traceable

Understanding Testing

Early identification of defects increases the product quality and keep healthy of your project cost. Some of the recommended test scenarios are explained below,

Unit Testing

  1. Unit Testing It is a type of software testing in which a small piece of code is tested to see if the code works as expected.
  2. The goal of Unit testing is to help reduce the cost of bug fixes, as this way, bugs or errors in the code level are identified early in the development lifecycle
  3. Its typically done by software developer at any point of time
  4. It is very limited in scope, as it only covers a piece of code and focus on one single module
  5. Test executor knows the internal design of the software and hence finding errors is easy
  6. It is white box testing

Integration Testing

  1. Integration testing, verifies that the interface between two software units or modules works correctly
  2. It is a broader type of testing that covers connection between 2 or more modules and can also in some cases, cover the whole application.
  3. It is traditionally carried out by a separate team of testers
  4. It is usually carried out after Unit Testing but before the overall system testing
  5. Testers don’t know the internal design of the software and hence finding errors is more difficult
  6. It is a black box testing

System Testing

  1. It is the important element which involves Software, Hardware, procedures, data networking and how people interact with System
  2. System testing is the level of testing that verifies whether stated requirements met an acceptable level of quality
  3. When we think of any type of system, such as the transportation systems, we see the idea of interconnected parts all working together to achieve specific objectives. If a critical component of the system fails, the entire system is subject to failure
  4. System testing is an opportunity to verify if requirements are being met at the big picture level. If not, there is still a chance to make corrections.
  5. System testing is often performed by an independent test team either within an organization or external

Software Configuration Management

Software Configuration Management(SCM) is a process to systematically manage, organize, and control the changes in the documents, codes, and other entities during the Software Development Life Cycle. SCM is part of cross-disciplinary field of configuration management and it can accurately determine who made which revision. Project manager, Configuration manager, Developer, Auditor, and user are participants in SCM process

As a overview SCM is the discipline which,

  • Identify change
  • Monitor and control change
  • Ensure the proper implementation of change made to the item.
  • Auditing and reporting on the change made.

Why Needed?

The primary reason are as below,

  • Configuration Management best practices helps organizations to systematically manage, organize, and control the changes in the documents, codes, and other entities during the Software Development Life Cycle
  • The main reason behind configuration management process is that there are multiple people working on software which is continually updating. SCM helps establish concurrency, synchronization, and version control.
  • Change control is a procedural method which ensures quality and consistency when changes are made in the configuration object.
  • A baseline or checkpoint is a formally accepted version of a software configuration item

Change Management

Change management refers to the structured approach and set of processes used to plan, implement, and manage changes within an organization. It involves managing the transition from the current state to a desired future state while minimizing disruption and maximizing the benefits of the change.

Components of Change Management:

  1. Change Identification
  2. Impact Assessment
  3. Change Planning
  4. Stakeholder Engagement
  5. Training and Education
  6. Communication
  7. Change Implementation
  8. Monitoring and Evaluation

Release Management

Release management refers to the process of planning, designing, scheduling, testing, deploying, and controlling software releases. Release management starts with requests for new features or changes to existing functions

PhasesExecution Action
PlanA robust plan is made. It should cover the scope and responsibilities
Design and BuildIn this phase the requirements are converted to code for executable software
TestingReady for deploy to test environment. If any bugs found will send back to developers. The process repeated and taken to production
DeploymentRelease is implemented with live environment and made available to end users
Post DeploymentThe release moves to support phase. Any bugs raise post deployment are recorded and go as change to next release cycle

Change Request

  1. A change request form is a form used to request, approve, and track project-related changes
  2. The change request also covers, Scope, Risk, Cost, Quality and Duration of the project
  3. Once change is created, the first thing is to check how the change impacts the project
  4. On approving the change, the plan requires to be adjusted accordingly.
  5. The investigation will be distributed to team members via Task assigned to them.

Task

  1. Task management is the process of keep tracking of projects through various stage from start to finish
  2. Here all tasks like budget, time, scope, resource are handled effectively
  3. Each task have its own goal. The group of tasks together contribute towards project execution
  4. Task shall be split and taken care based on work type. Some classifications are Investigation, Implementation, Verification and testing

Defects

  1. Defect management is the process of identifying, documenting, and tracking defects (bugs or issues) in a software product
  2. In software development process, it has to be ensured that defects are identified and addressed in timely manner
  3. Analyzing bugs that need identification, documentation, monitoring, and addressing large codebases of complex software applications are broken as Tasks
  4. Defect management helps minimize defects, identify defects in the earlier stages of the software development lifecycle, and mitigate the impact
  5. Testers usually identifies variation in results during test execution and same have been registered as defects

Loading

Bookmark (0)

No account yet? Register

Views: 48

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x