John D. McGregor Process Module 1 Session 1

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
SYSE 802 John D. McGregor Module 2 Session 2 Method Tailoring.
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
The Architecture Design Process
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Introduction to Agile.
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
CPSC 871 John D. McGregor MSumS2 Summary – technical issues in software engineering.
Ontologies Reasoning Components Agents Simulations The Eclipse Process Framework Breno Machado.
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
John D. McGregor Module 6 Session 2 Tailoring Processes
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CPSC 372 John D. McGregor Process Module 1 Session 1.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Rational Unified Process Fundamentals Module 5: Implementing RUP.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
PRJ566 Project Planning & Management Software Architecture.
Lecture 3 – Agile Approach
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
CPSC 871 John D. McGregor Process – an introduction Module 0 Session 3.
CPSC 372 John D. McGregor More EPF Module 2 Session 4.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
CPSC 872 John D. McGregor Session 13 Process. Specification and design problem solution specification implementation specification.
Software Engineering cosc 4359 Spring 2017.
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Methods SENG 301.
TK2023 Object-Oriented Software Engineering
Agile Methodology and Scrum
Elaboration popo.
Flight Software Conference 2016
Methodologies and Algorithms
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
John D. McGregor Eclipse Process Framework Module 2 Session 4
Software Development methodologies
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
CS 5150 Software Engineering
Week 10: Object Modeling (1)Use Case Model
Introduction to Eclipse Process Framework: EPF Composer and OpenUP
Approaches to Systems Development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Teaching slides Chapter 3.
How to Successfully Implement an Agile Project
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 – Software Processes
Software life cycle models
Agile Process: Overview
Chapt 2 Iterative Evolutionary Agile.
Process Models Coming up: Prescriptive Models.
Some Practical Considerations for Systems Engineers in a Lean-Agile Airborne Weapons System Program June 12, 2018 Ken Garlington.
Project Lifecycle and IT Product Life Cycle
Rapid software development
A quick intro to SCRUM and KANBAN By John Voris.
Presentation transcript:

John D. McGregor Process Module 1 Session 1 CPSC 372 John D. McGregor Process Module 1 Session 1

Building a product The first engineering step in building a software-intensive product is to organize the resources needed to solve the problem. We need people assigned to roles and we need a schedule and sequence of events There are many “process models” which we can use as a guide as we create a detailed schedule.

Disciplines/Practices There are many different roles that are involved in building a software-intensive product. These roles are experienced in specific disciplines such as requirements analysis and architecture. Each process model defines a set of disciplines but not all of the models have the same scope so often there are necessary roles that are “hidden” because they are outside the scope of the process model. For example, most process models do not have a role of deployment package creator but it is very necessary. The process model describes software development not the use of that software in a real business.

Fundamental activities Understand the problem Understand the domain – maybe it really is rocket science Understand what the customer wants requirements Solve the problem High-level design – the software architecture Detailed design Implement the designed solution

Fundamental activities - 2 Development Testing Understand the problem Understand the domain Understand what the customer wants Solve the problem High-level design Detailed design Implement the designed solution Review of requirements Design reviews Executable tests

Rational Unified Process Several process models were brought together hence the “unified” in unified process This view emphasizes that each discipline is related to others

Iterative, incremental Iterative – a series of tasks are repeated til an acceptable level of quality is achieved. Incremental – a big task is broken down into smaller, simpler tasks. An iterative, incremental approach is useful when the product will change as the project progresses or it is a new concept with which there is some learning.

Time-boxed vs function-based Time-boxed – means we will work for only a fixed amount of time and then stop rather than continue until a specific task is finished. Every two weeks we will deliver what we have developed and tested so far. Function-based – we will deliver a function when it has been developed and tested Deliveries happen at irregular time intervals since different functions take different amounts of time to develop and test

Agile Unified Process The agile approach to building software de-emphasizes documentation and planning. It is not by itself model-driven but it does share some elements.

Enterprise UP

Work breakdown structure (WBS) Although each process model has a set of disciplines and a set of phases, each team may tailor the process steps to fit the specific project. A work breakdown structure is a hierarchical structure in which a general task is broken down into smaller, more specific tasks.

Example Here is a WBS done in the EPF tool Two main phases are decomposed in this example There is a hierarchy of Phase, Activity, and Task. Each is a subset of the previous.

Defining a process Engineers use standard, well-defined notations The Software Process Engineering Meta-model (SPEM) recognizes 4 types of process elements Basic elements Role - defines a set of related skills, competencies, and responsibilities Task - defines work being performed by Roles Definition instances Work product - used, modified, and produced by Task Definitions Guidance - information related to Describable Elements

Notations Many engineering notations have multiple syntax – English, XML, graphical role task work product

Notation

EPF

Rhythm A steady rhythm allows for anticipation and good planning Time-boxing allows a steady rhythm while function-based does not Establishing a rhythm with a client, schedule a teleconference every Monday, makes it more likely they will make time for you.

Allow for differences Embedded, real time products are different from business products How they are developed is different Performance is a very high priority for embedded systems while security is lower. For a Business system security is the high priority and performance is lower. Different processes are needed Different processes and different emphasis on things.

Pressures Customers want us to have a faster and faster clockspeed so that products are delivered more rapidly Software is becoming more integral to everyday life – reliability is a big issue Processes are tailored to meet specific goals

A system with differing qualities

Process styles Waterfall Iterative, incremental Agile Spiral

Agile development Integrate customer into the development process Short “sprints” with specific, small goals In some cases, doing test-first development Basic assumption: requirements change so frequently that making long-term plans is a waste Others feel that a long-term plan re-calibrated frequently is a better approach

Agile manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

The danger The danger of agile is that companies use it as a means of explaining away poor practices. They overlook the part of the manifesto that says there is good on both sides of each statement

Ultimately The evaluation of a process or a process style is whether it achieves the objectives which justified its use. Agile organizations want to be quick But in some domains quick may not be the most important attribute Certification can also be important

Certification Software must be fit for its purpose If the software is used in control of flight it must be certified as air-worthy by the FAA If it is used in medical devices it must be certified by the FDA If it is to be used on the public telephony network it must be certified by an industry led laboratory And the list goes on

Certification - 2 These types of certifications consider the end quality of the product mainly by analyzing the process that went into making the software. A chain of evidence is constructed as the product is built from requirements to code. The chain shows what was done at each step to build a quality product. More on this as we go on.

Improving processes A process can be measured, modified, and then used again to determine whether the process is “better.” To accurately describe and measure a process an exact description is needed. The OMG has defined the Software Process Engineering Meta-model (SPEM). The Eclipse Process Foundation (EPF) is an Eclipse-based tool.

Meta-model structure The SPEM is divided into packages. We will look at these in more detail through out the course. For now just look at the top level. The meta-model includes the plugin concept as a way of extending incrementally.

EPF 2 1 3

EPF - 2 1 – The EPF workspace is structured following the SPEM. 2 – Each page has numerous fields which must be fill in to give a complete view. 3 – The tabs at the bottom give access to differ methods of extending each page definition.

Papyrus https://www.eclipse.org/downloads/download.php?file=/modeling/mdt/papyrus/rcp/neon/2.0.0/papyrus-neon-2.0.0-win64.zip&mirror_id=1135 Download and unzip Should run out of the box in Java is in a standard place or is referenced by an environment variable