Search notes:
Software Development Life Cycle
Aka: Software Development Process
Software is developed rather than manufactured . And it does not wear-out. It rather becomes obsolete.
SDLC: The entire life of a software (project).
SDLC is based on the waterfall model.
Phases
Identify current problems in collaboration with stakeholders .
Planning: create «Software Requirement Specification» documents. Planning is more than just setting milestones.
Definition
Design: turn requirements into «Design Specification» documents.
Build
Test: determine gap between requirements and what was built.
Deploy
Maintain
The SDLC is a cycle because after deployment or while mainting the software, the iteration starts again with identifying current problems.
A phase is group of activities .
An activity is a group of tasks .
A task is the smallest piece of work.
(Quality-)gates
After each phase, a gate needs to be passed in order to proceed to the next phase. (Waterfall model)
The outcome of a gate is one of
go
conditional go
hold
recycle
kill
Policies
Quality gates
controls
metrics
standards
Models
Waterfall Model: end of phase starts new phase (The original SDLC model).
V-Shaped: an extension of the waterafll model
Agile Modell: cycles
Iterative: iteration (rather than cycles)
Spiral Mode: similar to iterative model, but repetition rather than iterations
Big Bang Model: start with almost no requirements
Rapid Application Development (RAD)
Artifacts
An
artifact is a tangible by-product needed for and produced by the SDLC.
Artifacts that help describe the function, architecture and design of software:
Use cases
class diagrams
UML models
ERD
Artifacts that are used for the the process itself:
Project request form
Project evaluation form
Project charter
Project plan
Functional requirement document (FRD)
System Design document (SSD)
Master plan for testing and evaluation
Training plan
Maintenance manual
User/operator manual
Traning manual
Test analysis report
Implementation plan
Implementation report
Maintenance agreement
Stakeholders
Directors/Management
Project Manager
Customers
Sponsors
Salespeople
Business analyst : works closely with the subject matter expert.
Domain experts
Subject matter expert: understands the current business processes and any new requirements that are to be satisfied by the project. Works closely with the BA.
Designers
Solution architect: translates requirements into architecture.
Technical Architect
Programmers
DBA
Tester
Trainer
Security
Infrastructre
Requirement management
Managing the requirements of a project is one of the hardest challenges.
Users have no idea what they want.
Communication of ideas among stakeholders is difficult (they tend to not understand each other)
Proposed changes are a constant source of frustration
Thus, the requirement management deserves a special focus in SDLC.
First and foremost, requirement management must be thoroghly planned (as should be every other task in software development).
7 key factors to get successful results in IT projects
According to
Germán Arias, et al , 7 factors are key for a successful project:
Senior management support
Qualified project managers
Adequate planning
Involvment of key users
Requirement's management
Monitoring and controlling the execution of the project
Development team management
Methods
Object oriented programming (OOP)
Aspect oriented programming (AOP)
Component oriented programming (CBP)
Service Oriented Architecture (SOA)
Feature driven development (FDD)
Test driven development (TDD)
Kanban
Lean software development
Environments
…
UAT User acceptance testing
…
Tools
Open Services for Lifecycle Collaboration (OSLC)
With OSLC specifications, tools understand each others' data and artifacts, such as requirements, defects, test cases, change history)
This helps making better decisions by analyzing, tracking and exploring data.
Coding Standards
Rational: easier to fix problems.
Solution Design
Any solution design has two aspects:
Data
Technology (Components: Service container, broker and process coordinator)
Successful development
User involvation and participation.
Establishment of phases and activities. (Needs discipline)
Establishment of standards for development and documentation (Needs discipline)
Divide and conquer
Planning
Management
Have a problem solving mind.
Relationship DevOps
SDLC is concerned with the creation and writing of software.
DevOps focuses on using the software.
Buzzwords for DevOps are:
Continuous integration
Continuous deployment
Release management
Application Lifecycle Management (ALM)
ALM covers everything from birth to death of a product:
SLDC (Thus, ALM is broader than the SDLC)
DevOps
Portfolio management
Service desk
Project integration
Project integration is a process to make sure that all elements of a project work well together: tools, stakeholders, organizational units etc.