Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Engineering: Concepts, Models, and Project Management, Thesis of Software Engineering

Software Engineering Software Engineering Software Engineering Software Engineering Software Engineering Software Engineering Software Engineering Software Engineering

Typology: Thesis

2016/2017

Uploaded on 11/10/2017

po-we-jalore
po-we-jalore 🇮🇳

1 document

1 / 94

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Software Engineering
For More Detail: - http://www.gurukpo.com/
Biyani's Think Tank
Concept based notes
Software Engineering
(MCA)
Professor
Dr. Madhu Sharma
Biyani Institute of Science and Management,
Jaipur
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e

Partial preview of the text

Download Software Engineering: Concepts, Models, and Project Management and more Thesis Software Engineering in PDF only on Docsity!

1 Software Engineering

Biyani's Think Tank

Concept based notes

Software Engineering

(MCA)

Professor

Dr. Madhu Sharma

Biyani Institute of Science and Management,

Jaipur

Biyani’s Think Tank 2

Published by :

Think Tanks

Biyani Group of Colleges

Concept & Copyright :

Biyani Shikshan Samiti

Sector-3, Vidhyadhar Nagar, Jaipur-302 023 (Rajasthan) Ph : 0141-2338371, 2338591-95 Fax : 0141- E-mail : acad@biyanicolleges.org Website :www.gurukpo.com; www.biyanicolleges.org

Edition: 2013

Laser Type Set by: Biyani College Printing Department

While every effort is taken to avoid errors or omissions in this Publication, any mistake or omission that may have crept in is not intentional. It may be taken note of that neither the publisher nor the author will be responsible for any damage or loss of any kind arising to anyone in any manner on account of such errors and omissions.

Biyani’s Think Tank 4

Introduction

Q.1 What do you mean by software?

Ans: A software system or software is: (i) Instructions/Computer programs that when executed provide desired function & performance. (ii) Data structures that enable the programs to adequately manipulate information. (iii) Documents that describe the operation and use of the programs.

We can say that a software system consists of a number of separate programs, configuration files, which are used to setup these programs, system documentation, which describes the structure of the system & user documentation which explains how to use the system & website for users to download recent product information.

Q.2 What are the characteristics of Software?

Ans: For a better understanding about the software and hence software engineering, the characteristics of the software are required to be discussed. Since, software is a logical system (whereas, hardware is a physical system), its characteristics are different from hardware:

  1. Software is developed or engineered; it is not manufactured in the classical sense.
  2. Software doesn‟t “wear out”.
  3. Most of the software continues to be custom built or customizable.

Q.3 Compare software development and hardware manufacture?

Ans: Similarities between software development & hardware manufacture: High quality is achieved through good design Both activities depend on people and their requirements.

Dissimilarities between software development & hardware manufacture: The manufacturing phase of hardware can have quality problems which couldn‟t be rectified as easily as in software development phase.

5 Software Engineering

Though both activities depend on people, but the relationship between the people applied and work accomplished is entirely different. As for hardware manufacturing market survey and competitors policies are to be considered on priority, whereas software development concentrates more on the user requirements. Both activities target for a product as a result, but the approaches followed are entirely different. (As there are SDLC set of phases for software development, whereas the product manufacturing involves different phases like consumer tendency, market analysis etc.) Cost of manufacturing a hardware product could be estimated exactly & easily, whereas it‟s comparatively difficult to estimate exactly in case of software development. Software doesn‟t “Wear out”. The relationship of failure rate with time for a hardware is like a “bathtub curve” As shown in Fig 1.

Fig 1.1 Failure curve for hardware This curve shows that hardware show high rate of failure in it‟s early stage due to design or manufacturing defects, when there defects are corrected, the failure rate deeps i.e. very low & steady for a period of time. But as the time passes, due to environmental effects like temperature, dust, moisture, the hardware begins to wear out. In a broader way, as comparing software with hardware, we can say that the software doesn‟t wear out due to environmental conditions (as in case of hardware). Theoretically the failure rate v/s time curve for software is an ideal curve as shown in figure 1.

