SRE Bootcamp Series — Software Processes
Software processes, Software phase and Tools of Trade
Hallo Geeks, I hope you feeling good and enjoy your entire life.
Now i’d like to convey to you:
- Software processes
- Software Development phase
- Tools of Trade
All of these knowledge is come from Udacity. I found this link from my bootcamp’s learning syllabus arranged by AccelByte Inc. Happy Reading guys!
Software processes
Software processes (SP) is the implementation from abstract idea in somebody’s head, for example, the customer’s head, to a concrete system. Hopefully it does in the right way.
SP is a way of breaking down the complexity of software like un-manageable task into smaller steps that we can handle and tackled individually. SP is also a formal or semiformal way of discussing, describing how software should be developed which is we call Software Phases. In short, the example are waterfall, evolutionary prototyping, RUP/USP, and Agile.
Software Phases
In fact, Software processes are characterized by several phases. One of the phase is mainly focused on coding and the other phases are meant to support other parts of software development.
Fundamentally, There are 5 phases of Software development which are:
- Requirements Engineering
We talk to the customers, to the stakeholders, whoever we are building the software for and try to collect the information and understand what kind of system that we need to build.
2. Design
Then we use these information to define our high-level architecture design.
3. Implementation
In which we write code that implement the design that we just defined.
4. Verification and Validation
After implementing the code, we need to verify and validate the code. in this step, we want to make sure that the code behaves as intended.
5. Maintenance
Finally, we maintain the code involves several activities. For example, adding new functionality or eliminating bugs from the code or responding to problems were reported from the field after we released the software.
Tools of the Trade
We will also look at how tools can improve software phases not only for efficiency or for improving productivity but also effectiveness of our activities in software development process. The tools also having robust improvement/evolution. we actually have some evolutionary tools like:
- Development: Punch Cards -> IDE (Integrated Development environments) the editors in which you can write or compile or run or debug or even test your code.
- Language: Machine Code ->High-Level Languages
- Debugging: Print lines -> Symbolic Debuggers.
Magic Tools
- Version Control System (VCS): it is a tool to check the differences between versions of code, in particular we work with git.
- Git Repository: Git stores information in a data structure called a repository. Git repository is a central place where developers collaborate, store, share and test their codes on web projects. In particular we work with GitHub or GitLab or Bitbucket.