×
I'm working hard to be someone I'll be proud of.
--Your friends at LectureNotes
Close

Note for Software Engineering - SE by Mohammad Akbal

  • Software Engineering - SE
  • Note
  • 314 Views
  • 10 Offline Downloads
  • Uploaded 8 months ago
0 User(s)
Download PDFOrder Printed Copy

Share it with your friends

Leave your Comments

Text from page-1

INDEX LESSON 1: INTRODUCTION TO SOFTWARE ENGINEERING LESSON 2: SOFTWARE METRICS LESSON 3: SOFTWARE LIFE CYCLE MODELS LESSON 4: SOFTWARE PROJECT PLANNING LESSON 5: SOFTWARE REQUIREMENT ANALYSIS & SPECIFICATION LESSON 6: SOFTWARE DESIGN - I LESSON 7: SOFTWARE DESIGN - II LESSON 8: CODING LESSON 9: SOFTWARE TESTING - I LESSON 10: SOFTWARE TESTING - II LESSON 11: SOFTWARE RELIABILITY Introduction to Software Engineering Page 1 of 348

Text from page-2

Lesson No. : 1 Writer: Dr. Rakesh Kumar Introduction to Software Engineering Vetter: Sh. Naresh Mann 1.0 Objectives The objective of this lesson is to make the students acquainted with the introductory concepts of software engineering. To make them familiar with the problem of software crisis this has ultimately resulted into the development of software engineering. After studying this lesson, the students will: 1. Understand what is software crisis? 2. What are software engineering and its importance? 3. What are the quality factors of software? 1.1 Introduction In order to develop a software product, user needs and constraints must be determined and explicitly stated; the product must be designed to accommodate implementers, users and maintainers; the source code must be carefully implemented and thoroughly tested; and supporting documents must be prepared. Software maintenance tasks include analysis of change request, redesign and modification of the source code, thorough testing of the modified code, updating of documents to reflect the changes and the distribution of modified work products to the appropriate user. The need for systematic approaches to development and maintenance of software products became apparent in the 1960s. Many software developed at that time were subject to cost Introduction to Software Engineering Page 2 of 348

Text from page-3

overruns, schedule slippage, lack of reliability, inefficiency, and lack of user acceptance. As computer systems become larger and complex, it became apparent that the demand for computer software was growing faster than our ability to produce and maintain it. As a result the field of software engineering has evolved into a technological discipline of considerable importance. 1.2 Presentation of contents 1.2.1 The Software Crisis 1.2.2 Mature Software 1.2.3 Software Engineering 1.2.4 Scope and Focus 1.2.5 The Need for Software Engineering 1.2.6 Technologies and practices 1.2.7 Nature of Software Engineering 1.2.7.1 Mathematics 1.2.7.2 Engineering 1.2.7.3 Manufacturing 1.2.7.4 Project management 1.2.7.5 Audio and Visual art 1.2.7.6 Performance 1.2.8 Branch of Which Field? 1.2.8.1 Branch of programming 1.2.8.2 Branch of computer science 1.2.8.3 Branch of engineering 1.2.8.4 Freestanding field 1.2.8.5 Debate over the term 'Engineering' 1.2.9 Software Characteristics 1.2.10 Software Applications 1.2.11 Software Quality Attributes 1.2.11.1 ISO 9126 Introduction to Software Engineering Page 3 of 348

Text from page-4

1.2.11.2 McCall’s Quality Model 1.2.1 The Software Crisis The headlines have been screaming about the Y2K Software Crisis for years now. Lurking behind the Y2K crisis is the real root of the problem: The Software Crisis. After five decades of progress, software development has remained a craft and has yet to emerge into a science. What is the Software Crisis? Is there a crisis at all? As you stroll through the aisles of neatly packaged software in your favorite computer discount store, it wouldn’t occur to you that there’s a problem. You may be surprised to learn that those familiar aisles of software represent only a small share of the software market--of the $90 Billion software market, a mere 10% of software products are "shrink wrapped" packages for personal computers. The remaining 90% of the market is comprised of large software products developed to specific customer specifications. By today’s definition, a "large" software system is a system that contains more than 50,000 lines of high-level language code. It’s those large systems that bring the software crisis to light. You know that in large projects the work is done in teams consisting of project managers, requirements analysts, software engineers, documentation experts, and programmers. With so many professionals collaborating in an organized manner on a project, what’s the problem? Why is it that the team produces fewer than 10 lines of code per day over the average lifetime of the project? Introduction to Software Engineering Page 4 of 348

Lecture Notes