2019 3 3
play

2019/3/3 Object-oriented Analysis and Design Object-oriented - PDF document

2019/3/3 Object-oriented Analysis and Design Object-oriented Analysis and Design Chapters Object oriented analysis and design 1. Iterative, evolutionary, and agile Applying UML and Patterns 2. Case study 3. An Introduction to Text book,


  1. 2019/3/3 Object-oriented Analysis and Design Object-oriented Analysis and Design Chapters Object oriented analysis and design 1. Iterative, evolutionary, and agile Applying UML and Patterns 2. Case study 3. An Introduction to Text book, page 3-44 Object-oriented Analysis and Design and Iterative Development Part I - Introduction Software Engineering Software Engineering 1 2 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ 回顾: waterfall model 瀑布模型 增量模型 优势:定义了软件开发基本流程与活动 假设:需求明确 1 交流 创意阶段:描述问题,市场,关键技术等 决解问题:项目控制、团队组织 分析阶段:用户故事、领域模型、业务流程等 2 计划 。。。 假设:需求是明确的,在短期内可获取 建模(分析 3 软 每个阶段是无差错的 ,设计) 增量n 件 构造(编码 4 功 ,测试) 1 劣势: 能 2 部署(发布 3 1. 依赖问题: 5 4 第n次增量发 性 ,反馈) 5 -- 前面需求模糊,后面工作 … 增量2 布 和 … 2. 容错问题: 特 -- 在后期发现需求问题,工作量难接受 1 增量1 2 征 3 3. 资源调配问题: 4 第2次增量发 1 5 -- 知识技能需求不同 2 布 3 -- 人员数量要求不同 4 第1次增量发 5 布 现象:延期,项目不可控 增量模型 项目日历时间 Software Engineering Software Engineering 3 4 Object-oriented Analysis and Design Object-oriented Analysis and Design 原型与螺旋模型 假设:需求随用户评估进化 新问题: 1. 迭代次数? Chap 2 2. 不合适大团队 3. 无法确定发布日期 Iterative, Evolutionary, and Agile In 1988, Barry Boehm published a formal Software Engineering Software Engineering software system development "spiral model," 5 6 1

  2. 2019/3/3 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ 迭代、敏捷地开发 Unified Process  为什么迭代、敏捷开发是 OOAD 的关键“最佳实践”  The Unified Process (UP) represents a mainstream approach for software development across the spectrum of project scales.  The process is scalable : you need not use the entire framework of the process for every project, only those that are effective. CHANGE  The process is effective : it has been successfully employed on a large population of projects.  Improves productivity through use of practical methods ( us e a m i rr or t o s ee t he ans w er) that you’ve probably used already (but didn’t know it).  Iterative and incremental approach allows start of work with incomplete, imperfect knowledge. Software Engineering Software Engineering 7 8 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ ★ Unified Process Workflows The Core Workflows 1  Workflows define a set of activities that are performed  Business Modeling  Workflows cut across the phases, but with different  Develop and refine the problem definition levels of emphasis in each phase  Identify stakeholder needs  Define system features to be considered  The core workflows  Define the system scope  Business Modeling  Build the use-case model  Requirements analysis  Requirements Analysis  Design  Implementation  Refine use-case model  Define the domain model  Test and Integration  Define a candidate architecture (transitions to design)  Refine the architecture (transitions to design) Software Engineering Software Engineering 9 10 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ ★ The Core Workflows 2 Use Case Driven  Design  Use case  A prose representation of a sequence of actions  Design the physical realizations of the use cases  Actions are performed by one or more actors (human or non-  Develop the design model human) and the system itself  Develop the deployment model  These actions lead to valuable results for one or more of the  Implementation actors—helping the actors to achieve their goals  Plan subsystem implementation  Use cases are expressed from the perspective of the users, in natural language, and should be understandable by all stakeholders  Implement components: classes, objects, etc.  Use-case-driven means the development team employs the use  Perform unit-level testing cases from requirements gathering through code and test  Perform component and system integration  Test and Integration  Build the test model: test cases and expected results  Plan, design, implement, execute, and evaluate tests Software Engineering Software Engineering 11 12 2

  3. 2019/3/3 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ ★ ★ ★ Architecture Centric Iterative and Evolutionary 1  An iterative and evolutionary approach allows start of  Software architecture captures decisions about: development with incomplete, imperfect knowledge  The overall structure of the software system  Iterative and evolutionary the following advantages:  The structural elements of the system and their interfaces  The collaborations among these structural elements and  Logical progress toward a robust architecture (逐步趋向 their expected behavior 稳定)  Effective management of changing requirements (有效  Architecture-centric: software architecture provides the 管理需求变化) central point around which all other development evolves  Continuous integration (持续集成)  Provides a ‘big picture’ of the system  Early understanding of the system (‘Hello world!’ effect )  Provides an organizational framework for development, (尽早接触整个系统) evolving the system by attending to modifiability qualities  Ongoing risk assessment (在线风险评估) of the system  Facilitates reuse Software Engineering Software Engineering 13 14 Object-oriented Analysis and Design Object-oriented Analysis and Design Iterative and Evolutionary 2 Iterative and Evolutionary 3 Early iterations are farther from the "true In late iterations, a significant change in Feedback from path" of the system. Via feedback and Requirements Requirements requirements is rare, but can occur. Such iteration N leads to adaptation, the system converges towards late changes may give an organization a refinement and Design Design the most appropriate requirements and Time adaptation of the competitive business advantage. design. Implementation & Implementation & requirements and Test & Integration Test & Integration design in iteration & More Design & More Design N+1. Final Integration Final Integration & System Test & System Test 3 weeks (for example) one iteration of design, Iterations are fixed in The system grows implement, integrate, and test length, or timeboxed. incrementally. Software Engineering Software Engineering 15 16 Object-oriented Analysis and Design Object-oriented Analysis and Design ★ Iterative and Evolutionary 4 迭代 UP vs. Scrum 术语 1 2 3 4 5 ... 20 Agile Iterative UP Scrum requirements workshops Iteration (迭代周期) Sprint (冲刺) Imagine this will ultimately be a 20- iteration project. requirements software requirements software Use cases (用例)或 Story (故事) Backlog (产品条目,特征) In evolutionary iterative development, the requirements evolve Kickoff meeting (启动会议) Sprint plan meeting over a set of the early iterations, through a series of requirements Workshop (工作会议) Daily meeting (每日例会) 90% 90% workshops (for example). Perhaps after four iterations and Demo (演示) Sprint demo 50% workshops, 90% of the requirements are 30% defined and refined. 20% 20% Review & next Plan (回顾与下个迭代计划) Sprint review (冲刺回顾) 5% 8% 10% Nevertheless, only 2% 10% of the software is Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 built. Coffee Time (私下交流时间) a 3-week iteration Phase (阶段) week 1 week 2 week 3 M T W Th F M T W Th F M T W Th F Disciplines (科目) Mile stone (里程碑) kickoff meeting team agile start de-scope final check-in demo and next iteration clarifying iteration modeling & coding & iteration and code- 2-day goals if freeze for the requirements planning goals with the team. design, testing UML too much iteration workshop meeting; 1 hour whiteboard work baseline 2 hours sketching. Most OOA/D and 5 hours Use-case modeling applying UML during Software Engineering during the workshop Software Engineering this period 17 18 3

Recommend


More recommend