7 Software Engineering

The software industry is moving towards component based assembly. Most of the software continues to be customer built. As in case of hardware, we have well defined set of IC or chips (Integrated) and screws and other components and that could be used to design different hardware (reusability of hardware components). In case of software, library routines & subroutines are to be developed for reusability. A software component should be designed & implemented so that is can be reused in many other different programs.

Q.4 What are Software Myths?

Ans: Most, knowledgeable professionals have recognized myths or beliefs (untrue beliefs or explanations) which are misguiding the attitudes (of the users) causing serious problems for managers & technical persons. Different types of Myths relevant to the software are as classified in figure 1.4.

Figure 1.4 Software Myths

(i)Management Myths: Myth 1: We have all the standards & procedures available for building software i.e the software developer have everything what is reqd. Reality:

  • Software practitioners are not aware about the existence of all those standards.
  • Those practices might be outdated or not according to the current /modern software engineering practices.
  • Also all the pre-existing procedures, are not complete.

Biyani’s Think Tank 8

Myth 2: The Addition of latest hardware systems would improve the software development. Reality:

  • The role of latest hardware is not too high for the quality software development; instead (CASE) Computer aided software engineering tools are more important than hardware for a good & quality productivity.
  • Also the available hardware resources are not used effectively. Myth 3: Management thinks that, addition of more people and programmers in software development could help in meeting the deadlines of the project (If it is lagging behind) Reality:
  • Software development is not, a mechanistic process like manufacturing; here addition of people in late phases may reduce the amount of time to be used for the productive development, as the newcomers would take time of existing developers for the explanations & understanding for the project. But, addition of people done in a planned & well-coordinated manner could be helpful in the project completion.

(ii)Customer Myths: Customer could be the direct users of the software, a technical group, marketing /sales department, or some other company. The customer possesses the myths which lead to the false expectations (by the customer) & hence create dissatisfaction with the developer. Myth 1: A general statement of objectives is sufficient to begin writing programs (software development) and the details of the objectives could be done later. Reality: A formal & detailed description of the information domain function, behaviors performance, interfaces, design constraints and validation criteria is essential. A thorough communication between customer & developer is must. Myth 2: Project requirement continually change, but, change, can be easily accommodated due to the flexible nature of the software. Reality: Changes are made till the last phases of the software development but the cost of making those changes increase with the later stages of development. A detailed analysis of user requirements should be done to minimize the change requirement. Fig 1.5 shows the cost of change with respect to the phases of development.

Biyani’s Think Tank 10

Reality: Software Engineering is not about creating documents, instead it is there for creating quality and better quality leads to the reduced rework & this reads to a faster delivery of the product.

Q.5 What are various Software Applications?

Ans: Software may be applied in any situation for which a specified set of procedural steps (i.e. an algorithm) has been defined. Information content & determinacy are important factors in determining the nature of a software application. Following are the categories of the software with their corresponding applications.

  1. System Software: It is a collection of programs written to save other programs eg. Compliers, Editor, File Management utilities, Operating System. These are characterized by heavy interaction with computer hardware and heavy usage by multiple users.
  2. Real Time Software: Software that monitors and analyzes the real world problems and meets strictly the timelines in execution.
  3. Business Software: System like payroll accounts receivable/payable, inventory, MIS software for providing information are included in business software.
  4. Engineering & Scientific software: Applications used specifically for engineering, research, simulation automated manufacturing etc. are included in such software.
  5. Embedded Software: Artificial Intelligence based (home applications) intelligent systems like keypad or microwave oven, automated washing machines etc.
  6. Personal computer Software: Used mainly for entertainment (like media players), word processing, spreadsheets , graphics etc.
  7. Web based software: These mainly incorporate the instructions based on CGI, HTML, PERL etc.
  8. Artificial Intelligence Software: To solve complex specific problems eg: expert system, knowledge-based systems, pattern recognition etc.

