SRE Bootcamp Series — Software Lifecycle

Traditional and Modern Software Phases

Jansutris Apriten Purba
4 min readMay 21, 2021

Hallo Geeks, I hope you feeling good and enjoy your entire life.

Now i’d like to convey to you:

  • Introduction with Barry Bohem
  • Traditional software phases
  • Agile Process
  • Choosing a Software Process Model
  • Classic Mistakes at: people, process, product, technology

All of these knowledge is come from my learning syllabus at AccelByte Inc. presented by udacity.

Happy Reading guys!

Introduction With Barry Bohem

Distinguished Professor of Software Engineering

If you play in software lifecycle (SLC), maybe as a software engineer or programmer, Barry W. Bohem in advance said that you have to answer these eleven basic question in which:

  1. What is SLC?
  2. How long should I do it for?
  3. It is important to understand which models are good for which situation?
  4. What should I do next?
  5. Criticality of the software also plays an important role when choosing a model?
  6. And so does the expected variability in the requirements?
  7. Sequence of decisions that determine the history of your software?
  8. There are many ways in which you can make these decisions?
  9. Small projects are usually appropriate for agile?
  10. Larger projects may require a more rigorous approach?
  11. You may even use multiple lifecycle models within a single project?

Traditional software phases

The software development process contains fundamental activities or phase like:

  • Requirements Engineering → Process of estabilishing the needs of stackholders that are to be solved by software.

The steps in here are: elicitation, analysis, spesification, validation, management.

  • Design →a set of design activities

in which: architectural design, abstract spesification, interface design, component design, data structure, algorithm design.

  • Implementation →realizing the actual design of the system.

In this step, there are 4 principle which are implemented like: reduction complexity, anticipation of diversity, structuring for validation (design for testability), use of (external) standards.

Verification & Validation →phases in which check that the software system meets its specification and fulfills its intended purpose. in which

The keys question are:

validation: did we build the right system?

verification: did we build the system right?

we can use some methods like: unit test, integration test, system test.

  • Maintainance →When software is in operation many things can happen.

The environments might changes, new libraries, need spesific operating system. in this steps operation team needs to write up 3 documents like: bug report, feature request, environment change.

3 kinds of maintainance are:

  1. corrective maintainance
  2. perfective maintainance
  3. adaptive maintainance

Operation team have to do regression test to the application, where regression testing is the activity of re-test the software after it has been modified to make sure that the changes you perform to the software work as expected and introducing unforseen effect.

Agile Process

Process which based on highly iterative and incremental development.

TDD Cycle

In this steps, we need to create TDD (Test Driven Development) in which:

  • Red (fail)→write a test case that fails
  • Green (pass) → make only enough code for it to pass.
  • Refactor → improve code quality

Choosing a Software Process Model

Criterias for choosing the best software model

We can choose best software process model by following up this criteria:

  • requirements understanding
  • expected lifetime
  • risk
  • schedule
  • interaction with management/customers
  • Expertise

Classic Mistakes

  1. People

There is a people which type:

  • Heroics,
  • Not to work in nice environment
  • People of management/lack of leadership.

2. Process

The mistakes are:

  • Scheduling issues
  • Planning issues
  • Unforseen failures.

3. Product

The mistakes are:

  • gold platting: (so many requirements that do not needed by the customers so that it will make the project schedule longer)
  • Feature creep: (create more and more feature which not initially planned and are not really needed in most cases)
  • Research != Development

4. Technology

Technology mistakes
  • Silver-bullet syndrome/Unused technology or new technologies which did not solve development issues.
  • switching tools in the middle of the project
  • Lack of version control system (vcs) for your code and for your various artifacts.

That’s all, Thank you!

--

--