Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com February.

Slides:



Advertisements
Similar presentations
Development Process. Four Factors People –10 to 1 variation in programmer productivity with the same experience Process –Methodology Product –Size Technology.
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Overview Traditional systems development life cycle (SDLC)
Ch 3 System Development Environment
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Introduction To System Analysis and Design
Object Oriented System Development with VB .NET
IS 421 Information Systems Management James Nowotarski 16 September 2002.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
12 C H A P T E R Systems Investigation and Analysis and Analysis.
Chapter 1 Assuming the Role of the Systems Analyst
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Introduction to Systems Analysis and Design
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Rapid Development (Part 1) Mihail V. Mihaylov RammSoft.
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Introduction To System Analysis and design
Software Development Process
CIS 321—IS Analysis & Design
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
CPTE 209 Software Engineering Summary and Review.
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
Software Quality Assurance Activities
Satzinger Chp. 2 Part Part 4 of 4 2 Object-Oriented Analysis and Design with the Unified Process Testing Testing is critical discipline Testing activities.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Chapter 1: Introduction to Systems Analysis and Design
Chapter 13: Developing and Implementing Effective Accounting Information Systems
Chapter 14 Information System Development
Identify steps for understanding and solving the
Software Development Process and Management (or how to be officious and unpopular)
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Introduction To System Analysis and Design
Chapter 9 Moving to Design
Lecture 11 Managing Project Execution. Project Execution The phase of a project in which work towards direct achievement of the project’s objectives and.
Slide 1 Construction (Testing) Chapter 15 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman Edited by Solomon.
Decision Support System Development By Dr.S.Sridhar,Ph.D., RACI(Paris),RZFM(Germany),RMR(USA),RIEEEProc. web-site :
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Project Management Cross lifecycle Activity
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
Project Management Strategies Hidden in the CMMI Rick Hefner, Northrop Grumman CMMI Technology Conference & User Group November.
Project Planning Goal 1 - Estimates are documented for use in tracking and planning project. Goal 2 - Project Activities and commitments planned and documented.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Chapter 1 Assuming the Role of the Systems Analyst.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Business System Development
Object-Orientated Programming
CSE 403, Winter 2003 Software Engineering
Chapter 1: Introduction to Systems Analysis and Design
UNIT No- III- Leverging Information System ( Investing strategy )
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft February 20, 2008 RammSoft The Key To Your Success The Key To Your Success

RammSoft 2 What Is Rapid Development? Speedy development Shorter schedules Developing software faster than you do now Speedy development Shorter schedules Developing software faster than you do now

RammSoft 3 Who Invented It? Steve McConnell Steve McConnell

RammSoft 4 Steve McConnell’s Books Code Complete (1993) / (2004) Rapid Development (1996) Software Project Survival Guide (1997) After The Gold Rush (1999) / Professional Software Development (2003) Software Estimation: Demystifying the Black Art (2006) Code Complete (1993) / (2004) Rapid Development (1996) Software Project Survival Guide (1997) After The Gold Rush (1999) / Professional Software Development (2003) Software Estimation: Demystifying the Black Art (2006)

RammSoft 5 Rapid-Development Strategy Avoid classic mistakes Apply development fundamentals Manage risks to avoid catastrophic setbacks Apply schedule-oriented practices Avoid classic mistakes Apply development fundamentals Manage risks to avoid catastrophic setbacks Apply schedule-oriented practices

RammSoft 6 The Four Pillars of RD

RammSoft 7 Efficient Development

RammSoft 8 The Four Pillars of RD

RammSoft 9 Efficient Development Risk Management Development Fundamentals Classic Mistakes Avoidance

RammSoft 10 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

RammSoft 11 Management Fundamentals Classic Trade-off Triangle ScheduleResources Scope

RammSoft 12 Management Fundamentals Planning Analyzing the scope Acquiring resources Planning the work Tracking Monitoring and directing the resources Measurement Planning Analyzing the scope Acquiring resources Planning the work Tracking Monitoring and directing the resources Measurement

RammSoft 13 Planning Determining the size of the product Functionality, complexity, etc. Allocating resources Estimation and scheduling Organizing the team Managing risk Making strategic decisions Determining the size of the product Functionality, complexity, etc. Allocating resources Estimation and scheduling Organizing the team Managing risk Making strategic decisions

RammSoft 14 Tracking Management-level controls Task lists, status meetings, status reports, milestone reviews, budget reports, management by walking around Technical-level controls Technical audits, technical reviews, quality gates Management-level controls Task lists, status meetings, status reports, milestone reviews, budget reports, management by walking around Technical-level controls Technical audits, technical reviews, quality gates

RammSoft 15 Measurement Collecting metrics How much? How often? Comparing with past projects Collecting metrics How much? How often? Comparing with past projects

RammSoft 16 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

RammSoft 17 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

RammSoft 18 Requirements Management Gathering requirements Recording them In a document, , UI storyboard, prototype, RM software, etc Tracking the design and code against them Managing changes Gathering requirements Recording them In a document, , UI storyboard, prototype, RM software, etc Tracking the design and code against them Managing changes

RammSoft 19 Requirements Management Lack of user input Incomplete requirements Changing requirements Lack of user input Incomplete requirements Changing requirements The top 3 reasons that projects fail:

RammSoft 20 Requirements Fundamentals Requirements-analysis methodologies Structured analysis Object-oriented analysis System-modeling practices Communication practices Requirements-analysis methodologies Structured analysis Object-oriented analysis System-modeling practices Communication practices