11 Software Engineering

Q.6 Define Software Engineering. Ans: Software Engineering (SE) is the establishment & use of sound engineering principles in order to obtain economic, reliable and efficient software. Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation & maintenance of software. Software Engineering is layered technology as shown in Figure 1.6.

Figure 1.4 SE layers

13 Software Engineering

Figure: 2.2 Basic Structure of the Software Development Process

The process development is similar to SDLC.

Q.3 What are the different categories of process models?

Ans: There are many process models which are used in different areas. The waterfall model & the evolutionary models are commonly used for the practical development. The other models are used in the specific fields. The model categorization is shown in Fig. 2.

Biyani’s Think Tank 14

Figure: 2.3 Process Models Categories

Q.4 Explain Waterfall model / linear Sequential Model.

Ans: Waterfall model is:  The simplest oldest process model  Best suited where requirements can be clearly defined.  Steps of development are followed consecutively  Each step involves detailed activities  Each step produces an output which becomes the input of the next step. Major phases/steps of the waterfall model are shown in fig 2.

Biyani’s Think Tank 16

A Detail analysis model with high-level description of requirements is produced Outputs:

  • Requirements Analysis Model
  • Revise to project goals & cost Benefit Estimates
  • A SRS (Software Requirement Specification)
  • A project development plan
  • A Test plan Phase: 3 Software Design Two steps are there:- (a) Preliminary : Main Architecture is proposed (b) Detailed: Detailed database & program modules and procedures are designed & documented. Outputs:
  • Detailed User Procedures
  • User Manual
  • SDS ( Software Design Specification) Phase: 4 Coding & Unit Testing
  • Programs are written in specific programming language (as mentioned in SRS)
  • Individual components are tested Outputs:
  • A Test Document
  • Tested Modules Phase: 5 Software Integration & Testing Individual units are integrated & then tested. The complete testing procedure is shown in Fig 2.5.

17 Software Engineering

Figure: 2.5 Testing Procedure

Output: A complete integrated & tested software for the user.

Phase: 6 Implementation & Maintenance : Software is installed at user location & if any deficiencies or errors are found, they are removed. If the changes are not minor, then requirements of a new system arise. Model Summary :

  • It is a step – by-step approach
  • Each step should be well-defined
  • Each step creates a definite product
  • Product generated from each phase becomes the basics for the next step.
  • Verification & validation of each step can be done followed by certification
  • Clear demonstration between end & beginning of a phase.
  • The outputs is work product obtained as: SRS(Software Requirement specification) , SDS (Software Design Specification) , project plan , test plan, and code.

Advantages

19 Software Engineering

Phase 1: Listen to Customers

  • All requirements of the user are discussed & identified
  • Goals are set Output:
  • An agreement document
  • List of all requirements Phase 2: Build the Model
  • Model is quickly designed according to user‟s requirements Output:
  • A Prototype for the customer is ready.

Phase 3: Customer Evaluation

  • System is evaluated & tested by customer Output:
  • Feedback from customer to developer
  • User satisfaction or acceptance Prototyping is a practice of building a version of software quickly in advance. This model is built at the early stages of the software development. Fig 2. shows the process of prototyping

Biyani’s Think Tank 20

Figure: 2.7 Process of prototyping

Advantages of prototype model:

  • Clear identification of requirements by developer
  • Loop holes or drawbacks are indentified
  • Faster system development
  • Development & maintenance effort are reduced

Disadvantage of Prototype Model:

  • Use of an inappropriate programming language due to quick building which later difficult or may be forgot by the developer to replace.
  • Customer may visualize lack of good quality in a quickly built model

Q.6: Explain RAD Model/Rapid Application Development Model.

Ans: RAD model is also a speedy method of model development.