Posts

Showing posts with the label Software Engineering

What is project planning? Explain types of project plan.

 Project Planning: Project planning involves breaking down the work into parts and assigning these to project team members, anticipate problems that might arise, and prepare tentative solutions to those problems. The project plan, which is created at the start of a project, is used to communicate how the work will be done to the project team and customers, and to help assess progress on the project. Types of Project plan Validation Plan Configuration management plan Maintenance plan Staff Development Plan 1) Validation plan The validation plan describes the approach, resources, and schedule used for system validation. It is intended to show that the program does what the user requires. 2) Configuration and management plan This plan includes the management of system change. When a system has maintained the role of the CM team is to ensure that changes are incorporated in a controlled way. This plan includes configuration management procedures and structures to be used. 3) Maintenance pl

Why do we need Software Configuration Management System ?

  The primary reasons for Implementing Software Configuration Management System are:  The primary goal of the SCM process is to increase productivity with minimal mistakes The main reason behind the configuration management process is that there are multiple people working on software that is continually updating. SCM helps establish concurrency, synchronization, and version control. It may be a case where multiple versions, branches, authors are involved in a software project, and the team is geographically distributed and works concurrently. Changes in user requirements, policy, budget, and schedule need to be accommodated. Software should able to run on various machines and Operating Systems. Helps to develop coordination among stakeholders.

What do you mean by Software project management ? Explain Project planning and Project scheduling .

  Software project management - Software project management is an art and discipline of planning and supervising software projects. It is a sub-discipline of software project management in which software projects planned, implemented, monitored, and controlled. - It is a procedure of managing, allocating, and timing resources to develop computer software that fulfills requirements. - In software Project Management, the client and the developers need to know the length, period, and cost of the project.               OR, - Software Project Management (SPM) is a proper way of planning and leading software projects. It is a part of project management in which software projects are planned, implemented, monitored and controlled.  - Project management focuses on developing a product that will have a positive effect on an organization. Without project management, a software development team may begin working on a project without any clear vision or guidance, resulting in more frequent errors

What is COCOMO model? Explain different sub models of COCOMO 2 model.

Image
C OCOMO (Constructive Cost Model) - The COCOMO (Constructive Cost Model) is one of the most popularly used software cost estimation models i.e. it estimates or predicts the effort required for the project, total project cost, and scheduled time for the project.  - This model depends on the number of lines of code for software product development. It was developed by software engineer Barry Boehm in 1981. - The COCOMO estimates the cost for software product development in terms of effort (resources required to complete the project work) and schedule (time required to complete the project work) based on the size of the software product.  - It estimates the required number of Man-Months (MM) for the full development of software products. Example of COCOMO Model Example: A project size of 200 KLOC is to be developed. The software development team has average experience on similar types of projects. The project schedule is not very tight. Calculate the Effort, development time, average staf

Short note on COCOMO Model. Explain three modes of software development projects that depend on complexity according to COCOMO.

The COCOMO (Constructive Cost Model) is one of the most popularly used software cost estimation models i.e. it estimates or predicts the effort required for the project, total project cost, and scheduled time for the project. This model depends on the number of lines of code for software product development. It was developed by software engineer Barry Boehm in 1981. The COCOMO estimates the cost for software product development in terms of effort (resources required to complete the project work) and schedule (time required to complete the project work) based on the size of the software product. It estimates the required number of Man-Months (MM) for the full development of software products.  According to COCOMO, there are three modes of software development projects that depend on complexity. Such as: 1. Organic Project It belongs to small & simple software projects which are handled by a small team with good domain knowledge and few rigid requirements. Example: Small data process

What do you mean by cost estimation? Explain different software cost estimation techniques.

Cost Estimation  - Cost estimation concerned with estimates of effort and time with the project activities. It is the process of predicting the effort required to develop a software system. The cost estimation is usually dependent upon the size estimate of the project, which may use lines of code or function points as metrics.  - Cost estimation is usually measured in terms of effort. The most common metric used is person months or years (or man-months or years), The effort is the amount of time for one person to work for a certain period of time.  - For any new software project, it is necessary to know how much it will cost to develop and how much development time will it take. These estimates are needed before development is initiated.  - There are several different techniques for performing software cost estimation, including expert judgment and algorithmic models.  - Software cost estimation is the process of predicting the effort required to develop a software system.  - Estimatio

Project planning is iterative.explain

 Project planning is an iterative process that starts when you create an initial project plan during the project startup phase. Plan changes are inevitable. As more information about the system and the project team becomes available during the project, you should regularly revise the plan to reflect requirements, schedule, and risk changes. Changing business goals also leads to changes in project plans. As business goals change, this could affect all projects, which may then have to be re-planned.

Managing software project is difficult than other project management.Why?

Image
 Software project management difficult or different from other types of project management due to the following reasons: a) The product is intangible The software product is intangible in nature and it can be realized only, it cannot be seen or touched. So, it is difficult for a project manager to measure progress and should rely on documentation produced by others. b ) There are no standard software processes With a long history in the engineering discipline, the process is tried and tested. The engineering process for some types of systems, such as building construction is well understood but in software projects, there is no universally accepted fixed standard process change from one organization to another and project to project. c)Large software Projects are often One-off Projects Software technology is changing very rapidly and it makes the manager's experience and skill obsolete. Lessons learned from previous projects may not be transferrable to new projects. So, managers ha

What do you mean by Software Configuration Management ? Explain configuration management activities.

Image
Software Configuration Management  - Software Configuration Management is a process to systematically manage, organize, and control the changes in the documents, codes, and other entities during the Software Development Life Cycle. It is abbreviated as the SCM process in software engineering. The primary goal is to increase productivity with minimal mistakes. - SCM is part of the cross-disciplinary field of configuration management and it can accurately determine who made which revision. - It is a process that concerned with the policies, processes, and tools for managing changing software systems. - SCM helps in identifying individual elements and configurations, tracking changes, and version selection, control, and baselining.   The configuration management of an s/w system product involves four closely related activities. 1) Change management : This involves keeping track of requests for changes to the s/w from customers and developers working out the costs and impact of making thes

Short note on Software Re-engineering

  Software Re-engineering - Software Re-engineering is a process of software development that is done to improve the maintainability of a software system.  - Re-engineering is the examination and alteration of a system to reconstitute it in a new form. This process encompasses a combination of sub-processes like reverse engineering, forward engineering, reconstructing, etc. - Re-engineering is the reorganizing and modifying of existing software systems to make them more maintainable.  Objectives of Re-engineering:  To describe a cost-effective option for system evolution. To describe the activities involved in the software maintenance process. To distinguish between software and data re-engineering and to explain the problems of data re-engineering. Steps involved in Re-engineering:  Inventory Analysis  Document Reconstruction  Reverse Engineering  Code Reconstruction  Data Reconstruction  Forward Engineering  Re-engineering Cost Factors:  The quality of the software to be re-engineere

What is software re-engineering process? Describe activities of software re-engineering process

Image
 Software Reengineering Process The software reengineering process allows modernizing the used system and eliminating technical problems, which reduces the cost of service and expands its capabilities in terms of meeting business needs. The input to the reengineering process is a legacy program and the output is an improved and restructured version of the same program.   The activities in the reengineering process are: 1) Source code translation: Source code translation is the automatic conversion of a program written in one programming language to another language. It may be necessary when the original programming language is obsolete. Using a translation tool, the program is converted from an old programming language to a more modern version of the same language or to a different language e.g FORTRAN to C. 2) Program structure improvement: It focuses on the design details of individual modules and on local data structures defined within modules. In this, the control structure of the

Short note on Verification and Validation. or, Explain Veirfication and Validation.

Verification - Verification refers to the set of activities that ensure that software correctly implements specific functions. It ensures that the product has been built according to the requirement and design specifications.  - It makes sure that the product is designed to deliver all functionality to the customer. Verification is done during the development process and includes reviews and meetings, inspections,s, etc. to evaluate documents, plan code, requirements, and specifications.   - Verification is the demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development lifecycle.  -  It is expressed as: Are we building the product right? - Example:- Suppose you are constructing a table then verification is about checking all the parts of the table, whether all legs are of the correct size or not. If one leg is not of the correct size it will imbalance the end product.  Advantage  Verification helps in lowering dow

Difference between Verification and Validation.

The difference between Verification and Validation are as follows:- Veriification  It is the process of evaluating the product of the development phase to find out whether they end to determine whether it meets the meet the requirement and design specification. The objective is to make sure that the product is as per specification Verification is carried out by the QA team. This is done without executing the software. It is done at the starting phase of development. Checks “Are we building right.”?. Involves all the static testing techniques. Examples:- includes review, inspection, and walkthrough, etc Validation  It is the process of evaluating software at the end to determine whether it meets the customer's expectations and requirements. The objective is to make sure that the product actually meets up the user's requirements. Validation is carried out by a testing team. This is done by executing the software. It is done at the end of the development phase. Involves all the dy

What are the different types of requirements elicitation techniques? Explain in brief.

Image
 There are different types of requirements elicitation methods or techniques. A few of them are listed below:- Interview Brainstorming session Facilitated Application-Specific Technique (FAST) Quality Function Deployment (QFD) Use Case Approach The success of an elicitation technique used depends on the maturity of the analyst, developers, users, and the customer involved. 1. Interviews: - Objective of conducting an interview is to understand the customer's expectations of the software. - It is impossible to interview every stakeholder hence representatives from groups are selected based on their expertise and credibility. - Interviews maybe be open-ended or structured. a) In open-ended interview s there is no pre-set agenda. Context-free questions may be asked to understand the problem. b) In a structured interview , agenda of fairly open questions are prepared. Sometimes a proper questionnaire is designed for the interview. 2 . Brainstorming Sessions: - It is a group technique

What is Software Requirement Specification Specification(SPS) ? Mention the characteristics and principle of SRS.

Image
Software Requirement Specification - The production of requirements stage of the software development process is Software Requirements Specifications (SRS) (also called a requirements document). This report lays a foundation for software engineering activities and is constructed when entire requirements are elicited and analyzed. - SRS is a formal report, which acts as a representation of software that enables the customers to review whether it (SRS) is according to their requirements. Also, it comprises user requirements for a system as well as detailed specifications of the system requirements. - The SRS is a specification for a specific software product, program, or set of applications that perform particular functions in a specific environment. It serves several goals depending on who is writing it.   -  First, the SRS could be written by the client of a system. Second, the SRS could be written by a developer of the system. The two methods create entirely various situations and est

What do you mean by functional and non functional requirements? Explain

  a) Functional requirements - Functional requirements define the basic system behavior. Essentially, they are what the system does or must not do, and can be thought of in terms of how the system responds to inputs. -These are statements of services the system should provide, how the system should react to particular inputs and how the system should behave in a particular situation.  In some cases, functional requirements may also explicitly state what the system should not do. - These requirements depend on the type of software being developed the expected users of the software and generated approach taken by the organization when writing requirements. - When expressed as user requirements, the functional requirements should be written in natural language, so that the system user and manager can understand them. - Functional user requirement may be a high-level statement of what the system should do but functional system requirements should describe the system service in detail. - Th

What is formal specification ? Discuss interface specification in detail.

Formal Specification  - Formal specification is a part of a more general collection of techniques that are known as the "formal method". Example:- COMP313"Formal methods" (These are all based on the mathematical representation and analysis of software.) - Formal methods include : Formal specification Specification analysis and proof  Transformation development Program verification Interface Specification - Large systems are decomposed into subsystems with well-defined interfaces between these subsystems. - Specification of subsystem interfaces allows independent development of the different subsystems. - Interfaces may be defined as abstract data types or object classes. - The algebraic approach to formal specification is particularly well-suited to the interface specification - Most systems must operate with existing systems and operating interfaces must be precisely specified as part of the required. Types of Interface Specification a) Procedural Interfaces - Used

Why do we need formal specification? Discuss behavioral specification in detail.

 We need formal specification because:- -  Formal Specification involves investing more effort in the early phases of software development.  - To explain why formal specification techniques help to discover problems in system requirements. - To describe the use of:-   ° algebraic technique(for interface specification) &   °  model-based techniques( for behavioral specification) - To introduced Abstract State Machine Model(ASMM) - Formal Specification reduces requirements error as it forces a detailed analysis of the requirements.   Behavioral specification - Behavioral specification describes constraints on the behavior of the implementation. - Example:- functionality, safety, security, performances. - Algebraic specification can cumbersome when the object operations are not independent of the object state. - Model-based specification exposes the system state and defines the operations in terms of changes to that state. - The Z notation is a mature technique for model-based specifi

What do you mean by formal specification? Explain.

- Formal specification is a part of a more general collection of techniques that are known as the "formal method". Example:- COMP313"Formal methods" (These are all based on the mathematical representation and analysis of software.) - Formal methods include : Formal specification Specification analysis and proof  Transformation development Program verification Types of formal specification  a) Behavioral Specification - Behavioral specification describes constraints on the behavior of the implementation. - Example:- functionality, safety, security, performance, etc   b) Structural specification  - It describes constraints on the internal composition of implementation. - Example:- Module interconnection, dependence relation Importance of Formal Specification -  Formal Specification involves investing more effort in the early phases of software development.  - To explain why formal specification techniques help to discover problems in system requirements. - To describe

Difference between software process and software process model.

Image
  The difference between the software process and software process model are:-  Software Process In software engineering, the software process is the process of dividing the development of works into different phases. The software process is central to the development of an efficient information system. It is also known as software methodology. It is a set of activities that lead to the production of a software product. The fundamental activities that are common to all software processes are;- Software Specification Software design and implementation Software Evolution Software Process Model  A software process model is the abstract representation of software. It represents the order in which the activities of software development will be undertaken. Each process model represents a process from a particular perspective and thus provides only partial information about that process. There are several process model are available, they are as follows:-  Waterfall model   Generic Process Mo