1 / 91

Software Engineering

Software Engineering. Part 01. 程建群 博士 (Dr. Jason Cheng) jason8407@yahoo.com.cn 13522913536 2008 年 03 月. What is the Software Engineering. What is the software engineering.

leduc
Télécharger la présentation

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. Software Engineering Part 01 程建群 博士(Dr. Jason Cheng) jason8407@yahoo.com.cn 13522913536 2008年03月

  2. What is the Software Engineering What is the software engineering

  3. Software engineering is a systematic and disciplined approach to developing software. It applies both computer science and engineering principles and practices to the creation, operation, and maintenance of software systems. Software Engineering What is the software engineering

  4. Over the last few decades, information technology has grown dramatically, with significant impact to both the global economy and everyday life. Computing power has increased rapidly while the costs of hardware and communications have dropped, making it increasingly more economical to implement systems in software rather than hardware. Why Software Engineering? What is the software engineering

  5. Mechanical devices in automobiles, airplanes, and power plants are being replaced by software components because software is more adaptable, can provide more functionality, and can be upgraded more easily to accommodate future needs. Software is used in medical devices, transportation systems, and financial systems to automate repetitive but critical tasks. Why Software Engineering? What is the software engineering

  6. Scientists and business researchers use software to sift through data warehouses and to identify pertinent facts and trends. Banking, insurance, telecommunications, and other service industries use software to automate and personalize the services they offer to their customers. As software applications have grown more complex, there has been a surge in the demand for software engineers who have the knowledge and expertise to develop high-quality software systems. Why Software Engineering? What is the software engineering

  7. Software Engineering VS. Other Computer Programs Many students want to know how Software Engineering differs from Computer Science and Computer Engineering. The three programs have common elements: they all stress an understanding of both digital hardware and software, though to varying degrees, and they all hone students' problem-solving skills. As well, graduates of all three programs may compete for some of the same jobs. However, the programs have different objectives. What is the software engineering

  8. Computer Engineering (CE) Computer Engineering (CE) deals with designing, developing, and operating computer systems. At its core, Computer Engineering concentrates on digital hardware devices and computers, and the software that controls them. Advanced courses focus on standard designs and techniques for specific application domains. In contrast to CS and SE, Computer Engineering emphasizes solving problems in digital hardware and at the hardware-software interface. What is the software engineering

  9. Computer Science (CS) Computer Science focuses on understanding, designing, and developing programs and computers. At its core, Computer Science concentrates on data, data transformation, and algorithms. Advanced courses present specialized programming techniques and specific application domains. The CS program is less structured than the CE and SE programs, giving students more flexibility to build depth or breadth in a variety of application domains or in the fundamentals of Computer Science. What is the software engineering

  10. Software Engineering (SE) Software Engineering deals with building and maintaining software systems. It is more software-oriented and has a greater emphasis on large software applications than Computer Engineering. It is more applied than Computer Science, placing greater emphasis on the entire software development process, from idea to final product. It is also more disciplined than Computer Science, applying more systematic practices to help ensure that products are reliable and safe. What is the software engineering

  11. The Software Life Cycle What is the software engineering

  12. Introduction The Software Life Cycle is a sequence activities that take place during software development. The Software Life Cycle

  13. Types of Software Life Cycle Activities • Feasibilities • Requirements • Project Planning • Design • Implementation • Test • Delivery • Maintenance The Software Life Cycle

  14. Types of Software Life Cycle Activities • Feasibilities • Determining if the proposed development is worthwhile. • Determining is there is market for the product The Software Life Cycle

  15. Types of Software Life Cycle Activities • Requirements • Determining what functionality the software should contain. • Obtain the requirement from the user • Determining what the tasks and structure are common to this problem. The Software Life Cycle

  16. Types of Software Life Cycle Activities • Project Planning • Determining how to develop the software • Determining cost estimate • Building a schedule for the development • Obtain the requirement from the user • Determining activities that will help ensure quality of the product • Determining subtasks necessary to develop the product The Software Life Cycle

  17. Types of Software Life Cycle Activities • Design • Determining how the software should provide the functionality • Designing the structure of the system • Specifying the interfaces between the parts of the system • Determining the algorithm for the individual parts The Software Life Cycle

  18. Types of Software Life Cycle Activities • Implementation • Build the software The Software Life Cycle

  19. Types of Software Life Cycle Activities • Testing • Executing the software with data to help ensure the software works correctly • Testing by the original developer • Testing during the integration • Testing the software in an environment that match the operation environment • Testing by the customer both in developer’s site and customer’s site The Software Life Cycle

  20. Types of Software Life Cycle Activities • Testing • Testing to satisfy the purchase • Saving test from the previous version to ensure that the new version contains the previous capabilities The Software Life Cycle

  21. Types of Software Life Cycle Activities • Delivery • Providing customer with an effective software solution • Making the software available at the customer’s site • Teaching the users to use the software • Answering questions of the user The Software Life Cycle

  22. Types of Software Life Cycle Activities • Maintenance • Updating and improving the software to ensure continued usefulness The Software Life Cycle

  23. Typical Documents • Technique Document Writing Standard • Statement of Work • Software Requirement Specification • Project Schedule • Software Test Plan • Software Quality Assurance Plan • User Manual • Source code • Test Report • Defect Report The Software Life Cycle

  24. Typical Documents • Technique Document Writing Standard • IEEE Standard 1058 • Software Project Management Plan (SPMP) The Software Life Cycle

  25. Typical Documents • Statement of work • Preliminary description of desired capabilities • Produced by the user • SOW The Software Life Cycle

  26. Typical Documents • Software Requirement Specification • Decribes what the final software will do • Show main objects/Classes • RD The Software Life Cycle

  27. Typical Documents • Software Requirement Specification • Describes what the final software will do • Show the objects/classes • Show sequences of possible behaviors from the user’s viewpoint • RD The Software Life Cycle

  28. Typical Documents • Project Schedule • Describes the order of the tasks and estimates time and effort of necessary • Show the objects/classes • Show sequences of possible behaviors from the user’s viewpoint • PS The Software Life Cycle

  29. Typical Documents • Software Test Plan • Describes how the software will be tested to ensure the proper behaviors • Test designated by the customer to determine the acceptability of the software • STP The Software Life Cycle

  30. Typical Documents • Software Design • Describes the structure of the software • High level structure with interconnection • Design of low-level modules or objects • HLD The Software Life Cycle

  31. Typical Documents • Software Quality Assurance Plan (SQA) • Describes the activities that will be done to ensure quality The Software Life Cycle

  32. Typical Documents • User Manual • Describes how to use the finished software • UM The Software Life Cycle

  33. Typical Documents • Source Code • The actual product code The Software Life Cycle

  34. Typical Documents • Test Report • Describes what tests were done and how the system behave The Software Life Cycle

  35. Typical Documents • Defect Report • Describes dissatisfaction of the customer with specified behavior of of the system • Usually describes the software failure or errors The Software Life Cycle

  36. Life Cycle The Software Life Cycle

  37. Documentation

  38. Main Documents Include: • Software Project Management Plan (SPMP) • Product Requirement Document (PRD) • High Level Design Document (HLD) • Statement Of Work (SOW) • Contract • Price and Payment Terms (PPT) • Meeting Minutes • Change Control Register (CCR) • Test Plan • Installation Test Report • User Manual The Software Life Cycle

  39. Software Project Management Plan (SPMP) The Software Life Cycle

  40. Software Project Management Plan (SPMP) • Introduction • Project Organization • Managerial Process • Technical Process • Work Packages, Schedule and Budget • Additional Components • An IEEE Standard 1058 • Standard SPMP Template: The Software Life Cycle

  41. SPMP Template : Introduction • 1.1 Project Overview • 1.2 Project Deliverables • 1.3 Evolution of the Software Project Management Plan • 1.4 Reference Materials • 1.5 Definitions and Acronyms The Software Life Cycle

  42. SPMP Template : Project Organization • 2.1 Process Model • 2.2 Organizational Structure • 2.3 Organizational Boundaries and Interfaces • 2.4 Project Responsibilities The Software Life Cycle

  43. SPMP Template : Managerial Processes • 3.1 Management Objectives and Priorities • 3.2 Assumptions, Dependencies, and Constraints • 3.3 Risk Management • 3.4 Monitoring and Controlling Mechanisms • 3.5 Staffing Plan The Software Life Cycle

  44. SPMP Template : Technical Processes • 4.1 Methods, Tools, and Techniques • 4.2 Software Documentation • 4.3 Project Support Functions The Software Life Cycle

  45. SPMP Template : Work Packages, Schedule, and Budget • 5.1 Work Packages • 5.2 Dependencies • 5.3 Resource Requirements • 5.4 Budget and Resource Allocation • 5.5 Schedule The Software Life Cycle

  46. SPMP Template : Additional Components • Any items below as appropriate: • Subcontractor management plan • Security plan • Test plan • Training plan • Hardware procurement plan • Installation plan • Product maintenance plan The Software Life Cycle

  47. Product Requirement Document (PRD) The Software Life Cycle

  48. Product Requirement Document (PRD) • This document describes the detailed functions, features, data and performance of the product (or sometimes called the system) to be built • Sometimes also referred to as a RD (Requirement Document) • Standard PRD Template: • 1. Introduction • 2. General Description • 3. Specific System Requirements The Software Life Cycle

  49. Issues in Outsourcing Software PRD (1) • Most initial PRD are incomplete, inaccurate, ambiguous and have errors • Most PRD have common English technical-writing language mistakes and thus are subjected to interpretation • American source company generally does not have sufficient number of competent staff to support the Chinese vendor company in the process of PRD interpretation The Software Life Cycle

  50. Issues in Outsourcing Software PRD (2) • Project team members in Chinese vendor company do not have the needed English proficiency to communicate with the American source company, and thus misunderstanding and misinterpretation often result • Misunderstanding, misinterpretation, or even added-personal ideas are often unnoticed until late in the development process • Poor documentation in English in a timely manner makes it difficult or even impossible for the American counterparts to notice any problem (deviation from their intention per their PRD) until near the testing phase The Software Life Cycle

More Related