SDLC

TL;DR (too long, don’t read)

SDLC - steps to create a software product. The process that includes planning, analysis, design, implementation.

Software Development Life Cycle

  • SDLC is a process used by the software industry to design, develop and test high quality software.
  • The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
image

На русском:

  1. Инициация (идея), планирование.
  2. Сбор требований от бизнес аналитика (тестируем не противоречат ли друг други требования, несколько полные они, как они написаны)
  3. Подключается затем дизайнер, и делает шаблоны или макет для приложения (тестируем шаблон на предмет соответствия требованиям, usability testing - на сколько удобно использовать приложение конечному пользователю)
  4. Если все нравится, начинается процесс разработки
  5. И разработанный продукт попадает в руки тестировщика (тестируем то что написали девелоперы, frontend и backend, альфа и бета и тд)
  6. Вход и эксплуатация

Тестировщик входит в команду уже на этапе сбора требований

In English:

  1. Planning
    1. Calculating labor, cost, and creating timetable with target goals. Get feedback from developers, stack-holders, customers and sales representative.
    2. Creating teams, and defining clearly the purpose of the application.
  2. Define requirements
    1. What application is supposed to do, and it’s requirements (Ex.: a social network should have ability to connect with friends)
  3. Designing and prototype
    1. System design, user interface, platform (web, mobile), communications, security, database, infrastructure, code architecture.
  4. Software development
  5. Testing
  6. Deployment
  7. Operations and maintenance

What is the SWE?

Software Engineering is a discipline that involves the application of principles, methods, and tools for the development of high-quality software. It involves the use of engineering principles to design, develop, and maintain software systems. Software Engineering is concerned with the development of software products that are efficient, reliable, maintainable, and cost-effective.

The framework activities of Software Engineering are as follows:

  1. Communication: This involves communicating with the customer to understand the requirements and expectations of the software system.
  2. Planning: This involves planning the software development process, including setting the project goals, scheduling, resource allocation, and risk management.
  3. Modeling: This involves creating a model of the software system using various techniques such as data flow diagrams, use case diagrams, and entity-relationship diagrams.
    1. Analysis of requirements
    2. Design
  4. Construction: This involves the actual development of the software system using various programming languages and development tools.
    1. Code generation
    2. Testing: This involves testing the software system to ensure that it meets the specified requirements and is free from defects.
  5. Deployment: This involves deploying the software system in the production environment.
  6. Maintenance: This involves maintaining the software system after it has been deployed to fix any defects, add new features, and improve the system's performance.

Polya suggests

  1. Understand the problem (communication and analysis).
  2. Plan a solution (modeling and software design).
  3. Carry out the plan (code generation).
  4. Examine the result for accuracy (testing and quality assurance).

Hooker’s principle

1: The Reason It All Exists
2: KISS (Keep It Simple, Stupid!)
3: Maintain the Vision
4: What You Produce, Others Will Consume
5: Be Open to the Future
6: Plan Ahead for Reuse
7: Think!

4 P’s of SWE

  • People: the most important element of a successful project
  • Product: the software to be built
  • Process: the set of framework activities and software engineering tasks to get the job done
  • Project: all work required to make the product a reality

Resources:

SuperMade with Super