by Dinesh Thakur Category: Software Engineering

The existence of software process does not guarantee the timely delivery of the software and its ability to meet the user's expectations. The process needs to be assessed in order to ensure that it meets a set of basic process criteria, which is essential for implementing the principles of software engineering in an efficient manner. The process is assessed to evaluate methods, tools, and practices, which are used to develop and test the software. The aim of process assessment is to identify the areas for improvement and suggest a plan for making that improvement. The main focus areas of process assessment are listed below.

 
by Dinesh Thakur Category: Software Engineering

To accomplish a set of tasks, it is important to go through a sequence of predictable steps. This sequence of steps refers to a road map, which helps in developing a timely, high quality, and highly efficient product or system. Road map, commonly referred to as software process, comprises activities, constraints, and resources that are used to produce an intended system. Software process helps to maintain a level of consistency and quality in products or services that are produced by different people.

 
by Dinesh Thakur Category: Software Engineering

Software engineering employs a well defined and systematic approach to develop software. This approach is considered to be the most effective way of producing high-quality software. However, despite this systematic approach in software development, there are still some serious challenges faced by software engineering. Some of these challenges are listed below.

 
by Dinesh Thakur Category: Software Engineering

Software engineering discipline is the result of advancement in the field of technology. In this section, we will discuss various innovations and technologies that led to the emergence of software engineering discipline.

 
by Dinesh Thakur Category: Software Engineering

Software engineering shares common interest with other engineering disciplines. Like other engineering domains where a given problem (for example, building a bridge) can be solved by following a series of interrelated steps, the software development process also comprises a number of steps or phases. The main objective of software engineering is to develop methods for large systems, which help developers obtaining high-quality software in minimum time and at low cost. Therefore, it is essential to perform software development in phases. This phased development of software is often referred to as the software development life cycle (SDLC) or software life cycle.

 
by Dinesh Thakur Category: Software Engineering

Over the last 50 years there has been revolutionary advancement in the field of technology, leading to improvements in hardware performance and profound changes in computing architectures. This advancement has led to the production of complex computer-based systems that are capable of providing information in a wide variety of formats. The increase in computer power has made unrealistic computer applications a feasible proposition, marking the genesis of an era where software products are far more complex as compared to their predecessors. By using software engineering practices, these complex systems can be developed in a systematic and efficient manner.



 
by Dinesh Thakur Category: Software Engineering

In the late 1960s, it became clear that the development of software is different from manufacturing other products. This is because employing more manpower (programmers) later in the software development does not always help speed up the development process. Instead, sometimes it may have negative impacts like delay in achieving the scheduled targets, degradation of software quality, etc. Though software has been an important element of many systems since a long time, developing software within a certain schedule and maintaining its quality is still difficult.

 
by Dinesh Thakur Category: Software Engineering

The development of software requires dedication and understanding on the developers' part. Many software problems arise due to myths that are formed during the initial stages of software development. Unlike ancient folklore that often provides valuable lessons, software myths propagate false beliefs and confusion in the minds of management, users and developers.

 
by Dinesh Thakur Category: Software Engineering

In earlier times, software was simple in nature and hence, software development was a simple activity. However, as technology improved, software became more complex and software projects grew larger. Software development now necessitated the presence of a team, which could prepare detailed plans and designs, carry out testing, develop intuitive user interfaces, and integrate all these activities into a system. This new approach led to the emergence of a discipline known as software engineering.

 
by Dinesh Thakur Category: Software Engineering

Over the last 50 years there has been revolutionary advancement in the field of technology, leading to improvements in hardware performance and profound changes in computing architectures. This advancement has led to the production of complex computer-based systems that are capable of providing information in a wide variety of formats. The increase in computer power has made unrealistic computer applications a feasible proposition, marking the genesis of an era where software products are far more complex as compared to their predecessors. By using software engineering practices, these complex systems can be developed in a systematic and efficient manner.



 
by Dinesh Thakur Category: Software Engineering

A basic issue in software project management is whether the process or the project is the essential feature managed. In process-oriented management the management of the small tasks in the software life cycle is emphasized.

 
by Dinesh Thakur Category: Software Engineering

A software process as mentioned earlier, specifies a method of development software. A software project, on the other hand is a development project in which a software process is used. And software products are the outcomes of a software project.

 
by Dinesh Thakur Category: Software Engineering

In the 1980s; Boehm introduced a process model known as the spiral model. The spiral model comprises activities organized in a spiral, and has many cycles. This model combines the features of the prototyping model and waterfall model and is advantageous for large, complex, and expensive projects. It determines requirements problems in developing the prototypes. In addition, it guides and measures the need of risk management in each cycle of the spiral model. IEEE defines the spiral model as 'a model of the software development process in which the constituent activities, typical requirements analysis, preliminary and detailed· design, coding, integration, and testing, are performed iteratively until the software is complete.

 
by Dinesh Thakur Category: Software Engineering

Omission: - is a common error in requirements. In this type of error, some user requirements are simply not included in the SRS The omitted requirement may be related to the behavior of the system, its performance, constraints or any other factor.

 
by Dinesh Thakur Category: Software Engineering

Software is expensive: Over the past decades, with the advancement of technology, the cost of hardware has consistently decreased. On the other hand, the cost of software is increasing. As a result, the hardware/software ratio for a computer system has shown a reversal from the early years.



 
by Dinesh Thakur Category: Software Engineering

Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software. There are few fundamental problems that software engineering faces.

 
by Dinesh Thakur Category: Software Engineering

Proper management is an integral part of software development. A large software development project involves many people working for a long period of time. We have seen that a development process typically partitions the problem of developing software into a set of phases.

 
by Dinesh Thakur Category: Software Engineering

A development process consists of various phases, each phase ending with a defined output. The phases are performed in an order specified by the process model being followed. The main reason for having a phased process is that it breaks the problem of developing software into successfully performing a set of phase, each handling a different concern of software development.

 
by Dinesh Thakur Category: Software Engineering

1.  Development time problem:


Some large systems take so long to develop that the technology (computer, software, hardware components) changes between the time the system is first conceptualized and the time it is ready for delivery to the user.



 
by Dinesh Thakur Category: Software Engineering

The process that deals with the technical and management issues of software development is called a software process. A software development project must have at least development activities and project management activities. The fundamental objectives of a process are the same as that of software engineering (after all, the process is the main vehicle of satisfying the software engineering objectives), viz. optimality and scalability.

 

Page 4 of 7



About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.