RammSoft 21 Requirements-Analysis Methodologies Structured analysis Functional view (DF diagrams) Data view (ER diagrams) Dynamic view (ST diagrams) Object-oriented analysis The things in the system (objects), the things outside the system (actors, data), their relationships Class diagrams, UML Structured analysis Functional view (DF diagrams) Data view (ER diagrams) Dynamic view (ST diagrams) Object-oriented analysis The things in the system (objects), the things outside the system (actors, data), their relationships Class diagrams, UML

RammSoft 22 System-modeling practices Class diagram

RammSoft 23 System-modeling practices Data-flow diagram

RammSoft 24 System-modeling practices Database diagram

RammSoft 25 System-modeling practices State-flow diagram

RammSoft 26 Communication Practices Joint Application Development (JAD) UI prototyping General interview practices Observation by walking around Joint Application Development (JAD) UI prototyping General interview practices Observation by walking around

RammSoft 27 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

RammSoft 28 Architecture and Design Fundamentals Major design styles Foundational design concepts Standard design approaches Domain-specific design considerations Use of design tools Major design styles Foundational design concepts Standard design approaches Domain-specific design considerations Use of design tools

RammSoft 29 Major Design Styles Structured design Every program can be created with a limited number of structural elements Object-oriented design OOD elaborates the analysis models to produce implementation specifications OOA focuses on what the system does, OOD on how the system does it Structured design Every program can be created with a limited number of structural elements Object-oriented design OOD elaborates the analysis models to produce implementation specifications OOA focuses on what the system does, OOD on how the system does it

RammSoft 30 Object-oriented Pradigm

RammSoft 31 Foundational Design Concepts Information hiding Modularity Abstraction Encapsulation Inheritance Polymorphism Basic algorithms and data structures Design patterns Information hiding Modularity Abstraction Encapsulation Inheritance Polymorphism Basic algorithms and data structures Design patterns

RammSoft 32 Standard Design Approaches Exception handling Internationalization and localization Portability Input / output Memory management Floating-point arithmetic Database design Reuse Exception handling Internationalization and localization Portability Input / output Memory management Floating-point arithmetic Database design Reuse

RammSoft 33 Domain-Specific Design Considerations Financial applications Scientific applications Embedded systems Real-time systems Financial applications Scientific applications Embedded systems Real-time systems

RammSoft 34 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

RammSoft 35 Construction Fundamentals (1) Coding practices Variable and function naming, layout, documentation Data-related concepts Scope, persistence, binding time Guidelines for using types of data Enumerated types Arrays Pointers Coding practices Variable and function naming, layout, documentation Data-related concepts Scope, persistence, binding time Guidelines for using types of data Enumerated types Arrays Pointers

RammSoft 36 Construction Fundamentals (2) Control-related concepts Conditionals Unusual structures - goto and return Recursive procedures Error-detection practices Assertions Rules for packaging code into routines, modules, classes, and files Control-related concepts Conditionals Unusual structures - goto and return Recursive procedures Error-detection practices Assertions Rules for packaging code into routines, modules, classes, and files

RammSoft 37 Construction Fundamentals (3) Unit-testing and debugging practices Integration strategies Incremental integration, big-bang integration, evolutionary development Code-tuning strategies and practices Use of construction tools IDEs, source-code control, code libraries, code generators Unit-testing and debugging practices Integration strategies Incremental integration, big-bang integration, evolutionary development Code-tuning strategies and practices Use of construction tools IDEs, source-code control, code libraries, code generators

RammSoft 38 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

RammSoft 39 Software Configuration Management Practices for managing project artifacts Evaluating proposed changes Tracking changes Handling multiple versions Keeping copies of project artifacts through time Practices for managing project artifacts Evaluating proposed changes Tracking changes Handling multiple versions Keeping copies of project artifacts through time

RammSoft 40 Software Configuration Management Most often used to manage source code Can be applied to Requirements Plans and Designs Test cases User documentation Data Most often used to manage source code Can be applied to Requirements Plans and Designs Test cases User documentation Data

RammSoft 41 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

RammSoft 42 QA Fundamentals Reworking defective requirements, design, and code consumes 40-50% of the total cost of the development 1 hour spent on defect prevention reduces repair time 3 to 10 hours Reworking a requirements problem in operation stage costs 50 to 200 times more than in requirements stage About 60% of all defects exist at design time Reworking defective requirements, design, and code consumes 40-50% of the total cost of the development 1 hour spent on defect prevention reduces repair time 3 to 10 hours Reworking a requirements problem in operation stage costs 50 to 200 times more than in requirements stage About 60% of all defects exist at design time

RammSoft 43 Classic Mistakes Reducing the time on design and code reviews Compressing the test schedule Reducing the time on design and code reviews Compressing the test schedule

RammSoft 44 Why QA practices are important? Software quality and software schedules are related Poor quality is one of the most common reasons for schedule overruns 95% of defect addressed is the optimal value Software quality and software schedules are related Poor quality is one of the most common reasons for schedule overruns 95% of defect addressed is the optimal value

RammSoft 45 Best Possible Schedule

RammSoft 46 QA Practices Error-prone modules analysis Testing Technical reviews Walkthroughs Code reading Inspections Find 60-90% of the defects Error-prone modules analysis Testing Technical reviews Walkthroughs Code reading Inspections Find 60-90% of the defects

RammSoft 47 Thank You! Official website: Professional blogs: Official website: Professional blogs: