Chapter3.pdf
Document Details
Uploaded by EntertainingGray1954
King Mongkut's University of Technology North Bangkok
2024
Tags
Full Transcript
040613302 System Analysis and Design Chapter 3 Thattapon Surasak, Ph.D. Lecturer and Researcher Computer and Information Science Department Faculty of...
040613302 System Analysis and Design Chapter 3 Thattapon Surasak, Ph.D. Lecturer and Researcher Computer and Information Science Department Faculty of Applied Science, King Mongkut's University of Technology North Bangkok OUTLINE Recap SDLC Software and Software Engineering Collaboration Tools Copyright © 2024-2025 Thattapon Surasak, Ph.D. 2 Recap: What is System Analysis and Design? Systems development is systematic process which includes phases such as planning, analysis, design, deployment, and maintenance. Here, in this course, we will primarily focus on Systems analysis and Systems design. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 3 Recap: What is System Analysis and Design? (cont.) Planning Analysis Design Deployment Maintenance Copyright © 2024-2025 Thattapon Surasak, Ph.D. 4 Recap: Machinery Life Cycle (วงจรชีวิตของเครือ ่ งจักรกล) ช่วงระยะเริม ่ ต้นใช้งาน (Early Failure) ช่วงใช้งานปกติ (Random Failure) ช่วงระยะการสึกหรอ (Wear out Failure) Copyright © 2024-2025 Thattapon Surasak, Ph.D. 5 Recap: Nature of Software มองไม่เห็นและจับต้องไม่ได้ (Intangible Product) สามารถทําสําเนาหรือการนํากลับมาใช้ใหม่ (Reuse) Copyright © 2024-2025 Thattapon Surasak, Ph.D. 6 Recap: Causes of Failure for Software The requirements are not ความต้องการไม่ได้มีการระบุชด ั เจน clearly stated. ลูกค้าเปลี่ยนใจ Customers change their minds. ความต้องการใหม่ New needs เทคโนโลยีเปลี่ยน Technology has changed. ความปลอดภัย Safety การขยายระบบ System expansion Copyright © 2024-2025 Thattapon Surasak, Ph.D. 7 Recap: Failure Curve for Software Copyright © 2024-2025 Thattapon Surasak, Ph.D. 8 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 9 Software Development Life Cycle (SDLC) Copyright © 2024-2025 Thattapon Surasak, Ph.D. 10 Kick Off Meeting Definition What is a project kick-off? A project kick-off meeting is the first meeting with the project team and the client of the project where applicable. This meeting is the time to establish common goals and the purpose of the project. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 11 Kick Off Meeting (cont.) Benefit(s): Starting a project without a kick-off meeting is like setting off on a trip without any concrete plan. Why should we have a project kickoff? A kick-off is an opportunity to orient the team to the work at hand, decide how everyone will work together, and establish common project goals and check-ins. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 12 Kick Off Meeting (cont.) What’s involved in a kick-off meeting? 1. Introductions 2. Statement of work, project scope, timeline, and deliverables 3. Tracking progress and milestones 4. Tools and methods 5. Risk and issue management Copyright © 2024-2025 Thattapon Surasak, Ph.D. 13 Kick Off Meeting (cont.) Introductions Don’t assume everyone knows each other, so let everyone introduce themselves, their role in the project, and what they’ll be delivering. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 14 Kick Off Meeting (cont.) Statement of work, project scope, timeline, and deliverables The statement of work you submitted to the client describes the work you’ll deliver and by what deadline. The project scope includes a detailed description of project deliverables and the work needed to accomplish them. The project timeline is an overview of what is expected to be delivered and when. This can be as detailed as needed for your project. Deliverables are the actual items you will send to your customer or client, and they’re usually noted on the timeline. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 15 Kick Off Meeting (cont.) Tracking progress and milestones This part is about how you plan to share progress with your stakeholders or client. Basically, you can use a status report to show how the project is tracking on budget, tasks, milestones, and timeline. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 16 Kick Off Meeting (cont.) Tools and methods A set of collaboration tools you’ll be using during the project and decide with your team how you’ll be using them to communicate. How will you be sharing your status reports and other files? Copyright © 2024-2025 Thattapon Surasak, Ph.D. 17 Kick Off Meeting (cont.) Risk and issue management Communicate with your team (and with the client) how you want to identify and respond to issues together. Even with the best planning, sometimes unexpected things pop up on a project. Identifying, analyzing, prioritizing, and mitigating risks that could get in the way of delivering a project on time and on budget. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 18 Meeting Rules Turn your mobile to vibration mode Under one conversation for everyone Respect each other Be on time Open mind to all comment Copyright © 2024-2025 Thattapon Surasak, Ph.D. 19 Meeting minutes Copyright © 2024-2025 Thattapon Surasak, Ph.D. 20 Meeting minutes Overview Capture the agreements and meeting discussions! Share them with all the key stakeholders! Minutes are the written record of a meeting They include the list of attendees, issues raised, related responses, and final decisions taken to address the issues. The purpose of this document is to record what actions have been assigned to whom, along with the achievements and deadlines. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 21 Meeting minutes Copyright © 2024-2025 Thattapon Surasak, Ph.D. 22 Software Development Life Cycle (SDLC) Specification Document Copyright © 2024-2025 Thattapon Surasak, Ph.D. 23 The Requirements Requirement คือความต้องการทีอ ่ ธิบายข้อกําหนด หรือคุณลักษณะ ของระบบหรือซอฟต์แวร์ เพื่อนําไปใช้ในการวิเคราะห์และออกแบบ พัฒนา และทดสอบในขั้นตอนต่อไป เพื่อส่งมอบงานให้กับลูกค้าได้ Copyright © 2024-2025 Thattapon Surasak, Ph.D. 24 Software Development Life Cycle (SDLC) Design Document (UX/UI, Architecture) Copyright © 2024-2025 Thattapon Surasak, Ph.D. 25 Software Development Life Cycle (SDLC) Software (Included User/Password) Copyright © 2024-2025 Thattapon Surasak, Ph.D. 26 Software Development Life Cycle (SDLC) Test Plan, Test Case document, User Acceptance Testing (UAT) Document, Test summary report Copyright © 2024-2025 Thattapon Surasak, Ph.D. 27 Software Development Life Cycle (SDLC) User Manual Document, System Manual Document, System Maintenance Manual Document Copyright © 2024-2025 Thattapon Surasak, Ph.D. 28 ตั วอย่างรายการส่งมอบงาน (Example of a delivery list) เอกสารระบบทีเ่ สร็จสมบูรณ์ ชุดโปรแกรมสําหรับพัฒนาเว็บไซต์ รายงานผลการทดสอบระบบ จัดส่งโปรแกรมระบบทัง้ หมด ทัง้ ในรูปแบบ Source code ใน รูปแบบแผ่นซีดีรอม (CD-ROM) หรือดีวด ี ี (DVD) จํานวน 1 ชุด กําหนดแผนอบรม Copyright © 2024-2025 Thattapon Surasak, Ph.D. 29 Top 5 Success factors Copyright © 2024-2025 Thattapon Surasak, Ph.D. 30 First law of software quality Copyright © 2024-2025 Thattapon Surasak, Ph.D. 31 Sep 9, 1947 CE: World’s First Computer Bug On September 9, 1947, a team of computer scientists and engineers reported the world’s first computer bug. A bug is a flaw or glitch in a system. The team at Harvard University in Cambridge, Massachusetts, found that their computer, the Mark II, was delivering consistent errors. When they opened the computer’s hardware, they found... a moth. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 32 Moths are groups of mostly nocturnal insects that share the order Lepidoptera with butterflies. They usually have threadlike or feathery antennae in contrast to butterflies that possess thin antennae with small clubs or balls at the end. Ref: https://www.animalspot.net/moth Copyright © 2024-2025 Thattapon Surasak, Ph.D. 33 ประวัติของ Bugs Bug หรือแมลงได้เข้าไปติดอยู่ใน รีเลย์ (Relay) ของเครือ ่ งคอมพิวเตอร์ Mark II จนทําให้การทํางานเกิดการขัดข้อง หลังจากนั้นทีมงาน Mark II ก็จะเรียก ปัญหาต่างๆ ทีเ่ กิดขึน ้ ว่า “Bug” และได้มี การนําคําว่า Bug มาใช้ในวงการวิทยาการ คอมพิวเตอร์ในเวลาต่อมา Copyright © 2024-2025 Thattapon Surasak, Ph.D. 34 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 35 What is a bug? In computer technology, a bug is a coding error in a computer program. (We consider a program to also include the microcode that is manufactured into a microprocessor.) The process of finding bugs -- before users do -- is called debugging. Debugging starts after the code is written and continues in stages as code is combined with other units of programming to form a software product, such as an operating system or an application. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 36 Bug คื ออะไร? Bug คือจุดบกพร่องหรือข้อผิดพลาดจากโปรแกรมทีท ่ าํ ให้คํานวณ ผลลัพธ์ไม่ถูกต้องตามทีค ่ วรจะเป็น ส่วนใหญ่มักเป็นทีซ ่ อฟต์แวร์ สคริปต์ ซอร์สโค้ด หรือส่วนประกอบอื่น ๆ ซึง่ อาการหนัก ๆ จากบัค อาจทําให้ โปรแกรม คอมพิวเตอร์หยุดการทํางาน หรือเกิดอันตรายจากการทีร่ ะบบ รักษาความปลอดภัยไม่รด ั กุม Copyright © 2024-2025 Thattapon Surasak, Ph.D. 37 Computer Bug มีกี่ประเภท ? 1. Runtime Bug : คือข้อผิดพลาดทีเ่ กิดขณะโปรแกรมกําลังทํางาน ทําให้โปรแกรมเรียกใช้งาน ฟังก์ชน ั ทีไ่ ม่มีในโปรแกรม หรือสร้างผลลัพธ์ (Output) ออกมาแบบผิด ๆ 2. Syntax Bug : เกิดจากการใส่คําสั่งไม่ถูกต้อง หรือมีอักขระ ตัวอักษรทีผ ่ ิดไปจากเดิม จนทําให้ เกิดปัญหาจากการติดบัค 3. Logic Bug : คือข้อผิดพลาดในการทํางานของสคริปต์เบื้องหลังโปรแกรม ทําให้การใช้งาน โปรแกรมต่างไปจากเดิม 4. Arithmetic Bug : เกิดจากการทีค ่ ่าตัวเลขในสคริปต์ทม ี่ ากเกินไปหรือน้อยเกินไป เกินกว่าช่วง ตัวเลขทีก ่ ําหนดไว้ 5. Interfacing Bug : คือข้อบกพร่องในการเชือ ่ มต่อ เนื่องจากการเชือ ่ มต่อระหว่าง 2 ระบบ (Application Programming Interface : API) เกิดอาการเข้ากันไม่ได้ เช่น โปรโตคอล (Protocol) การเชือ ่ มต่อกับฮาร์ดแวร์หรือระบบใด ๆ จากคอมพิวเตอร์ Copyright © 2024-2025 Thattapon Surasak, Ph.D. 38 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 39 Software and Software Engineering Thattapon Surasak, Ph.D. Lecturer and Researcher Computer and Information Science Department Faculty of Applied Science, King Mongkut's University of Technology North Bangkok 40 Software Engineering Software has become deeply embedded in virtually every aspect of our lives, and therefore, the number of people who have an interest in the features and functions provided by a specific application has grown dramatically. “When a new application or embedded system is to be built, many voices must be heard. ” It sometimes seems that each of them has a slightly different idea of what software features and functions should be delivered. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 41 Software Engineering (cont.) “Understand the problem before you build a solution.” Copyright © 2024-2025 Thattapon Surasak, Ph.D. 42 42 Software Engineering (cont.) The information technology requirements demanded by individuals, businesses, and governments grow increasing complex with each passing year. Large teams of people now create computer programs that were once built by a single individual. Sophisticated software that was once implemented in a predictable, self-contained, computing environment is now embedded inside everything from consumer electronics to medical devices to weapons systems. The complexity of these new computer-based systems and products demands careful attention to the interactions of all system elements. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 43 Software Engineering (cont.) “Design is a pivotal software engineering activity.” Copyright © 2024-2025 Thattapon Surasak, Ph.D. 44 44 Software Engineering (cont.) Individuals, businesses, and governments increasingly rely on software for strategic and tactical decision making as well as day-to-day operations and control. If the software fails, people and major enterprises can experience anything from minor inconvenience to catastrophic failures. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 45 Software Engineering (cont.) “Both quality and maintainability are an outgrowth of good design.” Copyright © 2024-2025 Thattapon Surasak, Ph.D. 46 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 47 Software Engineering (cont.) As the perceived value of a specific application grows, the likelihood is that its user base and longevity will also grow. As its user base and time-in-use increase, demands for adaptation and enhancement will also grow. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 48 Software engineering layers Copyright © 2024-2025 Thattapon Surasak, Ph.D. 49 Software engineering layers (cont.) A quality focus: Software engineering is a layered technology. Any engineering approach (including software engineering) must rest on an organizational commitment to quality. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 50 Software engineering layers (cont.) Process: The software engineering process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process defines a framework that must be established for effective delivery of software engineering technology. The software process forms the basis for management control of software projects and establishes the context in which technical methods are applied, work products (models, documents, data, reports, forms, etc.) are produced, milestones are established, quality is ensured, and change is properly managed. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 51 Software engineering layers (cont.) Methods: Software engineering methods provide the technical “how-to” for building software. Methods encompass a broad array of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support. Software engineering methods rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 52 Software engineering layers (cont.) Tools: Software engineering tools provide automated or semiautomated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called computer-aided software engineering, is established. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 53 The Software Process A process is a collection of activities, actions, and tasks that are performed when some work product is to be created. An activity strives to achieve a broad objective (e.g., communication with stakeholders) and is applied regardless of the application domain, size of the project, complexity of the effort, or degree of rigor with which software engineering is to be applied. An action (e.g., architectural design) encompasses a set of tasks that produce a major work product (e.g., an architectural design model). A task focuses on a small, but well-defined objective (e.g., conducting a unit test) that produces a tangible outcome. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 54 The Software Process (cont.) In the context of software engineering, a process is not a rigid prescription for how to build computer software. Rather, it is an adaptable approach that enables the people doing the work (the software team) to pick and choose the appropriate set of work actions and tasks. The intent is always to deliver software in a timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 55 The Software Process (cont.) A process framework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity. In addition, the process framework encompasses a set of umbrella activities that are applicable across the entire software process. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 56 Communication Before any technical work can commence, it is critically important to communicate and collaborate with the customer (and other stakeholders). The intent is to understand stakeholders’ objectives for the project and to gather requirements that help define software features and functions. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 57 Planning Any complicated journey can be simplified if a map exists. A software project is a complicated journey, and the planning activity creates a “map” that helps guide the team as it makes the journey. The map—called a software project plan—defines the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and a work schedule. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 58 Modeling Whether you’re a landscaper, a bridge builder, an aeronautical engineer, a carpenter, or an architect, you work with models every day. You create a “sketch” of the thing so that you’ll understand the big picture— what it will look like architecturally, how the constituent parts fit together, and many other characteristics. If required, you refine the sketch into greater and greater detail in an effort to better understand the problem and how you’re going to solve it. A software engineer does the same thing by creating models to better understand software requirements and the design that will achieve those requirements. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 59 Construction This activity combines code generation (either manual or automated) and the testing that is required to uncover errors in the code. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 60 Deployment The software (as a complete entity or as a partially completed increment) is delivered to the customer who evaluates the delivered product and provides feedback based on the evaluation. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 61 Five activities Therefore, a generic process framework for software engineering encompasses 5 activities. 1. Communication 2. Planning 3. Modeling 4. Construction 5. Deployment Copyright © 2024-2025 Thattapon Surasak, Ph.D. 62 This week summary Software is the key element in the evolution of computer-based systems and products. Software has evolved from a specialized problem solving and information analysis tool to an industry. Yet we still have trouble developing high- quality software on time and within budget. Software—programs, data, and descriptive information—addresses a wide array of technology and application areas. Legacy software continues to present special challenges to those who must maintain it. Web-based systems and applications have evolved from simple collections of information content to sophisticated systems that present complex functionality and multimedia content. Although these WebApps have unique features and requirements. Software engineering encompasses process, methods, and tools that enable complex This week computer-based systems to be built in a timely summary manner with quality. (cont.) The software process incorporates five framework activities—communication, planning, modeling, construction, and deployment—that are applicable to all software projects. Software engineering practice is a problem-solving activity that follows a set of core principles. 64 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 65 This week summary (cont.) As you learn more about software engineering, you’ll begin to understand why these myths should be debunked whenever they are encountered. Copyright © 2024-2025 Thattapon Surasak, Ph.D. 65 Upcoming week Defining a Framework Activity Copyright © 2024-2025 Thattapon Surasak, Ph.D. 66 Upcoming week Defining a Framework Activity Copyright © 2024-2025 Thattapon Surasak, Ph.D. 67 Upcoming week Defining a Framework Activity Copyright © 2024-2025 Thattapon Surasak, Ph.D. 68 Upcoming week Defining a Framework Activity Copyright © 2024-2025 Thattapon Surasak, Ph.D. 69 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 70 Collaboration Tools Thattapon Surasak, Ph.D. Lecturer and Researcher Computer and Information Science Department Faculty of Applied Science, King Mongkut's University of Technology North Bangkok Copyright © 2024-2025 Thattapon Surasak, Ph.D. 71 Copyright © 2024-2025 Thattapon Surasak, Ph.D. 72