Chapter 1. Overview Of Sotfware Engineering (1).Pdf

34 2 0
Chapter 1. Overview Of Sotfware Engineering (1).Pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Faculty of Information Technology HANOI UNIVERSITY OF INDUTRY Lecturer Dr Nguyen Thi My Binh Department Software engineering Mobile 0977901599 9/18/2022 Introduction to Software Engineering first Mach[.]

Machine Translated by Google HANOI UNIVERSITY OF INDUTRY Faculty of Information Technology Introduction to Software Engineering Lecturer: Dr Nguyen Thi My Binh Department: Software engineering Mobile: 0977901599 9/18/2022 first Machine Translated by Google Overview ÿ Software Engineering should focus on imparting to students the knowledge and skills that are needed to successfully execute a commercial project of a few person-months effort while employing proper practices and techniques It is worth pointing out that a vast majority of the projects executed in the industry today fall in this scope—executed by a small team over a few months ÿ The goal of this course is to introduce to the students a limited number of concepts and practices which will achieve the following two objectives: ÿ Teach the student the skills needed to execute a smallish commercial project ÿ Provide the students necessary conceptual background for undertaking advanced studies in software engineering, through courses or on their own Machine Translated by Google GENERAL INTRODUCTION ÿ Description of course content Provides basic knowledge, methods and principles related to the process of software product deployment according to industrial processes (planning, design analysis, engineering processes, etc.) technology, implementation techniques, methods of organization and management, tools and software deploymen From there, students know how to build software in a systematic and methodical way ÿ Objectives of the module General objective: Equip students with knowledge about the software production process, some tools and procedures to support in software production Knowledge: Students systematically understand the process of software production with the help of computers Skills: Students use the knowledge they have learned about processes, procedures, and tools to conduct software development Attitude: Train students to approach new problems, have a serious and proactive learning attitude Machine Translated by Google Introduction to software engineering ÿ Chapter 1: Overview of software engineering ÿ Chapter Software process ÿ Chapter Analysis and specification requirements ÿ Chapter Software design ÿ Chapter Software testing strategies Machine Translated by Google Chapter Overview of software engineering 1.1 The basic concepts 1.2 The unique nature of Webapps 1.3 Software engineering 1.4 The software process 1.5 The software problem 1.5.1 Cost, Schedule, and Quality 1.5.2 Scale and Change 1.6 Summary Machine Translated by Google The basic concepts ÿ Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures that enable the programs to adequately manipulate information, (3) descriptive information in both hard copy and virtual forms that describes the operation and use of the programs ÿ A software includes the computer programs, attachments and configuration information necessary to make these programs work properly A software system consists of three parts: Individual computer programs Data structures ÿ Related documents Machine Translated by Google Machine Translated by Google Software Application Domains ÿ System software: a collection of programs written to service other programs Some system software (eg, compilers, editors, and file management utilities) processes complex, but determinate,4 information structures ÿ Application software - stand-alone programs that solve a specific business need ÿ Engineering/scientific software- has been used by “number crunching” algorithms Applications range from astronomy to volcanology, from automotive stress analysis to space shuttle orbital dynamics, and from molecular biology to automated manufacturing Machine Translated by Google Software Application Domains ÿ Embedded software - resides within a product or system and is used to implement and control features and functions for the end user and for the system itself ÿ Product-line software - designed to provide a specific capability for use by many different customers For example: inventory control products, word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, and personal and business financial applications ÿ Web applications—called “WebApps,” this network-centric software category spans a wide array of applications In their simplest form, WebApps can be little more than a set of linked hypertext files that present information using text and limited graphics Machine Translated by Google Software Application Domains ÿ Artificial intelligence software—makes use of nonnumerical algorithms to solve complex problems that are not amenable to computation or straightforward analysis Applications within this area include robotics, expert systems, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing ten Machine Translated by Google Cost, Schedule, and Quality ÿ The productivity in the software industry for writing fresh code generally ranges from few hundred to about 1000+ LOC per person-month ÿ This productivity is over the entire development cycle, not just the coding task ÿ Software companies often charge the client for whom they are developing the software between $3000 - $15,000 per person month ÿ With a productivity of 1000 LOC per person-month, it means that each line of delivered code costs between $3 and $15! ÿ And even small projects can easily end up with software of 50,000 LOC With this productivity, such a software project will cost between $150,000 and $750,000! 20 Machine Translated by Google Cost, Schedule, and Quality ÿ Schedule is another important factor in many projects Business trends are dictating that the time to market of a product should be reduced; that is, the cycle time from concept to delivery should be small ÿ Quality is one of the main mantras, and business strategies are designed around it ÿ Unfortunately, a large number of instances has occurred regarding the unreliability of software—the software often does not what it is supposed to or does something it is not supposed to 21 Machine Translated by Google Cost, Schedule, and Quality ÿ The international standard on software product quality [55] suggests that software quality consists of six main attributes, as shown in Figure 1.1 These attributes can be defined as follows: 22 Machine Translated by Google Software quality ÿ Functionality The capability to provide functions which meet stated and implied needs when the software is used ÿ Reliability The capability to provide failure-free service ÿ Usability The capability to be understood, learned, and used ÿ Efficiency The capability to provide appropriate performance relative to the amount of resources used ÿ Maintainability The capability to be modified for purposes of making corrections, improvements, or adaptation ÿ Portability The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product 23 Machine Translated by Google Software quality ÿ With multiple dimensions to quality, different projects may emphasize different attributes, and a global single number for quality is not possible ÿ As unreliability of software is due to the presence of defects in the software, one measure of quality is the number of defects in the delivered software per unit size (generally taken to be thousands of lines of code, or KLOC) ÿ The quality objective is to reduce the number of defects per KLOC as much as possible ÿ Current best practices in software engineering have been able to reduce the defect density to less than defect per KLOC 24 Machine Translated by Google Software quality ÿ To determine the quality of a software product, we need to determine the number of defects in the software that was delivered This number is clearly not known at delivery time and may never be known ÿ One approach to measure quality is to log the defects found in months (or year) after delivery and define quality with respect to these defects This means that quality of delivered software can only be determined months after its delivery ÿ It should be pointed out that to use this definition of quality, what a defect is must be clearly defined 25 Machine Translated by Google Software quality ÿ Besides reliability, another quality attribute of great interest is maintainability ÿ Once the software is delivered and deployed, it enters the maintenance phase ÿ Why is maintenance needed for software, when software has no physical components that can degrade with age? ÿ Software needs to be maintained because of the residual defects remaining in the system ÿ It is commonly believed that the state of the art today is limited and software with zero defect density is not possible These defects, once discovered, need to be removed, leading to what is called corrective maintenance 26 Machine Translated by Google Software quality ÿ Maintenance is also needed to change the delivered software to satisfy the enhanced needs of the users and the environment, leading to adaptive maintenance ÿ Over the life of a software system, maintenance cost can far exceed the cost of original development ÿ The maintenance-to-development-cost ratio has been variously suggested as 80:20, 70:30, or 60:40 ÿ Due to this high cost, maintainability attribute of delivered software is of high interest—it is clearly desirable to have software systems that are easier to maintain 27 Machine Translated by Google Chapter Overview of software engineering 1.1 The nature of software 1.2 The unique nature of Webapps 1.3 Software engineering 1.4 The software process 1.5 The software problem 1.5.1 Cost, Schedule, and Quality 1.5.2 Scale and Change 1.6 Summary 28 Machine Translated by Google Scale and Change ÿ Most industrial-strength software systems tend to be large and complex, requiring tens of thousands of lines of code Sizes of some of the well-known software products are given in Table 1.1 29 Machine Translated by Google Scale and Change ÿ Any software project involves the use of engineering and project management ÿ In small projects, informal methods for development and management can be used For large projects, both have to be much more strict (strict) 30 Machine Translated by Google Scale and Change Overall, as the world changes faster, software has to change faster, even while under development Changes in requirements are therefore a characteristic of the problem domain In today's world, approaches that cannot accept and accommodate change are of little use—they can solve only those few problems that are change resistant thirty first Machine Translated by Google Laws and ethics on IT Refer to the composite system of HaUI 32 Machine Translated by Google Self-Assessment Exercises 33 Machine Translated by Google 34

Ngày đăng: 06/04/2023, 23:49

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan