Introduction To Software Development CSC Spring 2019 Howard Rosenthal
|
|
- Ashlyn Day
- 5 years ago
- Views:
Transcription
1 Introduction To Software Development CSC Spring 2019 Howard Rosenthal
2 Course References Materials for this course have utilized materials in the following documents. Additional materials taken from web sites will be referenced when utilized Anderson, Julie and Franceschi, Herve, Java Illuminated 5 TH Edition,, Jones and Bartlett, Bravaco, Ralph and Simonson, Shai, Java programming From The Ground Up, McGraw Hill, Deitel, Paul and Deitel, Harvey, Java, How To Program, Early Objects, Tenth Edition, Pearson Publishing, Gaddis, Tony, Starting Out With Objects From Control Structures Through Objects, Pearson Publishing, Horstmann, Cay, Core Java For The Impatient, Addison Wesley- Pearson Education, Schmuller, Joseph, Teach Yourself UML In 24 Hours Second Edition, SAMS Publishing, Urma, Raoul-Gabriel, Fusco, Mario and Mycroft, Alan, Java 8 in Action: Lambdas, Streams, and Functional-Style Programming, Manning Publishing, Wirfs-Brock, Rebecca, Wilkerson, Brian and Wiener, Laura, Designing Object- Oriented Software, Prentice Hall,
3 Lesson Goals Discuss good software development practices Describe software complexity Describe software methodologies Describe object-oriented programming 3
4 4
5 Good Software Development Writing good software is much more than sitting down and starting to code You need a methodology You need a structure You need to thoroughly test Every loop and branch must be thoroughly tested You need to strive towards simplicity This makes testing easier You need to refactor on a regular basis Refactoring is improving the software without adding new functionality Improvements can include performance improvement, bug fixes, etc.) You need well-documented software (see reference SoftwareDocumentation.pdf) You must document all logic, parameters, and test results You would like to develop reusable software whenever possible This requires data-driven software that can serve multiple similar purposes 5
6 Software Complexity (1) Cyclomatic complexity in code is a software metric used to indicate the complexity in the program. It is a quantitative measure of the number of linearly independent paths through program's source code. In normal terms, the cyclomatic complexity measure tells how complex your code is. The cyclomatic complexity of a method (or constructor) is the number of possible linearly-independent execution paths through that method A method with high cyclomatic complexity is typically difficult to understand and test. Good software design keeps the complexity of any method low, limiting the levels of nesting by creating and invoking new methods. Note: The government has strong limits on the level of complexity of any individual piece of software. When you have lowered complexity you may have more methods Therefore good and complete documentation of each method, as well as each class, it extremely important 6
7 Software Complexity (2) Mathematically, the cyclomatic complexity of a structured program is defined with reference to the control flow graph of the program, a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second. The complexity M is then defined as M = E N + 2P, where E = the number of edges of the graph. N = the number of nodes of the graph. P = the number of connected components. 7
8 Example Of Complexity Calculation A control flow graph of a simple program. The program begins executing at the red node, then enters a loop (group of three nodes immediately below the red node). On exiting the loop, there is a conditional statement (group below the loop), and finally the program exits at the blue node. This graph has 9 edges, 8 nodes, and 1 connected component, so the cyclomatic complexity of the program is *1 = 3 8
9 9
10 Classic Traditional Program Management Uses The Waterfall Model 10
11 The Waterfall In Reality In reality there are almost always unknowns and changes This leads to the potential to circle back at any step to a prior step in the life cycle 11
12 The V-Shaped Model Is A Variation On The Waterfall Advantages Disadvantages Early development of test plans during the corresponding analysis and design processes during the life cycle improves the possibility of acceptance test success. Software is developed during the implementation phase, so no early prototypes of the software are produced Each phase has specific deliverables Little flexibility and adjusting scope is difficult Simple and easy to use Very rigid like the waterfall model Works well for small projects where requirements are easily understood This model does not provide a clear path for problems found during testing phases 12
13 The Spiral Model Combines The Traditional and Predictive Lifecycle Model With Prototyping It Is Iterative 13
14 The Spiral Model Uses Prototyping As A Key Tool During Requirements Discovery (1) The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system. A preliminary design is created for the new system. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product. A second prototype is evolved by a fourfold procedure: Evaluating the first prototype in terms of its strengths, weaknesses, and risks Defining the requirements of the second prototype Planning and designing the second prototype Constructing and testing the second prototype. 14
15 The Spiral Model Follows A Path That Leads To Requirements Discovery (2) At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired. The final system is constructed, based on the refined prototype. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime. 15
16 The Agile Manifesto Agile methodologies embrace the concept of incremental development and delivery of workable software The Agile Manifesto encompasses four basic values PMBOK V6 Agile Fig
17 The Twelve Principles Of The Agile Manifesto PMBOK V6 Agile Fig
18 Many Different Lean Methods Are Considered Agile Often people mean different methods when talking about Agile Any method that embraces the the Agile Manifesto and Principle may be considered an Agile method PMBOK V6 Agile Fig
19 What Is A Scrum? Scrum is a single-team process framework used to manage product development The framework consists of roles, events, artifacts and rules that uses an iterative Agile delivery approach to deliver working products within timeboxes of one month or less Scrum is the most widely used methodology for Agile development. Key advantages include: Relatively easy to train and implement Reflects the truly incremental delivery approach used for in-house improvements Keeps the customer satisfied and sold Keeps together for a longer time, improving efficiency Through the retrospectives provides a mechanism for continuous process improvement. Not appropriate for new large scale projects Scrum defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal It challenges assumptions of the "traditional, sequential approach to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines involved A key principle of Scrum is the dual recognition that customers will change their minds about what they want or need (often called requirements volatility) There will be unpredictable challenges for which a predictive or planned approach is not suited Scrum adopts an evidence-based empirical approach accepting that the problem cannot be fully understood or defined up front It instead focuses on how to maximize the team's ability to deliver quickly, to respond to emerging requirements, and to adapt to evolving technologies and changes in market conditions 19
20 The Scrum Framework 20
21 The Scrum Process Is Built Around Daily Standups and Rapid Delivery Of New Capabilities 21
22 22
23 Some Key Practices In Software Development That Are Widely Agreed Upon (1) Good design and definition of interfaces Well-defined interfaces between software objects is important to ensure that the code is usable Automated testing is something almost universally agreed upon as a laudable goal. Tools capture test scenarios for playback so that they can be run multiple times. Continuous integration, as opposed to developing in silo branches and then having extensive merging efforts, is also largely viewed as a benefit. Use of object-oriented design patterns Software Patterns describe how to solve typical problems that appear in many application scenarios in similar ways. An abstract class has patterns that may be applied to multiple child classes These patterns can be seen as abstracted knowledge, that guides you in better solving your concrete problems For instance, all polygons have their perimeters calculated in a similar way. A more complex example all cars start in a similar way. 23
24 Some Key Practices In software Development That Are Widely Agreed Upon (2) Code reviews are widely considered to be indispensable ways of promoting code quality. Pair programming takes code reviews to the next level and has development performed in a constant state of review. Two persons teams continuously review and consult on each others code. One click, automated builds are considered an important goal for most organizations, in stark contrast to the practice of having someone labor for half a day to get the software into a deployable state. Low complexity makes the code much easier to test and maintain Good documentation is essential unless you want to own the same piece of code for its entire lifetime 24
25 25
26 What Is Object-Oriented Programming The purpose of OOP is to organize a program's structure so that one can build programs using abstract models called "objects" that encapsulate data and behavior into one unit Object-oriented programming is based upon theories from the field of cognitive science about how information is represented in the human mind. Cognitive science is a multidisciplinary field where psychiatrists, neurologists, computer scientists, and others try to understand the nature of human thought. Computer scientists are particularly interested in this field because understanding human thought is helpful in the field of artificial intelligence as well as human-computer interaction. Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self"). In OOP, computer programs are designed by making them out of objects that interact with one another. 26
27 Classes And Objects Classes The definitions for the data format and available procedures for a given type or class of object; may also contain data and procedures (known as class methods) themselves, i.e. classes contain the data members and member functions Objects Instances of classes Objects sometimes correspond to things found in the real world. For example, a graphics program may have objects such as "circle", "square", "menu". An online shopping system might have objects such as "shopping cart", "customer", and "product Sometimes objects represent more abstract entities, like an object that represents an open file, or an object that provides the service of translating measurements from U.S. customary to metric. The use of classes and objects allow us to model all forms of real world documentation 27
28 Why Use Object-Oriented Programming Object-0riented programming has great advantages over other programming styles: Code Reuse and Recycling: Objects created for object-oriented Programs can easily be reused in other programs. Encapsulation: Once an object is created, knowledge of its implementation is not necessary for its use. In older programs, coders needed understand the details of a piece of code before using it (in this or another program). Objects have the ability to hide certain parts of themselves from programmers. This prevents programmers from tampering with values they shouldn't. Additionally, the object controls how one interacts with it, preventing other kinds of errors. For example, a programmer (or another program) cannot set the width of a window to Design Benefits: Large programs are very difficult to write. Object-oriented programs force designers to go through an extensive planning phase, which makes for better designs with less flaws. In addition, once a program reaches a certain size, object-oriented Programs are actually easier to program than non-object-oriented ones. Software Maintenance: Programs are not disposable and legacy code must be dealt with on a daily basis, either to be improved upon (for a new version of an exist piece of software) or made to work with newer computers and software. An object-oriented program is much easier to modify and maintain than a non-objectoriented program. So although a lot of work is spent before the program is written, less work is needed to maintain it over time. 28
Dilbert Scott Adams. CSc 233 Spring 2012
Dilbert Scott Adams CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 2 Dilbert Scott Adams CSc 233 Spring 2012 3 prerequisites CSc 233 Spring 2012 I thought we had agreed long ago that the Department
More informationITE 205 Software Design and Programming I
Computer Science Department cs.salemstate.edu ITE 205 Software Design and Programming I 4 cr. Catalog description: This course introduces a set of fundamental design principles and problem-solving techniques
More informationSystem Development Life Cycle Methods/Approaches/Models
Week 11 System Development Life Cycle Methods/Approaches/Models Approaches to System Development System Development Life Cycle Methods/Approaches/Models Waterfall Model Prototype Model Spiral Model Extreme
More informationSOFTWARE LIFE-CYCLE MODELS 2.1
SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed
More informationIntroduction to Software Engineering
Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,
More informationIntroduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz
Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz ESE Introduction Lecturer Assistants Lectures Exercises WWW Prof. Oscar Nierstrasz scg.unibe.ch/oscar Erwann Wernli Aaron
More informationGeneric Collections CSC Spring 2019 Howard Rosenthal
Generic Collections CSC 295-01 Spring 2019 Howard Rosenthal Course References Materials for this course have utilized materials in the following documents. Additional materials taken from web sites will
More informationOBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis
UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance
More informationCSC Advanced Object Oriented Programming, Spring Overview
CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay
More informationExamples. Object Orientated Analysis and Design. Benjamin Kenwright
Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision
More informationAdopting Agile Practices
Adopting Agile Practices Ian Charlton Managing Consultant ReleasePoint Software Testing Solutions ANZTB SIGIST (Perth) 30 November 2010 Tonight s Agenda What is Agile? Why is Agile Important to Testers?
More informationTopic 01. Software Engineering, Web Engineering, agile methodologies.
Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,
More informationLecture 7: Software Processes. Refresher: Software Always Evolves
Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)
More informationModern Software Engineering Methodologies Meet Data Warehouse Design: 4WD
Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD Matteo Golfarelli Stefano Rizzi Elisa Turricchia University of Bologna - Italy 13th International Conference on Data Warehousing
More informationSystems Analysis and Design in a Changing World, Fourth Edition
Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development
More informationSoftware Engineering Lifecycles. Controlling Complexity
Software Engineering Lifecycles Class url:http://laser.cs.umass.edu/courses/cs320.spring11/ Controlling Complexity Separation of Concerns Planning Ahead Do a little work now to make later work easier The
More informationCS487 Midterm Exam Summer 2005
1. (4 Points) How does software differ from the artifacts produced by other engineering disciplines? 2. (10 Points) The waterfall model is appropriate for projects with what Characteristics? Page 1 of
More informationIncremental development A.Y. 2018/2019
Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with
More informationLecture 2: Software Engineering (a review)
Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is
More informationLevel: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)
Course Title: Software Engineering Course No. : ICT Ed 528 Nature of course: Theoretical + Practical Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48) 1. Course Description The
More informationTesting in Agile Software Development
Testing in Agile Software Development T 76.5613, Software Testing and Quality Assurance Slides by Juha Itkonen Lecture delivered by 4.10.2006 V-model of testing Benefits of the V-model Intuitive and easy
More informationInheritance CSC 123 Fall 2018 Howard Rosenthal
Inheritance CSC 123 Fall 2018 Howard Rosenthal Lesson Goals Defining what inheritance is and how it works Single Inheritance Is-a Relationship Class Hierarchies Syntax of Java Inheritance The super Reference
More informationUser-Centered Development
Software Lifecycle CS470 User-Centered Development User-centered development refers to a design process for creating a system that meets the needs of the user Users should be included in the design process
More informationTesting in the Agile World
Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline
More informationIntroduction To Programming Using Java: An Object- Oriented Approach (2nd Edition) By David Arnow, Scott Dexter
Introduction To Programming Using Java: An Object- Oriented Approach (2nd Edition) By David Arnow, Scott Dexter Second edition Practical Software Development using UML and Java. Second.. in the formal
More informationIntroduction to Software Engineering (ESE : Einführung in SE)
Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz Selected material courtesy of Prof. Serge Demeyer, U. Antwerp ESE Introduction Lecturers Assistants Lectures Exercises
More informationOptimize tomorrow today.
Applying Agile Practices to Improve Software Quality Name: Arlene Minkiewicz Chief Scientist 17000 Commerce Parkway Mt. Laurel, NJ 08054 arlene.minkiewicz@pricesystems.com Phone: 856 608-7222 Agenda Introduction
More informationSoftware Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: XP 1 extreme Programming (XP) Developed by Beck in 1996. The first authentic XP book appeared in 1999, with a revised
More informationCS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities
More informationProcess of Interaction Design and Design Languages
Process of Interaction Design and Design Languages Process of Interaction Design This week, we will explore how we can design and build interactive products What is different in interaction design compared
More information*ANSWERS * **********************************
CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO
More informationDesigned in collaboration with Infosys Limited
Proposal for Introduction of New Industry Course in Engineering Curriculum Agile Software Development - Deliver Software Better Everyday Designed in collaboration with Infosys Limited Version 1-2016 Contents
More informationAdministrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal
Administrivia Software Process CS169 Lecture 2 Added 20 more so far Will limit enrollment to ~65 students Only one TA so far Start thinking about project proposal Bonus points for proposals that will be
More informationApproaches for Auditing Software Vendors
Approaches for Auditing Software Vendors Chris Wubbolt, QACV Consulting, LLC IVT Validation Week October 20, 2016 10/20/2016 www.qacvconsulting.com 1 Objectives Understanding impact of vendor processes
More informationThe Design Space of Software Development Methodologies
The Design Space of Software Development Methodologies Kadie Clancy, CS2310 Term Project I. INTRODUCTION The success of a software development project depends on the underlying framework used to plan and
More informationApplying ISO/IEC Quality Model to Quality Requirements Engineering on Critical Software
Applying ISO/IEC 9126-1 Quality Model to Quality Engineering on Critical Motoei AZUMA Department of Industrial and Management Systems Engineering School of Science and Engineering Waseda University azuma@azuma.mgmt.waseda.ac.jp
More informationUNIT-I Introduction of Object Oriented Modeling
UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,
More informationTHE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)
THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS
More informationA STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN
A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN GARJE RAKESH RAMESHRAO RESEARCH SCHOLAR, DEPT. OF COMPUTER SCIENCE CMJ UNIVERSITY, SHILLONG, MEGHALAYA INTRODUCTION Object-oriented Analysis and Design is
More informationSoftware Development Process Models
Software Development Process Models From classical notions to more agile approaches th@cs.toronto.edu, BA8134 Code & Fix or Cowboy Coding 1) Write program 2) Test and fix program Problems: program users
More informationSoftware Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution
Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary
More informationObject-Oriented Systems Development: Using the Unified Modeling Language
Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 4: Object-Oriented Methodologies Goals Object-Oriented Methodologies The Rumbaugh et al. OMT The Booch methodology Jacobson's
More informationHow Can a Tester Cope With the Fast Paced Iterative/Incremental Process?
How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of
More informationInterfaces CSC 123 Fall 2018 Howard Rosenthal
Interfaces CSC 123 Fall 2018 Howard Rosenthal Lesson Goals Defining an Interface How a class implements an interface Using an interface as a data type Default interfaces Implementing multiple interfaces
More informationPROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development
INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an
More informationAgile Development
Agile Development 12-04-2013 Many flavors: Waterfall, Spiral Rapid Application Development (DSDM) Xtreme Programming (XP, an agile methodology) Usability Engineering Model, Star Iteration is done throughout
More informationObject Oriented Programming
Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering
More informationReview of Basic Software Design Concepts. Fethi Rabhi SENG 2021
Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1 Topics The development process Planning Designing Implementing 2 1. The development process How to organise activities related to the creation,
More informationActivities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects
Activities Common to Software Projects Software Life Cycle Mark van den Brand Requirements and specification Domain analysis Defining the problem Requirements gathering Obtaining input from as many sources
More informationSE420 - Software Quality Assurance
SE420 - Software Quality Assurance http://dilbert.com/strips/comic/2006-01-29/ Lecture 3 Unit Testing, Part-2 January 21, 2019 Sam Siewert Reminders Assignment #2 Posted Thursday [Unit Re-Use] Explore
More informationChapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle
Chapter 5 The Database Life 1 Database Design Life Database Life : all the events from the time the database is first proposed to the time it is retired from service Work is typically divided into project
More informationHistory of object-oriented approaches
Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented
More informationA Case Study of Requirements Specification in an Agile Project
A Case Study of Requirements Specification in an Agile Project Master s thesis Karoline Lunder Department of Informatics UNIVERSITY OF OSLO 2. May 2014 1 Abstract Requirements specification when using
More informationThe Process of Software Architecting
IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,
More information02291: System Integration
02291: System Integration Week 10 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Principles of good design: layered architecture Software Development Processes
More informationAgile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process
Agile Accessibility Ensuring accessibility throughout the Agile development process Presenters: Andrew Nielson, CSM, PMP, MPA Ann Marie Davis, CSM, PMP, M. Ed. Cammie Truesdell, M. Ed. Overview What is
More informationAgile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE
Agile Software Development Agile UX Work Kati Kuusinen Researcher @ TUT / Pervasive / IHTE kati.kuusinen@tut.fi Contents 1. Introduction / Motivation 2. Agile software development 3. User experience work
More informationISSN: [Kaur* et al., 6(10): October, 2017] Impact Factor: 4.116
IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY COMPARATIVE ANALYSIS OF SOFTWARE DEVELOPMENT MODELS Sandeep Kaur* *Department of computer Science & Engineering, Guru Nanak Dev
More informationIntroduction to Software Engineering
Chapter 1 Introduction to Software Engineering Content 1. Introduction 2. Components 3. Layered Technologies 4. Generic View of Software Engineering 4. Generic View of Software Engineering 5. Study of
More informationSchedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)
Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach 14:30 Case Study of Elevator Control System (problem definition, use case model) March 19th 13:00 Case Study of Elevator Control
More informationThe software lifecycle and its documents
The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes
More informationSOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming
SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming Slide 1 Lesson Objectives Understand major activities of software projects Understand the place of these in different lifecycle models
More informationKanban One-Day Workshop
Kanban One-Day Workshop Copyright Net Objectives, Inc. All Rights Reserved 2 Copyright Net Objectives, Inc. All Rights Reserved 3 Lean for Executives Product Portfolio Management Business Product Owner
More information11/8/ th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010
11/8/2010 18 th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010 Requirements Engineering @ Intel few dedicated requirements engineers central training / coaching department still using Word
More informationLecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802
UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1
More informationObject-Oriented Systems Analysis and Design Using UML
10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand
More informationObject Oriented Programming
Unit 19: Object Oriented Unit code: K/601/1295 QCF Level 4: BTEC Higher National Credit value: 15 Aim To provide learners with an understanding of the principles of object oriented programming as an underpinning
More informationSE310 Analysis and Design of Software Systems
SE310 Analysis and Design of Software Systems Lecture 2 OO Examples and Process Introduction January 8, 2015 Sam Siewert Overall Learning Objectives What to Build? Requirements as Capabilities Methods
More informationSoftware Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based
More informationUnit 6 - Software Design and Development LESSON 7 CODE STRUCTURES
Unit 6 - Software Design and Development LESSON 7 CODE STRUCTURES Previously Key features of programming languages Software Development Lifecycle Design models Iterative Prototyping Agile ASD, FDD, DSDM,
More informationAn Expert System for Design Patterns Recognition
IJCSNS International Journal of Computer Science and Network Security, VOL.17 No.1, January 2017 93 An Expert System for Design Patterns Recognition Omar AlSheikSalem 1 and Hazem Qattous 2 1 Department
More informationBest Practices for Collecting User Requirements
Federal GIS Conference February 9 10, 2015 Washington, DC Best Practices for Collecting User Requirements Gerry Clancy Glenn Berger Requirements Provide direction for program success Why Requirements are
More informationRUP for Systems Z and other Legacy Systems
IBM Software Group RUP for Systems Z and other Legacy Systems Susan M Burk Senior Managing Consultant IBM smburk@us.ibm.com 413-726-9361 2006 IBM Corporation Agenda Objectives A Quick Introduction to RUP
More informationStudy Of Feature Driven Development Using The Concepts Of Object Oriented Programming System
Study Of Feature Driven Development Using The Concepts Of Object Oriented Programming System Raj Kumari University of Engineering And Technology Punjab University Chandigarh,India Heena University Of Engineering
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationAbstract Classes and Polymorphism CSC 123 Fall 2018 Howard Rosenthal
Abstract Classes and Polymorphism CSC 123 Fall 2018 Howard Rosenthal Lesson Goals Define and discuss abstract classes Define and discuss abstract methods Introduce polymorphism Much of the information
More informationSecond. Incremental development model
3 rd Stage Lecture time: 8:30 AM-2:30 PM Instructor: Ali Kadhum AL-Quraby Lecture No. : 4 Subject: Software Engineering Class room no.: Department of computer science Second. Incremental development model
More informationAgile Software Development The Cooperative Game 2nd Edition
Agile Software Development The Cooperative Game 2nd Edition We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer,
More informationFinal Exam CISC 475/675 Fall 2004
True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The
More informationSOFTWARE ARCHITECTURE & DESIGN INTRODUCTION
SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION http://www.tutorialspoint.com/software_architecture_design/introduction.htm Copyright tutorialspoint.com The architecture of a system describes its major components,
More informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More informationTest Driven Development. René Barto SES Agile Development - Test Driven Development
Test Driven Development René Barto SES Agile Development - Test Driven Development 27-09-2006 Contents About Myself About SES Agile Development A Typical Developer s Day Test Driven Development Questions
More informationSoftware Design Using CRC Cards
By Harold Halbleib, Product Manager, Excel Software. Software Design Using CRC Cards Many notations, methods and books have been published in recent years regarding analysis and design of object-oriented
More informationLecture 34 SDLC Phases and UML Diagrams
That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome
More informationChapter 8 Visualization and Optimization
Chapter 8 Visualization and Optimization Recommended reference books: [1] Edited by R. S. Gallagher: Computer Visualization, Graphics Techniques for Scientific and Engineering Analysis by CRC, 1994 [2]
More informationAgile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?
Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.
More informationStrategies for Rapid Development in Internet Time. William A. Cunningham December 5, 2000 NYOUG New York, NY
Strategies for Rapid Development in Internet Time William A. Cunningham December 5, 2000 NYOUG New York, NY Background - Issues Productivity differences can be 10 to 1 in developing systems in the same
More informationSoftware Engineering
Software Engineering A systematic approach to the analysis, design, implementation and maintenance of software. Software Development Method by Jan Pettersen Nytun, page 1 Software Engineering Methods Most
More informationDevOps in an ITIL Shop. Not just compatible; DevOps achieves ITIL s promise.
DevOps in an ITIL Shop Not just compatible; DevOps achieves ITIL s promise. Can DevOps & ITIL Coexist? ITIL Avoid Failure Rigorous Change Management and control Application Development not addressed Waterfall
More informationObject-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.
Slide 14.1 CHAPTER 14 Slide 14.2 Object-Oriented and Classical Software Engineering DESIGN Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach Overview Slide 14.3 Overview (contd) Slide 14.4 and abstraction
More informationObjectives. Connecting with Computer Science 2
Objectives Learn how software engineering is used to create applications Learn some of the different software engineering process models Understand what a design document is and how it should be used during
More informationMTAT Software Engineering Management
MTAT.03.243 Software Engineering Management Lecture 11: Flow-based (KANBAN) Principles and Processes Dietmar Pfahl Spring 2014 email: dietmar.pfahl@ut.ee Structure of Lecture 11 Flow-based agile development
More informationSoftware Engineering Chap.7 - Design and Implementation
Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,
More informationRapid Application Development [RAD]
Rapid Application Development [RAD] RAD In Solution Delivery,, Beyond Prototypes www.lytecube.com Author: Girish Bellalcheru CTO, Lytecube.com Abstract Rapid application development has traditionally been
More informationSoftware Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics
Software Verification and Validation (VIMMD052) Introduction Istvan Majzik majzik@mit.bme.hu Budapest University of Technology and Economics Dept. of Measurement and Information s Budapest University of
More informationSession 8: UML The Unified Modeling (or the Unstructured Muddling) language?
Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? A few observations, opinions, pros & cons COMP 320 / 420 Spring, 2018 Mr. Weisert Where did the UML come from? Object-oriented
More informationChapter 12 Object-Oriented Programming. Starting Out with Games & Graphics in C++ Tony Gaddis
Chapter 12 Object-Oriented Programming Starting Out with Games & Graphics in C++ Tony Gaddis Addison Wesley is an imprint of 2010 Pearson Addison-Wesley. All rights reserved. 12.1 Procedural and Object-Oriented
More informationCreating an Intranet using Lotus Web Content Management. Part 2 Project Planning
Creating an Intranet using Lotus Web Content Management Introduction Part 2 Project Planning Many projects have failed due to poor project planning. The following article gives an overview of the typical
More informationA Proposal to Develop a Testing Framework for Agile Software Process
C.G. Anupama, Rashi Nair and Soumi Roy ISSN : 0974 5572 International Science Press Volume 9 Number 40 2016 A Proposal to Develop a Testing Framework for Agile Software Process C.G. Anupama a Rashi Nair
More informationRightNow Technologies Best Practices Implementation Guide. RightNow Technologies, Inc.
RightNow Technologies Best Practices Implementation Guide RightNow Technologies, Inc. www.rightnow.com http://rightnow.custhelp.com Welcome Welcome to the RightNow Technologies Best Practice Implementation
More information