Object-oriented Analysis and Design

Similar documents
UNIT-III LIFE-CYCLE PHASES

Software Life Cycle Models

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

Requirements Gathering using Object- Oriented Models

Object-Oriented Design

About Software Engineering.

Software Maintenance Cycles with the RUP

Agile Non-Agile. Previously on Software Engineering

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

OCEAN OBSERVATORIES INITIATIVE. Release 2 Schedule. OOI CI Release 2 Kickoff M a y 2,

Introduction to Software Engineering

UNIT VIII SYSTEM METHODOLOGY 2014

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Systems Engineering Overview. Axel Claudio Alex Gonzalez

CS Division of EECS Dept. KAIST

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

Introduction to Software Requirements and Design

ACE3 Working Group Session, March 2, 2005

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

A New Approach to Software Development Fusion Process Model

THE APPLICATION OF SYSTEMS ENGINEERING ON THE BUILDING DESIGN PROCESS

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Towards an MDA-based development methodology 1

Software Development Lifecycle

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

A New - Knot Model for Component Based Software Development

Proposed Curriculum Master of Science in Systems Engineering for The MITRE Corporation

Evaluating Evolutionary Prototyping for Customizable Generic Products in Industry (TAT AB)

Methodology for Agent-Oriented Software

By the end of this chapter, you should: Understand what is meant by engineering design. Understand the phases of the engineering design process.

Are Rapid Fielding and Good Systems Engineering Mutually Exclusive?

The AMADEOS SysML Profile for Cyber-physical Systems-of-Systems

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

Understanding Requirements. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Project Management 4th Edition. Chapter 3. Project evaluation & estimation

Testing in the Lifecycle

Digital Engineering Support to Mission Engineering

Test and Evaluation of Autonomous Systems & The Role of the T&E Community in the Requirements Process

UML and Patterns.book Page 52 Thursday, September 16, :48 PM

Introduction to adoption of lean canvas in software test architecture design

FRONT END INNOVATION Multidisciplinary innovation process

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

Digital Engineering and Engineered Resilient Systems (ERS)

Lecture 9: Estimation and Prioritization" Project Planning"

Component Based Mechatronics Modelling Methodology

Grundlagen des Software Engineering Fundamentals of Software Engineering

Chapter 7 Requirements Engineering

MASTER DATA MANAGEMENT 7 QUESTIONS TO CONSIDER

SYSTEMS ENGINEERING MANAGEMENT IN DOD ACQUISITION

Concurrent Increment Sequencing and Synchronization with Design Structure Matrices in Software- Intensive System Development

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

A Case Study of Changing the Tires on the Bus While Moving

Software LEIC/LETI. Lecture 21

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

F. Tip and M. Weintraub REQUIREMENTS

Agile Product Planning

Transportation. Growth Management Policy Board April 4, 2019

Design Science Research Methods. Prof. Dr. Roel Wieringa University of Twente, The Netherlands

ISO ISO is the standard for procedures and methods on User Centered Design of interactive systems.

MODELLING AND SIMULATION TOOLS FOR SET- BASED DESIGN

Engineering Grand Challenges. Information slides

Meta-models, Environment and Layers: Agent-Oriented Engineering of Complex Systems

The Kendoon to Tongland 132kV Reinforcement Project. Underground Cable Study: Our Approach

MIL-STD-882E: Implementation Challenges. Jeff Walker, Booz Allen Hamilton NDIA Systems Engineering Conference Arlington, VA

Design and Implementation Options for Digital Library Systems

The Study on the Architecture of Public knowledge Service Platform Based on Collaborative Innovation

Software-Intensive Systems Producibility

ACCELERATED DEPLOYMENT

Issues and Challenges in Coupling Tropos with User-Centred Design

Moonzoo Kim. KAIST CS350 Intro. to SE Spring

CC532 Collaborative System Design

in the New Zealand Curriculum

Editorial for the Special Issue on Aspects and Model-Driven Engineering

Course Outline Department of Computing Science Faculty of Science

Best practices in product development: Design Studies & Trade-Off Analyses

Understanding the Relations Between Iterative Cycles in Software Engineering

A Mashup of Techniques to Create Reference Architectures

A New Approach to the Design and Verification of Complex Systems

CSE - Annual Research Review. From Informal WinWin Agreements to Formalized Requirements

Playware Research Methodological Considerations

Code Complete 2: Realities of Modern Software Construction

Model Based Systems Engineering (MBSE) Business Case Considerations An Enabler of Risk Reduction

AAL2BUSINESS Towards successful commercialization of AAL solutions

Refinement and Evolution Issues in Bridging Requirements and Architectures

UX CAPSTONE USER EXPERIENCE + DEVELOPMENT PROCESS

SOFTWARE ARCHITECTURE

SERC Technical Overview: First-Year Results and Future Directions. Barry Boehm, USC Rich Turner, Stevens. 15 October 2009

Requirement Definition

Climate Change Innovation and Technology Framework 2017

R&D PROJECT MANAGEMENT IS IT AGILE?

Roadmapping. Market Products Technology. People Process. time, ca 5 years

THR%%A%P COM 1?4w XFROX. Agenda

TRACEABILITY WITHIN THE DESIGN PROCESS

Creating a New Kind of Knowledge Institution. Directions for JUNE 2004

PROJECT MANAGEMENT. CSC404 Tutorial Slides

Systems Architecting and Software Architecting - On Separate or Convergent Paths?

Managing the Innovation Process. Development Stage: Technical Problem Solving, Product Design & Engineering

An Element of Digital Engineering Practice in Systems Acquisition

Radiate Engineering & Design

Transcription:

Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Understanding the Client s environment and needs. Analysis Identifying the concepts (classes) in the problem domain and their static associations Design Identifying solution domain classes and mapping the functionality into these classes Implementation Constructing and individually testing the classes that compose the system. System Integration and Testing Testing the system as a whole and doing corrective maintenance Maintenance Adapting the system to a changing environment to extend its useful life

The Waterfall Lifecycle Approach Thoroughly clarify, record, or implement each phase of the project before beginning the next. The subsequent phase is based upon the design documentation previously developed. Requirements Analysis Design Implementation Integration and Testing Maintenance

The Waterfall Lifecycle Approach Problems with the Waterfall Approach Large steps are taken in which many decisions are made without the benefit of feedback. Requirements and Design decisions, once established, are frozen in place. Speculative decisions increase and compound. High risk or difficult problems are tackled late. There is low adaptability for incorporating either design or implementation concepts learned in the development process into the project.

The Unified Process The Unified Process is a software development process or methodology that above all promotes Iterative Development. The result of each iteration is an executable, but incomplete system. The system may need many iterations before it is ready for production. Benefits of iterative development include: Early mitigation of high risks Early visible progress. Early feedback, user engagement, and adaptation, leading to a system that more nearly meets the needs of the various stakeholders. Managed complexity no compounding of complexity by postponing the implementation phase. Learning within an iteration.

Management of a Software Project There are two groups involved with the management of a software project: Management whose concern is resource allocation, delivery dates, profit margin, etc. Management likes the benchmarks inherent in the Waterfall approach. Due dates can be set, and resources allocated to each phase of the project, and project management documents can be completed according to a schedule. Technical staff whose concern is producing a well-engineered product within the constraints of the project. The iterative process as emphasized in UP is a better approach for engineering a software product, but it less suited for producing project reports that indicate the status of the project and the completion of well-defined phases of the work important to management.

Timeboxing Management of a UP project. Iterations are timeboxed or fixed in length. Iteration lengths of between two to six weeks are recommended. Each iteration period has its own development plan. If all the planned activities cannot be completed during an iteration cycle, the completion date should not be extended, but rather tasks or requirements from the iteration should be removed and added to the next iteration cycle.

Advantages of Timeboxing Timeboxing provides four clear advantages over using more distant completion dates for major phases of the project. Parkinson s Law -- Work expands to fill the time available for its completion Distant or fuzzy completion dates exacerbate this effect. If the end date for the next cycle is only two weeks away, it forces the team to focus and make important decisions immediately. Prioritization and Decisiveness Short timeboxed iterations force a team to make decisions regarding the priority of the work and the risks involoved. If the immediate deadline is only short weeks away, there is no time to be vague. Concrete decisions about what will be accomplished within the iteration cycle have to be made. Team Satisfaction Short, timeboxed iterations lead to a quick and repeating sense of accomplishment and closure. Stakeholder confidence When the team makes a commitment to producing something tangible within a short period of time, stakeholders develop a greater sense of confidence in the team and satisfaction with the company.

The Unified Process The UP organizes work and iterations across four major phases Inception approximate vision, business case, scope, vague estimates. NOT a requirements phase, but a feasibility phase Elaboration refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates. A pahse where the core architecture is iteratively designed and implemented Construction iterative implementation of the remaining lower risk and easier elements, preparation for deployment. Transition beta tests and deployment

The Unified Process phase phase Inc. Elaboration Construction Trans. iteration Release The end of each iteration is a minor release Final release

The Unified Process UP Disciplines The UP groups related work activities into Disciplines. Disciplines are a set of work activities (and related artifacts) within one subject area such as requirements analysis. A single discipline such as requirements analysis occurs in varying degrees across many iterations, and an iteration will incorporate many different Disciplines.

Disciplines Relative Effort Discipline Iterations Business Modeling Requirements Design Implementation Test Deployment Change Management Project Management Inception Elaboration Construction Transition

What About UML? UML is a standard diagramming notation. It is NOT object-oriented analysis and design, but just a standard for visualizing and documenting the artifacts of software systems that is used during OOA/OOD. UML tools will be used within the various disciplines during each iteration.

Alternative Methodologies The UP is an agile process. It allows the development team to adapt to changes in requirements or technology that occur during the development process. Other Examples of an Agile Approach include: Boehm s Spiral Development Process The product is developed and delivered Incremental Development incrementally Extreme Programming

Determine objectives, alternatives, and constraints Boehm s Spiral Model Risk analysis Risk analysis Evaluate alternatives, identify, resolve risks REVIEW Risk analysis Risk analysis Prototype 2 Prototype 1 Prototype 3 Operational Prototype Requirements plan Lifecycle plan Development plan Concept of operation Requirement validation Simulations, models, benchmarks S/W Requirements Product design Code Detailed design Plan next phase Integration and test plan Design V & V Service Unit test Integration test Acceptance test Develop, verify next level product

What s the Difference? How do these various agile processes differ? The difference is mainly one of emphasis. Extreme Programming (EP) emphasizes test-first programming. Write a unit test before writing the code to be tested. Write a small test Write a piece of the code Make it pass the test Repeat until unit is is complete. Extreme Programming also emphasizes continuous integration. New code is integrated into the entire system as soon as it is checked-in.

A representation of the difference between UP and EP The Unified Process Extreme Programming Specification Design Code Test Iterations Build, test, and integrate the units into the system

Formal Methods The software requirements specification is refined into a detailed formal specification which is represented in a mathematical notation. The development processes design, implementation, unit testing are replaced by a transformational development process where the formal specification is refined, through a series of transformations, into a program. Formal methods require specialized expertise, and do not scale up beyond specialized domains very reaeily.