Welcome to Edukum.com

# 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. Advantage
• 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.
Requirements
The requirements like BRS and SRS are the requirements which initiate a life cycle model like a waterfall 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.
Coding
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.
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. Advantages
• 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 Model
COCOMO is an acronym for Constructive Cost Model. COCOMO model is further than divided into three parts.

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

 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}$

Example

• Suppose a project was estimated to be 400 KLOC calculate the efforts and development time for each of the three models.
Given:
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