Software Engineering?

Sagar Alwani
5 min readDec 4, 2021

What tf you are talking about?

Are you talking about Computer Science?

I know Engineering, now what’s that Software Engineering?

In this article we will discuss Software Engineering.

First of all, What is a Software?

As above Image depicts :)

Software: Collection of some programs.

Programs: Collection of Instructions.

Instructions: Some lines of Code(Logic).

Not wasting much time on types of Software and their use, let’s jump on actual Software Engineering.

Software Development Life Cycle.

Different models that are followed in Software development.

Software Development Life Cycle(SDLC)

The first two steps are often interchangeable.

  1. Feasibility Study
  • In this step, we Define and document software needs.
  • It Is conducted with the help of Software requirement specifications(SRS).
  • Includes everything that will be designed and developed during the project life cycle.

5 types of feasibility checks:

  • Economic: Can we complete it within budget or not?
  • Legal: Can we handle this as cyber law and regulatory framework?
  • Operation Feasibility: Can we create operations that are expected by the client?
  • Technical: Whether our current resources are sufficient or not?
  • Schedule: Can we complete it within the designated schedule?

2. Requirement Analysis

  • Conducted by senior team members with inputs from all the stakeholders and domain experts in the industry.
  • Recognition of risks involved.
  • Helps to get a clearer picture of the scope of the project.
  • Helps teams to get detailed and precise requirements.
  • Helps to finalize the timing to finish the work.

3. Design

(Low level) and (High level):

  • (High level): includes architecture diagrams and flow of the software, basically the UML part.
  • (Low level): It involves lower-level details and developing functional logic for the modules.

4. Development and Coding(After the System Design part).

  • Developers start building the entire system by writing code in the chosen programming language.
  • Tasks are divided into units and modules and are assigned to various developers.
  • Developer follows pre-defined coding guidelines(programming tools including editor, compiler, interpreter, debugger, etc.)
  • This Longest phase in SDLC.

5. Testing

  • After Completion, It is deployed in Testing Environment.
  • The Testing team starts to test the functionality of the entire system.
  • This is to verify that the entire application works according to the customer’s requirements.
  • QA team checks for bugs/defects and if finds communicates it to the development team.
  • This process continues until software is bug-free.

6. Implementation/Deployment

  • No bugs and no errors, now the deployment process starts.
  • Based on the feedback of the Project Manager, the final software is released and checked for deployment issues if any.

7. Maintenance

  • After Deployment customer starts using the developed system and the following 3 activities occur.

(BUE)
“Bug Fixing” — bugs are reported as some scenarios come to the picture which are not tested at all.

“Upgrade” — upgrading the applications to the newer versions of s/w.

“Enhancements” — adding some new features to existing software.

Now, let’s talk about different Software Development Models…

Waterfall Model

Waterfall Model
  • Waterfall Model is Unidirectional, that's why going back is not possible.
  • Very First Model(kisi zamane me inke charche hua karte the).
  • Imperfect: Customer Interaction and Risk Analysis is not there.
  • Very Costly, If errors and bugs come after deployment.

Incremental Prototype Model

Here the product is designed, implemented and tested incrementally(a little more is added each time).

Incremental Prototype Model(Prototype Model — 1)
  • This practice is useful as it has testing at each step that makes it more reliable and error-free as well.
  • Every time software development increases by some percentage and at the end, we get the final product.
  • It does not give perfect output as customer interaction is very less.
  • To get rid of this problem, we have another model known as the Evolutionary prototype model.

Evolutionary Prototype Model

Here everything revolves around Customer Satisfaction…

Evolutionary Prototype Model(Prototype Model — 2)
  • Here, Customer Evaluation is a major consideration.
  • Takes more time if the customer is repeating the prototype building process.
  • The Customer satisfaction factor is very high.
  • Risk Analysis is not here.

Spiral Model

Spiral Model
  • Risk Analysis is here which makes it more reliable and efficient.
  • Because of the Customer Evaluation part, it was more famous among all available models.
  • Model increases step by step in a spiral shape and include all major checks and development.

DOD & NASA Model

DOD & NASA Model
  • It has a bidirectional flow.
  • Various reviews at each step make it more efficient.
  • Consideration of System design.
  • Primary and detailed design view.
  • Acceptance testing at the end.

Understanding Verification & Validation.

No notes anymore, a simple comparison is enough!!!

V- Model (Verification & Validation Model)

Here Execution of processes happens in sequential manner in V-Shape, It starts from requirement Analysis and ends with Acceptance Testing.

Model for Understanding.

References:

Software Engineering: A Practitioner’s Approach, Roger S. Pressman, Mc.Graw Hill

Software Engineering Fundamentals, Ali Behforooz and Frederick J. Hudson, Oxford University Press

--

--

Sagar Alwani

I am a Computer Science Engineer, passionate about Technology, and curious about logic, my hobby is music, I play guitar(not that much, but still..)