Posts

Showing posts with the label Software Engineering

What is software requirement ? Briefly explain functional , non-functional requirement, domain requirement.

Image
 Software Requirement -The requirements for a system description of the services provided by the system and its operational constraints. These requirements reflect the needs of customers for a system that helps to solve problems such as controlling a device, placing an order or finding out, analyzing, documenting, and checking those services and constraints is called requirement engineering.  - The requirement themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process. It may range from a high-level abstract statement of a service or of a system constraint to be a detailed mathematical functional specification. Types of  Software Requirements  1) User Requirement 2) System Requirement  1) User Requirement It means the high-level abstract requirements. These are statements, in a natural language plus diagrams, of what services the system is expected to provide and the constraints under which it must operate. If c

Explain the protoyping model of software development

Image
 Prototyping Model Prototyping is the iterative process of system development which is more appropriate for developing a new system where there is no clear idea of requirements, inputs, and output. Using prototyping, programmers can build an early version of systems. These systems are then continuously modified until the users are satisfied. Prototyping is especially helpful in situations where there will no heavy user interaction with the system, where the needed output is uncertain, and in some decision support applications where the logic is hard to determine in advance. The developer interviews the user and designs an initial system using a database management system. The user works with the prototype and suggests changes. The process repeats until the user or developer is satisfied.   The figure shows the steps involved in developing the type of prototype. There are 4 steps and are as follows:- Identify the user need                 The system analyst interviews the user to obtain

Differentiate between functional and non-functional requirements of software engineering requirements.

Image
 Difference between Functional and Non-functional Requirements Functional requirements A functional requirement defines a system or its component. It specifies "What should the software system do?"  A functional requirement is specified by the User. It is mandatory. It is captured in the use case. Defined at a component level. Helps you verify the functionality of the software. Functional Testing like System, Integration, End to End, API testing, etc is done. Usually easy to define. Non-functional requirements A non-functional requirement defines the quality attributes of a software system. It places constraints on "How should the software system fulfill the functional requirements?" A non-functional requirement is specified by technical peoples e.g. Architect, Technical leaders, and software developers. It is not mandatory. It is captured as a quality attribute. Applied to a system as a whole. Helps you to verify the performance of the software. Non-Functional Test

Discuss the importance of project management. What are the different sections of project plan.

The importance of project management is an important topic because all organizations be it small or large at one time or other are involved in implementing now undertakings. These undertakings may be diverse such as the development of a new product on service; the establishment of a new production line in a manufacturing enterprise, a public relations promotion campaign, or a major building program. Project management involves systematically planning and implementing activities to ensure project completion on time within budget and to the requirement specification. Project management effectively controls organizational change allowing organizations to introduce new products new, processes, and new programs effectively. Project management concepts & techniques can be applied to a broad range of projects such as the building of a block of apartments,  a bridge, or a new aircraft,  the design and development of an s/w package,  the planning, and staging of an event. A different sectio

Why elicitation and analysis is difficult process in requirement engineering process? Explain.

 Requirement elicitation and analysis or eliciting and understanding requirements from system stakeholders is a difficult process in requirement engineering for several reasons:- Stakeholders often don't know what they want from a computer system except in the most general terms. They may find it difficult to articulate what they want the system to do, they may make unrealistic demands because they don't know what is and isn't feasible. Stakeholders in a system naturally express requirements in their own terms and with implicit knowledge of their own work. Requirements engineers without experience in their customer's domain may not understand these requirements. Different stakeholders with diverse requirements may express their requirements. Requirement engineers have to discover all potential sources of requirements & discover commonalities and conflicts. Political factors may influence the requirements of a system. Managers may demand specific system requirements

Explain the Software process activities or, Explain the Software specification, software validation, and software evolution.

Image
 Software Process Activities  - The structured set of activities required to develop a software system like: specification, design, validation, and evolution are called software process activities. - The process activities are organized differently in different development models. How these activities are carried out depends on the type of software, people, and, organizational structure involved. - Following are the major software process activities: ° Software specification ° Software design and implementation ° Software validation ° Software evolution 1 ) Software specification - Software specification or requirement engineering is the process of understanding and defining what services are required from the system and identifying the constraints on the systems and operation and development. - Software specification leads to the production of a requirement document that specifies a software satisfying stakeholder's requirement.                                                   

