Welcome to Edukum.com


Requirements Analysis and Specifications

System Design

Architectural Design

Testing and Maintenance

Software Reliability and Quality Assurance

Introduction to Software Engineering

Definition of Software Engineering
It is a kind of engineering application in which there are several steps for maintain a software. It is a application with analysis and specification of project, design, implementation and then testing. It is basically the development of a project. Software is basically a summation of three basic concepts like programs, documentations, and operating system procedure. A software project is the procedure or a way of by which the growth of software from the requirements of a project to its testing and maintenance. Software can be a combination of program, documentation, and operating procedure.
Software = Programs + Documentation + Operating Procedures

SP vs. Project Management

  • Invisibility
    A software project is not immediately visible to the user but in case of other projects like constructing a bridge it is visible to user.
  • Complexity
    Software projects are more complex than the other projects.
  • Conformity
    Software developers are to be meet the all the requirements of users or clients. On the contrary, in case of other projects the requirements are same like cement and steel in case of constructing a bridge.
  • Flexibility
    The software is easy to change.

Let’s assume an example to differ this. Suppose a software project like writing a program or other is constructing a bridge.

Constructing a Bridge Write a Program
In construction a bridge a problem as well known. Only few problems are known.
There are many existing bridge. Each and every problem is different from each other.
The requirements are same in case of constructing a bridge. Requirements are vary.
The strength and ability can be calculated. It is impossible to find the correctness of the project.

Types of Software Projects
Various types of software projects are:

  1. Desktop Project Management Software
    It is software which is more responsive and highly-graphical for a single user. Desktop-based applications generally store their data in a local database and other uses central database for storage.
  2. Web-based Project Management Software
    It is software which can be easily accessed through internet. We can use an intranet or extranet connection to use a web-based application by using any web browser.
  3. Single User Project Management Software
    It is software or a system which is basically for a single user and can be changed at any time.
  4. Collaboration Project Management Systems
    They are a system which is specifically designed to bear the multiple users at the same time at once. For example: Updating message for any application must be affecting at each and every device whenever you are online.
  5. Integrated Systems
    They are the combination of both the project management and planning.

Software Life Cycle Model

  1. Waterfall Model
    The waterfall model is the first model which is initially introduced for the common software development process model. Waterfall model is also known as a linear-sequential life cycle model. It is very simple and can be easily understood.
    Waterfall Model
    • It is simple and easy to use.
    • If any changes happen at the midway then the project is restart from the beginning of the project.
  2. V-process Model
    The term ‘V’ in V-process model is verification and validation. The model follows a v-shaped life cycle approach for the execution of processes. Before the start of next phase the first phase is already completed.
    The requirements like BRS and SRS are the requirements which initiate a life cycle model like a waterfall model.
    V-Process Model
    1. The High Level Design
      It is a design which focuses on the system with its architecture and its design. An integrated test plan is created in high-level design and test pieces of software system which work together.
    2. The Low-Level Design
      It is a phase where the actual planning will takes place. An integration test phase is applied on this phase.
    This is the last phase in which module design of project is converted into code understand by developers.
      1. It is very simple and easy to use.
      2. It saves a lot of time in testing activities like planning, test designing.
      3. It can avoid the downward flow of defects.
      4. When the requirements are easy to understand then work are well done.
    1. It is least flexible.
    2. At the implementation phase the software is developed.
    3. If any changes happen at the midway then the project is updated.
  3. Rapid Development Process
    Rapid application development is process in which requirements and solutions can be divided as independent system and software.
    Rapid Development Process
  4. Spiral Model
    Spiral model is the best model from all the others. Spiral model is a model with four phases: planning, risk analysis, engineering and the evaluation of project.
    Spiral Model
    • High amount of risk is analyzed at the each stage of project.
    • It is for well and large mission-critical projects.
    • Expensive
    • Project success rate is totally dependent upon the risk analysis at each phase.

COCOMO is an acronym for Constructive Cost Model. COCOMO model is further than divided into three parts.

Constructive Cost Model

Then basic is then further divided into three parts i.e. organic, semidetached, and embedded.

Constructive Cost Model (Basic)
Mode Project Size Nature of Project Innovation Deadline of Project Development Project
Organic Typically 2-50 KLOC Small size Projects Little Not tight Familiar and for household purpose.
Semidetached 50 – 300 KLOC Medium Size Projects Medium Medium Medium
Embedded 300 KLOC Large Size Projects Significant Tight Complex Hardware

E = ab(KLOC)bb
D = Cb(E)d
Where E is the efforts applied in person months, D is the development time in months and a, b, c, d are the coefficients.

Project Ab Bb Cb Db
Organic 2.4 1.05 2.5 0.38
Semidetached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32

The average staff size of a project can be calculated as the efforts applied by a person by development time in months.
Average Staff Size = \(\frac{E}{D}\)


  • Suppose a project was estimated to be 400 KLOC calculate the efforts and development time for each of the three models.
    400 KLOC
    E can be calculated as E = ab(KLOC)bb
    In organic mode
    E = 2.4(400)1.05
    = 1295.311
    In semidetached mode
    E = 3.0(400)1.12
    = 2462.79
    In embedded mode
    E = 3.6 (400)1.20
    = 4772.8

The Process, Software Crises, Software Product
Software product is the product which is designated for a particular user. Documents, source code, object codes, plans and data are software products. The process in software engineering is a way by which we can produce a lot of products. Software crises are a kind of problem in which the speed of system and the complexity of problem can’t be tackle simultaneously.

Role of Management in Software Development
Depending upon four factors

  • People
  • Product
  • Process
  • Project


#Things To Remember