Document Details

DazzlingSloth5521

Uploaded by DazzlingSloth5521

Tags

project management software development life cycle sdlc application development

Summary

This document describes the stages of the Software Development Life Cycle (SDLC) for application development projects. It includes planning, analysis, design, implementation, testing and deployment phases with detailed insights. The role of project management and importance of planning and communication are also addressed.

Full Transcript

# Project Management in Application Development ## Software Development Life Cycle (SDLC) - Provides overall framework for managing systems development process. - SDLC process is used by the software industry to design, develop, and test high-quality software. - It aims to produce the quality soft...

# Project Management in Application Development ## Software Development Life Cycle (SDLC) - Provides overall framework for managing systems development process. - SDLC process is used by the software industry to design, develop, and test high-quality software. - It aims to produce the quality software that meets or exceeds customer expectations, reaches completion within time and budget. The SDLC has typically been divided into several major phases, which include planning, analysis, design, implementation, testing, and maintenance. Each phase has its deliverables and activities, which must be accomplished before moving on to the next one. This structured approach helps in managing complex software projects effectively. ### 7 Stages of Software Development Life Cycle 1. **Planning:** In this step, we are putting together all the tools to consider the scope and gravitas needed to pursue the software or project. 2. **Requirements:** In this step, we are putting together all the tools to consider the scope and gravitas needed to pursue the software or project we want. 3. **Design & Prototyping:** Developers and software architects start designing the software after they have identified requirements. Developers apply proven methods for developing software to solve algorithmic issues. 4. **Coding/Software Development:** Tasks are divided into units or modules in the coding process and allocated to the specific developers. 5. **Testing:** When the coding is complete, testing begins, and the modules are released for evaluation as software testing is necessary to avoid any bugs. 6. **Software Deployment:** In this step, we are putting together all the tools to consider the scope and gravitas needed to pursue the software or project we want. 7. **Maintenance:** In this step, we are putting together all the tools to consider the scope and gravitas needed to pursue the software or project we want. ## Planning Phase The planning phase involves defining the scope and purpose of the project. Stakeholders identify requirements and constraints that will guide the project. A project plan is created, detailing resources, timelines, and budget estimates. | Phase | Description | | :--------------- | :-------------------------------- | | Project Charter | Project Initiation | | Scope & Budget | | | Work Breakdown | | | Schedule | | | Gantt Chart | | | Communication Plan | | | Risk Management | | | Status & Tracking | KPIs, Forecasts, Quality Objectives | | Quality Deliverables | | | Effort & Cost Tracking | | | Performance | | | Post Mortem | Project Punchlist, Reporting | ## Analysis Phase During the analysis phase, detailed requirements gathering takes place through stakeholder interviews and surveys. The requirements are documented and analyzed to ensure they align with project goals. This stage helps in finding probable risks and setting up a strong base for designing. - **User Requirements:** - Conflicts Work Flow and Organization - Identify Ever Requirements - Recover Current Design - **Requirements Analysis:** - Prototype Brincu Process - Create Event Model - Create Process Model - Create Data Model - **Quality Requirements:** - Identify Quality Requirements - Establish Metrics and Goals ## Design Phase The design stage is making software architecture based on collected requirements. Designers come up with models and prototypes so that they can see how the application will work. Technical specifications and user interfaces also come under this phase. ### The Technical Aspects of the Design Phase - **Coding Standards** - **Project Tasks** - **Milestones & Deadlines** ## Implementation Phase In the implementation stage, coding, and development of software occur. Developers take the design specifications and then write the code and design the software. Team cooperation and communication are essential as they have to work within timelines. ## Testing Phase ### This process is testing the software with defects, so that it follows the required specifications. Multiple testing methods are used during this process, such as unit testing, integration testing, and user acceptance testing, among others. The objective is finding and fixing problems before delivery to users. - Requirement Analysis - Test Planning - Test Case Development - Test Environment Setup - Test Execution - Test Closure ## Deployment Phase The deployment phase is releasing the software into the production environment once it is developed. User training and support are also done before the software is deployed. Monitoring post-deployment identifies any urgent issues. ### Deployment Planning - **Business Case** - **Recommended Best Practices** - **Planning Guidance** - **Troubleshooting Tips** - **End-user Communication Templates** - **System Architecture** ## Deployment Phase Maintenance after deployment involves keeping the software running and relevant over time. Regular updates, bug fixes, and enhancements based on user feedback are made. Continuous maintenance is what will make the software run long-term. ## Benefits of SDLC Implementing SDLC brings a lot of benefits to the organization such as enhanced project visibility, resource management, and collaboration with the team members and stakeholders leading to higher quality results. Structured approach reduces the risk factors and increases the success ratio of the project. ## SDLC Model - A framework that describes the activities performed at each stage of a software development project. - There are various software development approaches defined and designed which are used/employed during the development process of software, these approaches are also referred as "Software Development Process Models." ## Waterfall Model A traditional SDLC approach that follows a sequential, linear process, where each phase must be completed before moving to the next, with progress flowing downward like a waterfall. ### Waterfall Model - **Requirement Gathering & Analysis** - **System Design** - **Implementation** - **Testing** - **Development** - **Maintenance** ### Strengths: - **Simple and Easy:** to use, its clear structure makes it suitable for smaller projects. - **Well-Documented:** Each phase has defined deliverables, leading to clear documentation. - **Easy to Manage:** Since it is a linear approach, it's easier to manage progress and resources. ### Limitations: - **Inflexibility:** It's hard to change requirements in later stages. - **Late Testing:** Issues are often found only after development. - **Unsuitable for Evolving Projects:** Not ideal for projects with changing requirements ### When to Use the Waterfall Model: - Requirements are very well known - Product definition is stable - Technology is understood - New version of an existing product - Porting an existing product to a new platform. ## V Model The V-Model (Validation and Verification Model) is an extension of the Waterfall Model that emphasizes a step-by-step, sequential process. Each development phase has a corresponding testing phase. ### V Model - **Requirement Gathering** - **System Analysis** - **Software Design** - **Module Design** - **Coding** - **Unit Testing** - **Integration Testing** - **System Testing ** - **Acceptance Testing** ### Strengths - **High focus on validation and verification** ensures that errors are caught early. - **Better suited for safety-critical applications** like healthcare. - **Clear milestones** make project tracking easy. ### Limitations - **Inflexible for evolving requirements,** as any changes require returning to earlier phases. - **High upfront planning required,** less suitable for projects with frequent changes. ### When to Use the V-Model In healthcare, safety-critical systems like patient management and diagnostic software rely on the V-Model to ensure robust testing at each level. Verification (testing each phase) ensures that safety, security, and performance standards are met. ## Iterative and Incremental Model The Iterative and Incremental Model divides development into small, manageable pieces, improving the system with each iteration. The system evolves over iterations, with feedback loops allowing for continuous improvement. ### Iterative and Incremental Model - **Initial Planning** - **Requirements** - **Analysis and Design** - **Planning** - **Implementation** - **Evaluation** - **Testing** - **Deployment** ### Incremental - Adds functionality with each step. ### Iterative - Refines existing functions through user feedback and testing. ### When to Use the Iterative and Incremental Model - **Google Chrome's Development** Chrome is updated regularly using an iterative approach where developers release new features or performance improvements in incremental versions. Each iteration includes enhancements, security patches, and sometimes major new features based on user feedback and testing. This process allows Chrome to evolve quickly while maintaining stability and user satisfaction. It also ensures that bugs or usability issues are addressed incrementally without waiting for a complete overhaul. ### Strengths: - **Flexible, allowing for changes in scope and design after each iteration.** - **Continuous feedback from users ensures relevance and functionality.** ### Limitations: - **Managing multiple iterations can lead to scope creep.** - **Requires more time for project management and continuous user involvement.** ## Spiral Model A risk-driven development process that combines elements of both iterative and waterfall models. It is particularly useful for large, complex projects where risks need to be managed effectively. ### Spiral Model - **Determine objectives, alternatives, constraints** - **Plan next phases** - **Concept** - **Prototype** - **Requirements, Design, Implement** - **Evaluate alternatives; Identify, resolve risks** - **Develop next level product** ## Agile Methodology - Agile is a flexible, iterative approach to software development that focuses on delivering small, incremental improvements frequently, with an emphasis on collaboration, adaptability, and customer feedback. ### Agile Methodology - **Release** - **Test & Fix** - **Iteration** - **Code** - **Design** ### 12 Official Agile Principles (in order as described in Agile Manifesto) 1. **Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.** 2. **Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.** 3. **Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.** 4. **Businesspeople and developers must work together daily throughout the project.** 5. **Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.** 6. **The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.** 7. **Working software is the primary measure of progress.** 8. **Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.** 9. **Continuous attention to technical excellence and good design enhances agility.** 10. **Simplicity—the art of maximizing the amount of work not done—is essential.** 11. **The best architectures, requirements and designs emerge from self-organizing teams.** 12. **At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.** ## Some Agile Methods - **Rapid Application Development (RAD)** - **Scrum** - **Extreme Programming (XP)** - **Adaptive Software Development (ASD)** - **Feature Driven Development (FDD)** - **Crystal Clear** - **Dynamic Software Development Method (DSDM)** - **Rational Unify Process (RUP)** ## RAD Model (Rapid Application Development) - Based on iterative development and prototyping with little planning involved. - It involves the following phases: 1. Business modeling 2. Data modeling 3. Process modeling 4. Application generation 5. Testing and turnover ## SCRUM Model Scrum is based on the agile project management framework centered around continuous improvement through small and frequent releases called sprints. ### SCRUM Model - **Product Goal** - **Product Backlog Refinement** - **Sprint Goal** - **Sprint Planning** - **Sprint Backlog** - **Sprint Retrospective** - **Daily Scrum** - **Definition of Done** - **Scrum Review** - **Increment** ### SCRUM Roles - **PO - Product Owner** - **SM - Scrum Master** - **Dev - Developer** ### SCRUM Model Values - **Transparency** - **Inspection** - **Adaptation** - **TRUST** ### SCRUM Model Principles - **Courage:** Scrum Team members have courage to do the right thing and work on tough problems - **Focus:** Everyone focuses on the work of the Sprint and the goals of the Scrum Team. - **Commitment:** People personally commit to achieving the goals of the Scrum Team. - **Respect:** Scrum Team members respect each other to be capable, independent people. - **Openness:** The Scrum Team and its stakeholders agree to be open about all the work and the challenges with performing the work. ### Strengths: - **Flexibility and adaptability.** - **Faster time to market.** - **Strong customer collaboration and feedback loop.** ### Limitations: - **Not ideal for fixed-scope projects.** - **Requires high commitment from all stakeholders.** - **Harder to predict delivery timelines in larger teams.** ## Agile Model: Strengths - **Is a very realistic approach to software development.** - **Promotes teamwork and cross training.** - **Functionality can be developed rapidly and demonstrated.** - **Resource requirements are minimum.** - **Suitable for fixed or changing requirements.** - **Delivers early partial working solutions.** - **Little or no planning required.** - **Easy to manage.** ## Agile Model: Weaknesses - **For larger projects, it is difficult to judge the efforts and the time required for the project in the SDLC.** - **Since the requirements are ever changing, there is hardly any emphasis, which is laid on designing and documentation. Therefore, chances of the project going off the track easily are much more.** - **Depends heavily on customer interaction, so if the customer is not clear, the team can be driven in the wrong direction.** ## Conclusion - **Project Management:** Lead to an endeavor. - **Planning:** A map, a guide, especially for a team. (Relatively simple and helpful techniques) - **SDLC:** Mostly about people, processes, time management & communication. - **Risks:** Are inevitable, planning helps to avoid stupid ones (Experience counts). - **Assessing:** The scope of work, timing, risks, and resources will lead to project success.

Use Quizgecko on...
Browser
Browser