What are the major task of requirement engineering? Explain.

Image
Requirement Engineering - The process of collecting the software requirement from the client and then understanding, evaluating, and documenting it is called requirement engineering. - Requirement engineering constructs a bridge for design and construction. # Requirement engineering consists of seven different tasks as follows: 1 . Inception - Inception is a task where the requirement engineering asks a set of questions to establish a software process. - In this task, it understands the problem and evaluates the proper solution. - It collaborates with the relationship between the customer and the developer. - The developer and customer decide the overall scope and the nature of the question. 2. Elicitation - Elicitation means to find the requirements from anybody. - The requirements are difficult because the following problems occur in elicitation. ° Problem of scope : The customer gives unnecessary technical detail rather than clarity of the overall system objective. ° Problem of und

Describe spiral model with its advantages and disadvantages.

Image
Spiral Model - The spiral model, also known as the spiral lifecycle model or Boehm's model was introduced by Barry Boehm in 1988. It is a system development model based on process iteration.  - This model of development combines the features of the prototyping model and the waterfall model in order to eliminate almost every possible/ known risk factor from it.  - This model follows a spiral process as the development of the software takes place.  - In this model, the development of each modified version of the system prototype is carefully designed using the steps of the waterfall model.  - Starting from the center of the spiral process, and moving outward in the spiral route, each iteration helps to build a more complete version of the system in a progressive manner.  - The spiral model is similar to the incremental model, with more emphasis placed on risk analysis.   # The spiral model has the following major phases: 1 . Customer Communication : In this step, effective communicat

Explain incremental model with its advantages and disadvantages.

Incremental model Incremental Model is a process of software development where requirements divided into multiple standalone modules of the software development cycle. In this model, each module goes through the requirements, design, implementation, and testing phases. Every subsequent release of the module adds function to the previous release. The process continues until the complete system achieved. The various phases of the incremental model are as follows: 1. Requirement analysis : In the first phase of the incremental model, the product analysis expertise identifies the requirements. And the system functional requirements are understood by the requirement analysis team. To develop the software under the incremental model, this phase performs a crucial role. 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system functionality and the development method are finished with success. When software develops new practicality, the incrementa

What is Software Process Model? Explain waterfall model with its advantages ,disadvantages and when to use waterfall model.

Image
Software Process Model - It is a simplified representation of the software process, presented from a specific perspective. - The process model may include activities that are part of the software process, software products, and the role of people involved in software engineering. Waterfall model Winston Royce introduced the Waterfall Model in 1970. This model has five phases: Requirements analysis and specification, design, implementation, and unit testing, integration and system testing, and operation and maintenance. The steps always follow in this order and do not overlap. The developer must complete every phase before the next phase begins. This model is named the "Waterfall Model because its diagrammatic representation resembles a cascade of waterfalls 1) Requirements analysis and specification phase :- The aim of this phase is to understand the exact requirements of the customer and to document them properly. Both the customer and the software developer work together so as

Explain Component of Software.

Components of software  There are 3 components of the software : 1) Program: -A computer program is a list of instructions that tell the computer what to do. 2) Documentation:-Source information about the product contained in design documents, detailed code, comments, etc. 3) Operating Procedures:- Step of step by step instructions compiled by an organization to help workers carry out compiler routine operations.

Write short note on Software Engineering Ethics.

Image
 Software Engineering Ethics  Software engineering ethics can be approached from three directions: first, it can describe the activity of software engineering making practical choices that affect other people in significant ways, seconds it can be used to describe a collection of principles that guidelines, or ethical imperatives that guide or legislative action and third it can be used to name a discipline that studies the relationship between the other two sense of ethics. Software engineering ethics is clearly both an activity and a body of principles. The discipline of software engineering ethics that studies this activity and formalizes these principles, however, is in its infancy.

Write short note on Internet Software Engineering

Internet Software Engineering   This describes empirical research into înternet software development practices This focus is to develop an understanding of the features that characterized întemet software development. There are three factors that influence internet software development processors: demand for the rush to market, operating in a different kind of market environment, and the lack of experience developing such products.

What are the key challenges facing in Software Engineering? Explain.

