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
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
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