525acb12c64b89102d36c96eea3b4369.ppt
- Количество слайдов: 42
CS 251 – Software Engineering Lecture 3: Process and Life Cycle www. acadox. com/join/563 R 9 V
ﺣﻜﻤﺔ ﺍﻟﻴﻮﻡ 1. ﺃﻔﻠﻢ ﻳﺴﻴﺮﻭﺍ ﻓﻲ ﺍﻷﺮﺽ ﻓﺘﻜﻮﻥ ﻟﻬﻢ ﻗﻠﻮﺏ ﻳﻌﻘﻠﻮﻥ ﺑﻬﺎ ﺃﻮ آﺬﺍﻥ ﻳﺴﻤﻌﻮﻥ ﺑﻬﺎ 2. ﻓﺈﻧﻬﺎ ﻻ ﺗﻌﻤﻰ ﺍﻷﺒﺼﺎﺭ ﻭﻟﻜﻦ ﺗﻌﻤﻰ ﺍﻟﻘﻠﻮﺏ ﺍﻟﺘﻲ ﻓﻲ ﺍﻟﺼﺪﻭﺭ
Assessment n n Midterm exam (10%) Final exam (60%) Project: 18~20% + 4% Assignments: 10~12% 3/18/2018 3
Course TAs and Page n n http: //www. acadox. com/class/2604 TAs d. abdelqawy@fci-cu. edu. eg ﺩﺳﻮﻗﻰ ﻋﺒﺪ ﺍﻟﻘﻮﻯ m. saad@fci-cu. edu. eg ﻣﺼﻄﻔﻰ ﺳﻌﺪ a. samir@fci-cu. edu. eg ﻋﻤﺮﻭ ﺳﻤﻴﺮ dina. mahmoud@fci-cu. edu. eg ﺩﻳﻨﺎ ﻣﺤﻤﻮﺩ o. khaled@fci-cu. edu. eg ﺧﺎﻟﺪ ﻋﻠﻰ m. khodier@fci-cu. edu. eg ﻣﺤﻤﻮﺩ ﺧﻀﻴﺮ omnia. samy@fci-cu. edu. eg ﺃﻤﻨﻴﺔ ﺳﺎﻣﻰ yomna@fci-cu. edu. eg ﻳﻤﻨﻰ ﻣﺠﺪﻯ 3/18/2018 4 n n n n
Lab Objectives n n n Help you get deeper understanding Train you on the concepts explained in the lectures. Prepare and follow up project work Answer questions Save your time! 3/18/2018 5
The Project n n Students are given a problem description It has three Phases q q q n n n Requirements and Plan Iteration 1 Iteration 2 Group size is 3 or 4. Topics will posted ASAP Strict deadlines 3/18/2018 6
What is ‘Software Engineering’? . . . A term used occasionally in 1950 s, 1960 s n Popularized in 1968 at NATO Software Engineering Conference (http: //homepages. cs. ncl. ac. uk/brian. randell/NATO/) n 3/18/2018 7
What is Software? n n n More than computer programs. The collection of programs, documentation and configuration data that ensures correct execution. Three major types: q q q 3/18/2018 Generic Product: Stand alone, Sold on open market. Customized Product: For specific customer. Embedded Product: Built into hardware. 8
The Nature of Software n Intangible: q q n Easy to Reproduce: q n Opposite of physical artifacts, e. g. , Computer vs Windows XP Hard to understand the development process. Costly design and construction, cheap manufacturing. Malleable: q q 3/18/2018 Easy to change, even without full understanding. Untrained people can “hack” something together. 9
Software Development Problems n n “Software is not constrained by materials, or governed by physical laws, or by manufacturing process” ---- (Sommerville) Allows almost unbounded complexity: q q 3/18/2018 Exponential growth of complexity w. r. t. to the size of a program: twice the size, four times the complexity; Example: Windows XP has 40 millions lines of source code (estimation). 10
Software Development Problems n Difficulty in understanding and managing the complexity causes: q Late completion: n q Overrunning Cost: n q q q 3/18/2018 “vaporware” that are announced but never produced Denver Airport Automated Baggage System, 2 billions US dollar over budget Unreliable Difficult to maintain Etc… 11
What is Engineering? n n Systematically identify, understand, and integrate the constraints on a design to produce a successful result. Constraints may include: q q n n available resources, physical or technical limitations, flexibility for future modifications and additions, cost, manufacturability, and serviceability. Deduce specifications from the limits. Ethical Practices. 3/18/2018 12
Quality of Good Software n Usability q n Efficiency q n Reliable, secure and safe. Maintainability q n Does not waste resources such as CPU time and memory. Dependability q n Easy to learn and use. Easily evolved (modified) to meet changing requirement. Reusability q 3/18/2018 Parts can be reused, with minor or no modification. 13
Quality of Good Software n Can be quite different based on your viewpoint: Customer: User: - Solves problems at acceptable cost (time and resource). - Easy to learn - Efficient to use - Get work done Developer: - Easy to design and maintain 3/18/2018 Developer Manager: - Sells more and pleases customers - Costing less to develop and maintain 14
So, ‘Software Engineering’ is IEEE Standard 610. 12: n The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software. n “Designing, building and maintaining large software systems”. - I. Sommerville n “Multi-person construction of multi-version software”. - D. L. Parnas 3/18/2018 15
What is Software Engineering? . . . “Technological and managerial discipline of software products that are developed and modified on time and within cost estimates”. – R. Fairley n “Software development is not simply a case of sitting down at a terminal and typing in the program code”. n – M. Priestley n A discipline that guides the process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints. – our definition 3/18/2018 16
3/18/2018 CPSC-4360 -01, CPSC 5360 -01, Lecture 1 17
Course Contents n n n Overview of Software Engineering Software Disasters Review of OOP Software Lifecycle and SW Engineering Processes Requirements Eng. (SRS, use cases, storyboards) Software Modeling and Analysis and UML Software Patterns Software Architecture Software Construction Software Quality and Testing Software Configuration and Project Management ½ Week 1 Week 3 Weeks 1 Week 1 Week
2. Software Life Cycle n n n n n Conception Feasibility Study Requirements’ Gathering Overall Design Detailed Design Development (Coding, Programming) Testing (Unit, Integration, Acceptance) Deployment / Training Maintenance and Evolution
Process of Building a House Same life cycle Different Process
n n n n De n Conception Feasibility Study Requirements’ Gathering Overall Design Detailed Design Development (Coding, Programming) Testing (Unit, Integration, Acceptance) Deployment / Training Maintenance and Evolution Va n Sp Ev eci lida ve olu fica tion lopm tion en t 2. Software Life Cycle
Important Terms n Software life-cycle q q n Phases Development cycle and evolution cycle Software process q n Discipline, activities, roles, and artifacts Iterations q Milestones
2. Software Life Cycle n n ep tion rat ion tru ctio n bo on n siti n ns n Tra n n Inc n Feasibility Study Requirements’ Gathering Overall Design Detailed Design Development (Coding, Programming) Testing (Unit, Integration, Acceptance) Deployment / Training Maintenance and Evolution Ela n Co n (As in RUP) Conception
CS 251 – Software Engineering Lecture 3: Process and Life Cycle www. acadox. com/join/563 R 9 V
Phases of the Development Cycle Inception Elaboration Construction Transition T I M E Inception - Define the scope of project Elaboration - Plan project, specify features, baseline system Construction - Build the product Transition - Transition the product into end user community
3/18/2018 26
Software Process n n The set of activities and associated results that produce a software product. Four fundamental process activities: q q n Software Specification Software Development Software Validation Software Evolution Can be organized in different ways, described at varying level of details → different software development process models 3/18/2018 27
3/18/2018 28
6. 3. What is a Lifecycle Model? Definition. A (software/system) lifecycle model is a description of the sequence of activities carried out in an SE project, and the relative order of these activities.
3/18/2018 30
Activity 1: Software Specification n n Customers and Software Engineers q Define the software to be produced q Define the constraints on its operations Typical Stages: q Feasibility Study: n q Domain Analysis: n q Formal documentation on User and System requirements. Requirements Validation: n 3/18/2018 What is it that the user wants? Requirements Specification: n q What is the background for the software? Requirements Gathering and Analysis: n q Is it possible with the current technologies + within budget? Check for realism, consistency, and completeness. 31
Activity 2: Software Development n n Consists of Design and Programming System Analysts q n Design: decide how the requirement can be implemented. Programmers q 3/18/2018 Coding: translate high level design into real code in a chosen programming language. 32
Activity 2: Software Development High Level n Typical Stages (Design): q q Architectural Design: Split into subsystems Abstract Specification: High level specification on the services and constraints for each subsystem q Interface Design: Interface with other subsystems are defined q Component Design: Split the services and allocate to components within a subsystem q Low Level 3/18/2018 q Data Structure Design: Choose appropriate data structure Algorithm Design: Design and specify algorithm used to provide services 33
Activity 2: Software Development n Typical Stages (Programming): q q q 3/18/2018 Data structure and algorithm design (from the design stage) may be delegated to the programmer. Personal activity. Usually without a predefined process. Debugging: Low level testing of code. Reveals program defects (bugs). 34
Activity 3: Software Validation n Software Engineer (or dedicated tester) and Customer: q n Typical Stages: q q q n Check the software to ensure it meets the customers’ requirements. Component Testing: Independent testing of individual components in subsystem. System Testing: Testing of integrated components. Can be multi-levels, e. g. , subsystem → system. Acceptance Testing: Tested with customer supplied data. Final test before operation. Interactive activity that feedback to previous stages: q E. g. , an error in component testing triggers re-coding. 3/18/2018 35
Activity 4: Software Evolution n Customers and Software Engineers: q q n Define changing requirements. Modify the software system to adapt. Typical Work: q q 3/18/2018 Update the system for minor new requirements, e. g. , changing the telephone number from 7 digits to 8 digits, changing the date representation (the Millennium Bug). Could be drastic, more like redevelopment, e. g. , windows 95 →windows 98 → windows. XP. 36
Simple Software Process Example n In the simplest cases, code is written directly from some statements of requirements. Process Artifact 3/18/2018 37
Simple Software Process Example § Two processes: § § § Two artifacts: § § § ‘Analyze requirements’ ‘Write code’ ‘Requirements specification’ ‘Source code’ ‘Requirements specification’ can be written as: § § 3/18/2018 an informal outline or a highly detailed description. 38
Simple Software Process Example n Software Specification: q n Analyze Requirement → Requirement Documentation Software Development: q Design: n q Programming: n n n Write Code → Source Code Debugging Software Validation: q n Data structure and algorithm Compare against sample outputs Software Evolution: q 3/18/2018 Not applicable. 39
A More Complex Software Process n § It is better to design before you code. On larger projects, intermediate pieces of documentation are produced. 3/18/2018 40
A More Complex Software Process § One new process: § § One new artifact: § § ‘Design module structure’ - splitting the program into modules and subroutines ‘Structure chart’ – is based on the information contained in the ‘requirements specification’ Both the ‘requirements specification’ and the ‘structure chart’ are used when writing the final code. 3/18/2018 41
A More Complex Software Process n Software Specification: q n Analyze Requirement → Requirement Documentation Software Development: q Design: n q Programming: n n n Write Code → Source Code Debugging Software Validation: q n Design of the functions/modules/classes Compare against sample outputs Software Evolution: q 3/18/2018 Not applicable. 42


