1 / 34

Chapter 1 Software and Software Engineering

Chapter 1 Software and Software Engineering. Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman. Outline. Background The Nature of Software Legacy Software Web Application. Unintended Consequence of Software (软件的意外效应).

brandonford
Télécharger la présentation

Chapter 1 Software and Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman

  2. Outline • Background • The Nature of Software • Legacy Software • Web Application

  3. Unintended Consequence of Software(软件的意外效应) • Computer software can have profound(深奥的) and unexpected effects on: • Science • Business • Engineering • Commercial • People, and • Culture None could have foreseen!

  4. Where is Software? • 软件已运用到政府、银行和金融、教育、交通、娱乐、医疗、农业和法律等方面: • 以网络为中心的系统 • 信息系统和数据处理 • 金融和电子商务系统 • 生物医学系统 • 多媒体、游戏和娱乐系统 • 嵌入式和实时系统 • 容错和免疫系统 • 。。。。。。 • 有没有或不能用软件的地方吗? • Transportation • Medical • Telecommunications • Military • Industrial • Entertainment • Office Machines • Education • etc.

  5. Key Point • Ideas and technological discoveries are the driving engines of economic growth. ------ The Wall Street Journal 美国神话说明了这一点。

  6. Historical Insight • http://www.softwarehistory.org/ • http://www.yourdon.com/ None of us can really know the future of the systems we build.

  7. Q&A • What makes software so important?

  8. Outline • Background • The Nature of Software • Legacy Software • Web Application

  9. The Definition of Software • Software is: • Instructions that when executed provide desired features, functions, and performance; • Data structures that enable the programs to adequately manipulate information; and • Documents that describe the operation and use of the programs • Services that support users to apply software 问题:软件与程序(代码)有什么区别?

  10. The Definition of Software • 作为软件工程的研究对象,软件是: The collection of computer programs, procedures, rules, and associated documentation and data。 (IEEE) • 软件是一种逻辑,用计算机语言表达,是可在计算机硬件上执行的指令集合。 • For Example, …… • An Overview of Software

  11. Software’s Dual Role(双重作用) • Software is a product • Transforms information - produces, manages, acquires, modifies, displays, or transmits information • Delivers computing potential of hardware and networks • Software is a vehicle(载体) for delivering a product • Controls other programs (operating system) • Effects communications (networking software) • Helps build other software (software tools & environments)

  12. Hardware vs. Software

  13. Characteristics of Software • Software is engineered, not manufactured. • Software doesn’t “wear out”, but it does deteriorate. • Most software continues to be custom built.

  14. Manufacturing vs. Development • Once a hardware product has been manufactured, it is difficult or impossible to modify. In contrast, software products are routinely modified and upgraded. • In hardware, hiring more people allows you to accomplish more work, but the same does not necessarily hold true in software engineering. • Unlike hardware, software costs are concentrated in design rather than production.

  15. Wear Out (用尽)vs. Deterioration(退化) Hardware wears out over time

  16. Wear Out (用尽)vs. Deterioration(退化) Software deteriorates over time

  17. Component-Based vs. Custom Built • Hardware products typically employ many standardized design components. • Most software continues to be custom built. • The software industry does seem to be moving (slowly) toward component-based construction.

  18. Software Applications • system software • application software • engineering/scientific software • embedded software • product-line software • web applications • Artificial Intelligence software Please visit: http://shareware.cnet.com/ http://sourceforge.net/

  19. Software New Categories • Open world computing—pervasive, distributed computing • Ubiquitous (普适) computing—wirelessnetworks • Netsourcing/ Outsourcing(外包)—the Web as a computing engine • Open source—”free” source code open to the computing community (a blessing, but also a potential curse!) • Also … (see Chapter 31) • Data mining • Grid computing • Cognitive machines • Software for nanotechnologies

  20. 软件数据知多少? • 应用商店数据 • 苹果公司的App Store,收集了超过100 万个移动应用,下载次数超过600亿次 • 谷歌公司的Google Play ,收集了超过100 万个移动应用,下载次数超过500 亿次 • 移动应用商店中保存的信息包括:移动应用、评论、推荐信息、功能信息、用户信息、开发者信息 • 开发平台数据 • 微软的移动应用开发平台TouchDevelop,开发者发布了72384 个脚本,并在Windows Store 上发布了636个移动应用 • 代码仓库数据 • GitHub , 托管的代码库超过1000万个 • 技术论坛数据 • Stack Overflow 网站,已经拥有190 万名注册用户,存储了超过550 万个技术问题。 • 智能移动设备数据 • 通讯录、通话记录、短信、安装的移动应用、照片、视频、上网记录等

  21. 部分主流移动开发平台

  22. Software Complexity I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity(逼真) of the representation. If this is true, building software will always be hard. There is inherently no silver bullet. - Fred Brooks, “No Silver Bullet” http://www.computer.org/computer/homepage/misc/Brooks/

  23. Q&A • Why does software take so long to complete? • Why does it cost so much to produce? • Why can't all errors be found and removed before software is delivered to the customer?

  24. Outline • Background • The Nature of Software • Legacy Software • Web Application

  25. Why must Software change? • Software must be adapted to meet the needs of new computing environments or technology. • Software must be enhanced to implement new business requirements. • Software must be extended to make it interoperable with other more modern systems or databases. • Software must be re-architectedto make it viable within a network environment.

  26. What types of changes? • Be adapted to meet the needs of new computing environments. • Be enhanced to implement new business requirements. • Be extended to make it interoperable with other systems. • Be re-architected to make it viable(可实施的) within a network environment.

  27. E-Type Systems • Software that has been implemented in a real-world computing context and will therefore evolve over time

  28. Why Software Evolution? • Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. • Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. • Self Regulation (自适应)(1974):The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. • Conservation of Organizational Stability(保持组织稳定) (1980):The average effective global activity rate in an evolving E-type system is invariant over product lifetime. Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from: http://www.ece.utexas.edu/~perry/work/papers/feast1.pdf

  29. Why Software Evolution? • Conservation of Familiarity(保持熟悉) (1980):As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. • Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. • Declining Quality (质量的下降)(1996):The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. • The Feedback System (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base. Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from: http://www.ece.utexas.edu/~perry/work/papers/feast1.pdf

  30. Outline • Background • The Nature of Software • Legacy Software • Web Application

  31. Characteristics of WebApps - I • Network intensiveness(密集). A WebApp resides on a network and must serve the needs of a diverse community of clients. • Concurrency(并发). A large number of users may access the WebApp at one time. • Unpredictable load.The number of users of the WebApp may vary by orders of magnitude from day to day. • Performance. If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere. • Availability. Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis.

  32. Characteristics of WebApps - II • Data driven. The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user. • Content sensitive(敏感). The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp. • Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously. • Immediacy(及时性).Although immediacy—the compelling need to get software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time to market that can be a matter of a few days or weeks. • Security.Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application. • Aesthetics(美学).An undeniable part of the appeal of a WebApp is its look and feel.

  33. Q&A • How do WebApps different from conventional software in both subtle(细节的)and distinct(明显的)ways?

  34. Summary • 软件是智能系统和产品的重要组成,是世界上最重要的技术; • 软件(程序、数据、文档、服务)涉及大量的技术和应用; • 软件的持续改进意味着其无限的前景和维护的工作; • 基于Web的系统和应用使软件从简单和复杂、综合。

More Related