UNIT 1
Introduction & Software Processes
Q1) What is Software Process Model? Elaborate?
A1)
A software process model is a specified definition of a software process, which is presented from a particular perspective. Models, by their nature, are a simplification, so a software process model is an abstraction of the actual process, which is being described. Process models may contain activities, which are part of the software process, software product, and the roles of people involved in software engineering. Some examples of the types of software process models that may be produced are:
There are several various general models or paradigms of software development:
Q2) Give advantages and disadvantages of Prototyping model?
A2)
| DISADVANTAGES
components |
Q3) Explain software along with its characteristics?
A3)
Software is a collection of programs, documentation and operating procedures. The Institute of Electrical and Electronic Engineers (IEEE) defines software as a ‘collection of computer programs, procedures, rules and associated documentation and data.’ It possesses no mass, no volume, and no colour, which makes it a non-degradable entity over a long period.
Software Characteristics
Software characteristics are classified into six major components.
• Functionality: Refers to the degree of performance of the software against its intended purpose.
• Reliability: Refers to the ability of the software to provide desired functionality under the given conditions.
• Usability: Refers to the extent to which the software can be used with ease.
• Efficiency: Refers to the ability of the software to use system resources in the most effective and efficient manner.
• Portability: Refers to the ease with which software developers can transfer software from one platform to another, without (or with minimum) changes. In simple terms, it refers to the ability of software to function properly on different hardware and software platforms without making any changes in it.
Q4) Explain more about the waterfall model?
A4)
This method is very old and fashionable which is often used because simplicity is the key to the success of this method. In this way all the steps taken are pre-programmed in the software development process. For small size projects the waterfall method is very convenient.
The uniqueness of this method is that each section has a sequence. After the end of one phase, the next phase begins at that point and the result of each phase is changed to include in all subsequent steps. So for this reason the second name of this model is Sequence Model. With systematic research the first phase began and after this analysis, design, coding, testing and control took place one by one. All the sections are completed one by one in a water-like sequence so this is the reason for the name.
Advantages of a waterfall
Waterfall Limitations
Q5) Why we need software Configuration Management?
A5)
Multiple people are working on software which is consistently updating. It may be a method where multiple version, branches, authors are involved in a software project, and the team is geographically distributed and works concurrently. It changes in user requirements, and policy, budget, schedules need to be accommodated.
Importance of SCM
Q6) Elaborate Phases in software engineering?
A6)
Software engineering is an engineering disciplines where steps or phases occur in software development and primary aim of software engineering is to develop high quality software reasonable cost and less time, it is essential to perform software development in phases. This phased development is referred to as software development life cycle (SDLC) or software life cycle.
A software development process comprises of different phases. These phases work in top to bottom approach, implying that the phases take inputs from the previous phases, add features, and then produce outputs. The outputs from different phases are referred to as intermediate product, work product, or derivable. The various phases involved in the systematic development of software are shown in Figure below.
FIGURE 1: Software development process
Preliminary Investigation
Preliminary investigation verifies the problem and understands the need for required system. It considers whether the proposed system will be cost effective from business point of view and whether it can be developed within existing budgetary constraints. In addition, time factor, which determines the duration of the project, is also considered. Preliminary investigation should be quick and cost effective.
The output of preliminary investigation decides whether the new system should be developed or not.
There are three deciding constraints:
• Technical: it evaluates determines whether technology needed for proposed system is available or not and if it is available then how can it be integrated within the organization.it also determines whether the existing system can be upgraded to use new technology and whether the organization has the expertise to use it or not.
• Time: it determines the time needed to complete a project. Time is an important issue in software development as cost increases with an increase in the time period of a project.
• Budgetary: it examines the financial aspect of the project. Budgetary
Evaluation determines whether the investment needed to implement the system will be recovered at later stages or not.
(a) Software Analysis: analysis of requirements is done in detail. Analysing the requirements of the user is documented in software requirement specification (SRS) is developed, planning for the project begins after it.
(b) Software Design: In this phase the requirements are ‘defined’ as a plan and Designing begins with deciding information structures, in terms of efficiency, flexibility, and reusability. During this phase, strategic and tactical decisions are made to meet the required functional and quality requirements of a system. Software design serves as the blueprint for the implementation of requirement in the software system.
(c) Software Coding: This phase can be defined as a process of translating the software requirements into a programming language using tools that are available. Writing a software code requires a thorough knowledge of programming language and its tools. Therefore, it is important to choose the appropriate programming language according to the user requirements.
(c) Software Testing: This testing is performed to assure that software is free from errors. Efficient testing improves the quality of software. To achieve this, software testing requires a thorough analysis of the software in a systematic manner. Test plan is created to test software in a planned and systematic manner. In addition, software testing is performed to ensure that software produces the correct outputs. This implies that outputs produced should be according to user requirements.
(d) Software Maintenance: This phase comprises of a set of software engineering activities that occur after software is delivered to the user. The objective of software maintenance is to make software operational according to user requirements. The need of software maintenance is to provide continuity of service. This implies that software maintenance focuses on fixing errors, recovering from failures, such as hardware failures, or incompatibility of hardware with software. In addition, it facilitates future maintenance work by modifying the software code and databases used in the software.
Q7) Define Product and Process?
A7)
Product: What is delivered to the customer, is called a product. It may include source code, specification document, manuals, documentation etc. Basically, it is nothing but a set of deliverables only.
Process: Process is the way in which we produce software. It is the collection of activities that leads to (a part of) a product. An efficient process is required to produce good quality products.
Q8) Write a short note on Software Design Principles?
A8)
Q9) Write a short note on Spiral model?
A9)
IEEE defines spiral model as “a model of the software development process in which the constituent activities, typically requirements analysis, preliminary and detailed design, coding, integration, and testing, are performed iteratively until the software is complete.”
The objective of spiral model is to emphasise management to evaluate and resolve risks in the software project. This model combines the features of prototyping model and waterfall model and is advantageous for large, complex and expensive projects. The spiral model determines requirement problems in developing the prototypes. In addition, spiral model guides and measures the need of risk management in each cycle of the spiral model.
Advantages | Disadvantages |
Avoids the problems resulting in risk-driven approach in the software. | Assessment of project risks and its resolution is not an easy task.
|
Specifies a mechanism for software quality assurance activities. | Difficult to estimate budget and schedule in the beginning, as some of the analysis is not done until the design of the software is developed. |
Spiral model is utilised by complex and dynamic projects. |
|
Re-evaluation after each step allows changes in user perspectives, technology advances or financial Perspectives. |
|
Estimation of budget and schedule gets realistic as the work progresses. |
|
Q10) Explain Process Management and Product Engineering Process?
A10)
The process management processes (PMP) aims at improving software processes so that a cost effective and a high quality product is developed. To achieve a high quality product, the existing processes of the completed project are examined. The process of comprehending the existing process, analysing its properties, determining how to improve it, and then affecting the improvement is carried out by PMP. A group known as software engineering process group (SEPG) performs the activities of process management.
Based on the analysis stated above, the product engineering processes are improved, thereby improving the software process. The aim of product engineering processes is to develop the product according to user requirements. The product engineering process comprises of three major components, which are listed below:
• Development process: Implies the process, which is used during the development of software. It specifies the development and quality assurance activities that are to be performed. Programmers, designers, testing personnel, and others perform these processes.
• Project management process: Provides means to plan, organise and control the allocated resources to accomplish project costs, time and performance objectives. For this, various processes, techniques and tools are used to achieve the objectives of the project. Project management performs the activities of this process. Also, project management process is concerned with the set of activities or tasks, which are used to successfully accomplish a set of goals.
• Configuration control process: Manages changes that occur as a result of modifying the requirements. In addition, it maintains integrity of the products with the changedrequirements. The activities in configuration control process are performed by a group called configuration control board (CCB).