Image
 KEY CHALLENGES FACING SOFTWARE ENGINEERING 1. The legacy challenge The majority of software systems that are in use today were developed many years yet they perform critical business functions. The legacy challenge is the challenge of maintaining and updating this software in such a way that excessive costs are avoided and essential business services continue to be delivered. 2. Heterogeneity challenge Increasingly, systems are required to operate as distributed systems across networks that include different types of computers and with different kinds of support systems. The heterogeneity challenge is the challenge of developing techniques to build dependable software which is flexible enough to cope with this heterogeneity. 3. The delivery challenge Many traditional software engineering techniques are time-consuming. The time they take is required to achieve software quality. However, businesses today must be responsive and change very rapidly. Their supporting software must change e

Principle , Importance and Objectives of Software Engineering

Image
 Principle of Software engineering °  High-quality software is possible ° Good management and technology ° Use the appropriate process module ° Take good responsibility  ° Evaluate design alternatives ° Give products to customers easily Importance of Software Engineering 1. More and more individuals and societies rely on advanced software systems. 2. We need to be able to produce reliable and trustworthy systems economically & quickly. 3. It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the program as if it was a personal programming project. 4. For most types of personal programming systems, the majority of costs are changing the software after it has gone into use. 5. Big Software is always complex and difficult to develop,  Software engineering has a great solution to decrease the complexity of the project: 6. Software requires a lot of hard work and Software engineers are highly paid professio

What is software ? Explain different types of software with exmples.

Image
  Software  A set of instructions that performs a certain task is a program and a group of programs that can be executed by the computer and a group of programs that can be executed by the computer to perform a specific task is called software. We cannot see or touch it, but we can take results from it. It is a logical part of computers. Software is not just the programs but also all associated documentation and configuration data that is needed to make these programs operate correctly. Different types of software with examples There are two fundamental types of software products. They are described below: 1 . Generic products            These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them. Examples of this type of product include apps for mobile devices, software for PCs such as databases, word processors, drawing packages, and project management tools. This kind of software also includes &quo

Difference between Software engineering and System engineering.

Image
The difference between software engineering and system engineering are:  System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role. System engineering is concerned with hardware development, policy, and process design, and system development as well as software engineering. System engineering is involved in specifying the system defining its overall architecture and then integrating the different parts to create the finished system.  Software engineering is an engineering discipline whose focus is to develop cost-effective and high-quality software. It is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use.

What is software engineering? How it is different from computer science?

Image
Software Engineering         The term Software Engineering is composed of two words, software and engineering. Software is a program code or set of executable codes containing instructions that give desired functionality. Engineering is the process of designing and constructing something which assists a particular purpose and seeks a cost-effective solution to issues. So, Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stage of requirement specification to maintaining the software after it has gone into use. Software engineering was introduced to address the issues of low-quality software projects.                                           OR , In other words, Software engineering is an engineering discipline whose focus is to develop cost-effective and high-quality software.  Difference between Software Engineering and computer science Computer science focuses on theory and fundamentals: software engineering is

What is Software process? What are the generic activities in the software process?

 Software process  - Software process is also known as software methodology is the set of related activities that leads to cost-effective and timeliness production of software. - It is the set of activities that leads to the production of a software system from scratch or modifying existing software in a standard language like c, c++, java, etc - It is a set of activities whose goal is the development and evolution of software.                      Generic activities in the software process are : 1) Software Specification        It specifies what software to be produced, the requirements of the users, the feasibility of the software, the response about the software in the market, and other constraints on its operations. 2) Software development      In this activity, the software is designed and programmed according to the software specification. The structure of the software and its design specification is specified. 3) Software Validation    In this activity, the software is checked t

Explain the attributes/quality of good software.

 The software product has a number of associated attributes that reflect the quality of that software. These attributes are not directly concerned with what the software does. They reflect its behavior while executing and the structure and organization of the source program and associated documentation. The essential attributes/quality of good software are discussed below: a) Maintainability    The software must evolve to meet changing needs of customers. It is called maintainability. So, Software should be written in such a way that it may evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable consequence of a changing business environment. b) Dependability        The dependability of software is a property of software that reflects trustworthiness. It is the degree of confidence a user has that the system will operate they expect and the system will not fail in normal use. Software dependability has a range of characteris