UNIT 1
Software Introduction
| DISADVANTAGES
components |
Solution:
2. Explain software along with its characteristics?
Solution: 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.
3. Explain more about the waterfall model.
Solution: 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
4. Elaborate Phases in software engineering
Solution: 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.
5. Define Product and Process
Solution: 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.
6. Write a short note on Software Design Principles
Solution:
7. Write a short note on Spiral model
Solution: 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. |
|